From 87931e67e98bd087433771db5d8e8554c1440cb6 Mon Sep 17 00:00:00 2001 From: Tim Hudson Date: Sat, 15 Nov 2014 10:42:26 -0500 Subject: [PATCH 001/346] Use ` instead of ' to in last float example --- problems/numbers/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/numbers/problem.md b/problems/numbers/problem.md index 3fc58f37..5f0ac33a 100644 --- a/problems/numbers/problem.md +++ b/problems/numbers/problem.md @@ -3,7 +3,7 @@ # NUMBERS Numbers can be integers, like `2`, `14`, or `4353`, or they can be decimals, -also known as floats, like `3.14`, `1.5`, or '100.7893423'. +also known as floats, like `3.14`, `1.5`, or `100.7893423`. ## The challenge: From b5f10bef286dae8b9c82426736c6b52270af8182 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Sat, 15 Nov 2014 20:41:57 +0000 Subject: [PATCH 002/346] Improve the language in the if-statement problem --- problems/if-statement/problem.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/problems/if-statement/problem.md b/problems/if-statement/problem.md index b1e99c11..4f986bd6 100644 --- a/problems/if-statement/problem.md +++ b/problems/if-statement/problem.md @@ -2,21 +2,21 @@ # IF STATEMENT -Conditional statements are used to, based in a specified boolean condition, alter the control flow of a program. +Conditional statements are used to alter the control flow of a program, based on a specified boolean condition. -A conditional statement look like this: +A conditional statement looks like this: ```js -if(n > 1) { +if (n > 1) { console.log('the variable n is greater than 1.'); } else { - console.log('the variable n is less or equal than 1.'); + console.log('the variable n is less than or equal to 1.'); } ``` -Inside parenthesis you must enter a logic statement, meaning that should be either true or false. +Inside parentheses you must enter a logic statement, meaning that the result of the statement is either true or false. -The else block is optional and contains the code that will be executed if the statement it's false. +The else block is optional and contains the code that will be executed if the statement is false. ## The challenge @@ -27,7 +27,7 @@ In that file, declare a variable named `fruit`. Make the `fruit` variable reference the value **orange**. Then use `console.log()` to print **The fruit name has more than five characters.** if the length of the value of `fruit` is greater than five. -Print **The fruit name has less or equal than five characters.** otherwise. +Print **The fruit name has five characters or less.** otherwise. Check to see if your program is correct by running this command: From d15f7077b2c84b23b0361b9273c1be82eeba03e8 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Sat, 15 Nov 2014 21:03:21 +0000 Subject: [PATCH 003/346] Fix for-loop solution The main thing was moving console.log out of the for loop. Also changed the variable declaration order, `<=` and whitespace to match the problem statement. --- solutions/for-loop/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/solutions/for-loop/index.js b/solutions/for-loop/index.js index fb3b87d9..f5ce68da 100644 --- a/solutions/for-loop/index.js +++ b/solutions/for-loop/index.js @@ -1,7 +1,8 @@ -var limit = 10; var total = 0; +var limit = 10; -for (var i=0; i<=limit; i++) { +for (var i = 0; i < limit; i++) { total += i; - console.log(total) } + +console.log(total) From fdacda5642f8a5abcd86b41e21d38b87599f44f1 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Sat, 15 Nov 2014 21:32:23 +0000 Subject: [PATCH 004/346] Fix typo in function-arguments solution --- problems/function-arguments/solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/function-arguments/solution.md b/problems/function-arguments/solution.md index d050e8de..4c8a3baa 100644 --- a/problems/function-arguments/solution.md +++ b/problems/function-arguments/solution.md @@ -2,7 +2,7 @@ # YOU'RE IN CONTROL OF YOUR ARGUMENTS! -Well done completing the excercise. +Well done completing the exercise. Run `javascripting` in the console to choose the next challenge. From a0957f11186698e76a14ce8fde9ce7a93435198f Mon Sep 17 00:00:00 2001 From: sethvincent Date: Sun, 16 Nov 2014 09:57:23 -0800 Subject: [PATCH 005/346] update if-statement solution --- solutions/if-statement/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/if-statement/index.js b/solutions/if-statement/index.js index 57abd72c..830656f0 100644 --- a/solutions/if-statement/index.js +++ b/solutions/if-statement/index.js @@ -1,6 +1,6 @@ var fruit = 'orange'; -if(fruit.length > 5 ) { +if (fruit.length > 5) { console.log('The fruit name has more than five characters.'); } else { - console.log('The fruit name has less or equal than five characters.'); + console.log('The fruit name has five characters or less.'); } From 49d648403e44697d2149e6a50261882fa85cf84a Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Mon, 1 Dec 2014 19:28:43 +1100 Subject: [PATCH 006/346] Add windows equivalent for `touch file` --- problems/introduction/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/introduction/problem.md b/problems/introduction/problem.md index c1cb9f92..0421681a 100644 --- a/problems/introduction/problem.md +++ b/problems/introduction/problem.md @@ -13,7 +13,7 @@ Change directory into the `javascripting` folder: Create a file named `introduction.js`: -`touch introduction.js` +`touch introduction.js` or if you're on windows, `type NUL > introduction.js` Open the file in your favorite editor, and add this text: From 5ada433e5adece298f8427ad69361b60907d16b5 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Mon, 1 Dec 2014 19:49:14 +1100 Subject: [PATCH 007/346] implement .run for all current problems --- problems/array-filtering/index.js | 4 ++++ problems/arrays/index.js | 6 +++++- problems/for-loop/index.js | 6 +++++- problems/function-arguments/index.js | 4 ++++ problems/function-return-values/index.js | 4 ++++ problems/functions/index.js | 4 ++++ problems/if-statement/index.js | 4 ++++ problems/introduction/index.js | 4 ++++ problems/looping-through-arrays/index.js | 4 ++++ problems/number-to-string/index.js | 4 ++++ problems/numbers/index.js | 4 ++++ problems/object-keys/index.js | 4 ++++ problems/object-properties/index.js | 4 ++++ problems/objects/index.js | 4 ++++ problems/revising-strings/index.js | 4 ++++ problems/rounding-numbers/index.js | 4 ++++ problems/scope/index.js | 4 ++++ problems/string-length/index.js | 4 ++++ problems/strings/index.js | 4 ++++ problems/this/index.js | 4 ++++ problems/variables/index.js | 4 ++++ 21 files changed, 86 insertions(+), 2 deletions(-) diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js index bc29e204..00a7ae3b 100644 --- a/problems/array-filtering/index.js +++ b/problems/array-filtering/index.js @@ -15,3 +15,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/arrays/index.js b/problems/arrays/index.js index ccc0bb0d..1f87f646 100644 --- a/problems/arrays/index.js +++ b/problems/arrays/index.js @@ -14,4 +14,8 @@ exports.verify = function (args, cb) { if (result && result.replace('"', "'") === expected) cb(true); else cb(false); }); -}; \ No newline at end of file +}; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index 686a31c6..9ad8fa16 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -13,4 +13,8 @@ exports.verify = function (args, cb) { if (/45/.test(result)) cb(true); else cb(false); }); -}; \ No newline at end of file +}; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index a047eb86..2b700481 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js index 1920482f..8ce6c911 100644 --- a/problems/function-return-values/index.js +++ b/problems/function-return-values/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/functions/index.js b/problems/functions/index.js index e6219c44..d0772cba 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index 22c5b13c..2fa4e440 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/introduction/index.js b/problems/introduction/index.js index 1920482f..8ce6c911 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js index 399d31c1..82cd1a6c 100644 --- a/problems/looping-through-arrays/index.js +++ b/problems/looping-through-arrays/index.js @@ -15,3 +15,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index 6e9eaeb8..8426f2af 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/numbers/index.js b/problems/numbers/index.js index 5e579688..8768cec2 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js index 1920482f..8ce6c911 100644 --- a/problems/object-keys/index.js +++ b/problems/object-keys/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js index 69ad3cbc..f82810b8 100644 --- a/problems/object-properties/index.js +++ b/problems/object-properties/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/objects/index.js b/problems/objects/index.js index d1f6f66a..73c80f33 100644 --- a/problems/objects/index.js +++ b/problems/objects/index.js @@ -18,3 +18,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index 2c637d9a..7439cad2 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js index fd3aad9c..285336fd 100644 --- a/problems/rounding-numbers/index.js +++ b/problems/rounding-numbers/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/scope/index.js b/problems/scope/index.js index 1920482f..8ce6c911 100644 --- a/problems/scope/index.js +++ b/problems/scope/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/string-length/index.js b/problems/string-length/index.js index 12a32d75..268eb373 100644 --- a/problems/string-length/index.js +++ b/problems/string-length/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/strings/index.js b/problems/strings/index.js index ac4ae099..1f60760c 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; \ No newline at end of file diff --git a/problems/this/index.js b/problems/this/index.js index 1920482f..8ce6c911 100644 --- a/problems/this/index.js +++ b/problems/this/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/variables/index.js b/problems/variables/index.js index 8b8b9c49..c3f00a89 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -14,3 +14,7 @@ exports.verify = function (args, cb) { else cb(false); }); }; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; From c43c0ac348c7e3181623af62e5c1b14e772c4c62 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 1 Dec 2014 12:10:30 -0800 Subject: [PATCH 008/346] v1.8.0 - adds javascripting run command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9a1fafe2..d1d33c2c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.7.0", + "version": "1.8.0", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 33f3d89934bd0eac99739eb15318f89cc765be78 Mon Sep 17 00:00:00 2001 From: The Gitter Badger Date: Fri, 5 Dec 2014 21:30:11 +0000 Subject: [PATCH 009/346] Added Gitter badge --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 45d2c561..fc8ec78b 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,5 @@ # JAVASCRIPTING +[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/sethvincent/javascripting?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) > Learn JavaScript by adventuring around in the terminal. From d2989e19ee21ff966d1c523f2fd60a93f6a84935 Mon Sep 17 00:00:00 2001 From: Alejandro Oviedo Date: Tue, 9 Dec 2014 22:51:50 -0300 Subject: [PATCH 010/346] changed regex of problems to match exactly the output expected --- problems/for-loop/index.js | 2 +- problems/function-arguments/index.js | 2 +- problems/functions/index.js | 2 +- problems/if-statement/index.js | 2 +- problems/introduction/index.js | 2 +- problems/number-to-string/index.js | 2 +- problems/numbers/index.js | 2 +- problems/revising-strings/index.js | 2 +- problems/strings/index.js | 2 +- problems/variables/index.js | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index 9ad8fa16..3dc841a8 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/45/.test(result)) cb(true); + if (/^45\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index 2b700481..7b812507 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/4140/.test(result)) cb(true); + if (/^4140\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/functions/index.js b/problems/functions/index.js index d0772cba..0c829097 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/bananas tasted really good./.test(result)) cb(true); + if (/^bananas tasted really good.\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index 2fa4e440..f553eb87 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/The fruit name has more than five characters./.test(result)) cb(true); + if (/^The fruit name has more than five characters.\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/introduction/index.js b/problems/introduction/index.js index 8ce6c911..cc8e52c9 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/hello/.test(result)) cb(true); + if (/^hello\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index 8426f2af..7344ac36 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/128/.test(result)) cb(true); + if (/^128\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/numbers/index.js b/problems/numbers/index.js index 8768cec2..59478fcc 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/123456789/.test(result)) cb(true); + if (/^123456789\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index 7439cad2..9426f7d9 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/pizza is wonderful/.test(result)) cb(true); + if (/^pizza is wonderful\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/strings/index.js b/problems/strings/index.js index 1f60760c..95155bc8 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/this is a string/.test(result)) cb(true); + if (/^this is a string\n$/.test(result)) cb(true); else cb(false); }); }; diff --git a/problems/variables/index.js b/problems/variables/index.js index c3f00a89..03085b70 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -10,7 +10,7 @@ exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); exports.verify = function (args, cb) { run(args[0], function (err, result) { - if (/some string/.test(result)) cb(true); + if (/^some string\n$/.test(result)) cb(true); else cb(false); }); }; From e14204a09714d6b0b5093e2c41ce37a72889d772 Mon Sep 17 00:00:00 2001 From: michaellenahan Date: Wed, 17 Dec 2014 15:07:48 +0100 Subject: [PATCH 011/346] Update solution.md typo fixes --- problems/objects/solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/objects/solution.md b/problems/objects/solution.md index 30022419..8eeedcca 100644 --- a/problems/objects/solution.md +++ b/problems/objects/solution.md @@ -2,7 +2,7 @@ # PIZZA OBJECT IS A GO. -You sucessfully create an object! +You successfully created an object! In the next challenge we will focus on accessing object properties. From a0d36ef53c316c49adccd307924744dd62323fe2 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Thu, 18 Dec 2014 10:19:53 -0800 Subject: [PATCH 012/346] v1.9.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d1d33c2c..75555d34 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.8.0", + "version": "1.9.0", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From f96dfd1d0b1324c054e430e27ae2e1ca7dc628b7 Mon Sep 17 00:00:00 2001 From: Josh Austin Date: Sat, 3 Jan 2015 23:19:11 -0500 Subject: [PATCH 013/346] Update problem.md n.toString() does nothing unless it is assigned to a variable or passed as an argument. The example could be slightly misleading for beginners who don't understand the concept of return values yet. --- problems/number-to-string/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/number-to-string/problem.md b/problems/number-to-string/problem.md index 6000cd30..03d819d9 100644 --- a/problems/number-to-string/problem.md +++ b/problems/number-to-string/problem.md @@ -8,7 +8,7 @@ In those instances you will use the `.toString()` method. Here's an example: ```js var n = 256; -n.toString(); +n = n.toString(); ``` ## The challenge From e832f12aea061625254a45a0c4e8605a5ad9993b Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 5 Jan 2015 12:33:32 -0800 Subject: [PATCH 014/346] 1.9.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 75555d34..97a56732 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.9.0", + "version": "1.9.1", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 4b4d63c37a2e0a9f78af6258a6a5e8f2af217aae Mon Sep 17 00:00:00 2001 From: Josh Austin Date: Thu, 8 Jan 2015 19:56:19 -0500 Subject: [PATCH 015/346] Update problem.md Minor suggested edit because a newbie programmer at my nodeschool event was initially confused by the grammar. --- problems/string-length/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/string-length/problem.md b/problems/string-length/problem.md index cfc087b1..2aff5519 100644 --- a/problems/string-length/problem.md +++ b/problems/string-length/problem.md @@ -19,7 +19,7 @@ Create a file named string-length.js. In that file, create a variable named `example`. -**Make the `example` variable reference the string `example string`.** +**Assign the `example` variable to the string `'example string'`.** Use `console.log` to print the **length** of the string to the terminal. From d504cbfa1a9313a83a22a700a2632c8058aa3979 Mon Sep 17 00:00:00 2001 From: Josh Austin Date: Fri, 9 Jan 2015 19:03:16 -0500 Subject: [PATCH 016/346] A couple of minor grammatical fixes. "Thing" becoming "the" is a grammar fix. About the string assignment being changed a second time: I can't believe I did that word ordering! Technically, the grammatical structure was telling JavaScript adventurers to do this number: ``` 'example string' = example; ``` Very sorry about that! In my defense, it was rather late at night when I did it. --- problems/string-length/problem.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/problems/string-length/problem.md b/problems/string-length/problem.md index 2aff5519..ddb43cb9 100644 --- a/problems/string-length/problem.md +++ b/problems/string-length/problem.md @@ -4,7 +4,7 @@ You will often need to know how many characters are in a string. -For this you will use thing `.length` property. Here's an example: +For this you will use the `.length` property. Here's an example: ```js var example = 'example string'; @@ -19,7 +19,7 @@ Create a file named string-length.js. In that file, create a variable named `example`. -**Assign the `example` variable to the string `'example string'`.** +**Assign the string `'example string'` to the variable `example`.** Use `console.log` to print the **length** of the string to the terminal. From 0903e623687b4426c1e3456aaeff1035dc62c26b Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Mon, 12 Jan 2015 12:07:55 +0000 Subject: [PATCH 017/346] Updating the language to make more sense. Students were getting caught-up with `.` being a termination for the text and not for the answer. `Print x, y, z. and then a, b, c.` Should be: `Print "x, y, z." and then "a, b, c."` --- problems/if-statement/problem.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/problems/if-statement/problem.md b/problems/if-statement/problem.md index 4f986bd6..44cd216d 100644 --- a/problems/if-statement/problem.md +++ b/problems/if-statement/problem.md @@ -24,10 +24,10 @@ Create a file named `if-statement.js`. In that file, declare a variable named `fruit`. -Make the `fruit` variable reference the value **orange**. +Make the `fruit` variable reference the value **orange** with the type of **String**. -Then use `console.log()` to print **The fruit name has more than five characters.** if the length of the value of `fruit` is greater than five. -Print **The fruit name has five characters or less.** otherwise. +Then use `console.log()` to print "**The fruit name has more than five characters."** if the length of the value of `fruit` is greater than five. +Otherwise, print "**The fruit name has five characters or less.**" Check to see if your program is correct by running this command: From 110d5cc8fda1c59f183649c887a650a200f6d176 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Wed, 14 Jan 2015 20:59:59 +1100 Subject: [PATCH 018/346] refactor comparison function, provide diff of solution & attempt --- compare-solution.js | 64 ++++++++++++++++++++++++ package.json | 4 +- problems/array-filtering/index.js | 11 ++-- problems/arrays/index.js | 11 ++-- problems/for-loop/index.js | 10 ++-- problems/function-arguments/index.js | 10 ++-- problems/function-return-values/index.js | 10 ++-- problems/functions/index.js | 10 ++-- problems/if-statement/index.js | 10 ++-- problems/introduction/index.js | 10 ++-- problems/looping-through-arrays/index.js | 11 ++-- problems/number-to-string/index.js | 10 ++-- problems/numbers/index.js | 10 ++-- problems/object-keys/index.js | 10 ++-- problems/object-properties/index.js | 10 ++-- problems/objects/index.js | 12 ++--- problems/revising-strings/index.js | 10 ++-- problems/rounding-numbers/index.js | 10 ++-- problems/scope/index.js | 10 ++-- problems/string-length/index.js | 10 ++-- problems/strings/index.js | 12 ++--- problems/this/index.js | 10 ++-- problems/variables/index.js | 10 ++-- 23 files changed, 172 insertions(+), 113 deletions(-) create mode 100644 compare-solution.js diff --git a/compare-solution.js b/compare-solution.js new file mode 100644 index 00000000..166532f3 --- /dev/null +++ b/compare-solution.js @@ -0,0 +1,64 @@ +require("colors"); + +var path = require("path"); +var diff = require("diff"); +var run = require(path.join(__dirname, "run-solution")); + +module.exports = function(solution, attempt, cb) { + + run(solution, function(err, solutionResult) { + + if(err) { + console.error(err); + return cb(false); + } + + run(attempt, function(err, attemptResult) { + + if(err) { + if(err.code !== 8) { + console.error(err); + } + return cb(false); + } + + if(solutionResult === attemptResult) { + return cb(true); + } + + console.error("\nSolution:\n------------------------"); + console.error(solutionResult); + console.error("Your attempt:\n------------------------"); + console.error(attemptResult); + console.error("Difference:\n------------------------"); + console.error(generateDiff(solutionResult, attemptResult)); + + cb(false); + + }); + + }); + +} + +function generateDiff(solution, attempt) { + + var parts = diff.diffChars(solution, attempt); + + var result = ""; + + parts.forEach(function(part) { + + if(part.added) { + result += part.value["bgRed"]; + } else if(part.removed) { + result += part.value["bgGreen"]; + } else { + result += part.value; + } + + }); + + return result; + +} \ No newline at end of file diff --git a/package.json b/package.json index 97a56732..459f433d 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,8 @@ "preferGlobal": true, "dependencies": { "adventure": "^2.8.0", - "cli-md": "^0.1.0" + "cli-md": "^0.1.0", + "colors": "^1.0.3", + "diff": "^1.2.1" } } diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js index 00a7ae3b..20434830 100644 --- a/problems/array-filtering/index.js +++ b/problems/array-filtering/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,12 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/array-filtering/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - var expected = "[ 2, 4, 6, 8, 10 ]\n"; - if (result === expected) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/arrays/index.js b/problems/arrays/index.js index 1f87f646..1f3e1a8e 100644 --- a/problems/arrays/index.js +++ b/problems/arrays/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,12 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/arrays/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - var expected = "[ 'tomato sauce', 'cheese', 'pepperoni' ]\n"; - if (result && result.replace('"', "'") === expected) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index 3dc841a8..e16865aa 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/for-loop/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^45\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index 7b812507..ea0a976f 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/function-arguments/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^4140\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js index 8ce6c911..0be6ad5b 100644 --- a/problems/function-return-values/index.js +++ b/problems/function-return-values/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/function-return-values/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/hello/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/functions/index.js b/problems/functions/index.js index 0c829097..9683ea5b 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/functions/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^bananas tasted really good.\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index f553eb87..97f3f0c8 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/if-statement/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^The fruit name has more than five characters.\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/introduction/index.js b/problems/introduction/index.js index cc8e52c9..1ecf4a91 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/introduction/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^hello\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js index 82cd1a6c..65cd87d9 100644 --- a/problems/looping-through-arrays/index.js +++ b/problems/looping-through-arrays/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,12 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/looping-through-arrays/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - var expected = "[ 'cats', 'dogs', 'rats' ]\n"; - if (result === expected) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index 7344ac36..901fc132 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/number-to-string/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^128\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/numbers/index.js b/problems/numbers/index.js index 59478fcc..c3aec8f6 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/numbers/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^123456789\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js index 8ce6c911..fd7b3153 100644 --- a/problems/object-keys/index.js +++ b/problems/object-keys/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/object-keys/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/hello/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js index f82810b8..ad9e16c6 100644 --- a/problems/object-properties/index.js +++ b/problems/object-properties/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/object-properties/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/only pizza/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/objects/index.js b/problems/objects/index.js index 73c80f33..70898768 100644 --- a/problems/objects/index.js +++ b/problems/objects/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,15 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); -var expected = "{ toppings: [ 'cheese', 'sauce', 'pepperoni' ],\n" - + " crust: 'deep dish',\n" - + " serves: 2 }\n"; +var solutionPath = path.resolve(__dirname, "../../solutions/objects/index.js"); exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (result === expected) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index 9426f7d9..93be64fb 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/revising-strings/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^pizza is wonderful\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js index 285336fd..4eed249b 100644 --- a/problems/rounding-numbers/index.js +++ b/problems/rounding-numbers/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/rounding-numbers/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/2/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/scope/index.js b/problems/scope/index.js index 8ce6c911..6534d51e 100644 --- a/problems/scope/index.js +++ b/problems/scope/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/scope/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/hello/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/string-length/index.js b/problems/string-length/index.js index 268eb373..7d1b90fe 100644 --- a/problems/string-length/index.js +++ b/problems/string-length/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/string-length/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (result == 14) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/strings/index.js b/problems/strings/index.js index 95155bc8..615faac1 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,13 +8,13 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/strings/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^this is a string\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { require(path.resolve(process.cwd(), args[0])); -}; \ No newline at end of file +}; diff --git a/problems/this/index.js b/problems/this/index.js index 8ce6c911..a02ec4c4 100644 --- a/problems/this/index.js +++ b/problems/this/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/this/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/hello/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { diff --git a/problems/variables/index.js b/problems/variables/index.js index 03085b70..207041ae 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -1,6 +1,6 @@ var path = require('path'); var getFile = require('../../get-file'); -var run = require('../../run-solution'); +var compare = require('../../compare-solution'); exports.problem = getFile(path.join(__dirname, 'problem.md')); @@ -8,11 +8,11 @@ exports.solution = getFile(path.join(__dirname, 'solution.md')); exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); +var solutionPath = path.resolve(__dirname, "../../solutions/variables/index.js"); + exports.verify = function (args, cb) { - run(args[0], function (err, result) { - if (/^some string\n$/.test(result)) cb(true); - else cb(false); - }); + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, cb); }; exports.run = function (args) { From 4f94db9ea9d2eda4a65ed1397665bf8d06807866 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Fri, 16 Jan 2015 18:24:25 +1100 Subject: [PATCH 019/346] refactor even more --- compare-solution.js | 13 +++---- problems/array-filtering/index.js | 34 ++++++++++++++++--- problems/array-filtering/readme.md | 0 problems/array-filtering/troubleshooting.md | 7 ---- problems/arrays/index.js | 34 ++++++++++++++++--- problems/arrays/readme.md | 0 problems/arrays/troubleshooting.md | 7 ---- problems/for-loop/index.js | 34 ++++++++++++++++--- problems/for-loop/readme.md | 0 problems/for-loop/troubleshooting.md | 8 ----- problems/function-arguments/index.js | 34 ++++++++++++++++--- problems/function-arguments/readme.md | 0 .../function-arguments/troubleshooting.md | 11 ------ problems/function-return-values/index.js | 34 ++++++++++++++++--- problems/function-return-values/readme.md | 0 .../function-return-values/troubleshooting.md | 7 ---- problems/functions/index.js | 34 ++++++++++++++++--- problems/functions/readme.md | 0 problems/functions/troubleshooting.md | 7 ---- problems/if-statement/index.js | 34 ++++++++++++++++--- problems/if-statement/troubleshooting.md | 7 ---- problems/introduction/index.js | 34 ++++++++++++++++--- problems/introduction/readme.md | 0 problems/introduction/troubleshooting.md | 11 ------ problems/looping-through-arrays/index.js | 34 ++++++++++++++++--- problems/looping-through-arrays/readme.md | 0 .../looping-through-arrays/troubleshooting.md | 7 ---- problems/number-to-string/index.js | 34 ++++++++++++++++--- problems/number-to-string/readme.md | 0 problems/number-to-string/troubleshooting.md | 7 ---- problems/numbers/index.js | 34 ++++++++++++++++--- problems/numbers/readme.md | 0 problems/numbers/troubleshooting.md | 7 ---- problems/object-keys/index.js | 34 ++++++++++++++++--- problems/object-keys/readme.md | 0 problems/object-keys/troubleshooting.md | 7 ---- problems/object-properties/index.js | 34 ++++++++++++++++--- problems/object-properties/readme.md | 0 problems/object-properties/troubleshooting.md | 7 ---- problems/objects/index.js | 34 ++++++++++++++++--- problems/objects/readme.md | 0 problems/objects/troubleshooting.md | 7 ---- problems/revising-strings/index.js | 34 ++++++++++++++++--- problems/revising-strings/readme.md | 0 problems/revising-strings/troubleshooting.md | 7 ---- problems/rounding-numbers/index.js | 34 ++++++++++++++++--- problems/rounding-numbers/readme.md | 0 problems/rounding-numbers/troubleshooting.md | 7 ---- problems/scope/index.js | 34 ++++++++++++++++--- problems/scope/readme.md | 0 problems/scope/troubleshooting.md | 7 ---- problems/string-length/index.js | 34 ++++++++++++++++--- problems/string-length/readme.md | 0 problems/string-length/troubleshooting.md | 7 ---- problems/strings/index.js | 34 ++++++++++++++++--- problems/strings/readme.md | 0 problems/strings/troubleshooting.md | 7 ---- problems/this/index.js | 34 ++++++++++++++++--- problems/this/readme.md | 0 problems/this/troubleshooting.md | 7 ---- problems/variables/index.js | 34 ++++++++++++++++--- problems/variables/readme.md | 0 problems/variables/troubleshooting.md | 7 ---- troubleshooting.md | 28 +++++++++++++++ 64 files changed, 642 insertions(+), 269 deletions(-) delete mode 100644 problems/array-filtering/readme.md delete mode 100644 problems/array-filtering/troubleshooting.md delete mode 100644 problems/arrays/readme.md delete mode 100644 problems/arrays/troubleshooting.md delete mode 100644 problems/for-loop/readme.md delete mode 100644 problems/for-loop/troubleshooting.md delete mode 100644 problems/function-arguments/readme.md delete mode 100644 problems/function-arguments/troubleshooting.md delete mode 100644 problems/function-return-values/readme.md delete mode 100644 problems/function-return-values/troubleshooting.md delete mode 100644 problems/functions/readme.md delete mode 100644 problems/functions/troubleshooting.md delete mode 100644 problems/if-statement/troubleshooting.md delete mode 100644 problems/introduction/readme.md delete mode 100644 problems/introduction/troubleshooting.md delete mode 100644 problems/looping-through-arrays/readme.md delete mode 100644 problems/looping-through-arrays/troubleshooting.md delete mode 100644 problems/number-to-string/readme.md delete mode 100644 problems/number-to-string/troubleshooting.md delete mode 100644 problems/numbers/readme.md delete mode 100644 problems/numbers/troubleshooting.md delete mode 100644 problems/object-keys/readme.md delete mode 100644 problems/object-keys/troubleshooting.md delete mode 100644 problems/object-properties/readme.md delete mode 100644 problems/object-properties/troubleshooting.md delete mode 100644 problems/objects/readme.md delete mode 100644 problems/objects/troubleshooting.md delete mode 100644 problems/revising-strings/readme.md delete mode 100644 problems/revising-strings/troubleshooting.md delete mode 100644 problems/rounding-numbers/readme.md delete mode 100644 problems/rounding-numbers/troubleshooting.md delete mode 100644 problems/scope/readme.md delete mode 100644 problems/scope/troubleshooting.md delete mode 100644 problems/string-length/readme.md delete mode 100644 problems/string-length/troubleshooting.md delete mode 100644 problems/strings/readme.md delete mode 100644 problems/strings/troubleshooting.md delete mode 100644 problems/this/readme.md delete mode 100644 problems/this/troubleshooting.md delete mode 100644 problems/variables/readme.md delete mode 100644 problems/variables/troubleshooting.md create mode 100644 troubleshooting.md diff --git a/compare-solution.js b/compare-solution.js index 166532f3..9e947964 100644 --- a/compare-solution.js +++ b/compare-solution.js @@ -26,14 +26,11 @@ module.exports = function(solution, attempt, cb) { return cb(true); } - console.error("\nSolution:\n------------------------"); - console.error(solutionResult); - console.error("Your attempt:\n------------------------"); - console.error(attemptResult); - console.error("Difference:\n------------------------"); - console.error(generateDiff(solutionResult, attemptResult)); - - cb(false); + cb(false, { + solution: solutionResult, + attempt: attemptResult, + diff: generateDiff(solutionResult, attemptResult) + }); }); diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js index 20434830..969242ef 100644 --- a/problems/array-filtering/index.js +++ b/problems/array-filtering/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/array-filtering/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/array-filtering/readme.md b/problems/array-filtering/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/array-filtering/troubleshooting.md b/problems/array-filtering/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/array-filtering/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/arrays/index.js b/problems/arrays/index.js index 1f3e1a8e..969242ef 100644 --- a/problems/arrays/index.js +++ b/problems/arrays/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/arrays/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/arrays/readme.md b/problems/arrays/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/arrays/troubleshooting.md b/problems/arrays/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/arrays/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index e16865aa..969242ef 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/for-loop/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/for-loop/readme.md b/problems/for-loop/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/for-loop/troubleshooting.md b/problems/for-loop/troubleshooting.md deleted file mode 100644 index b326a2c6..00000000 --- a/problems/for-loop/troubleshooting.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! -How many times will `console.log` be called if you change `total += i` to `console.log(i)`? Just a reminder: task assumes you went with 10 of iterations. - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index ea0a976f..969242ef 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/function-arguments/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/function-arguments/readme.md b/problems/function-arguments/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/function-arguments/troubleshooting.md b/problems/function-arguments/troubleshooting.md deleted file mode 100644 index 71b18182..00000000 --- a/problems/function-arguments/troubleshooting.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! -Check next things: - 1) did you type the name of the file correctly? You can check by running `ls introduction.js`, if you see `ls: cannot access introduction.js: No such file or directory` then you should create new file / rename existing or change directories to the one with file - 2) make sure you didn't omit parens, since otherwise compiler would not be able to parse it - 3) make sure you didn't do any typos in the string itself - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js index 0be6ad5b..969242ef 100644 --- a/problems/function-return-values/index.js +++ b/problems/function-return-values/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/function-return-values/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/function-return-values/readme.md b/problems/function-return-values/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/function-return-values/troubleshooting.md b/problems/function-return-values/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/function-return-values/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/functions/index.js b/problems/functions/index.js index 9683ea5b..969242ef 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/functions/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/functions/readme.md b/problems/functions/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/functions/troubleshooting.md b/problems/functions/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/functions/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index 97f3f0c8..969242ef 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/if-statement/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/if-statement/troubleshooting.md b/problems/if-statement/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/if-statement/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/introduction/index.js b/problems/introduction/index.js index 1ecf4a91..969242ef 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/introduction/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/introduction/readme.md b/problems/introduction/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/introduction/troubleshooting.md b/problems/introduction/troubleshooting.md deleted file mode 100644 index 71b18182..00000000 --- a/problems/introduction/troubleshooting.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! -Check next things: - 1) did you type the name of the file correctly? You can check by running `ls introduction.js`, if you see `ls: cannot access introduction.js: No such file or directory` then you should create new file / rename existing or change directories to the one with file - 2) make sure you didn't omit parens, since otherwise compiler would not be able to parse it - 3) make sure you didn't do any typos in the string itself - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js index 65cd87d9..969242ef 100644 --- a/problems/looping-through-arrays/index.js +++ b/problems/looping-through-arrays/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/looping-through-arrays/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/looping-through-arrays/readme.md b/problems/looping-through-arrays/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/looping-through-arrays/troubleshooting.md b/problems/looping-through-arrays/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/looping-through-arrays/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index 901fc132..969242ef 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/number-to-string/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/number-to-string/readme.md b/problems/number-to-string/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/number-to-string/troubleshooting.md b/problems/number-to-string/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/number-to-string/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/numbers/index.js b/problems/numbers/index.js index c3aec8f6..969242ef 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/numbers/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/numbers/readme.md b/problems/numbers/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/numbers/troubleshooting.md b/problems/numbers/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/numbers/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js index fd7b3153..969242ef 100644 --- a/problems/object-keys/index.js +++ b/problems/object-keys/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/object-keys/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/object-keys/readme.md b/problems/object-keys/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/object-keys/troubleshooting.md b/problems/object-keys/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/object-keys/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js index ad9e16c6..969242ef 100644 --- a/problems/object-properties/index.js +++ b/problems/object-properties/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/object-properties/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/object-properties/readme.md b/problems/object-properties/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/object-properties/troubleshooting.md b/problems/object-properties/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/object-properties/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/objects/index.js b/problems/objects/index.js index 70898768..969242ef 100644 --- a/problems/objects/index.js +++ b/problems/objects/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/objects/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/objects/readme.md b/problems/objects/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/objects/troubleshooting.md b/problems/objects/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/objects/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index 93be64fb..969242ef 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/revising-strings/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/revising-strings/readme.md b/problems/revising-strings/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/revising-strings/troubleshooting.md b/problems/revising-strings/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/revising-strings/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js index 4eed249b..969242ef 100644 --- a/problems/rounding-numbers/index.js +++ b/problems/rounding-numbers/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/rounding-numbers/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/rounding-numbers/readme.md b/problems/rounding-numbers/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/rounding-numbers/troubleshooting.md b/problems/rounding-numbers/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/rounding-numbers/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/scope/index.js b/problems/scope/index.js index 6534d51e..969242ef 100644 --- a/problems/scope/index.js +++ b/problems/scope/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/scope/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/scope/readme.md b/problems/scope/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/scope/troubleshooting.md b/problems/scope/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/scope/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/string-length/index.js b/problems/string-length/index.js index 7d1b90fe..969242ef 100644 --- a/problems/string-length/index.js +++ b/problems/string-length/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/string-length/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/string-length/readme.md b/problems/string-length/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/string-length/troubleshooting.md b/problems/string-length/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/string-length/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/strings/index.js b/problems/strings/index.js index 615faac1..969242ef 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/strings/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/strings/readme.md b/problems/strings/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/strings/troubleshooting.md b/problems/strings/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/strings/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/this/index.js b/problems/this/index.js index a02ec4c4..969242ef 100644 --- a/problems/this/index.js +++ b/problems/this/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/this/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/this/readme.md b/problems/this/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/this/troubleshooting.md b/problems/this/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/this/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/variables/index.js b/problems/variables/index.js index 207041ae..969242ef 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -2,17 +2,41 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -exports.problem = getFile(path.join(__dirname, 'problem.md')); +var problemName = __dirname.split('/'); +problemName = problemName[problemName.length-1]; +exports.problem = getFile(path.join(__dirname, 'problem.md')); exports.solution = getFile(path.join(__dirname, 'solution.md')); -exports.fail = getFile(path.join(__dirname, 'troubleshooting.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions/variables/index.js"); +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); exports.verify = function (args, cb) { + var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, cb); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); }; exports.run = function (args) { diff --git a/problems/variables/readme.md b/problems/variables/readme.md deleted file mode 100644 index e69de29b..00000000 diff --git a/problems/variables/troubleshooting.md b/problems/variables/troubleshooting.md deleted file mode 100644 index 434a7f26..00000000 --- a/problems/variables/troubleshooting.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# O-oh, something isn't working. -But don't panic! - ---- - -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/troubleshooting.md b/troubleshooting.md new file mode 100644 index 00000000..79232691 --- /dev/null +++ b/troubleshooting.md @@ -0,0 +1,28 @@ +--- +# O-oh, something isn't working. +# But don't panic! +--- + +## Check your solution: + +`Solution +===================` + +%solution% + +`Your Attempt +===================` + +%attempt% + +`Difference +===================` + +%diff% + +## Additional troubleshooting: + * Did you type the name of the file correctly? You can check by running ls `%filename%`, if you see ls: cannot access `%filename%`: No such file or directory then you should create new file / rename existing or change directories to the one with file + * Make sure you didn't omit parens, since otherwise compiler would not be able to parse it + * Make sure you didn't do any typos in the string itself + +> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues From d5ab6310dd1aca8dadd511231b1fff7c86d13433 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Sat, 17 Jan 2015 10:57:38 -0800 Subject: [PATCH 020/346] v1.10.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 459f433d..b8da92c1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.9.1", + "version": "1.10.0", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 150e2abdb5f1ef2a34e1c0045e51f0fd91728a8f Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Sun, 18 Jan 2015 23:26:07 +1100 Subject: [PATCH 021/346] add licensing details --- LICENSE.md | 11 +++++++++++ package.json | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..0b2168e0 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,11 @@ +The MIT License (MIT) +===================== + +Copyright (c) 2014 Javascripting contributors +--------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/package.json b/package.json index 459f433d..35672028 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,6 @@ "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1" - } + }, + "license": "MIT" } From fcd3c3192aa8c9577b4f658480f54862302974ae Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Mon, 19 Jan 2015 18:28:28 +1100 Subject: [PATCH 022/346] fixes windows issue introduced in #47. closes #50 --- problems/array-filtering/index.js | 2 +- problems/arrays/index.js | 2 +- problems/for-loop/index.js | 2 +- problems/function-arguments/index.js | 2 +- problems/function-return-values/index.js | 2 +- problems/functions/index.js | 2 +- problems/if-statement/index.js | 2 +- problems/introduction/index.js | 2 +- problems/looping-through-arrays/index.js | 2 +- problems/number-to-string/index.js | 2 +- problems/numbers/index.js | 2 +- problems/object-keys/index.js | 2 +- problems/object-properties/index.js | 2 +- problems/objects/index.js | 2 +- problems/revising-strings/index.js | 2 +- problems/rounding-numbers/index.js | 2 +- problems/scope/index.js | 2 +- problems/string-length/index.js | 2 +- problems/strings/index.js | 2 +- problems/this/index.js | 2 +- problems/variables/index.js | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js index 969242ef..8b71ecd5 100644 --- a/problems/array-filtering/index.js +++ b/problems/array-filtering/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/arrays/index.js b/problems/arrays/index.js index 969242ef..8b71ecd5 100644 --- a/problems/arrays/index.js +++ b/problems/arrays/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index 969242ef..8b71ecd5 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index 969242ef..8b71ecd5 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js index 969242ef..8b71ecd5 100644 --- a/problems/function-return-values/index.js +++ b/problems/function-return-values/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/functions/index.js b/problems/functions/index.js index 969242ef..8b71ecd5 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index 969242ef..8b71ecd5 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/introduction/index.js b/problems/introduction/index.js index 969242ef..8b71ecd5 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js index 969242ef..8b71ecd5 100644 --- a/problems/looping-through-arrays/index.js +++ b/problems/looping-through-arrays/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index 969242ef..8b71ecd5 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/numbers/index.js b/problems/numbers/index.js index 969242ef..8b71ecd5 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js index 969242ef..8b71ecd5 100644 --- a/problems/object-keys/index.js +++ b/problems/object-keys/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js index 969242ef..8b71ecd5 100644 --- a/problems/object-properties/index.js +++ b/problems/object-properties/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/objects/index.js b/problems/objects/index.js index 969242ef..8b71ecd5 100644 --- a/problems/objects/index.js +++ b/problems/objects/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index 969242ef..8b71ecd5 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js index 969242ef..8b71ecd5 100644 --- a/problems/rounding-numbers/index.js +++ b/problems/rounding-numbers/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/scope/index.js b/problems/scope/index.js index 969242ef..8b71ecd5 100644 --- a/problems/scope/index.js +++ b/problems/scope/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/string-length/index.js b/problems/string-length/index.js index 969242ef..8b71ecd5 100644 --- a/problems/string-length/index.js +++ b/problems/string-length/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/strings/index.js b/problems/strings/index.js index 969242ef..8b71ecd5 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/this/index.js b/problems/this/index.js index 969242ef..8b71ecd5 100644 --- a/problems/this/index.js +++ b/problems/this/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); diff --git a/problems/variables/index.js b/problems/variables/index.js index 969242ef..8b71ecd5 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -2,7 +2,7 @@ var path = require('path'); var getFile = require('../../get-file'); var compare = require('../../compare-solution'); -var problemName = __dirname.split('/'); +var problemName = __dirname.split(path.sep); problemName = problemName[problemName.length-1]; exports.problem = getFile(path.join(__dirname, 'problem.md')); From da93bac890775bf4b893f1087048a516912de0f5 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 19 Jan 2015 09:24:33 -0800 Subject: [PATCH 023/346] =?UTF-8?q?v1.10.1=20=E2=80=93=20fix=20windows=20b?= =?UTF-8?q?ug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2e0ad1f6..74f93410 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.10.0", + "version": "1.10.1", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 731f1c202bbe4f9c0f42e6755cbe99cc6d542857 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 26 Jan 2015 20:23:18 -0800 Subject: [PATCH 024/346] revise for-loop text --- problems/for-loop/problem.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/problems/for-loop/problem.md b/problems/for-loop/problem.md index bb0ffac5..c75d2e74 100644 --- a/problems/for-loop/problem.md +++ b/problems/for-loop/problem.md @@ -26,9 +26,9 @@ In that file define a variable named `total` and make it equal the number `0`. Define a second variable named `limit` and make it equal the number `10`. -Create a for loop in 10 iterations. On each loop, add the number `i` to the `total` variable. +Create a for loop with a variable `i` starting at 0 and increasing by 1 each time through the loop. The loop should run as long as `i` is less than `limit`. -You can use a statement like this one: +On each iteration of the loop, add the number `i` to the `total` variable. To do this, you can use this statement: ```js total += i; From 9422fd8493d7ec3857fad1988aedaf152fe8fd40 Mon Sep 17 00:00:00 2001 From: Seth Vincent Date: Tue, 27 Jan 2015 09:55:39 -0800 Subject: [PATCH 025/346] add link & make gitter point to nodeschool/discussions --- readme.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index fc8ec78b..dfb9db39 100644 --- a/readme.md +++ b/readme.md @@ -1,11 +1,14 @@ # JAVASCRIPTING -[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/sethvincent/javascripting?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) > Learn JavaScript by adventuring around in the terminal. - > _Looking for more interactive tutorials like this? Go to [nodeschool.io](http://nodeschool.io)._ +## Get help +Having issues with javascripting? Get help troubleshooting in the [nodeschool discussions repo](http://github.com/nodeschool/discussions), or on gitter: + +[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/nodeschool/discussions?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + ## Install Node.js Make sure Node.js is installed on your computer. From a63e3329586374fb226bae96ef277222363cc653 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Thu, 29 Jan 2015 06:18:18 +0900 Subject: [PATCH 026/346] Fixing empty output problem `cb(false)` assumes that the error has been shown before. However if an error `!== 8` is thrown then it will not be shown. --- compare-solution.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/compare-solution.js b/compare-solution.js index 9e947964..34bca4ad 100644 --- a/compare-solution.js +++ b/compare-solution.js @@ -15,10 +15,8 @@ module.exports = function(solution, attempt, cb) { run(attempt, function(err, attemptResult) { - if(err) { - if(err.code !== 8) { - console.error(err); - } + if(err && err.code !== 8) { + console.error(err); return cb(false); } @@ -28,7 +26,7 @@ module.exports = function(solution, attempt, cb) { cb(false, { solution: solutionResult, - attempt: attemptResult, + attempt: err || attemptResult, diff: generateDiff(solutionResult, attemptResult) }); @@ -58,4 +56,4 @@ function generateDiff(solution, attempt) { return result; -} \ No newline at end of file +} From 144827f828adb910e25bba2662cbaf59c6ee00c6 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Wed, 28 Jan 2015 13:48:25 -0800 Subject: [PATCH 027/346] v1.10.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 74f93410..93fd4dfd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.10.1", + "version": "1.10.2", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 2ffc2cddbbed0ba6b50cfb164ae8218535f08d91 Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Sat, 31 Jan 2015 23:49:11 -0600 Subject: [PATCH 028/346] Fixed a bug with the exec command on Windows when a path contains a space --- run-solution.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run-solution.js b/run-solution.js index 16e8a519..068bdc7e 100644 --- a/run-solution.js +++ b/run-solution.js @@ -4,7 +4,7 @@ var docs = path.join(__dirname, 'docs'); var exec = require('child_process').exec; module.exports = function (solution, cb) { - var child = exec('node ' + solution, function (error, stdout, stderr) { + var child = exec('node "' + solution + '"', function (error, stdout, stderr) { if (error) return cb(error); else cb(null, stdout); }); From bdf1ade01cd578a4d68cb6414a2cdc569b4dc028 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Sun, 1 Feb 2015 17:45:59 +1100 Subject: [PATCH 029/346] v0.10.2 - fix windows bug --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 74f93410..93fd4dfd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.10.1", + "version": "1.10.2", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 94a4e83904a079474dd7a4dfb1310def4f2e30ab Mon Sep 17 00:00:00 2001 From: sethvincent Date: Sun, 1 Feb 2015 11:06:32 -0800 Subject: [PATCH 030/346] v1.10.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 93fd4dfd..34ac7bb8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.10.2", + "version": "1.10.3", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From f4e80aa354b7800ff467fc0f369e0cb0379a34f7 Mon Sep 17 00:00:00 2001 From: FreakDroid Date: Mon, 2 Feb 2015 09:57:20 -0430 Subject: [PATCH 031/346] Added the challenge and note word to some exercises. --- problems/if-statement/problem.md | 2 +- problems/number-to-string/problem.md | 2 +- problems/string-length/problem.md | 4 ++++ problems/strings/problem.md | 3 +++ problems/variables/problem.md | 6 +++++- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/problems/if-statement/problem.md b/problems/if-statement/problem.md index 44cd216d..1e1eb4c5 100644 --- a/problems/if-statement/problem.md +++ b/problems/if-statement/problem.md @@ -18,7 +18,7 @@ Inside parentheses you must enter a logic statement, meaning that the result of The else block is optional and contains the code that will be executed if the statement is false. -## The challenge +## The challenge: Create a file named `if-statement.js`. diff --git a/problems/number-to-string/problem.md b/problems/number-to-string/problem.md index 03d819d9..1c648f8d 100644 --- a/problems/number-to-string/problem.md +++ b/problems/number-to-string/problem.md @@ -11,7 +11,7 @@ var n = 256; n = n.toString(); ``` -## The challenge +## The challenge: Create a file named `number-to-string.js`. diff --git a/problems/string-length/problem.md b/problems/string-length/problem.md index ddb43cb9..b7fc58fa 100644 --- a/problems/string-length/problem.md +++ b/problems/string-length/problem.md @@ -11,10 +11,14 @@ var example = 'example string'; example.length ``` +#NOTE + Make sure there is a period between `example` and `length`. The above code will return a **number** for the total number of characters in the string. +## The challenge: + Create a file named string-length.js. In that file, create a variable named `example`. diff --git a/problems/strings/problem.md b/problems/strings/problem.md index c9ffdbda..3533b04b 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -11,9 +11,12 @@ It can be single or double quotes: "this is also a string" ``` +#NOTE Try to stay consistent. In this workshop we'll only use single quotes. +## The challenge: + For this challenge, create a file named `strings.js`. In that file create a variable named `someString` like this: diff --git a/problems/variables/problem.md b/problems/variables/problem.md index 7b818fe3..6fcc620a 100644 --- a/problems/variables/problem.md +++ b/problems/variables/problem.md @@ -18,7 +18,11 @@ Here's an example of defining a variable, making it reference a specific value: var example = 'some string'; ``` -Note that it is **declared** using `var` and uses the equals sign to **define** the value that it references. This is colloquially known as "Making a variable equal a value". +# NOTE + +That it is **declared** using `var` and uses the equals sign to **define** the value that it references. This is colloquially known as "Making a variable equal a value". + +## The challenge: Create a file named `variables.js`. From 90075b80d662d2b7a7ea9ebb2d92c2aa97be22cd Mon Sep 17 00:00:00 2001 From: Xue Fuqiao Date: Sun, 15 Feb 2015 10:49:09 +0800 Subject: [PATCH 032/346] Minor markup fixes. --- problems/for-loop/problem.md | 6 +++--- problems/function-arguments/problem.md | 8 ++++---- problems/functions/problem.md | 4 ++-- problems/numbers/problem.md | 2 +- problems/rounding-numbers/problem.md | 2 +- problems/string-length/problem.md | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/problems/for-loop/problem.md b/problems/for-loop/problem.md index c75d2e74..6ad4991c 100644 --- a/problems/for-loop/problem.md +++ b/problems/for-loop/problem.md @@ -13,20 +13,20 @@ for (var i = 0; i < 10; i++) { The variable `i` is used to track how many times the loop has run. -The statement `i < 10;` indicates the limit of the loop. +The statement `i < 10;` indicates the limit of the loop. It will continue to loop if `i` is less than `10`. The statement `i++` increases the variable `i` by 1 each loop. ## The challenge: -Create a file named for-loop.js. +Create a file named `for-loop.js`. In that file define a variable named `total` and make it equal the number `0`. Define a second variable named `limit` and make it equal the number `10`. -Create a for loop with a variable `i` starting at 0 and increasing by 1 each time through the loop. The loop should run as long as `i` is less than `limit`. +Create a for loop with a variable `i` starting at 0 and increasing by 1 each time through the loop. The loop should run as long as `i` is less than `limit`. On each iteration of the loop, add the number `i` to the `total` variable. To do this, you can use this statement: diff --git a/problems/function-arguments/problem.md b/problems/function-arguments/problem.md index 6513bdca..f702399c 100644 --- a/problems/function-arguments/problem.md +++ b/problems/function-arguments/problem.md @@ -22,11 +22,11 @@ The above example will print to the terminal `hello world`. ## The challenge: -Create a file named function-arguments.js. +Create a file named `function-arguments.js`. -In that file, define a function named `math` that takes three arguments. It's important for you to understand that arguments names are only used to reference them. +In that file, define a function named `math` that takes three arguments. It's important for you to understand that arguments names are only used to reference them. -Name each argument as you like. +Name each argument as you like. The function `math` should multiply the second and third arguments, then add the first argument to the outcome of the multiplication and return the value obtained. @@ -34,6 +34,6 @@ After that, inside the parentheses of `console.log()`, call the `math()` functio Check to see if your program is correct by running this command: -`javascripting verify function-arguments.js` +`javascripting verify function-arguments.js` --- diff --git a/problems/functions/problem.md b/problems/functions/problem.md index df161f96..feca7c1f 100644 --- a/problems/functions/problem.md +++ b/problems/functions/problem.md @@ -22,7 +22,7 @@ The above example assumes that the `example` function will take a number as an a ## The challenge: -Create a file named functions.js. +Create a file named `functions.js`. In that file, define a function named `eat` that takes an argument named `food` that is expected to be a string. @@ -37,6 +37,6 @@ Inside of the parentheses of `console.log()`, call the `eat()` function with the Check to see if your program is correct by running this command: -`javascripting verify functions.js` +`javascripting verify functions.js` --- diff --git a/problems/numbers/problem.md b/problems/numbers/problem.md index 5f0ac33a..d0e38ee4 100644 --- a/problems/numbers/problem.md +++ b/problems/numbers/problem.md @@ -7,7 +7,7 @@ also known as floats, like `3.14`, `1.5`, or `100.7893423`. ## The challenge: -Create a file named numbers.js. +Create a file named `numbers.js`. In that file define a variable named `example` that references the integer `123456789`. diff --git a/problems/rounding-numbers/problem.md b/problems/rounding-numbers/problem.md index 58a5df1a..045b3106 100644 --- a/problems/rounding-numbers/problem.md +++ b/problems/rounding-numbers/problem.md @@ -10,7 +10,7 @@ In this challenge we'll use the `Math` object to round numbers. ## The challenge: -Create a file named rounding-numbers.js. +Create a file named `rounding-numbers.js`. In that file define a variable named `roundUp` that references the float `1.5`. diff --git a/problems/string-length/problem.md b/problems/string-length/problem.md index ddb43cb9..52e406d0 100644 --- a/problems/string-length/problem.md +++ b/problems/string-length/problem.md @@ -15,7 +15,7 @@ Make sure there is a period between `example` and `length`. The above code will return a **number** for the total number of characters in the string. -Create a file named string-length.js. +Create a file named `string-length.js`. In that file, create a variable named `example`. From 8eabe22c56d681da79eef69d76df45eef02f920b Mon Sep 17 00:00:00 2001 From: rs41 Date: Wed, 18 Feb 2015 23:30:18 +0400 Subject: [PATCH 033/346] init access array values challenge --- menu.json | 1 + problems/accessing-array-values/index.js | 44 ++++++++++++++++++ problems/accessing-array-values/problem.md | 51 +++++++++++++++++++++ problems/accessing-array-values/solution.md | 11 +++++ problems/array-filtering/solution.md | 2 +- readme.md | 1 - solutions/accessing-array-values/index.js | 3 ++ 7 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 problems/accessing-array-values/index.js create mode 100644 problems/accessing-array-values/problem.md create mode 100644 problems/accessing-array-values/solution.md create mode 100644 solutions/accessing-array-values/index.js diff --git a/menu.json b/menu.json index bf657873..fe2b7180 100644 --- a/menu.json +++ b/menu.json @@ -12,6 +12,7 @@ "ARRAYS", "ARRAY FILTERING", "LOOPING THROUGH ARRAYS", + "ACCESSING ARRAY VALUES", "OBJECTS", "OBJECT PROPERTIES", "FUNCTIONS", diff --git a/problems/accessing-array-values/index.js b/problems/accessing-array-values/index.js new file mode 100644 index 00000000..8b71ecd5 --- /dev/null +++ b/problems/accessing-array-values/index.js @@ -0,0 +1,44 @@ +var path = require('path'); +var getFile = require('../../get-file'); +var compare = require('../../compare-solution'); + +var problemName = __dirname.split(path.sep); +problemName = problemName[problemName.length-1]; + +exports.problem = getFile(path.join(__dirname, 'problem.md')); +exports.solution = getFile(path.join(__dirname, 'solution.md')); + +var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); +var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); + +exports.verify = function (args, cb) { + + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); +}; + +exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); +}; diff --git a/problems/accessing-array-values/problem.md b/problems/accessing-array-values/problem.md new file mode 100644 index 00000000..60c3c316 --- /dev/null +++ b/problems/accessing-array-values/problem.md @@ -0,0 +1,51 @@ +--- + +# ACCESSING ARRAY VALUES + +Array elements can be accessed through index number. + +Index number starts from zero to array's property length minus one. + +Here is an example: + + +```js + var pets = ['cat', 'dog', 'rat']; + + console.log(pets[0]); +``` + +The above code will print the first element of `pets` array - string `cat`. + +Array elements must be accessed through only using bracket notation. + +Dot notation is invalid. + +Valid notation: + +```js + console.log(pets[0]); +``` + +Invalid notation: +``` + console.log(pets.1); +``` + +## The challenge: + +Create a file named `accessing-array-values.js`. + +In that file, define array `food` : +```js +var food = ['apple', 'pizza', 'pear']; +``` + + +Use `console.log()` to print the `second value of array to the terminal. + +Check to see if your program is correct by running this command: + +`javascripting verify accessing-array-values.js` + +--- \ No newline at end of file diff --git a/problems/accessing-array-values/solution.md b/problems/accessing-array-values/solution.md new file mode 100644 index 00000000..aaffdba0 --- /dev/null +++ b/problems/accessing-array-values/solution.md @@ -0,0 +1,11 @@ +--- + +# SECOND ELEMENT OF ARRAY PRINTED! + +Good job accessing that element of array. + +In the next challenge we will work on an example of looping through arrays. + +Run `javascripting` in the console to choose the next challenge. + +--- \ No newline at end of file diff --git a/problems/array-filtering/solution.md b/problems/array-filtering/solution.md index acf38505..3764f688 100644 --- a/problems/array-filtering/solution.md +++ b/problems/array-filtering/solution.md @@ -4,7 +4,7 @@ Good job filtering that array. -In the next challenge we will work on an example of looping through arrays. +In the next challenge we will work on an example of accessing array values. Run `javascripting` in the console to choose the next challenge. diff --git a/readme.md b/readme.md index dfb9db39..4cd76585 100644 --- a/readme.md +++ b/readme.md @@ -61,7 +61,6 @@ Include the name `javascripting` and the name of the challenge you're working on Add these challenges: -- "ACCESSING ARRAY VALUES" - "OBJECT KEYS" - "FUNCTION RETURN VALUES" - "THIS" diff --git a/solutions/accessing-array-values/index.js b/solutions/accessing-array-values/index.js new file mode 100644 index 00000000..55ebd76c --- /dev/null +++ b/solutions/accessing-array-values/index.js @@ -0,0 +1,3 @@ +var food = ['apple', 'pizza', 'pear']; + +console.log(food[1]); \ No newline at end of file From a72b8f0d4a93dfcee4e015e82bb825f0ff12c721 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Fri, 20 Feb 2015 11:01:47 -0800 Subject: [PATCH 034/346] v1.11.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 34ac7bb8..637a96e4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.10.3", + "version": "1.11.0", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 84e9b8942aa60808a653c835a72cb89f473aea37 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Fri, 20 Feb 2015 11:37:55 -0800 Subject: [PATCH 035/346] installation troubleshooting note in readme --- readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.md b/readme.md index 4cd76585..2fb0a666 100644 --- a/readme.md +++ b/readme.md @@ -25,6 +25,8 @@ npm install --global javascripting The `--global` option installs this module globally so that you can run it as a command in your terminal. +> Having issues with installation? If you get an EACCESS error you can prefix the command with `sudo`, but also take a look at this npm documentation for fixing permissions so that you don't have to use `sudo`: https://docs.npmjs.com/getting-started/fixing-npm-permissions + ## Run the workshop Open your terminal and run the following command: From 08cda154251012c77f5e5678af4cc3d7ad4769a2 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Thu, 12 Mar 2015 20:26:42 +1100 Subject: [PATCH 036/346] Add missing ` --- problems/accessing-array-values/problem.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/problems/accessing-array-values/problem.md b/problems/accessing-array-values/problem.md index 60c3c316..956ef249 100644 --- a/problems/accessing-array-values/problem.md +++ b/problems/accessing-array-values/problem.md @@ -42,10 +42,10 @@ var food = ['apple', 'pizza', 'pear']; ``` -Use `console.log()` to print the `second value of array to the terminal. +Use `console.log()` to print the `second` value of array to the terminal. Check to see if your program is correct by running this command: `javascripting verify accessing-array-values.js` ---- \ No newline at end of file +--- From 01367e1c75dbeba149f1ae1533d92e737e763682 Mon Sep 17 00:00:00 2001 From: Qays Poonawala Date: Fri, 13 Mar 2015 02:28:12 -0700 Subject: [PATCH 037/346] Remove possibly confusing period. Maybe just me and my monitor's contrast, but I thought the desired string was 'pizza is alright.' when I ran through this exercise. I was debating moving the period into the string, but figured this might be more clear. Also removed one trailing whitespace. --- problems/revising-strings/problem.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/problems/revising-strings/problem.md b/problems/revising-strings/problem.md index b702bd99..726cf55a 100644 --- a/problems/revising-strings/problem.md +++ b/problems/revising-strings/problem.md @@ -2,7 +2,7 @@ # REVISING STRINGS -You will often need to change the contents of a string. +You will often need to change the contents of a string. Strings have built-in functionality that allow you to inspect and manipulate their contents. @@ -22,7 +22,7 @@ the right of the equals sign. Create a file named `revising-strings.js`. -Define a variable named `pizza` that references this string: `pizza is alright`. +Define a variable named `pizza` that references this string: `pizza is alright` Use the `.replace()` method to change `alright` to `wonderful`. From 9797f79b7d7e174e7d33699d6b60a86c825f30de Mon Sep 17 00:00:00 2001 From: Cajetan Rodrigues Date: Mon, 16 Mar 2015 20:31:33 +0530 Subject: [PATCH 038/346] Rectify sequence of Array challenges On completion of "Accessing Array Values" the next challenge mentioned is "Looping Through Arrays". But the sequence of challenges is such that the latter comes before the former. This commit fixes it. --- menu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menu.json b/menu.json index fe2b7180..d8023274 100644 --- a/menu.json +++ b/menu.json @@ -11,8 +11,8 @@ "FOR LOOP", "ARRAYS", "ARRAY FILTERING", - "LOOPING THROUGH ARRAYS", "ACCESSING ARRAY VALUES", + "LOOPING THROUGH ARRAYS", "OBJECTS", "OBJECT PROPERTIES", "FUNCTIONS", From 9f26a8fd920d4f9ae29dca37c476d5b6ea026107 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Tue, 17 Mar 2015 09:57:11 +1100 Subject: [PATCH 039/346] Make windows command clearer. --- problems/introduction/problem.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/problems/introduction/problem.md b/problems/introduction/problem.md index 0421681a..bdf3adcd 100644 --- a/problems/introduction/problem.md +++ b/problems/introduction/problem.md @@ -13,7 +13,7 @@ Change directory into the `javascripting` folder: Create a file named `introduction.js`: -`touch introduction.js` or if you're on windows, `type NUL > introduction.js` +`touch introduction.js` or if you're on windows, `type NUL > introduction.js` (`type` is part of the command!) Open the file in your favorite editor, and add this text: @@ -26,8 +26,8 @@ Save the file, then check to see if your program is correct by running this comm `javascripting verify introduction.js` --- - - + + > **Need help?** View the README for this workshop: http://github.com/sethvincent/javascripting From 40bf49987a38df867996f3877d06fd34a08da02e Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 16 Mar 2015 16:32:10 -0700 Subject: [PATCH 040/346] =?UTF-8?q?v1.11.1=20=E2=80=93=20clarity=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 637a96e4..a07f4ba7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.11.0", + "version": "1.11.1", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 662439caa2706f3630584eaffa8fd7f82c54d0d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Moriam=C3=A9?= Date: Tue, 17 Mar 2015 13:48:53 +0100 Subject: [PATCH 041/346] Update solution.md Add message to know how to choose the next challenge (just like other challenge) --- problems/functions/solution.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/problems/functions/solution.md b/problems/functions/solution.md index 775b174d..6dfbdce0 100644 --- a/problems/functions/solution.md +++ b/problems/functions/solution.md @@ -4,4 +4,6 @@ You did it! You created a function that takes input, processes that input, and provides output. +Run `javascripting` in the console to choose the next challenge. + --- From c008509a90f6e003d21278fa64dfbadaecd36140 Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Sun, 29 Mar 2015 11:47:41 +1300 Subject: [PATCH 042/346] Update functional-argumets description Place arguments in back ticks to make them more obvious that they are to be used in code. --- problems/function-arguments/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/function-arguments/problem.md b/problems/function-arguments/problem.md index f702399c..ee65b641 100644 --- a/problems/function-arguments/problem.md +++ b/problems/function-arguments/problem.md @@ -30,7 +30,7 @@ Name each argument as you like. The function `math` should multiply the second and third arguments, then add the first argument to the outcome of the multiplication and return the value obtained. -After that, inside the parentheses of `console.log()`, call the `math()` function with the number 53 as first argument, the number 61 as second and the number 67 as third argument. +After that, inside the parentheses of `console.log()`, call the `math()` function with the number `53` as first argument, the number `61` as second and the number `67` as third argument. Check to see if your program is correct by running this command: From 2a42330f37b465ae682326dfd0a4a3e16600a8ce Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 30 Mar 2015 10:38:15 -0700 Subject: [PATCH 043/346] v1.12.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a07f4ba7..311baa76 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.11.1", + "version": "1.12.0", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 7223a4f5c1445fb33318f1f1379b3d9cc4402a2a Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Sat, 11 Apr 2015 20:04:18 +0900 Subject: [PATCH 044/346] Switched to workshopper :-O --- index.js | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index d650a590..f65d9180 100755 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ #!/usr/bin/env node var path = require('path'); -var adventure = require('adventure'); +var adventure = require('workshopper-adventure/adventure'); var jsing = adventure('javascripting'); var problems = require('./menu.json'); diff --git a/package.json b/package.json index 311baa76..6b9c2a73 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ }, "preferGlobal": true, "dependencies": { - "adventure": "^2.8.0", "cli-md": "^0.1.0", "colors": "^1.0.3", - "diff": "^1.2.1" + "diff": "^1.2.1", + "workshopper-adventure": "^3.0.0" }, "license": "MIT" } From cfca1262efea569ab00c8fa733910906b897939e Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Sun, 12 Apr 2015 01:17:22 +0900 Subject: [PATCH 045/346] Moved all exercises to central logic because they all shared the same code --- problem.js | 50 ++++++++++++++++++++++++ problems/accessing-array-values/index.js | 45 +-------------------- problems/array-filtering/index.js | 45 +-------------------- problems/arrays/index.js | 45 +-------------------- problems/for-loop/index.js | 45 +-------------------- problems/function-arguments/index.js | 45 +-------------------- problems/function-return-values/index.js | 45 +-------------------- problems/functions/index.js | 45 +-------------------- problems/if-statement/index.js | 45 +-------------------- problems/introduction/index.js | 45 +-------------------- problems/looping-through-arrays/index.js | 45 +-------------------- problems/number-to-string/index.js | 45 +-------------------- problems/numbers/index.js | 45 +-------------------- problems/object-keys/index.js | 45 +-------------------- problems/object-properties/index.js | 45 +-------------------- problems/objects/index.js | 45 +-------------------- problems/revising-strings/index.js | 45 +-------------------- problems/rounding-numbers/index.js | 45 +-------------------- problems/scope/index.js | 45 +-------------------- problems/string-length/index.js | 45 +-------------------- problems/strings/index.js | 45 +-------------------- problems/this/index.js | 45 +-------------------- problems/variables/index.js | 45 +-------------------- 23 files changed, 72 insertions(+), 968 deletions(-) create mode 100644 problem.js diff --git a/problem.js b/problem.js new file mode 100644 index 00000000..f6719f9e --- /dev/null +++ b/problem.js @@ -0,0 +1,50 @@ +var path = require('path'); +var getFile = require('./get-file'); +var compare = require('./compare-solution'); + +module.exports = function createProblem(dirname) { + var exports = {}; + + var problemName = dirname.split(path.sep); + problemName = problemName[problemName.length-1]; + + exports.problem = getFile(path.join(dirname, 'problem.md')); + exports.solution = getFile(path.join(dirname, 'solution.md')); + + var solutionPath = path.resolve(dirname, "../../solutions", problemName, "index.js"); + var troubleshootingPath = path.join(dirname, '../../troubleshooting.md'); + + exports.verify = function (args, cb) { + + var attemptPath = path.resolve(process.cwd(), args[0]); + compare(solutionPath, attemptPath, function(match, obj) { + + if(match) { + return cb(true); + } + + if(!obj) { + // An error occured, we've already printed an error + return; + } + + var message = getFile(troubleshootingPath); + + message = message.replace(/%solution%/g, obj.solution); + message = message.replace(/%attempt%/g, obj.attempt); + message = message.replace(/%diff%/g, obj.diff); + message = message.replace(/%filename%/g, args[0]); + + exports.fail = message; + + cb(false); + + }); + }; + + exports.run = function (args) { + require(path.resolve(process.cwd(), args[0])); + }; + + return exports; +} \ No newline at end of file diff --git a/problems/accessing-array-values/index.js b/problems/accessing-array-values/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/accessing-array-values/index.js +++ b/problems/accessing-array-values/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/array-filtering/index.js +++ b/problems/array-filtering/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/arrays/index.js b/problems/arrays/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/arrays/index.js +++ b/problems/arrays/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/function-return-values/index.js +++ b/problems/function-return-values/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/functions/index.js b/problems/functions/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/introduction/index.js b/problems/introduction/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/looping-through-arrays/index.js +++ b/problems/looping-through-arrays/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/numbers/index.js b/problems/numbers/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/object-keys/index.js +++ b/problems/object-keys/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/object-properties/index.js +++ b/problems/object-properties/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/objects/index.js b/problems/objects/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/objects/index.js +++ b/problems/objects/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/rounding-numbers/index.js +++ b/problems/rounding-numbers/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/scope/index.js b/problems/scope/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/scope/index.js +++ b/problems/scope/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/string-length/index.js b/problems/string-length/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/string-length/index.js +++ b/problems/string-length/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/strings/index.js b/problems/strings/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/this/index.js b/problems/this/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/this/index.js +++ b/problems/this/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file diff --git a/problems/variables/index.js b/problems/variables/index.js index 8b71ecd5..c8da79ee 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -1,44 +1 @@ -var path = require('path'); -var getFile = require('../../get-file'); -var compare = require('../../compare-solution'); - -var problemName = __dirname.split(path.sep); -problemName = problemName[problemName.length-1]; - -exports.problem = getFile(path.join(__dirname, 'problem.md')); -exports.solution = getFile(path.join(__dirname, 'solution.md')); - -var solutionPath = path.resolve(__dirname, "../../solutions", problemName, "index.js"); -var troubleshootingPath = path.resolve(__dirname, "../../troubleshooting.md"); - -exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { - - if(match) { - return cb(true); - } - - if(!obj) { - // An error occured, we've already printed an error - return; - } - - var message = getFile(troubleshootingPath); - - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); - - exports.fail = message; - - cb(false); - - }); -}; - -exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); -}; +module.exports = require("../../problem")(__dirname) \ No newline at end of file From 14417ed6bb45f874ee8f5a0f82cafb4a59b532ec Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Sun, 12 Apr 2015 01:52:07 +0900 Subject: [PATCH 046/346] Added basic i18n support --- problem.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/problem.js b/problem.js index f6719f9e..9993488f 100644 --- a/problem.js +++ b/problem.js @@ -8,16 +8,18 @@ module.exports = function createProblem(dirname) { var problemName = dirname.split(path.sep); problemName = problemName[problemName.length-1]; - exports.problem = getFile(path.join(dirname, 'problem.md')); - exports.solution = getFile(path.join(dirname, 'solution.md')); - - var solutionPath = path.resolve(dirname, "../../solutions", problemName, "index.js"); - var troubleshootingPath = path.join(dirname, '../../troubleshooting.md'); + exports.init = function (workshopper) { + var postfix = workshopper.lang === 'en' ? '' : '_' + workshopper.lang; + this.problem = getFile(path.join(dirname, 'problem' + postfix + '.md')); + this.solution = getFile(path.join(dirname, 'solution' + postfix + '.md')); + this.solutionPath = path.resolve(dirname, "../../solutions", problemName, "index.js"); + this.troubleshootingPath = path.join(dirname, '../../troubleshooting' + postfix + '.md'); + } exports.verify = function (args, cb) { var attemptPath = path.resolve(process.cwd(), args[0]); - compare(solutionPath, attemptPath, function(match, obj) { + compare(this.solutionPath, attemptPath, function(match, obj) { if(match) { return cb(true); @@ -28,7 +30,7 @@ module.exports = function createProblem(dirname) { return; } - var message = getFile(troubleshootingPath); + var message = getFile(this.troubleshootingPath); message = message.replace(/%solution%/g, obj.solution); message = message.replace(/%attempt%/g, obj.attempt); @@ -39,7 +41,7 @@ module.exports = function createProblem(dirname) { cb(false); - }); + }.bind(this)); }; exports.run = function (args) { From 1822532ac8710b07cb4b9451047a356a2115533a Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Sun, 12 Apr 2015 02:28:50 +0900 Subject: [PATCH 047/346] Added Japanese translation --- i18n/ja.json | 22 ++++++++ index.js | 6 ++- problems/accessing-array-values/problem_ja.md | 51 +++++++++++++++++++ .../accessing-array-values/solution_ja.md | 11 ++++ problems/array-filtering/problem_ja.md | 50 ++++++++++++++++++ problems/array-filtering/solution_ja.md | 11 ++++ problems/arrays/problem_ja.md | 26 ++++++++++ problems/arrays/solution_ja.md | 11 ++++ problems/for-loop/problem_ja.md | 44 ++++++++++++++++ problems/for-loop/solution_ja.md | 12 +++++ problems/function-arguments/problem_ja.md | 40 +++++++++++++++ problems/function-arguments/solution_ja.md | 9 ++++ problems/function-return-values/problem_ja.md | 5 ++ .../function-return-values/solution_ja.md | 5 ++ problems/functions/problem_ja.md | 45 ++++++++++++++++ problems/functions/solution_ja.md | 11 ++++ problems/if-statement/problem_ja.md | 36 +++++++++++++ problems/if-statement/solution_ja.md | 11 ++++ problems/introduction/problem_ja.md | 32 ++++++++++++ problems/introduction/solution_ja.md | 21 ++++++++ problems/looping-through-arrays/problem_ja.md | 50 ++++++++++++++++++ .../looping-through-arrays/solution_ja.md | 11 ++++ problems/number-to-string/problem_ja.md | 28 ++++++++++ problems/number-to-string/solution_ja.md | 11 ++++ problems/numbers/problem_ja.md | 21 ++++++++ problems/numbers/solution_ja.md | 11 ++++ problems/object-keys/problem_ja.md | 5 ++ problems/object-keys/solution_ja.md | 5 ++ problems/object-properties/problem_ja.md | 51 +++++++++++++++++++ problems/object-properties/solution_ja.md | 11 ++++ problems/objects/problem_ja.md | 39 ++++++++++++++ problems/objects/solution_ja.md | 11 ++++ problems/revising-strings/problem_ja.md | 34 +++++++++++++ problems/revising-strings/solution_ja.md | 11 ++++ problems/rounding-numbers/problem_ja.md | 34 +++++++++++++ problems/rounding-numbers/solution_ja.md | 11 ++++ problems/scope/problem_ja.md | 5 ++ problems/scope/solution_ja.md | 5 ++ problems/string-length/problem_ja.md | 32 ++++++++++++ problems/string-length/solution_ja.md | 9 ++++ problems/strings/problem_ja.md | 33 ++++++++++++ problems/strings/solution_ja.md | 11 ++++ problems/this/problem_ja.md | 5 ++ problems/this/solution_ja.md | 5 ++ problems/variables/problem_ja.md | 39 ++++++++++++++ problems/variables/solution_ja.md | 11 ++++ troubleshooting_ja.md | 28 ++++++++++ 47 files changed, 985 insertions(+), 1 deletion(-) create mode 100644 i18n/ja.json create mode 100644 problems/accessing-array-values/problem_ja.md create mode 100644 problems/accessing-array-values/solution_ja.md create mode 100644 problems/array-filtering/problem_ja.md create mode 100644 problems/array-filtering/solution_ja.md create mode 100644 problems/arrays/problem_ja.md create mode 100644 problems/arrays/solution_ja.md create mode 100644 problems/for-loop/problem_ja.md create mode 100644 problems/for-loop/solution_ja.md create mode 100644 problems/function-arguments/problem_ja.md create mode 100644 problems/function-arguments/solution_ja.md create mode 100644 problems/function-return-values/problem_ja.md create mode 100644 problems/function-return-values/solution_ja.md create mode 100644 problems/functions/problem_ja.md create mode 100644 problems/functions/solution_ja.md create mode 100644 problems/if-statement/problem_ja.md create mode 100644 problems/if-statement/solution_ja.md create mode 100644 problems/introduction/problem_ja.md create mode 100644 problems/introduction/solution_ja.md create mode 100644 problems/looping-through-arrays/problem_ja.md create mode 100644 problems/looping-through-arrays/solution_ja.md create mode 100644 problems/number-to-string/problem_ja.md create mode 100644 problems/number-to-string/solution_ja.md create mode 100644 problems/numbers/problem_ja.md create mode 100644 problems/numbers/solution_ja.md create mode 100644 problems/object-keys/problem_ja.md create mode 100644 problems/object-keys/solution_ja.md create mode 100644 problems/object-properties/problem_ja.md create mode 100644 problems/object-properties/solution_ja.md create mode 100644 problems/objects/problem_ja.md create mode 100644 problems/objects/solution_ja.md create mode 100644 problems/revising-strings/problem_ja.md create mode 100644 problems/revising-strings/solution_ja.md create mode 100644 problems/rounding-numbers/problem_ja.md create mode 100644 problems/rounding-numbers/solution_ja.md create mode 100644 problems/scope/problem_ja.md create mode 100644 problems/scope/solution_ja.md create mode 100644 problems/string-length/problem_ja.md create mode 100644 problems/string-length/solution_ja.md create mode 100644 problems/strings/problem_ja.md create mode 100644 problems/strings/solution_ja.md create mode 100644 problems/this/problem_ja.md create mode 100644 problems/this/solution_ja.md create mode 100644 problems/variables/problem_ja.md create mode 100644 problems/variables/solution_ja.md create mode 100644 troubleshooting_ja.md diff --git a/i18n/ja.json b/i18n/ja.json new file mode 100644 index 00000000..88a1d787 --- /dev/null +++ b/i18n/ja.json @@ -0,0 +1,22 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUCTION" + , "VARIABLES": "VARIABLES" + , "STRINGS": "STRINGS" + , "STRING LENGTH": "STRING LENGTH" + , "REVISING STRINGS": "REVISING STRINGS" + , "NUMBERS": "NUMBERS" + , "ROUNDING NUMBERS": "ROUNDING NUMBERS" + , "NUMBER TO STRING": "NUMBER TO STRING" + , "IF STATEMENT": "IF STATEMENT" + , "FOR LOOP": "FOR LOOP" + , "ARRAYS": "ARRAYS" + , "ARRAY FILTERING": "ARRAY FILTERING" + , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" + , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" + , "OBJECTS": "OBJECTS" + , "OBJECT PROPERTIES": "OBJECT PROPERTIES" + , "FUNCTIONS": "FUNCTIONS" + , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" + } +} \ No newline at end of file diff --git a/index.js b/index.js index f65d9180..c9b8cd84 100755 --- a/index.js +++ b/index.js @@ -2,7 +2,11 @@ var path = require('path'); var adventure = require('workshopper-adventure/adventure'); -var jsing = adventure('javascripting'); +var jsing = adventure({ + name: 'javascripting' + , appDir: __dirname + , languages: ['en', 'ja'] +}); var problems = require('./menu.json'); diff --git a/problems/accessing-array-values/problem_ja.md b/problems/accessing-array-values/problem_ja.md new file mode 100644 index 00000000..9050a280 --- /dev/null +++ b/problems/accessing-array-values/problem_ja.md @@ -0,0 +1,51 @@ +--- + +# 配列の値にアクセスする + +配列の要素には添え字を使ってアクセスできます。 + +添え字は `0` から `配列の長さ - 1` までの数です。 + +以下に例を示します... + +```js +var pets = ['cat', 'dog', 'rat']; + +console.log(pets[0]); +``` + +上記のコードは配列 `pets` の最初の要素、つまり文字列 `cat` を表示します。 + +配列の要素には角括弧を使うとアクセスできます。 + +有効な書き方 + +```js +console.log(pets[0]); +``` + +ドット表記を使ってもアクセスできません。 + +無効な書き方 + +``` +console.log(pets.1); +``` + +## やってみよう + +`accessing-array-values.js` ファイルを作りましょう。 + +ファイルの中で、次の配列 `food` を定義します。 +```js +var food = ['apple', 'pizza', 'pear']; +``` + + +`console.log()` を使って、配列の `2` 番目の値をターミナルに出力してください。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify accessing-array-values.js` + +--- diff --git a/problems/accessing-array-values/solution_ja.md b/problems/accessing-array-values/solution_ja.md new file mode 100644 index 00000000..3f47eace --- /dev/null +++ b/problems/accessing-array-values/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# 配列の2番目の要素が出力されました! + +いいですね。配列の要素にアクセスできました。 + +次の課題では、配列のループの例に取り組みます。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/array-filtering/problem_ja.md b/problems/array-filtering/problem_ja.md new file mode 100644 index 00000000..c6022ed2 --- /dev/null +++ b/problems/array-filtering/problem_ja.md @@ -0,0 +1,50 @@ +--- + +# 配列のフィルター + +配列にはいろいろな操作方法があります。 + +よくやる処理に、配列にフィルターをかけて、特定の値を取り出す。というものがあります。 + +フィルターをかけるには、 `.filter()` メソッドを使います。 + +たとえば... + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +`フィルターした` 配列の中には `cat` と `dog` だけが残ります。 + +## やってみよう + +`array-filtering.js` ファイルを作りましょう。 + + +ファイルの中で、 次の配列を表す、変数 `numbers` を定義しましょう。 + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +同様に、 `numbers.filter()` の実行結果を表す、変数 `filtered` を定義しましょう。 + +`.filter()` メソッドに渡す関数は、このような感じになるでしょう... + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +`console.log()` を使って、 `フィルターした` 配列をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify array-filtering.js` + +--- diff --git a/problems/array-filtering/solution_ja.md b/problems/array-filtering/solution_ja.md new file mode 100644 index 00000000..c07ece8c --- /dev/null +++ b/problems/array-filtering/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# フィルターされました! + +いいですね。フィルターができましたよ。 + +次の課題では、配列の値にアクセスする例に取り組みます。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/arrays/problem_ja.md b/problems/arrays/problem_ja.md new file mode 100644 index 00000000..0d21d1e7 --- /dev/null +++ b/problems/arrays/problem_ja.md @@ -0,0 +1,26 @@ +--- + +# 配列 + +配列は、値のリストです。たとえば、こう... + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +## やってみよう + +`arrays.js` ファイルを作りましょう。 + +ファイルの中で、配列を表す変数 `pizzaToppings` を定義してください。配列は次の3つの文字列変数を順番通りに含みます... + +`tomato sauce, cheese, pepperoni` + +`console.log()` を使って、配列 `pizzaToppings` をターミナルに表示しましょう +。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify arrays.js` + +--- diff --git a/problems/arrays/solution_ja.md b/problems/arrays/solution_ja.md new file mode 100644 index 00000000..b37e19ce --- /dev/null +++ b/problems/arrays/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# ヘイ、ピザお待ちぃ! + +配列の作成ができました! + +次の課題では、配列のフィルターを探求します。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/for-loop/problem_ja.md b/problems/for-loop/problem_ja.md new file mode 100644 index 00000000..d90ad39d --- /dev/null +++ b/problems/for-loop/problem_ja.md @@ -0,0 +1,44 @@ +--- + +# for ループ + +for ループの例です... + +```js +for (var i = 0; i < 10; i++) { + // log the numbers 0 through 9 + console.log(i) +} +``` + +変数 `i` を使ってループを何回実行したか数えます。 + +式 `i < 10` でループの終わりを示します。 +この条件では、 `i` が `10` 未満の間、ループします。 + +式 `i++` で、ループを一回まわるたびに、変数 `i` の値を増やします。 + +## やってみよう + +`for-loop.js` ファイルを作りましょう。 + +ファイルの中で、数値 `0` の変数 `total` を定義します。 + +つづいて、数値 `10` の変数 `limit` を定義します。 + +forループを作りましょう。変数 `i` を0から始めループのたびに1増やします。 +`i` が `limit` より小さい間、ループを続けましょう。 + +ループを繰り返すたびに、 数値 `i` を `total` に足しましょう。こんな風に... + +```js +total += i; +``` + +ループが終わったら、 `console.log()` を使い、変数 `total` をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify for-loop.js` + +--- diff --git a/problems/for-loop/solution_ja.md b/problems/for-loop/solution_ja.md new file mode 100644 index 00000000..63ab0953 --- /dev/null +++ b/problems/for-loop/solution_ja.md @@ -0,0 +1,12 @@ +--- + +# 1から9まで足したら45 + +for ループの基本的な使い方がわかりました。for ループはいろいろな場面で便利です。 +特に文字列や配列のようなデータ型と組み合わせるのが最高です。 + +次の課題では**配列**に取り組みましょう。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/function-arguments/problem_ja.md b/problems/function-arguments/problem_ja.md new file mode 100644 index 00000000..bbc28393 --- /dev/null +++ b/problems/function-arguments/problem_ja.md @@ -0,0 +1,40 @@ +--- + +# 関数の引数 + +関数の引数はいくつでも宣言できます。引数はどんな型でも大丈夫です。文字列、数値、配列、オブジェクト、関数さえも引数になり得ます。 + +たとえば... + + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +引数が2つの関数を**呼び出す**には、次のようにします。 + +```js +example('hello', 'world'); +``` + +上の例を実行すると、ターミナルに `hello world` と出力されるでしょう。 + +## やってみよう + +`function-arguments.js` ファイルを作りましょう。 + +ファイルの中で、関数 `math` を定義します。引数は三つです。 + +重要なことがあります。引数名は引数の値を参照するためだけに使います。引数名は好きに決めてかまいません。 + +`math` 関数は、2番目と3番目の引数を掛け、その結果に1番目の引数を足します。そうして得られた値を返してください。 + +その後、 `console.log()` の括弧の内側で、 `math()` 関数を呼びます。1番目の引数に数値 `53` を、2番目に `61` を、3番目に `67` を指定してください。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify function-arguments.js` + +--- diff --git a/problems/function-arguments/solution_ja.md b/problems/function-arguments/solution_ja.md new file mode 100644 index 00000000..3f4dc6c5 --- /dev/null +++ b/problems/function-arguments/solution_ja.md @@ -0,0 +1,9 @@ +--- + +# もう引数を自在に使えますね + +これでこの演習は終わりです。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/function-return-values/problem_ja.md b/problems/function-return-values/problem_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_ja.md b/problems/function-return-values/solution_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_ja.md b/problems/functions/problem_ja.md new file mode 100644 index 00000000..228a951f --- /dev/null +++ b/problems/functions/problem_ja.md @@ -0,0 +1,45 @@ +--- + +# 関数 + +関数はコードのまとまりです。入力を受け取ります。受け取った入力を処理し、結果を返します。 + +たとえば... + + +```js +function example (x) { + return x * 2; +} +``` + +上の関数を、次のように**呼び出す**と、数値10が得られます... + +```js +example(5) +``` + +上記の例では、 `example` 関数が1つの数値を引数(入力)として取り、その数に2を掛けて返します。 + +## やってみよう + + +`function.js` ファイルを作りましょう。 + + +ファイルの中で、関数 `eat` を定義します。`eat` は、ひとつの引数 `food` を受け取ります。 +その引数は文字列であることを期待します。 + +関数内で、 `food` 引数を次のように処理して返してください... + +```js +return food + ' tasted really good.'; +``` + +`console.log()` の括弧の中で、 `eat()` 関数を呼んで、引数として `bananas` という文字列を与えてください。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify functions.js` + +--- diff --git a/problems/functions/solution_ja.md b/problems/functions/solution_ja.md new file mode 100644 index 00000000..5ced480c --- /dev/null +++ b/problems/functions/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# バナナウマー + +やったね! 入力を取り、それを処理し、結果を返す関数が作れました。 + +次の課題は、関数の引数です。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/if-statement/problem_ja.md b/problems/if-statement/problem_ja.md new file mode 100644 index 00000000..2628f727 --- /dev/null +++ b/problems/if-statement/problem_ja.md @@ -0,0 +1,36 @@ +--- + +# if 文 + +条件文を使って、次に実行する文を変更します。プログラムの流れを変更できます。条件は真理値で指定します。 + +たとえば... + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +カッコの間に論理式を指定します。論理式の結果は真か偽である必要があります。 + +`else` ブロックはつけても、つけなくても構いません。つけた場合は、論理式の結果が偽の時に実行されます。 + +## やってみよう + +`if-statement.js` ファイルを作りましょう。 + +ファイルの中で、変数 `fruit` を定義しましょう。 + +変数 `fruit` は**文字列型**の**orange**を表します。 + +`fruit` の文字数が5より大きかったら、console.log() を使い、**The fruit name has more than five characters.**をターミナルに表示しましょう。 +そうでなければ**The fruit name has five characters or less.**を表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify if-statement.js` + +--- diff --git a/problems/if-statement/solution_ja.md b/problems/if-statement/solution_ja.md new file mode 100644 index 00000000..1e709d4f --- /dev/null +++ b/problems/if-statement/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# 達人の条件クリア! + +やったね! `orange` の文字数は5を超えています。 + +次は**for loop**です。準備はいいですか? + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/introduction/problem_ja.md b/problems/introduction/problem_ja.md new file mode 100644 index 00000000..8a2979be --- /dev/null +++ b/problems/introduction/problem_ja.md @@ -0,0 +1,32 @@ +--- +# INTRODUCTION + +このワークショップで使うディレクトリを作りましょう。 + +次のコマンドを実行して、`javascripting-jp` ディレクトリを作ります。 + +`mkdir javascripting-jp` + +`javascripting-jp` ディレクトリに移動しましょう。 + +`cd javascripting-jp` + +次のコマンドで `introduction.js` ファイルを作成します。 + +`touch introduction.js` (Windowsを使っているのであれば `type NUL > introduction.js`) + +お好みのエディタでファイルを開きます。次の文を書き足しましょう。 + +```js +console.log('hello'); +``` + +ファイルを保存します。次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify introduction.js` + +--- + + + +> **ヘルプが必要ですか??** このワークショップのREADMEを読んでください。 : http://github.com/ledsun/javascripting diff --git a/problems/introduction/solution_ja.md b/problems/introduction/solution_ja.md new file mode 100644 index 00000000..7b9a97db --- /dev/null +++ b/problems/introduction/solution_ja.md @@ -0,0 +1,21 @@ +--- + +# やったね! + +`console.log()` のカッコの間に指定したものを、ターミナルに表示します。 + +たとえば... + +```js +console.log('hello'); +``` + +ターミナルに `hello` を表示します。 + +**文字列** `hello` をターミナルに表示できるようになりました。 + +次の課題では**変数**を学びます。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/looping-through-arrays/problem_ja.md b/problems/looping-through-arrays/problem_ja.md new file mode 100644 index 00000000..3770249a --- /dev/null +++ b/problems/looping-through-arrays/problem_ja.md @@ -0,0 +1,50 @@ +--- + +# 配列をループする + +この課題では、**forループ**を使用して、配列の中の値を取得したり変更したりします。 + +配列の値にアクセスするには、整数を使用します。 + +配列の中のそれぞれの要素は、 `0` からはじまる数値で識別されます。 + +たとえば、次の配列内の `hi` は、数値 `1` で識別できます... + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +次のようにアクセスします... + +```js +greetings[1]; +``` + +**forループ**の中では、変数 `i` を角括弧の中に入れて使います。整数を直接使うことはありません。 + +## やってみよう + +`looping-through-arrays.js` ファイルを作りましょう。 + + +ファイルの中で、次の配列を表す、変数 `pets` を定義しましょう。 + +```js +['cat', 'dog', 'rat']; +``` + +forループを作って、配列内の各文字列が複数形になるように変更します。 + +forループの中は次のようになるでしょう... + +```js +pets[i] = pets[i] + 's'; +``` + +forループが終わったら、 `console.log()` を使って配列 `pets` をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify looping-through-arrays.js` + +--- diff --git a/problems/looping-through-arrays/solution_ja.md b/problems/looping-through-arrays/solution_ja.md new file mode 100644 index 00000000..9c83a49f --- /dev/null +++ b/problems/looping-through-arrays/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# パチパチパチ! ペット盛り沢山! + +`pets` 配列内のすべての要素が複数形になっています! + +次の課題では、配列を離れ**オブジェクト**へ行きましょう。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/number-to-string/problem_ja.md b/problems/number-to-string/problem_ja.md new file mode 100644 index 00000000..9a619d3c --- /dev/null +++ b/problems/number-to-string/problem_ja.md @@ -0,0 +1,28 @@ +--- + +# 数値を文字列に + +数値を文字列に変換したいことがあります。 + +そういう時は `toString()` メソッドを使います。たとえば... + +```js +var n = 256; +n = n.toString(); +``` + +## やってみよう + +`number-to-string.js` ファイルを作りましょう。 + +ファイルの中で、数値 `128` を表す変数 `n` を定義しましょう。 + +変数 `n` の `toString()` メソッドを呼びましょう。 + +`console.log()` を使い、`toString()` メソッドの結果をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify number-to-string.js` + +--- diff --git a/problems/number-to-string/solution_ja.md b/problems/number-to-string/solution_ja.md new file mode 100644 index 00000000..9a3ff654 --- /dev/null +++ b/problems/number-to-string/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# 見て見て、数値が文字列になったわ! + +よくできました。数値を文字列に変換する良い動きです。 + +次の課題では、**if文**を見てみましょう。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/numbers/problem_ja.md b/problems/numbers/problem_ja.md new file mode 100644 index 00000000..6824e398 --- /dev/null +++ b/problems/numbers/problem_ja.md @@ -0,0 +1,21 @@ +--- + +# 数値 + +JavaScriptの数値は `2` 、`14` 、`4353` のような整数と + +`3.14` 、 `1.5` 、 `100.7893423` のような小数のどちらともを表すことができます。 + +## やってみよう + +`numbers.js` ファイルを作りましょう。 + +ファイルの中で、整数の `123456789` を表す、変数 `example` を定義しましょう。 + +`console.log` を使い、数値をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify numbers.js` + +--- diff --git a/problems/numbers/solution_ja.md b/problems/numbers/solution_ja.md new file mode 100644 index 00000000..857239bf --- /dev/null +++ b/problems/numbers/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# イエーイ!めっちゃナンバー! + +イェィイェィ!変数を数値 `123456789` として定義できました。 + +次の課題では、数値の変更を扱います。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/object-keys/problem_ja.md b/problems/object-keys/problem_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_ja.md b/problems/object-keys/solution_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-properties/problem_ja.md b/problems/object-properties/problem_ja.md new file mode 100644 index 00000000..12a5547f --- /dev/null +++ b/problems/object-properties/problem_ja.md @@ -0,0 +1,51 @@ +--- + +# オブジェクトのプロパティ + +オブジェクトのプロパティの値を取得したり変更したりできます。 +プロパティはオブジェクトに含まれるキーと値の組み合わせです。 +オブジェクトのプロパティは配列とよく似た方法で操作します。 + +次の例のように角括弧を使います... + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +上のコードは、 `'yummy'` とターミナルに出力します。 + +別のやりかたとして、ドット記法を使って同じ結果を得ることもできます... + +```js +example.pizza; + +example['pizza']; +``` + +上の二つの行は、両方とも `yummy` という値を返します。 + +## やってみよう + + +`object-properties.js` ファイルを作りましょう。 + + +ファイルの中で、変数 `food` を次のように定義してください... + +```js +var food = { + types: 'only pizza' +}; +``` + +`console.log()` を使って、 `food` オブジェクトの `types` プロパティをターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify object-properties.js` + +--- diff --git a/problems/object-properties/solution_ja.md b/problems/object-properties/solution_ja.md new file mode 100644 index 00000000..de9e0ff5 --- /dev/null +++ b/problems/object-properties/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# 出前はピザ、それが俺のジャスティス。 + +よくぞプロパティにアクセスしました。 + +次の課題では、**関数**のすべてを説明します。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/objects/problem_ja.md b/problems/objects/problem_ja.md new file mode 100644 index 00000000..2cc290e0 --- /dev/null +++ b/problems/objects/problem_ja.md @@ -0,0 +1,39 @@ +--- + +# オブジェクト + +オブジェクトは、配列に似た値のリストです。配列と違い、各要素を整数ではなくキーで識別します。 + +たとえば... + + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +} +``` + +## やってみよう + + +`objects.js` ファイルを作りましょう。 + + +ファイルの中で、変数 `pizza` を次のようにして定義してください... + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} +``` + +`console.log()` を使って、 `pizza` オブジェクトをターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう... + +`javascripting-jp verify objects.js` + +--- diff --git a/problems/objects/solution_ja.md b/problems/objects/solution_ja.md new file mode 100644 index 00000000..034fdb37 --- /dev/null +++ b/problems/objects/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# ピザオブジェクト準備完了 + +オブジェクトを生成できました! + +次の課題では、オブジェクトのプロパティへのアクセスを見てみましょう。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/revising-strings/problem_ja.md b/problems/revising-strings/problem_ja.md new file mode 100644 index 00000000..a7cc5d79 --- /dev/null +++ b/problems/revising-strings/problem_ja.md @@ -0,0 +1,34 @@ +--- + +# 文字列を変更 + +文字列の中身を書き換えたいことがあります。 + +文字列には用意された機能があります。文字列の中身を調べたり、書き換えたりできます。 + +たとえば `.replace()` メソッドは次のように使います... + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +等号を使って `example` 変数を、もう一度変更することに注意してください。 +上の例では等号の右に `example.replace()` を書きました。 + +## やってみよう + +`revising-strings.js` ファイルを作りましょう。 + +ファイルの中で、文字列は `pizza is alright` を表す、変数 `pizza` を定義します。 + +`.replace()` メソッドを使って、 `alright` を `wonderful` に変更します。 + +`console.log()` を使い、`.replace()` の結果をコンソールに表示します。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify revising-strings.js` + +--- diff --git a/problems/revising-strings/solution_ja.md b/problems/revising-strings/solution_ja.md new file mode 100644 index 00000000..0ff9a253 --- /dev/null +++ b/problems/revising-strings/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# pizza is wonderful です! + +`.replace()` メソッドがいい感じです。 + +つづいて**数値**の探検をしましょう。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/rounding-numbers/problem_ja.md b/problems/rounding-numbers/problem_ja.md new file mode 100644 index 00000000..aff13dcb --- /dev/null +++ b/problems/rounding-numbers/problem_ja.md @@ -0,0 +1,34 @@ +--- + +# 数値丸め + +基本的な数値処理には、`+`、 `-`、 `*`、 `/`、 `%` といった、おなじみの演算子を使います。 + +より複雑な数値処理をするときは、 `Math` オブジェクトを使います。 + +この課題では、 `Math` を使って数値を丸め(四捨五入し)ます。 + +## やってみよう + + +rounding-numbers.jsファイルを作りましょう。 + +ファイルの中で、小数 `1.5` を表す、変数 `roundUp` を定義しましょう。 + +`Math.round()` メソッドを使って数値を切り上げましょう。 + +`Math.round()` メソッドの使用例です... + +```js +Math.round(0.5); +``` + +第二の変数 `rounded` を定義します。この変数は `Math.round()` メソッドの結果を表します。引数には `roundUp` 変数を指定します。 + +`console.log` を使い、数値をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify rounding-numbers.js` + +--- diff --git a/problems/rounding-numbers/solution_ja.md b/problems/rounding-numbers/solution_ja.md new file mode 100644 index 00000000..ec813b11 --- /dev/null +++ b/problems/rounding-numbers/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# 丸く収まりました + +良い仕事ですね。`1.5` が `2` に見事に丸まっています。 + +次の課題では、数値を文字列に変換します。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/scope/problem_ja.md b/problems/scope/problem_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/scope/problem_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/scope/solution_ja.md b/problems/scope/solution_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/scope/solution_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/string-length/problem_ja.md b/problems/string-length/problem_ja.md new file mode 100644 index 00000000..a37a1a72 --- /dev/null +++ b/problems/string-length/problem_ja.md @@ -0,0 +1,32 @@ +--- + +# 文字列の長さ + +ある文字列の文字数を知りたいことがあります。 + +そういう時は `.length` プロパティを使います。たとえば... + +```js +var example = 'example string'; +example.length +``` + +`example` と `length` の間にピリオドが必要です。気をつけましょう。 + +上のコードは文字列に含まれる文字の**数**を返します。 + +## やってみよう + +`string-length.js` ファイルを作りましょう。 + +ファイルの中で、変数 `example` を作りましょう。 + +変数 `example` に文字列 `'example string'` を代入しましょう。 + +`console.log` を使い、文字列の **length** をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify string-length.js` + +--- diff --git a/problems/string-length/solution_ja.md b/problems/string-length/solution_ja.md new file mode 100644 index 00000000..c86285b6 --- /dev/null +++ b/problems/string-length/solution_ja.md @@ -0,0 +1,9 @@ +--- + +# 14文字が取れました + +やりました! 文字列 `example string` は14文字です。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md new file mode 100644 index 00000000..0fc358df --- /dev/null +++ b/problems/strings/problem_ja.md @@ -0,0 +1,33 @@ +--- + +# 文字列 + +**文字列**は引用符でくくった値です。 + +引用符は一重引用符と二重引用符のどちらも使えます。例えば... + +```js +'this is a string' + +"this is also a string" +``` + +どちらかの引用符を使うルールを決め、守りましょう。 このワークショップでは一重引用符だけを使います。 + +## やってみよう + +`strings.js` ファイルを作りましょう。 + +ファイルの中で、次のように変数 `someString` を作りましょう。 + +```js +var someString = 'this is a string'; +``` + +`console.log` を使い、変数 **someStirng** をターミナルに表示しましょう。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify strings.js` + +--- diff --git a/problems/strings/solution_ja.md b/problems/strings/solution_ja.md new file mode 100644 index 00000000..edd94917 --- /dev/null +++ b/problems/strings/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# パチパチ! + +文字列の使い方に慣れてきました。 + +次の課題では文字列の編集を扱います。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/problems/this/problem_ja.md b/problems/this/problem_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_ja.md b/problems/this/solution_ja.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_ja.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/variables/problem_ja.md b/problems/variables/problem_ja.md new file mode 100644 index 00000000..0356003e --- /dev/null +++ b/problems/variables/problem_ja.md @@ -0,0 +1,39 @@ +--- + +# 変数 + +変数は特定の値を示す名前です。 `var` を使って変数を宣言します。 `var` につづけて変数の名前を書きます。 + +例... + +```js +var example; +``` + +上の例は変数を**宣言**しています。しかし、定義していません(この変数はまだなんの値も示しません)。 + +次の例は変数を定義します。定義した変数は特定の値を示します。 + +```js +var example = 'some string'; +``` + +`var` を使って**宣言**します。つづいて、等号を使い、変数が示す値を**定義**します。 + +これを「変数に値を代入する」と言います。 + +## やってみよう + +`variables.js` ファイルを作りましょう。 + +ファイルの中で `example` 変数を宣言します。 + +**変数** `example` に値 `'some string'` を代入します。 + +そして `console.log()` を使い、変数 `example` をコンソールに表示します。 + +次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 + +`javascripting-jp verify variables.js` + +--- diff --git a/problems/variables/solution_ja.md b/problems/variables/solution_ja.md new file mode 100644 index 00000000..13347c48 --- /dev/null +++ b/problems/variables/solution_ja.md @@ -0,0 +1,11 @@ +--- + +# 変数を作れました! + +素晴らしい仕事です。 + +次の課題では**文字列**をもっと詳しく見てみましょう。 + +コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 + +--- diff --git a/troubleshooting_ja.md b/troubleshooting_ja.md new file mode 100644 index 00000000..3b8ecd08 --- /dev/null +++ b/troubleshooting_ja.md @@ -0,0 +1,28 @@ +--- +# 残念ながら、何かがうまく動いていません。 +# でも、あわててはいけません。 +--- + +## あなたの解答を確認してみましょう... + +`期待する解答 +===================` + +%solution% + +`あなたが試した結果 +===================` + +%attempt% + +`その違い +===================` + +%diff% + +## その他の解決方法... + * ファイル名をタイプミスしていませんか? ls `%filename%` を実行すれば確認できます。もし ls: cannot access `%filename%`: No such file or directory と表示されたら、新しいファイルを作るか、すでにあるファイルの名前を変えるか、ファイルがあるディレクトリを変更する必要があるかもしれません。 + * カッコを省略していませんか?省略するとコンパイラはJavaScriptファイル正しく読むことができません。 + * ファイルの中身にタイプミスはありませんか? + +> **助けが必要ですか?** github.com/nodeschool/discussions/issues で質問してください \ No newline at end of file From 65954e07ad6e43820112b89992707e7f04f79669 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Sun, 12 Apr 2015 02:33:57 +0900 Subject: [PATCH 048/346] Updated to latest workshopper-adventure --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b9c2a73..0c67aada 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1", - "workshopper-adventure": "^3.0.0" + "workshopper-adventure": "^3.0.1" }, "license": "MIT" } From 0b58e0a83a751ea4650e25264a11530abf048649 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Sat, 11 Apr 2015 13:08:31 -0700 Subject: [PATCH 049/346] update workshopper-adventure to 3.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0c67aada..faed9690 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1", - "workshopper-adventure": "^3.0.1" + "workshopper-adventure": "^3.0.2" }, "license": "MIT" } From 2590853edcee60fee9ceafc740548bc9802ff0aa Mon Sep 17 00:00:00 2001 From: Alejandro Oviedo Date: Sun, 12 Apr 2015 21:51:42 -0300 Subject: [PATCH 050/346] added spanish translations --- i18n/es.json | 22 ++++++++ problems/array-filtering/problem_es.md | 51 +++++++++++++++++++ problems/array-filtering/solution_es.md | 11 ++++ problems/arrays/problem_es.md | 23 +++++++++ problems/arrays/solution_es.md | 12 +++++ problems/for-loop/problem_es.md | 44 ++++++++++++++++ problems/for-loop/solution_es.md | 11 ++++ problems/function-arguments/problem_es.md | 41 +++++++++++++++ problems/function-arguments/solution_es.md | 9 ++++ problems/functions/problem_es.md | 43 ++++++++++++++++ problems/functions/solution_es.md | 8 +++ problems/if-statement/problem_es.md | 36 +++++++++++++ problems/if-statement/solution_es.md | 11 ++++ problems/introduction/problem_es.md | 30 +++++++++++ problems/introduction/solution_es.md | 21 ++++++++ problems/looping-through-arrays/problem_es.md | 50 ++++++++++++++++++ .../looping-through-arrays/solution_es.md | 11 ++++ problems/number-to-string/problem_es.md | 28 ++++++++++ problems/number-to-string/solution_es.md | 11 ++++ problems/numbers/problem_es.md | 20 ++++++++ problems/numbers/solution_es.md | 11 ++++ problems/object-keys/solution_es.md | 5 ++ problems/object-properties/problem_es.md | 47 +++++++++++++++++ problems/object-properties/solution_es.md | 11 ++++ problems/objects/problem_es.md | 40 +++++++++++++++ problems/objects/solution_es.md | 13 +++++ problems/revising-strings/problem_es.md | 35 +++++++++++++ problems/revising-strings/solution_es.md | 11 ++++ problems/rounding-numbers/problem_es.md | 31 +++++++++++ problems/rounding-numbers/solution_es.md | 11 ++++ problems/string-length/problem_es.md | 32 ++++++++++++ problems/string-length/solution_es.md | 9 ++++ problems/strings/problem_es.md | 33 ++++++++++++ problems/strings/solution_es.md | 11 ++++ problems/variables/problem_es.md | 35 +++++++++++++ problems/variables/solution_es.md | 11 ++++ 36 files changed, 839 insertions(+) create mode 100644 i18n/es.json create mode 100644 problems/array-filtering/problem_es.md create mode 100644 problems/array-filtering/solution_es.md create mode 100644 problems/arrays/problem_es.md create mode 100644 problems/arrays/solution_es.md create mode 100644 problems/for-loop/problem_es.md create mode 100644 problems/for-loop/solution_es.md create mode 100644 problems/function-arguments/problem_es.md create mode 100644 problems/function-arguments/solution_es.md create mode 100644 problems/functions/problem_es.md create mode 100644 problems/functions/solution_es.md create mode 100644 problems/if-statement/problem_es.md create mode 100644 problems/if-statement/solution_es.md create mode 100644 problems/introduction/problem_es.md create mode 100644 problems/introduction/solution_es.md create mode 100644 problems/looping-through-arrays/problem_es.md create mode 100644 problems/looping-through-arrays/solution_es.md create mode 100644 problems/number-to-string/problem_es.md create mode 100644 problems/number-to-string/solution_es.md create mode 100644 problems/numbers/problem_es.md create mode 100644 problems/numbers/solution_es.md create mode 100644 problems/object-keys/solution_es.md create mode 100644 problems/object-properties/problem_es.md create mode 100644 problems/object-properties/solution_es.md create mode 100644 problems/objects/problem_es.md create mode 100644 problems/objects/solution_es.md create mode 100644 problems/revising-strings/problem_es.md create mode 100644 problems/revising-strings/solution_es.md create mode 100644 problems/rounding-numbers/problem_es.md create mode 100644 problems/rounding-numbers/solution_es.md create mode 100644 problems/string-length/problem_es.md create mode 100644 problems/string-length/solution_es.md create mode 100644 problems/strings/problem_es.md create mode 100644 problems/strings/solution_es.md create mode 100644 problems/variables/problem_es.md create mode 100644 problems/variables/solution_es.md diff --git a/i18n/es.json b/i18n/es.json new file mode 100644 index 00000000..254abaa8 --- /dev/null +++ b/i18n/es.json @@ -0,0 +1,22 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUCCIÓN" + , "VARIABLES": "VARIABLES" + , "STRINGS": "STRINGS" + , "STRING LENGTH": "LONGITUD DE STRINGS" + , "REVISING STRINGS": "MODIFICANDO STRINGS" + , "NUMBERS": "NÚMEROS" + , "ROUNDING NUMBERS": "REDONDEANDO NÚMEROS" + , "NUMBER TO STRING": "NÚMERO A STRING" + , "IF STATEMENT": "BLOQUE CONDICIONAL" + , "FOR LOOP": "ITERANDO CON FOR" + , "ARRAYS": "ARRAYS" + , "ARRAY FILTERING": "FILTRADO DE ARRAYS" + , "ACCESSING ARRAY VALUES": "ACCEDIENDO ARRAYS" + , "LOOPING THROUGH ARRAYS": "RECORRIENDO ARRAYS" + , "OBJECTS": "OBJETOS" + , "OBJECT PROPERTIES": "PROPIEDADES DE OBJECTOS" + , "FUNCTIONS": "FUNCIONES" + , "FUNCTION ARGUMENTS": "ARGUMENTOS DE FUNCIONES" + } +} \ No newline at end of file diff --git a/problems/array-filtering/problem_es.md b/problems/array-filtering/problem_es.md new file mode 100644 index 00000000..74ad57c4 --- /dev/null +++ b/problems/array-filtering/problem_es.md @@ -0,0 +1,51 @@ +--- + +# FILTRADO DE ARRAYS + +Los arrays poseen métodos predefinidos que nos permiten manipularlos. + +Por ejemplo, los métodos `forEach`, `map`, `some` y `filter` son bastante utilizados. + +Algo muy común es filtrar arrays para que contengan sólo ciertos valores. + +Para esto podemos utilizar el método `.filter`. + +Por ejemplo: + +```js +var mascotas = ['gato', 'perro', 'elefante']; + +var filtrados = mascotas.filter(function (mascota) { + return (mascota !== 'elephant'); +}); +``` + +La variable `filtrados` será igual a un array que contiene solo `gato` y `perro`. + +## El ejercicio: + +Crea un archivo llamado `filtrado-de-arrays.js`. + +En ese archivo, define una variable llamada `numeros` que referencie al siguiente array: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +Luego, define una variable llamada `filtrados` que referencie el resultado de `numeros.filter()`. + +La función que recibe `.filter()` será algo cómo lo siguiente: + +```js +function numerosPares (numero) { + return numero % 2 === 0; +} +``` + +Utiliza `console.log()` para imprimir el array filtrado a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify filtrado-de-arrays.js` + +--- diff --git a/problems/array-filtering/solution_es.md b/problems/array-filtering/solution_es.md new file mode 100644 index 00000000..4b7ea0e5 --- /dev/null +++ b/problems/array-filtering/solution_es.md @@ -0,0 +1,11 @@ +--- + +# ¡FILTRADO! + +Buen trabajo filtrando ese array. + +En el siguiente ejercicio estarmos trabajando con un ejemplo de cómo recorrer arrays. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/arrays/problem_es.md b/problems/arrays/problem_es.md new file mode 100644 index 00000000..9410437c --- /dev/null +++ b/problems/arrays/problem_es.md @@ -0,0 +1,23 @@ +--- + +# ARRAYS + +Un array es una lista ordenada de elementos. Por ejemplo: + +```js +var mascotas = ['gato', 'perro', 'conejo']; +``` + +### El ejercicio: + +Crea un archivo llamado `arrays.js` + +En ese archivo define una variable llamada `condimentos` que referencie a un array el cual contenga los siguientes elementos: `"salsa de tomate", "queso" y "aceitunas"`. + +Utiliza `console.log()` para imprimir la variable `condimentos` a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente commando: + +`javascripting verify arrays.js` + +--- diff --git a/problems/arrays/solution_es.md b/problems/arrays/solution_es.md new file mode 100644 index 00000000..069bf7c8 --- /dev/null +++ b/problems/arrays/solution_es.md @@ -0,0 +1,12 @@ +--- + +# SI SEÑOR, UN ARRAY DE PIZZA! + +Creaste un array con éxito. + +En el siguiente ejercicio continuaremos explorando cómo filtrar arrays. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- + diff --git a/problems/for-loop/problem_es.md b/problems/for-loop/problem_es.md new file mode 100644 index 00000000..8b2ba5c2 --- /dev/null +++ b/problems/for-loop/problem_es.md @@ -0,0 +1,44 @@ +--- + +# FOR (BUCLES) + +Un bucle for es como lo siguiente: + +```js +for (var i = 0; i < 100; i++) { + // imprime los números del 0 al 99 + console.log(i); +} +``` + +Lo que se encuentra dentro de las llaves ({}), `console.log(i)`, se ejecutará por cada iteración del bucle. + +El termino `i < 10;` indica cuantas veces iterará. + +Continuará iterando si `i` es menor que `10`. + +El termino `i++` incrementa la variable `i` en uno por cada iteración. + +## El ejercicio: + +Crea un archivo llamado for.js. + +En ese archivo define una variable llamada `total` e iniciala con el número `0`. + +Define una segunda variable llamada `limite` e iniciala con el número `10`. + +Crea un for que itere 10 veces. En cada iteración, añade el valor de `i` a la variable `total`. + +Puedes utilizar lo siguiente: + +```js +total += i; +``` + +Luego del for, utiliza `console.log()` para imprimir la variable `total` a la terminal. + +Comprueba si tu programa es correcto utilizando el siguiente comando: + +`javascripting verify for.js` + +--- diff --git a/problems/for-loop/solution_es.md b/problems/for-loop/solution_es.md new file mode 100644 index 00000000..e989eb5c --- /dev/null +++ b/problems/for-loop/solution_es.md @@ -0,0 +1,11 @@ +--- + +# EL TOTAL ES 45 + +Esta es una introducción básica al uso de for, lo cual es útil en muchas situaciones, particularmente en combinación con otras tipos de datos cómo arrays o strings. + +En el siguiente ejercicio empezaremos a trabajar con **arrays**. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/function-arguments/problem_es.md b/problems/function-arguments/problem_es.md new file mode 100644 index 00000000..a566d346 --- /dev/null +++ b/problems/function-arguments/problem_es.md @@ -0,0 +1,41 @@ +--- + +# ARGUMENTOS DE FUNCIÓN + +Una función puede ser declarada para recibir cualquier número de argumentos. Los argumentos pueden ser de cualquier tipo. Por ejemplo, un argumento a una función podría ser una string, un número, un array, un objeto e incluso otra función. + +Un ejemplo: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +Podemos **llamar** a la función con dos argumentos de la siguiente forma: + + +```js +example('hello', 'world'); +``` + +El ejemplo anterior imprimirá `hello world` a la terminal. + + +## El ejercicio: + +Crea un archivo llamando argumentos-de-funciones.js. + +En ese archivo, define una función llamada `math` que recibe trés argumentos. Es importante que entiendas que los nombres de los argumentos son únicamente utilizados para referenciarlos. + +Nombra cada parámetro cómo quieras. + +La función `math` deberá multiplicar el segundo y tercer argumento, y luego sumar el resultado con el primer argumento para luego retornar el valor obtenido. + +Luego de eso, dentro de los paréntesis de `console.log()`, llamá la función `math()``con el número 53 cómo primer argumento, el número 61 cómo segundo argumento y el número 67 cómo tercero. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify argumentos-de-funciones.js` + +--- diff --git a/problems/function-arguments/solution_es.md b/problems/function-arguments/solution_es.md new file mode 100644 index 00000000..d866ba33 --- /dev/null +++ b/problems/function-arguments/solution_es.md @@ -0,0 +1,9 @@ +--- + +# ESTAS EN CONTROL DE TUS ARGUMENTOS! + +Buen trabajo completando el ejercicio. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/functions/problem_es.md b/problems/functions/problem_es.md new file mode 100644 index 00000000..8ce93740 --- /dev/null +++ b/problems/functions/problem_es.md @@ -0,0 +1,43 @@ +--- + +# FUNCIONES + +Una función es un bloque de código que puede recibir un input y devolver un output. + +Vamos a utilizar la palabra reservada `return` para especificar lo que devuelve una funcioón. + + +Por ejemplo: +```js +function ejemplo (x) { + return x * 2; +} +``` + +Podemos **llamar** a la función de esta forma para obtener el número 10: + +```js +console.log(ejemplo(5)) +``` + +El ejemplo anterior asume que la función `ejemplo` recibirá un número cómo argumento –– input –– y retornará el número multiplicado por 2. + +## El ejercicio: + +Crea una archivo llamando funciones.js + +En ese archivo, define una función llamada `comida` que reciba un argumento llamado `fruta` que será una string. + +Dentro de la función, retorna el argumento `fruta` de la siguiente manera: + +```js +return 'las ' + fruta + ' son ricas.'; +``` + +Dentro de los paréntesis de `console.log()`, llama a la función `comida()` con la string `bananas` cómo argumento. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify funciones.js` + +--- diff --git a/problems/functions/solution_es.md b/problems/functions/solution_es.md new file mode 100644 index 00000000..ed86ab4d --- /dev/null +++ b/problems/functions/solution_es.md @@ -0,0 +1,8 @@ +--- + +# PERFECTO + +Lo hiciste! Creaste una función que toma una entrada, procesa esa entrada y genera un resultado. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. +--- diff --git a/problems/if-statement/problem_es.md b/problems/if-statement/problem_es.md new file mode 100644 index 00000000..4ec26e7a --- /dev/null +++ b/problems/if-statement/problem_es.md @@ -0,0 +1,36 @@ +--- + +# BLOQUE CONDICIONAL + +Los bloques condicionales son utilizados, partiendo de una condición booleana específica, alterar el control de flujo de un programa. + +Un bloque condicional se parece a lo siguiente: + +```js +if(n > 1) { + console.log('la variable n es mayor a 1.'); +} else { + console.log('la variable n es menor o igual a 1.'); +} +``` + +Dentro de los paréntesis debes ingresar una sentencia lógica, significa que deberá ser verdadera (true) o falsa (false). + +El *else* block es opcional y contiene el código que será ejecutado si la sentencia lógica dentro de los paréntesis es falsa. + +## El ejercicio + +Crea un archivo llamando `bloque-condicional.js`. + +En ese archivo, declara una variabe llamada `fruta`. + +Haz la variable `fruta` referenciar al valor **naranja**. + +Luego utiliza `console.log()` para imprimir a la terminal **La cantidad de caracteres del nombre de la fruta es mayor a cinco.** si el length de la variable `fruta` es mayor a cinco. +Imprime **La cantidad de caracteres del nombre de la fruta es menor o igual a cinco.** de lo contrario. + +Comprueba si tu programa funciona correctamente ejecutando el siguiente comando: + +`javascripting verify bloque-condicional.js` + +--- diff --git a/problems/if-statement/solution_es.md b/problems/if-statement/solution_es.md new file mode 100644 index 00000000..fffa0e48 --- /dev/null +++ b/problems/if-statement/solution_es.md @@ -0,0 +1,11 @@ +--- + +# MAESTRO CONDICIONAL + +Lo haz hecho! La string `naranja` tiene más de cinco caracteres. + +Preparate para practicar **for loops** en el próximo ejercicio! + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/introduction/problem_es.md b/problems/introduction/problem_es.md new file mode 100644 index 00000000..5db51f82 --- /dev/null +++ b/problems/introduction/problem_es.md @@ -0,0 +1,30 @@ +--- +# INTRODUCCIÓN + +Crea una carpeta para este whorkshop. + +Ejecuta el siguiente comando, cambiando el nombre de la carpeta o colocando el path que necesites: + +`mkdir javascripting` + +Cambia de directorio a la carpeta que acabas de crear: + +`cd javascripting` + +Crea un archivo llamado `intro.js`: + +Agrega el siguiente texto al archivo: + +```js +console.log('hola'); +``` + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify intro.js` + +--- + + +> **Necesitas ayuda?** Vista el README de este workshop: github.com/sethvincent/javascripting + diff --git a/problems/introduction/solution_es.md b/problems/introduction/solution_es.md new file mode 100644 index 00000000..df824fb6 --- /dev/null +++ b/problems/introduction/solution_es.md @@ -0,0 +1,21 @@ +--- + +# LO HICISTE! + +Todo lo que esté dentro de los paréntesis de `console.log()` será impreso a la terminal. + +Entonces esto: + +```js +console.log('hola mundo'); +``` + +imprime `hola mundo` a la terminal. + +En particular, estamos imprimiendo una **string** o cadena de caracteres a la terminal: `hola mundo`. + +En el siguiente ejercicio nos concentramos en aprender más acerca de **strings**. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/looping-through-arrays/problem_es.md b/problems/looping-through-arrays/problem_es.md new file mode 100644 index 00000000..47451ec4 --- /dev/null +++ b/problems/looping-through-arrays/problem_es.md @@ -0,0 +1,50 @@ +--- + +# RECORRIENDO ARRAYS + +Para este ejercicio usaremos un bucle **for** para acceder y manipular una lista de valores en un array. + +Se puede acceder a los valores de un array utilizando un contador. + +Cada ítem en el array es identificado por un número, su índice. + +Los índices comienzan desde el cero. + +Entonces en este array, el elemento `que tal` es identificado por el número `1`: + +```js +var saludos = ['hola', 'que tal', 'buen día']; +``` +Puede ser accedido de la siguiente forma: + +```js +saludos[1]; +``` + +Entonces dentro de un bucle **for** utilizaremos la variable `ì` dentro de los corchetes. + +## El ejercicio: + +Crea un archivo llamando `recorriendo-arrays.js`. + +En ese archivo, define una variable llamada `mascotas` que referencie este array: + +```js +['gato', 'perro', 'tortuga']; +``` + +Crea un bucle for que cambie cada string en el array para que sean plurales. + +Usarás una sentencia parecida a la siguiente dentro del bucle: + +```js +mascotas[i] = mascotas[i] + 's'; +``` + +Utiliza `console.log()` para imprimir el array `mascotas` a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify recorriendo-arrays.js` + +--- diff --git a/problems/looping-through-arrays/solution_es.md b/problems/looping-through-arrays/solution_es.md new file mode 100644 index 00000000..7a610cd5 --- /dev/null +++ b/problems/looping-through-arrays/solution_es.md @@ -0,0 +1,11 @@ +--- + +# EXCELENTE! MUCHAS MASCOTAS! + +Ahora todos los ítems en el array `mascotas` son plurales! + +En el siguiente ejercicio pasaremos de trabajar con arrays a trabajar con **objetos**. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/number-to-string/problem_es.md b/problems/number-to-string/problem_es.md new file mode 100644 index 00000000..8b926286 --- /dev/null +++ b/problems/number-to-string/problem_es.md @@ -0,0 +1,28 @@ +--- + +# NÚMERO A STRING + +A veces necesitarás convertir un número a una string. + +En esos casos, usarás el método `toString`. A continuación un ejemplo: + +```js +var n = 256; +n.toString(); +``` + +## El ejercicio + +Crea un archivo llamado `numero-a-string.js`. + +En ese archivo define una variable llamada `n` que referencie el número `128`; + +LLama al método `toString` de esa variable `n`. + +Utiliza `console.log` para imprimir los resultados de `toString()` a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify numero-a-string.js` + +--- diff --git a/problems/number-to-string/solution_es.md b/problems/number-to-string/solution_es.md new file mode 100644 index 00000000..0d59b6a3 --- /dev/null +++ b/problems/number-to-string/solution_es.md @@ -0,0 +1,11 @@ +--- + +# EL NÚMERO PASÓ A SER UNA STRING! + +Excelente, ya sabemos cómo convertir cualquier número a string. + +En el siguiente ejercicio echaremos un vistazo a los **bloques condicionales**. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/numbers/problem_es.md b/problems/numbers/problem_es.md new file mode 100644 index 00000000..bbd7201b --- /dev/null +++ b/problems/numbers/problem_es.md @@ -0,0 +1,20 @@ +--- + +# NÚMEROS + +Los números pueden ser enterios, cómo `3`, `5` o `3337`, o pueden ser decimales, +cómo `3.14`, `1.5` o `100.7893423`. + +## El ejercicio: + +Crea un archivo llamado numeros.js + +En ese archivo define una variable llamada `ejemplo` qué referencie el entero `123456789`. + +Utiliza `console.log` para imprimir ese número a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify numeros.js` + +--- diff --git a/problems/numbers/solution_es.md b/problems/numbers/solution_es.md new file mode 100644 index 00000000..0496ae63 --- /dev/null +++ b/problems/numbers/solution_es.md @@ -0,0 +1,11 @@ +--- + +# YEAH! NÚMEROS! + +Genial, has definido correctamente una variable con el valor `123456789`. + +En el siguiente ejercicio miraremos cómo manipular los números. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/object-keys/solution_es.md b/problems/object-keys/solution_es.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_es.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-properties/problem_es.md b/problems/object-properties/problem_es.md new file mode 100644 index 00000000..363babe8 --- /dev/null +++ b/problems/object-properties/problem_es.md @@ -0,0 +1,47 @@ +--- + +# PROPIEDADES DE OBJETOS + +Puedes acceder y manipular propiedades de objetos –– las **llaves** y **valores** que un objeto contiene –– utilizando una forma muy similar que con arrays. + +Un ejemplo usando **corchetes**: + +```js +var ejemplo = { + programar: 'divertido' +}; + +console.log(ejemplo['programar']); +``` + +El código anterior imprimirá la string `divertido` al a terminal. + +Alternativamente, puedes usar la **notación de punto** para obtener resultados idénticos: + +```js +ejemplo.programar; + +ejemplo['programar']; +``` + +La dos líneas de código anteriores retornaran `divertido`. + +## El ejercicio: + +Crea un archivo llamado `propiedades-de-objetos.js`. + +En ese archivo, define una variable llamada `bicicleta` de la siguiente forma: + +```js +var bicicleta = { + tipos: ['todo terreno', 'de carrera', 'hipster'] +}; +``` + +Utiliza `console.log()` para imprimir la propiedad `tipos` del objeto `bicileta` a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify propiedades-de-objetos.js` + +--- diff --git a/problems/object-properties/solution_es.md b/problems/object-properties/solution_es.md new file mode 100644 index 00000000..31a6fcbc --- /dev/null +++ b/problems/object-properties/solution_es.md @@ -0,0 +1,11 @@ +--- + +# CORRECTO! LOS HIPSTERS TIENEN SU PROPIO TIPO DE BICICLETAS + +Buen trabajo accediendo a esa propiedad. + +El siguiente ejercicio es completamente acerca de **funciones**. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/objects/problem_es.md b/problems/objects/problem_es.md new file mode 100644 index 00000000..75cf5b16 --- /dev/null +++ b/problems/objects/problem_es.md @@ -0,0 +1,40 @@ +--- + +# OBJETOS + +Los objetos son en cierta forma contenedores y se los puede pensar cómo diccionarios. + +Tendrá ciertas **llaves** y cada una se verá referenciada a un **valor**. + + +Por ejemplo: + +```js +var comida = { + pizza: 'muy rica', + noquis: 'no pueden faltar los 29' +} +``` +En el ejemplo anterior podemos ver que las **llaves** del objeto `comida` son **pizza** y **noquis**. Sus valores son `muy rica` y `no pueden faltar los 29` respectivamente. + +## El ejercicio: + +Crea un archivo llamado `objetos.js`. + +En ese archivo, define una variable llamada `pizza` de la siguiente forma: + +```js +var pizza = { + ingredientes: ['queso', 'salsa de tomate', 'aceitunas'], + coccion: 'a la piedra', + porciones: 8 +} +``` + +Utiliza `console.log()` para imprimir el objeto `pizza` a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify objetos.js` + +--- diff --git a/problems/objects/solution_es.md b/problems/objects/solution_es.md new file mode 100644 index 00000000..07bf69b6 --- /dev/null +++ b/problems/objects/solution_es.md @@ -0,0 +1,13 @@ +--- + +# EL OBJETO PIZZA ES UN ÉXITO. + +Creaste correctamente un objeto! + +Cómo habrás notado, los valores que pueden tomar las **llaves** de un objeto pueden ser cualquiera: un número, un array, una string, una función e incluso otro objeto. + +En el siguiente ejercicio nos concentraremos en acceder a propiedades de los objetos. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/revising-strings/problem_es.md b/problems/revising-strings/problem_es.md new file mode 100644 index 00000000..a99b9a5e --- /dev/null +++ b/problems/revising-strings/problem_es.md @@ -0,0 +1,35 @@ +--- + +# MODIFICANDO STRINGS + +A menudo necesitarás cambiar el contenido de una string. + +Las strings tienen una funcionalidad por defecto que te permite reemplazar caracteres. + +Por ejemplo a continuación veremos un uso del método `replace`: + +```js +var ejemplo = 'este ejemplo es simple'; +ejemplo = ejemplo.replace('simple', 'genial'); +console.log(ejemplo); +``` + +Nota que para cambiar el valor que la variable `ejemplo` referencia, +necesitamos utilizar el signo de igualdad de nuevo, esta vez con el resultado +del método `ejemplo.replace` del lado derecho del signo. + +## El ejercicio: + +Crea un archivo llamado `modificando-strings.js`. + +Define una variable llamada `pizza` que referencie esta string: `la pizza es rica` + +Utiliza el método `.replace()` para cambiar `rica` con `exquisita`. + +Luego, utiliza `console.log` para imprimir los resultados del método `replace` a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify modificando-strings.js` + +--- diff --git a/problems/revising-strings/solution_es.md b/problems/revising-strings/solution_es.md new file mode 100644 index 00000000..f4fd4051 --- /dev/null +++ b/problems/revising-strings/solution_es.md @@ -0,0 +1,11 @@ +--- + +# SI, SEÑOR! LA PIZZA ES EXQUISITA + +¡Bien hecho con ese método `replace`! + +A continuación exploraremos los **números**. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/rounding-numbers/problem_es.md b/problems/rounding-numbers/problem_es.md new file mode 100644 index 00000000..d905a875 --- /dev/null +++ b/problems/rounding-numbers/problem_es.md @@ -0,0 +1,31 @@ +--- + +# REDONDEANDO NÚMEROS + +Los operadores básicos son `+`, `-`, `*`, `/`, y `%`. + +Para operaciones más complejas, podemos usar el objeto `Math`. + +## El ejercicio: + +Crea un archivo llamado redondeando-numeros.js. + +En ese archivo define una variable llamada `decimal` que referencie el número decimal `1.5`. + +Usaremos el método `Math.round` para redondear el número. + +Un ejemplo de `Math.round`: + +```js +Math.round(0.5); +``` + +Define una segunda variable llamada `redondeado` que referencie lo que retorna el método `Math.round()`, pasando la variable `decimal` cómo argumento. + +Utiliza `console.log` para imprimir el número a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente commando: + +`javascripting verify redondeando-numeros.js` + +--- diff --git a/problems/rounding-numbers/solution_es.md b/problems/rounding-numbers/solution_es.md new file mode 100644 index 00000000..53a26049 --- /dev/null +++ b/problems/rounding-numbers/solution_es.md @@ -0,0 +1,11 @@ +--- + +# ESE NÚMERO ESTÁ REDONDEADO + +¡Redondeaste el número `1.5` a `2`! + +En el siguiente ejercicio convertiremos un número a una string. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/string-length/problem_es.md b/problems/string-length/problem_es.md new file mode 100644 index 00000000..ff12751d --- /dev/null +++ b/problems/string-length/problem_es.md @@ -0,0 +1,32 @@ +--- + +# LONGITUD DE STRINGS + +Muy seguido necesitarás saber cuantos caracteres hay en una string. + +Para esto, usarás la propiedad `length`. Por ejemplo: + +```js +var ejemplo = 'una string'; +console.log(ejemplo.length); +``` + +El ejemplo anterior imprimirá el número 10 a la consola. + +Asegurate de que siempre haya un punto entre la variable y la propiedad `length`. + +## El ejercicio + +Crea un archivo llamado string-length.js. + +En ese archivo, declará una variable llamada `ejemplo`. + +**Haz que la variable `ejemplo` referencie el valor `string de ejemplo`.** + +Utiliza `console.log` para imprimir el **length** de la string a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify string-length.js` + +--- diff --git a/problems/string-length/solution_es.md b/problems/string-length/solution_es.md new file mode 100644 index 00000000..42372bb4 --- /dev/null +++ b/problems/string-length/solution_es.md @@ -0,0 +1,9 @@ +--- + +# WIN: 17 CARACTERES + +Lo hiciste! La string `una string de ejemplo` tiene 17 caracteres. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md new file mode 100644 index 00000000..91e2fa6e --- /dev/null +++ b/problems/strings/problem_es.md @@ -0,0 +1,33 @@ +--- + +# STRINGS + +Una **string** representa una cadena de caracteres y se puede definir con comillas dobles o simples. + +Por ejemplo: + +```js +'esto es una string' + +"esto también es una string" +``` + +Trata de permanecer consistente. En este workshop usaremos comillas simples. + +## El ejercicio + +Para este ejercicio, crea un archivo llamado `strings.js`. + +En ese archivo define una variable llamada `string1` de la siguiente forma: + +```js +var string1 = 'esto es una string'; +``` + +Utiliza `console.log` para imprimir la variable `string1` a la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify strings.js` + +--- diff --git a/problems/strings/solution_es.md b/problems/strings/solution_es.md new file mode 100644 index 00000000..66d3561a --- /dev/null +++ b/problems/strings/solution_es.md @@ -0,0 +1,11 @@ +--- + +# EXCELENTE. + +¡Te estas acostumbrando a esto de las strings! + +En el siguiente ejercicio cubriremos cómo manipular strings. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- diff --git a/problems/variables/problem_es.md b/problems/variables/problem_es.md new file mode 100644 index 00000000..228b755b --- /dev/null +++ b/problems/variables/problem_es.md @@ -0,0 +1,35 @@ +--- + +# VARIABLES + +Una variable es una referencia a un valor. Define una variable usando la palabra reservada `var`. + +Por ejemplo: +```js +var example; +``` + +La variable anterior es **declarada**, pero no definida. + +A continuación damos un ejemplo de cómo definir una variable, haciendo que referencie a un valor específico: + +```js +var example = 'una string'; +``` + +Nota que empieza con la palabra reserva `var` y usa el signo de igualdad entre en nombre de la variable y el valor que referencia. + +## El ejercicio + +Crea un archivo llamado `variables.js` + +En ese archivo crea una variable llamada `ejemplo`. + +**Haz que la variable `ejemplo` referencie el valor `una string`.** + +Luego usa `console.log()` para imprimir la variable `ejemplo` a la consola. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify variables.js` +--- diff --git a/problems/variables/solution_es.md b/problems/variables/solution_es.md new file mode 100644 index 00000000..1e828b4f --- /dev/null +++ b/problems/variables/solution_es.md @@ -0,0 +1,11 @@ +--- + +# CREASTE UNA VARIABLE! + +Buen trabajo. + +En el siguiente ejercicio trabajaremos más en profundidad con strings. + +Ejecuta `javascripting` en la terminal para seleccionar el sigueinte ejercicio. + +--- From bbf909c2efd9cfb2c9b53117ac0dbb6b7089f32a Mon Sep 17 00:00:00 2001 From: Shim Won Date: Sun, 12 Apr 2015 12:33:58 +0900 Subject: [PATCH 051/346] Add Korean Translation --- i18n/ko.json | 22 ++++++++ index.js | 2 +- problems/accessing-array-values/problem_ko.md | 51 +++++++++++++++++++ .../accessing-array-values/solution_ko.md | 11 ++++ problems/array-filtering/problem_ko.md | 49 ++++++++++++++++++ problems/array-filtering/solution_ko.md | 11 ++++ problems/arrays/problem_ko.md | 23 +++++++++ problems/arrays/solution_ko.md | 11 ++++ problems/for-loop/problem_ko.md | 43 ++++++++++++++++ problems/for-loop/solution_ko.md | 12 +++++ problems/function-arguments/problem_ko.md | 40 +++++++++++++++ problems/function-arguments/solution_ko.md | 9 ++++ problems/function-return-values/problem_ko.md | 5 ++ .../function-return-values/solution_ko.md | 5 ++ problems/functions/problem_ko.md | 41 +++++++++++++++ problems/functions/solution_ko.md | 9 ++++ problems/if-statement/problem_ko.md | 35 +++++++++++++ problems/if-statement/solution_ko.md | 11 ++++ problems/introduction/problem_ko.md | 32 ++++++++++++ problems/introduction/solution_ko.md | 21 ++++++++ problems/looping-through-arrays/problem_ko.md | 49 ++++++++++++++++++ .../looping-through-arrays/solution_ko.md | 11 ++++ problems/number-to-string/problem_ko.md | 28 ++++++++++ problems/number-to-string/solution_ko.md | 11 ++++ problems/numbers/problem_ko.md | 19 +++++++ problems/numbers/solution_ko.md | 11 ++++ problems/object-keys/problem_ko.md | 5 ++ problems/object-keys/solution_ko.md | 5 ++ problems/object-properties/problem_ko.md | 47 +++++++++++++++++ problems/object-properties/solution_ko.md | 11 ++++ problems/objects/problem_ko.md | 38 ++++++++++++++ problems/objects/solution_ko.md | 11 ++++ problems/revising-strings/problem_ko.md | 33 ++++++++++++ problems/revising-strings/solution_ko.md | 11 ++++ problems/rounding-numbers/problem_ko.md | 33 ++++++++++++ problems/rounding-numbers/solution_ko.md | 11 ++++ problems/scope/problem_ko.md | 5 ++ problems/scope/solution_ko.md | 5 ++ problems/strings/problem_ko.md | 34 +++++++++++++ problems/strings/solution_ko.md | 11 ++++ problems/this/problem_ko.md | 5 ++ problems/this/solution_ko.md | 5 ++ problems/variables/problem_ko.md | 39 ++++++++++++++ problems/variables/solution_ko.md | 11 ++++ 44 files changed, 891 insertions(+), 1 deletion(-) create mode 100644 i18n/ko.json create mode 100644 problems/accessing-array-values/problem_ko.md create mode 100644 problems/accessing-array-values/solution_ko.md create mode 100644 problems/array-filtering/problem_ko.md create mode 100644 problems/array-filtering/solution_ko.md create mode 100644 problems/arrays/problem_ko.md create mode 100644 problems/arrays/solution_ko.md create mode 100644 problems/for-loop/problem_ko.md create mode 100644 problems/for-loop/solution_ko.md create mode 100644 problems/function-arguments/problem_ko.md create mode 100644 problems/function-arguments/solution_ko.md create mode 100644 problems/function-return-values/problem_ko.md create mode 100644 problems/function-return-values/solution_ko.md create mode 100644 problems/functions/problem_ko.md create mode 100644 problems/functions/solution_ko.md create mode 100644 problems/if-statement/problem_ko.md create mode 100644 problems/if-statement/solution_ko.md create mode 100644 problems/introduction/problem_ko.md create mode 100644 problems/introduction/solution_ko.md create mode 100644 problems/looping-through-arrays/problem_ko.md create mode 100644 problems/looping-through-arrays/solution_ko.md create mode 100644 problems/number-to-string/problem_ko.md create mode 100644 problems/number-to-string/solution_ko.md create mode 100644 problems/numbers/problem_ko.md create mode 100644 problems/numbers/solution_ko.md create mode 100644 problems/object-keys/problem_ko.md create mode 100644 problems/object-keys/solution_ko.md create mode 100644 problems/object-properties/problem_ko.md create mode 100644 problems/object-properties/solution_ko.md create mode 100644 problems/objects/problem_ko.md create mode 100644 problems/objects/solution_ko.md create mode 100644 problems/revising-strings/problem_ko.md create mode 100644 problems/revising-strings/solution_ko.md create mode 100644 problems/rounding-numbers/problem_ko.md create mode 100644 problems/rounding-numbers/solution_ko.md create mode 100644 problems/scope/problem_ko.md create mode 100644 problems/scope/solution_ko.md create mode 100644 problems/strings/problem_ko.md create mode 100644 problems/strings/solution_ko.md create mode 100644 problems/this/problem_ko.md create mode 100644 problems/this/solution_ko.md create mode 100644 problems/variables/problem_ko.md create mode 100644 problems/variables/solution_ko.md diff --git a/i18n/ko.json b/i18n/ko.json new file mode 100644 index 00000000..88a1d787 --- /dev/null +++ b/i18n/ko.json @@ -0,0 +1,22 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUCTION" + , "VARIABLES": "VARIABLES" + , "STRINGS": "STRINGS" + , "STRING LENGTH": "STRING LENGTH" + , "REVISING STRINGS": "REVISING STRINGS" + , "NUMBERS": "NUMBERS" + , "ROUNDING NUMBERS": "ROUNDING NUMBERS" + , "NUMBER TO STRING": "NUMBER TO STRING" + , "IF STATEMENT": "IF STATEMENT" + , "FOR LOOP": "FOR LOOP" + , "ARRAYS": "ARRAYS" + , "ARRAY FILTERING": "ARRAY FILTERING" + , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" + , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" + , "OBJECTS": "OBJECTS" + , "OBJECT PROPERTIES": "OBJECT PROPERTIES" + , "FUNCTIONS": "FUNCTIONS" + , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" + } +} \ No newline at end of file diff --git a/index.js b/index.js index c9b8cd84..73359d80 100755 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ var adventure = require('workshopper-adventure/adventure'); var jsing = adventure({ name: 'javascripting' , appDir: __dirname - , languages: ['en', 'ja'] + , languages: ['en', 'ja', 'ko'] }); var problems = require('./menu.json'); diff --git a/problems/accessing-array-values/problem_ko.md b/problems/accessing-array-values/problem_ko.md new file mode 100644 index 00000000..51309648 --- /dev/null +++ b/problems/accessing-array-values/problem_ko.md @@ -0,0 +1,51 @@ +--- + +# 배열 값에 접근하기 + +배열 요소는 인덱스 숫자로 접근 할 수 있습니다. + +인덱스 숫자는 0에서 시작해 "배열의 프로퍼티 길이 - 1"까지 입니다. + +여기 예제가 있습니다. + + +```js + var pets = ['cat', 'dog', 'rat']; + + console.log(pets[0]); +``` + +위의 코드는 `pet`의 첫번째 요소인 `cat` 문자열을 출력할 것입니다. + +배열 요소는 각괄호 노테이션을 사용해 접근해야만 합니다. + +`.` 노테이션은 유효하지 않습니다. + +유효한 노테이션 + +```js + console.log(pets[0]); +``` + +유효하지 않은 노테이션 +``` + console.log(pets.1); +``` + +## 도전 과제 + +`accessing-array-values.js`라는 이름의 파일을 만듭니다. + +그 파일에서, `food`라는 배열을 정의합니다. +```js +var food = ['apple', 'pizza', 'pear']; +``` + + +`console.log()`를 사용해 배열의 `두 번째` 값을 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify accessing-array-values.js` + +--- diff --git a/problems/accessing-array-values/solution_ko.md b/problems/accessing-array-values/solution_ko.md new file mode 100644 index 00000000..fc26ab61 --- /dev/null +++ b/problems/accessing-array-values/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 배열의 두번째 요소가 출력되었습니다! + +잘 하셨습니다. 배열의 요소에 접근했습니다. + +다음 과제에서는 배열로 루프를 돌리는 예제를 다루어 보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/array-filtering/problem_ko.md b/problems/array-filtering/problem_ko.md new file mode 100644 index 00000000..070d0d0c --- /dev/null +++ b/problems/array-filtering/problem_ko.md @@ -0,0 +1,49 @@ +--- + +# 배열 필터 + +배열을 조작하는 방법은 여러가지가 있습니다. + +대표적인 사용법으로 특정 값만 가진 배열로 필터링하는 것이 있습니다. + +이걸 하기위해 `.filter()` 메소드를 사용할 수 있습니다. + +여기에 예제가 있습니다. + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +`filtered` 변수는 이제 `cat`과 `dog`만 가지고 있습니다. + +## 도전 과제 + +`array-filtering.js`라는 이름의 파일을 만듭니다. + +이 파일에 밑의 배열을 참조하는 `numbers`라는 변수를 정의합니다. + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +위에 있는 것 처럼, `numbers.filter()`의 결과를 참조하는 `filtered`라는 변수를 선언합니다. + +`.filter()` 메소드에 이렇게 생긴 함수를 넘깁니다. + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +`console.log()`를 사용해 `filtered` 배열을 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify array-filtering.js` + +--- diff --git a/problems/array-filtering/solution_ko.md b/problems/array-filtering/solution_ko.md new file mode 100644 index 00000000..ef52b3a5 --- /dev/null +++ b/problems/array-filtering/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 필터링 성공! + +잘 하셨습니다. 배열을 필터링 하셨습니다. + +다음 과제에서는 배열 값을 접근하는 예제를 다루어 보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/arrays/problem_ko.md b/problems/arrays/problem_ko.md new file mode 100644 index 00000000..66be6961 --- /dev/null +++ b/problems/arrays/problem_ko.md @@ -0,0 +1,23 @@ +--- + +# 배열 + +배열은 값의 목록입니다. 여기에 예게자 있습니다. + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +### 도전 과제 + +`arrays.js`라는 이름의 파일을 만듭니다. + +In that file define a variable named `pizzaToppings` that references an array that contains three strings in this order: `tomato sauce, cheese, pepperoni`. + +Use `console.log()` to print the `pizzaToppings` array to the terminal. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify arrays.js` + +--- diff --git a/problems/arrays/solution_ko.md b/problems/arrays/solution_ko.md new file mode 100644 index 00000000..d926af59 --- /dev/null +++ b/problems/arrays/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 야호, 피자 배열! + +성공적으로 배열을 만들었습니다! + +다음 과제에서는 배열의 필터링을 살펴보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/for-loop/problem_ko.md b/problems/for-loop/problem_ko.md new file mode 100644 index 00000000..5eeb107f --- /dev/null +++ b/problems/for-loop/problem_ko.md @@ -0,0 +1,43 @@ +--- + +# FOR 루프 + +for 루프는 이렇게 생겼습니다. + +```js +for (var i = 0; i < 10; i++) { + // log the numbers 0 through 9 + console.log(i) +} +``` + +`i` 변수는 루프 변수가 몇 번이나 실행 되었는지 추적하는데 사용합니다. + +`i < 10;` 구문은 루프의 한계를 가리킵니다. +이 루프는 `i`가 `10`보다 작을 때만 계속됩니다. + +`i++` 구문은 반복할 때 마다 `i`를 증가시킵니다. + +## 도전 과제 + +`for-loop.js`라는 파일을 만듭니다. + +그 파일안에서 `total`이라는 변수를 선언하고 그 변수를 숫자 `0`과 같게 합니다. + +`limit`라는 이름의 두번째 변수를 선언하고 숫자 `10`과 같게 합니다. + +변수 `i`가 0부터 시작해 1씩 증가하는 for 루프를 만듭니다. 이 루프는 `i`가 `limit`보다 작을 동안만 실행됩니다. + +각 반복마다 숫자 `i`를 `total` 변수에 더합니다. 이렇게하려면, 이 구문을 사용하시면 됩니다. + +```js +total += i; +``` + +for 루프 다음에, `console.log()`를 사용해 `total` 변수를 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify for-loop.js` + +--- diff --git a/problems/for-loop/solution_ko.md b/problems/for-loop/solution_ko.md new file mode 100644 index 00000000..519eda65 --- /dev/null +++ b/problems/for-loop/solution_ko.md @@ -0,0 +1,12 @@ +--- + +# 총합은 45 입니다 + +이는 for 루프의 기본적인 소개였습니다. 이는 여러가지 상황에서 유용합니다. 특히 +문자열이나 배열같은 다른 데이터 타입과 조합할 때 유용합니다. + +다음 과제에서는 **배열**을 다루기 시작하겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/function-arguments/problem_ko.md b/problems/function-arguments/problem_ko.md new file mode 100644 index 00000000..3e3a7799 --- /dev/null +++ b/problems/function-arguments/problem_ko.md @@ -0,0 +1,40 @@ +--- + +# 함수 인자 + +함수는 몇 개의 인자도 받도록 선언할 수 있습니다. 인자는 어떤 타입도 사용 가능합니다. 인자는 문자열, 숫자, 배열, 객체이거나 심지어 다른 함수일 수도 있습니다. + +여기 예제가 있습니다. + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +우리는 두개의 인자를 가지는 함수를 이렇게 **호출**할 수 있습니다. + +```js +example('hello', 'world'); +``` + +위 예제는 터미널에 `hello world`를 출력할 것 입니다. + +## 도전 과제 + +`function-arguments.js`라는 이름의 파일을 만듭니다.. + +이 파일에서는 3개의 인자를 받는 `math`라는 이름의 함수를 선언합니다. 인자 이름은 +참조로만 사용하는 것을 이해하는 것은 중요합니다. + +각 인자는 좋아하는 이름을 지으세요. + +`math` 함수는 두번째와 세번째 인자를 곱하고, 곱한 값에 첫번째 인자를 더해 얻은 결과를 출력합니다. + +그런 이후, `console.log()`의 괄호안에서 첫번째 인자로 `53`, 두번째로 숫자 `61`, 3번째인자로 `67`을 받는 `math()`함수를 호출합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify function-arguments.js` + +--- diff --git a/problems/function-arguments/solution_ko.md b/problems/function-arguments/solution_ko.md new file mode 100644 index 00000000..41ac5ee8 --- /dev/null +++ b/problems/function-arguments/solution_ko.md @@ -0,0 +1,9 @@ +--- + +# 인자를 다룰수 있게 되었습니다! + +예제를 잘 완료하셨습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/function-return-values/problem_ko.md b/problems/function-return-values/problem_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_ko.md b/problems/function-return-values/solution_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_ko.md b/problems/functions/problem_ko.md new file mode 100644 index 00000000..1dce86b9 --- /dev/null +++ b/problems/functions/problem_ko.md @@ -0,0 +1,41 @@ +--- + +# 함수 + +함수는 입력을 받는 코드의 블럭입니다. 그 입력을 처리해서 출력을 만듭니다. + +여기에 예제가 있습니다. + +```js +function example (x) { + return x * 2; +} +``` + +이렇게 함수를 **호출**하면 숫자 10을 얻을 수 있습니다. + +```js +example(5) +``` + +위의 예제는 `example` 함수가 숫자를 인자 (입력)로 받아 그 숫자에 2를 곱한 값을 반환합니다. + +## 도전 과제 + +`functions.js`라는 파일을 만듭니다. + +그 파일에서 문자열이어야 하는 `food`라는 이름의 인자를 받는 `eat`이라는 파일을 선언합니다. + +함수 안에서 `food` 인자를 이렇게 반환합니다. + +```js +return food + ' tasted really good.'; +``` + +`console.log()`의 괄호안에서 문자열 `bananas`를 인자로 하는 `eat()` 함수를 호출합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify functions.js` + +--- diff --git a/problems/functions/solution_ko.md b/problems/functions/solution_ko.md new file mode 100644 index 00000000..f702bd6a --- /dev/null +++ b/problems/functions/solution_ko.md @@ -0,0 +1,9 @@ +--- + +# 오우 바나나 + +해내셨습니다! 입력을 받아 입력을 처리해 출력을 제공하는 함수를 만들었습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/if-statement/problem_ko.md b/problems/if-statement/problem_ko.md new file mode 100644 index 00000000..7cd0a4d2 --- /dev/null +++ b/problems/if-statement/problem_ko.md @@ -0,0 +1,35 @@ +--- + +# IF 구문 + +지정된 불린 조건을 기반으로 조건 문은 프로그램의 제어 흐름에 사용됩니다. + +조건문은 이렇습니다. + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +괄호 안에 반드시 로직 구문을 넣어야 합니다. 구문의 결과는 true나 false로 끝나야 합니다. + +else 블록은 생략가능하며 구문이 false일 경우 실행될 코드가 들어갑니다. + +## 도전 과제 + +`if-statement.js`라는 파일을 만듭니다. + +이 파일 안에서, `fruit`라는 이름의 변수를 선언합니다. + +`fruit` 변수가 문자열 타입의 **orange** 라는 값을 참조하도록 하세요. + +그리고 `console.log()`로 `fruit`의 값의 길이가 5보다 크면 **"The fruit name has more than five characters."** 를 출력하고, 그렇지 않은 경우엔 "**The fruit name has five characters or less.**"를 출력하세요. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify if-statement.js` + +--- diff --git a/problems/if-statement/solution_ko.md b/problems/if-statement/solution_ko.md new file mode 100644 index 00000000..e9497284 --- /dev/null +++ b/problems/if-statement/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 조건절 정복 + +해내셨습니다! `orange` 문자열은 5개이상의 문자를 가지고 있습니다. + +다음엔 **for 루프**를 처리할 준비가 되었습니다! + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md new file mode 100644 index 00000000..848ca0a9 --- /dev/null +++ b/problems/introduction/problem_ko.md @@ -0,0 +1,32 @@ +--- +# 소개 + +정돈을 위해 이 워크숍을 위한 폴더를 만듭시다. + +이 명령어를 실행해 `javascripting`이라는 디렉토리(다른 이름이어도 됩니다)를 만드세요. + +`mkdir javascripting` + +`javascripting` 폴더 안으로 디렉토리를 변경하세요. + +`cd javascripting` + +`introduction.js`이라는 파일을 만드세요. + +`touch introduction.js` 윈도우라면 `type NUL > introduction.js` (`type`도 명령어의 일부입니다!) + +좋아하는 편집기에서 파일을 열고 다음 내용을 넣으세요. + +```js +console.log('hello'); +``` + +파일을 저장하고 프로그램이 올바른지 다음 명령어를 실행해 확인하세요. + +`javascripting verify introduction.js` + +--- + + + +> **도움이 필요하신가요?** 이 워크숍의 README를 확인하세요. http://github.com/sethvincent/javascripting diff --git a/problems/introduction/solution_ko.md b/problems/introduction/solution_ko.md new file mode 100644 index 00000000..1d4d6500 --- /dev/null +++ b/problems/introduction/solution_ko.md @@ -0,0 +1,21 @@ +--- + +# 해냈습니다! + +`console.log()`의 괄호 사이에 어떤 것이라도 터미널에 출력됩니다. + +그래서 + +```js +console.log('hello'); +``` + +는 `hello`를 터미널에 출력합니다. + +현재 `hello`라는 케릭터의 **문자열**을 터미널에 출력했습니다. + +다음 과제에서는 **변수**를 배우는데 초점을 맞추겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/looping-through-arrays/problem_ko.md b/problems/looping-through-arrays/problem_ko.md new file mode 100644 index 00000000..b2c6dc77 --- /dev/null +++ b/problems/looping-through-arrays/problem_ko.md @@ -0,0 +1,49 @@ +--- + +# 배열을 루프하기 + +이 도전 과제에서는 **for 루프**를 사용해 배열에 있는 값의 목록에 접근하고 조작하겠습니다. + +배열 값에 접근하는것은 정수를 사용해 할 수 있습니다. + +배열안의 각 아이템은 `0`으로 시작하는 숫자로 확인할 수 있습니다. + +그래서 이 배열의 `hi`는 숫자 `1`로 확인할 수 있습니다. + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +이렇게 접근할 수 있습니다. + +```js +greetings[1]; +``` + +**for 루프**안에서는 숫자 그대로 사용하지 않고 `i` 변수를 각괄호안에서 사용합니다. + +## 도전 과제 + +`looping-through-arrays.js`라는 파일을 만듭니다. + +이 파일안에서 다음 배열을 참조하는 `pets`라는 이름의 변수를 선언합니다. + +```js +['cat', 'dog', 'rat']; +``` + +for 루프를 만들어 복수형이 되도록 각 문자열을 변경하세요. + +루프안에서 이런 구문을 사용하시면 됩니다. + +```js +pets[i] = pets[i] + 's'; +``` + +루프 뒤에 `console.log()`로 `pets` 배열을 터미널에 출력하세요. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify looping-through-arrays.js` + +--- diff --git a/problems/looping-through-arrays/solution_ko.md b/problems/looping-through-arrays/solution_ko.md new file mode 100644 index 00000000..9d94cc7c --- /dev/null +++ b/problems/looping-through-arrays/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 많은 애완동물! 성공적! + +이제 `pets` 배열의 모든 아이템은 복수형입니다! + +다음 도전 과제에서는 배열에서 **객체**로 이동하겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/number-to-string/problem_ko.md b/problems/number-to-string/problem_ko.md new file mode 100644 index 00000000..5c747275 --- /dev/null +++ b/problems/number-to-string/problem_ko.md @@ -0,0 +1,28 @@ +--- + +# 숫자에서 문자열으로 + +가끔 숫자를 문자열로 변경할 필요가 있을때가 있습니다. + +그런 경우에 `.toString()` 메소드를 사용하면 됩니다. 예제를 보세요. + +```js +var n = 256; +n = n.toString(); +``` + +## 도전 과제 + +`number-to-string.js`라는 파일을 만듭니다. + +그 파일 안에서 숫자 `128`를 참조하는 `n`이라는 이름의 변수를 선언합니다. + +`n` 변수에 `.toString()` 메소드를 호출합니다. + +`console.log()`를 사용해 `.toString()` 메소드의 결과를 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify number-to-string.js` + +--- diff --git a/problems/number-to-string/solution_ko.md b/problems/number-to-string/solution_ko.md new file mode 100644 index 00000000..12435bab --- /dev/null +++ b/problems/number-to-string/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 그 숫자는 이제 문자열입니다! + +훌륭합니다. 아주 잘 숫자를 문자열로 변경하셨습니다. + +다음 과제에서는 **if 문**을 살펴보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/numbers/problem_ko.md b/problems/numbers/problem_ko.md new file mode 100644 index 00000000..710edd31 --- /dev/null +++ b/problems/numbers/problem_ko.md @@ -0,0 +1,19 @@ +--- + +# 숫자 + +숫자는 `2`, `14`, `4353`같은 정수이거나 십진수이거나 `3.14`, `1.5`, `100.7893423`같은 실수일 수 있습니다. + +## 도전 과제 + +`numbers.js`라는 파일을 만드세요. + +그 파일 안에서 정수 `123456789`를 참조하는 `example`이라는 변수를 선언하세요. + +`console.log()`를 사용해 숫자를 터미널에 출력하세요. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify numbers.js` + +--- diff --git a/problems/numbers/solution_ko.md b/problems/numbers/solution_ko.md new file mode 100644 index 00000000..02032708 --- /dev/null +++ b/problems/numbers/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 야호! 숫자! + +좋네요, 성공적으로 숫자 `123456789`를 변수로 선언했습니다. + +다음 과제에서는 숫자를 조작해보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/object-keys/problem_ko.md b/problems/object-keys/problem_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_ko.md b/problems/object-keys/solution_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-properties/problem_ko.md b/problems/object-properties/problem_ko.md new file mode 100644 index 00000000..d3e552c6 --- /dev/null +++ b/problems/object-properties/problem_ko.md @@ -0,0 +1,47 @@ +--- + +# 객체 속성 + +배열과 매우 비슷한 방법으로 객체의 속성(객체가 가지고 있는 키와 값)을 접근하고 조작할 수 있습니다. + +**대 괄호**를 사용하는 예제입니다. + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +위의 코드는 문자열 `'yummy'`를 터미널에 출력합니다. + +아니면, **점(.) 구문**으로 같은 결과를 얻을 수 있습니다. + +```js +example.pizza; + +example['pizza']; +``` + +위에 있는 두 줄의 코드는 양쪽다 `yummy`를 반환합니다. + +## 도전 과제 + +`object-properties.js`라는 파일을 만듭니다. + +파일 안에서 `food`라는 변수를 이렇게 정의합니다. + +```js +var food = { + types: 'only pizza' +}; +``` + +`console.log()`을 사용해 `food` 객체의 `types` 속성을 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify object-properties.js` + +--- diff --git a/problems/object-properties/solution_ko.md b/problems/object-properties/solution_ko.md new file mode 100644 index 00000000..8744b368 --- /dev/null +++ b/problems/object-properties/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# CORRECT. PIZZA IS THE ONLY FOOD. + +Good job accessing that property. + +The next challenge is all about **functions**. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/objects/problem_ko.md b/problems/objects/problem_ko.md new file mode 100644 index 00000000..26426a50 --- /dev/null +++ b/problems/objects/problem_ko.md @@ -0,0 +1,38 @@ +--- + +# 객체 + +객체는 배열과 비슷한 값의 목록입니다. 배열과 다른 점은 정수대신 키를 사용해 값을 +확인하는 점입니다. + +예제를 보세요. + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +} +``` + +## 도전 과제 + +`objects.js`라는 파일을 만듭니다. + +파일 안에서 이렇게 `pizza`라는 변수를 정의합니다. + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} +``` + +`console.log()`를 사용해 `pizza` 객체를 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify objects.js` + + +--- diff --git a/problems/objects/solution_ko.md b/problems/objects/solution_ko.md new file mode 100644 index 00000000..288a52e0 --- /dev/null +++ b/problems/objects/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# PIZZA OBJECT IS A GO. + +You successfully created an object! + +In the next challenge we will focus on accessing object properties. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/revising-strings/problem_ko.md b/problems/revising-strings/problem_ko.md new file mode 100644 index 00000000..c4947993 --- /dev/null +++ b/problems/revising-strings/problem_ko.md @@ -0,0 +1,33 @@ +--- + +# 문자열 뒤집기 + +문자열의 내용을 바꿀 경우가 종종 생깁니다. + +문자열은 내용을 조작하고 살펴보는 내장 기능을 가지고 있습니다. + +`.replace()` 메소드를 사용하는 예제입니다. + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +`example` 변수가 참조하는 값을 바꾸는 것에 주의하세요. 등호를 다시 사용해야 합니다. 이 번에는 `example.replace()` 메소드를 등호의 오른편에 두었습니다. + +## 도전 과제 + +`revising-strings.js`라는 파일을 만드세요. + +`pizza is alright` 문자열을 참조하는 `pizza`라는 변수를 정의합니다. + +`.replace()` 메소드를 사용해 `alright`을 `wonderful`로 바꿉니다. + +`console.log()`를 사용해 `.replace()` 메소드의 결과를 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify revising-strings.js` + +--- diff --git a/problems/revising-strings/solution_ko.md b/problems/revising-strings/solution_ko.md new file mode 100644 index 00000000..d5655576 --- /dev/null +++ b/problems/revising-strings/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 네, 피자는 환상적입니다. + +`.replace()` 메소드로 잘하셨습니다! + +다음은 **숫자**를 살펴보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/rounding-numbers/problem_ko.md b/problems/rounding-numbers/problem_ko.md new file mode 100644 index 00000000..54836d1b --- /dev/null +++ b/problems/rounding-numbers/problem_ko.md @@ -0,0 +1,33 @@ +--- + +# 숫자 반올림 + +`+`, `-`, `*`, `/`, `%`같은 익숙한 연산자를 사용해 기본적인 연산을 할 수 있습니다. + +더 복잡한 연산은 `Math` 객체를 사용해 할 수 있습니다. + +이 과제에서는 `Math`를 사용해 숫자를 반올림 해보겠습니다. + +## 도전 과제 + +`rounding-numbers.js`라는 파일을 만듭니다. + +이 파일안에서 실수 `1.5`를 참조하는 `roundUp`라는 변수를 선언합니다. + +`Math.round()` 메소드를 이용해 숫자를 반올림합니다. + +`Math.round()`을 사용하는 예입니다. + +```js +Math.round(0.5); +``` + +`roundUp` 변수를 인자로 `Math.round()` 메소드에 넘긴 결과를 참조하는 `rounded`라는 두번째 변수를 정의합니다. + +`console.log()`를 사용해 숫자를 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify rounding-numbers.js` + +--- diff --git a/problems/rounding-numbers/solution_ko.md b/problems/rounding-numbers/solution_ko.md new file mode 100644 index 00000000..0a366b4e --- /dev/null +++ b/problems/rounding-numbers/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 숫자를 반올림했습니다. + +넵, 숫자 `1.5`를 `2`로 반올림 했습니다. 잘했어요. + +다음 과제에서는 숫자를 문자열로 바꾸겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/scope/problem_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/scope/solution_ko.md b/problems/scope/solution_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/scope/solution_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md new file mode 100644 index 00000000..9fb1d30d --- /dev/null +++ b/problems/strings/problem_ko.md @@ -0,0 +1,34 @@ +--- + +# 문자열 + +**문자열**은 따옴표로 감싸진 값입니다. + +이는 홀따옴표도 될 수 있고 쌍따옴표도 될수 있습니다. + +```js +'this is a string' + +"this is also a string" +``` +# 주의 + +일관성을 유지하도록 노력해보세요. 이 워크숍에서는 홀따옴표만 사용하도록 하겠습니다. + +## 도전 과제 + +이 과제를 위해 `strings.js`라는 파일을 만드세요. + +그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면됩니다. + +```js +var someString = 'this is a string'; +``` + +`console.log`를 사용해 **someString** 변수를 터미널에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify strings.js` + +--- diff --git a/problems/strings/solution_ko.md b/problems/strings/solution_ko.md new file mode 100644 index 00000000..cb50dc6c --- /dev/null +++ b/problems/strings/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 성공적. + +문자열에 익숙해지고 있습니다! + +다음 과제에서는 문자열을 조작하는 방법을 살펴보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- diff --git a/problems/this/problem_ko.md b/problems/this/problem_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_ko.md b/problems/this/solution_ko.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_ko.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/variables/problem_ko.md b/problems/variables/problem_ko.md new file mode 100644 index 00000000..cd89ab35 --- /dev/null +++ b/problems/variables/problem_ko.md @@ -0,0 +1,39 @@ +--- + +# 변수 + +변수는 특정 값을 참조하는 이름입니다. 변수는 `var`와 변수의 이름으로 선언합니다. + +예제를 보세요. + +```js +var example; +``` + +위 변수는 **선언**되었지만, 정의되지는 않았습니다.(아직 특정 값을 참조하지 않았습니다.) + +특정 값을 참조하게 만든, 변수를 정의하는 예제입니다. + +```js +var example = 'some string'; +``` + +# 주의 + +변수는 `var`를 사용해 **선언**하고 등호(`=`)를 이용해 참조하는 값을 넣어 **정의**합니다. "변수는 값과 같게 만든다."라고 읽을 수 있습니다. + +## 도전 과제 + +`variables.js`라는 파일을 만듭니다. + +그 파일안에서 `example`라는 변수를 선언합니다. + +**`example` 변수를 `'some string'` 값과 같게 만듭니다.** +**Make the variable `example` equal to the value `'some string'`.** + +그리고 `console.log()`로 `example` 변수를 콘솔에 출력합니다. + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify variables.js` +--- diff --git a/problems/variables/solution_ko.md b/problems/variables/solution_ko.md new file mode 100644 index 00000000..fd14402f --- /dev/null +++ b/problems/variables/solution_ko.md @@ -0,0 +1,11 @@ +--- + +# 변수를 만드셨습니다! + +잘 하셨어요. + +다음 과제에서는 문자열을 더 자세히 살펴보겠습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- From 61b4b3690b5c7b26e779c9256747770bad09765e Mon Sep 17 00:00:00 2001 From: sethvincent Date: Sun, 12 Apr 2015 21:24:15 -0700 Subject: [PATCH 052/346] add spanish translation to languages array --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 73359d80..b43a0afd 100755 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ var adventure = require('workshopper-adventure/adventure'); var jsing = adventure({ name: 'javascripting' , appDir: __dirname - , languages: ['en', 'ja', 'ko'] + , languages: ['en', 'ja', 'ko', 'es'] }); var problems = require('./menu.json'); From b94d72146a4d484667d3dd2328bf50ff00c8fa43 Mon Sep 17 00:00:00 2001 From: ChaYoung You Date: Tue, 14 Apr 2015 17:58:45 +0900 Subject: [PATCH 053/346] Fix Korean grammar --- problems/accessing-array-values/problem.md | 2 +- problems/accessing-array-values/problem_ko.md | 12 +++++----- .../accessing-array-values/solution_ko.md | 4 ++-- problems/array-filtering/problem.md | 2 +- problems/array-filtering/problem_ko.md | 4 ++-- problems/arrays/problem_ko.md | 6 ++--- problems/arrays/solution_ko.md | 2 +- problems/for-loop/problem_ko.md | 22 +++++++++---------- problems/for-loop/solution_ko.md | 6 ++--- problems/function-arguments/problem_ko.md | 10 ++++----- problems/function-arguments/solution_ko.md | 2 +- problems/functions/problem_ko.md | 8 +++---- problems/functions/solution_ko.md | 2 +- problems/if-statement/problem_ko.md | 10 ++++----- problems/if-statement/solution_ko.md | 6 ++--- problems/introduction/problem_ko.md | 6 ++--- problems/introduction/solution_ko.md | 4 ++-- problems/looping-through-arrays/problem_ko.md | 14 ++++++------ problems/number-to-string/problem_ko.md | 6 ++--- problems/number-to-string/solution_ko.md | 2 +- problems/numbers/problem_ko.md | 2 +- problems/numbers/solution_ko.md | 2 +- problems/object-properties/problem_ko.md | 8 +++---- problems/object-properties/solution_ko.md | 6 ++--- problems/objects/problem_ko.md | 3 +-- problems/objects/solution_ko.md | 6 ++--- problems/revising-strings/problem_ko.md | 2 +- problems/rounding-numbers/problem_ko.md | 6 ++--- problems/strings/problem_ko.md | 6 ++--- problems/variables/problem_ko.md | 2 +- 30 files changed, 86 insertions(+), 87 deletions(-) diff --git a/problems/accessing-array-values/problem.md b/problems/accessing-array-values/problem.md index 956ef249..70a8e84e 100644 --- a/problems/accessing-array-values/problem.md +++ b/problems/accessing-array-values/problem.md @@ -37,7 +37,7 @@ Invalid notation: Create a file named `accessing-array-values.js`. In that file, define array `food` : -```js +```js var food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_ko.md b/problems/accessing-array-values/problem_ko.md index 51309648..1545ed86 100644 --- a/problems/accessing-array-values/problem_ko.md +++ b/problems/accessing-array-values/problem_ko.md @@ -15,19 +15,19 @@ console.log(pets[0]); ``` -위의 코드는 `pet`의 첫번째 요소인 `cat` 문자열을 출력할 것입니다. +위의 코드는 `pet`의 첫 번째 요소인 `cat` 문자열을 출력할 것입니다. -배열 요소는 각괄호 노테이션을 사용해 접근해야만 합니다. +배열 요소는 각괄호 표기법을 사용해 접근해야만 합니다. -`.` 노테이션은 유효하지 않습니다. +`.` 표기법은 유효하지 않습니다. -유효한 노테이션 +유효한 표기법 ```js console.log(pets[0]); ``` -유효하지 않은 노테이션 +유효하지 않은 표기법 ``` console.log(pets.1); ``` @@ -37,7 +37,7 @@ `accessing-array-values.js`라는 이름의 파일을 만듭니다. 그 파일에서, `food`라는 배열을 정의합니다. -```js +```js var food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/solution_ko.md b/problems/accessing-array-values/solution_ko.md index fc26ab61..655e692c 100644 --- a/problems/accessing-array-values/solution_ko.md +++ b/problems/accessing-array-values/solution_ko.md @@ -1,10 +1,10 @@ --- -# 배열의 두번째 요소가 출력되었습니다! +# 배열의 두 번째 요소가 출력되었습니다! 잘 하셨습니다. 배열의 요소에 접근했습니다. -다음 과제에서는 배열로 루프를 돌리는 예제를 다루어 보겠습니다. +다음 과제에서는 배열로 반복문을 돌리는 예제를 다루어 보겠습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/array-filtering/problem.md b/problems/array-filtering/problem.md index d5a28f05..18da0a87 100644 --- a/problems/array-filtering/problem.md +++ b/problems/array-filtering/problem.md @@ -2,7 +2,7 @@ # ARRAY FILTERING -There are many ways to manipulate arrays. +There are many ways to manipulate arrays. One common task is filtering arrays to only contain certain values. diff --git a/problems/array-filtering/problem_ko.md b/problems/array-filtering/problem_ko.md index 070d0d0c..83655399 100644 --- a/problems/array-filtering/problem_ko.md +++ b/problems/array-filtering/problem_ko.md @@ -6,7 +6,7 @@ 대표적인 사용법으로 특정 값만 가진 배열로 필터링하는 것이 있습니다. -이걸 하기위해 `.filter()` 메소드를 사용할 수 있습니다. +이걸 하기 위해 `.filter()` 메소드를 사용할 수 있습니다. 여기에 예제가 있습니다. @@ -30,7 +30,7 @@ var filtered = pets.filter(function (pet) { [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; ``` -위에 있는 것 처럼, `numbers.filter()`의 결과를 참조하는 `filtered`라는 변수를 선언합니다. +위에 있는 것처럼, `numbers.filter()`의 결과를 참조하는 `filtered`라는 변수를 선언합니다. `.filter()` 메소드에 이렇게 생긴 함수를 넘깁니다. diff --git a/problems/arrays/problem_ko.md b/problems/arrays/problem_ko.md index 66be6961..f6ac1820 100644 --- a/problems/arrays/problem_ko.md +++ b/problems/arrays/problem_ko.md @@ -2,7 +2,7 @@ # 배열 -배열은 값의 목록입니다. 여기에 예게자 있습니다. +배열은 값의 목록입니다. 예를 들면 다음과 같습니다. ```js var pets = ['cat', 'dog', 'rat']; @@ -12,9 +12,9 @@ var pets = ['cat', 'dog', 'rat']; `arrays.js`라는 이름의 파일을 만듭니다. -In that file define a variable named `pizzaToppings` that references an array that contains three strings in this order: `tomato sauce, cheese, pepperoni`. +이 파일에 `tomato sauce, cheese, pepperoni`의 순서대로 세 개의 문자열을 포함하는 배열을 참조하도록 `pizzaToppings`라는 변수를 선언합니다. -Use `console.log()` to print the `pizzaToppings` array to the terminal. +`console.log()`를 사용해 `pizzaToppings` 배열을 터미널에 출력합니다. 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/arrays/solution_ko.md b/problems/arrays/solution_ko.md index d926af59..da9695d5 100644 --- a/problems/arrays/solution_ko.md +++ b/problems/arrays/solution_ko.md @@ -4,7 +4,7 @@ 성공적으로 배열을 만들었습니다! -다음 과제에서는 배열의 필터링을 살펴보겠습니다. +다음 과제에서는 배열의 필터를 살펴보겠습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/for-loop/problem_ko.md b/problems/for-loop/problem_ko.md index 5eeb107f..b25af174 100644 --- a/problems/for-loop/problem_ko.md +++ b/problems/for-loop/problem_ko.md @@ -1,8 +1,8 @@ --- -# FOR 루프 +# FOR 반복문 -for 루프는 이렇게 생겼습니다. +for 반복문은 이렇게 생겼습니다. ```js for (var i = 0; i < 10; i++) { @@ -11,30 +11,30 @@ for (var i = 0; i < 10; i++) { } ``` -`i` 변수는 루프 변수가 몇 번이나 실행 되었는지 추적하는데 사용합니다. +`i` 변수는 반복문 변수가 몇 번이나 실행 되었는지 추적하는데 사용합니다. -`i < 10;` 구문은 루프의 한계를 가리킵니다. -이 루프는 `i`가 `10`보다 작을 때만 계속됩니다. +`i < 10;` 구문은 반복문의 한계를 가리킵니다. +이 반복문은 `i`가 `10`보다 작을 때만 계속됩니다. -`i++` 구문은 반복할 때 마다 `i`를 증가시킵니다. +`i++` 구문은 반복할 때마다 `i`를 증가시킵니다. ## 도전 과제 `for-loop.js`라는 파일을 만듭니다. -그 파일안에서 `total`이라는 변수를 선언하고 그 변수를 숫자 `0`과 같게 합니다. +그 파일 안에서 `total`이라는 변수를 선언하고 그 변수를 숫자 `0`과 같게 합니다. -`limit`라는 이름의 두번째 변수를 선언하고 숫자 `10`과 같게 합니다. +`limit`이라는 이름의 두 번째 변수를 선언하고 숫자 `10`과 같게 합니다. -변수 `i`가 0부터 시작해 1씩 증가하는 for 루프를 만듭니다. 이 루프는 `i`가 `limit`보다 작을 동안만 실행됩니다. +변수 `i`가 0부터 시작해 1씩 증가하는 for 반복문을 만듭니다. 이 반복문은 `i`가 `limit`보다 작을 동안만 실행됩니다. -각 반복마다 숫자 `i`를 `total` 변수에 더합니다. 이렇게하려면, 이 구문을 사용하시면 됩니다. +각 반복마다 숫자 `i`를 `total` 변수에 더합니다. 이렇게 하려면, 이 구문을 사용하시면 됩니다. ```js total += i; ``` -for 루프 다음에, `console.log()`를 사용해 `total` 변수를 터미널에 출력합니다. +for 반복문 다음에, `console.log()`를 사용해 `total` 변수를 터미널에 출력합니다. 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/for-loop/solution_ko.md b/problems/for-loop/solution_ko.md index 519eda65..e4e7caf4 100644 --- a/problems/for-loop/solution_ko.md +++ b/problems/for-loop/solution_ko.md @@ -1,9 +1,9 @@ --- -# 총합은 45 입니다 +# 총합은 45입니다 -이는 for 루프의 기본적인 소개였습니다. 이는 여러가지 상황에서 유용합니다. 특히 -문자열이나 배열같은 다른 데이터 타입과 조합할 때 유용합니다. +기본적인 for 반복문을 소개했습니다. 이는 여러가지 상황에서 유용합니다. 특히 +문자열이나 배열 같은 다른 데이터 타입과 조합할 때 유용합니다. 다음 과제에서는 **배열**을 다루기 시작하겠습니다. diff --git a/problems/function-arguments/problem_ko.md b/problems/function-arguments/problem_ko.md index 3e3a7799..9303f81a 100644 --- a/problems/function-arguments/problem_ko.md +++ b/problems/function-arguments/problem_ko.md @@ -12,26 +12,26 @@ function example (firstArg, secondArg) { } ``` -우리는 두개의 인자를 가지는 함수를 이렇게 **호출**할 수 있습니다. +우리는 두 개의 인자를 가지는 함수를 이렇게 **호출**할 수 있습니다. ```js example('hello', 'world'); ``` -위 예제는 터미널에 `hello world`를 출력할 것 입니다. +위 예제는 터미널에 `hello world`를 출력할 것입니다. ## 도전 과제 `function-arguments.js`라는 이름의 파일을 만듭니다.. 이 파일에서는 3개의 인자를 받는 `math`라는 이름의 함수를 선언합니다. 인자 이름은 -참조로만 사용하는 것을 이해하는 것은 중요합니다. +참조로만 사용한다는 것을 이해하는 것은 중요합니다. 각 인자는 좋아하는 이름을 지으세요. -`math` 함수는 두번째와 세번째 인자를 곱하고, 곱한 값에 첫번째 인자를 더해 얻은 결과를 출력합니다. +`math` 함수는 두 번째와 세 번째 인자를 곱하고, 곱한 값에 첫 번째 인자를 더해 얻은 결과를 출력합니다. -그런 이후, `console.log()`의 괄호안에서 첫번째 인자로 `53`, 두번째로 숫자 `61`, 3번째인자로 `67`을 받는 `math()`함수를 호출합니다. +그런 이후, `console.log()`의 괄호 안에서 첫 번째 인자로 `53`, 두 번째로 숫자 `61`, 세 번째 인자로 `67`을 받는 `math()`함수를 호출합니다. 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/function-arguments/solution_ko.md b/problems/function-arguments/solution_ko.md index 41ac5ee8..4cc5a269 100644 --- a/problems/function-arguments/solution_ko.md +++ b/problems/function-arguments/solution_ko.md @@ -1,6 +1,6 @@ --- -# 인자를 다룰수 있게 되었습니다! +# 인자를 다룰 수 있게 되었습니다! 예제를 잘 완료하셨습니다. diff --git a/problems/functions/problem_ko.md b/problems/functions/problem_ko.md index 1dce86b9..560853ed 100644 --- a/problems/functions/problem_ko.md +++ b/problems/functions/problem_ko.md @@ -2,7 +2,7 @@ # 함수 -함수는 입력을 받는 코드의 블럭입니다. 그 입력을 처리해서 출력을 만듭니다. +함수는 입력을 받는 코드의 블록입니다. 그 입력을 처리해서 출력을 만듭니다. 여기에 예제가 있습니다. @@ -18,13 +18,13 @@ function example (x) { example(5) ``` -위의 예제는 `example` 함수가 숫자를 인자 (입력)로 받아 그 숫자에 2를 곱한 값을 반환합니다. +위의 예제는 `example` 함수가 숫자를 인자(입력)로 받아 그 숫자에 2를 곱한 값을 반환합니다. ## 도전 과제 `functions.js`라는 파일을 만듭니다. -그 파일에서 문자열이어야 하는 `food`라는 이름의 인자를 받는 `eat`이라는 파일을 선언합니다. +그 파일에서 `food`를 인자로 받는 `eat` 함수를 선언합니다. `food`는 문자열이어야 합니다. 함수 안에서 `food` 인자를 이렇게 반환합니다. @@ -32,7 +32,7 @@ example(5) return food + ' tasted really good.'; ``` -`console.log()`의 괄호안에서 문자열 `bananas`를 인자로 하는 `eat()` 함수를 호출합니다. +`console.log()`의 괄호 안에서 문자열 `bananas`를 인자로 하는 `eat()` 함수를 호출합니다. 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/functions/solution_ko.md b/problems/functions/solution_ko.md index f702bd6a..8c3f78bc 100644 --- a/problems/functions/solution_ko.md +++ b/problems/functions/solution_ko.md @@ -2,7 +2,7 @@ # 오우 바나나 -해내셨습니다! 입력을 받아 입력을 처리해 출력을 제공하는 함수를 만들었습니다. +해내셨습니다! 입력을 받고, 그 입력을 처리해 출력을 제공하는 함수를 만들었습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/if-statement/problem_ko.md b/problems/if-statement/problem_ko.md index 7cd0a4d2..ee9fd968 100644 --- a/problems/if-statement/problem_ko.md +++ b/problems/if-statement/problem_ko.md @@ -2,7 +2,7 @@ # IF 구문 -지정된 불린 조건을 기반으로 조건 문은 프로그램의 제어 흐름에 사용됩니다. +지정된 조건을 기반으로, 조건문은 프로그램의 흐름 제어에 사용됩니다. 조건문은 이렇습니다. @@ -14,9 +14,9 @@ if (n > 1) { } ``` -괄호 안에 반드시 로직 구문을 넣어야 합니다. 구문의 결과는 true나 false로 끝나야 합니다. +괄호 안에 반드시 논리 구문을 넣어야 합니다. 구문의 결과는 true나 false로 끝나야 합니다. -else 블록은 생략가능하며 구문이 false일 경우 실행될 코드가 들어갑니다. +else 블록은 생략 가능하며 구문이 false일 경우 실행될 코드가 들어갑니다. ## 도전 과제 @@ -24,9 +24,9 @@ else 블록은 생략가능하며 구문이 false일 경우 실행될 코드가 이 파일 안에서, `fruit`라는 이름의 변수를 선언합니다. -`fruit` 변수가 문자열 타입의 **orange** 라는 값을 참조하도록 하세요. +`fruit` 변수가 문자열 타입의 **orange**라는 값을 참조하도록 하세요. -그리고 `console.log()`로 `fruit`의 값의 길이가 5보다 크면 **"The fruit name has more than five characters."** 를 출력하고, 그렇지 않은 경우엔 "**The fruit name has five characters or less.**"를 출력하세요. +그리고 `console.log()`로 `fruit`의 값의 길이가 5보다 크면 **"The fruit name has more than five characters."**를 출력하고, 그렇지 않은 경우엔 "**The fruit name has five characters or less.**"를 출력하세요. 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/if-statement/solution_ko.md b/problems/if-statement/solution_ko.md index e9497284..f95fb684 100644 --- a/problems/if-statement/solution_ko.md +++ b/problems/if-statement/solution_ko.md @@ -1,10 +1,10 @@ --- -# 조건절 정복 +# 조건문 정복 -해내셨습니다! `orange` 문자열은 5개이상의 문자를 가지고 있습니다. +해내셨습니다! `orange` 문자열은 5개 이상의 문자를 가지고 있습니다. -다음엔 **for 루프**를 처리할 준비가 되었습니다! +다음엔 **for 반복문**을 처리할 준비가 되었습니다! 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md index 848ca0a9..eb10a92e 100644 --- a/problems/introduction/problem_ko.md +++ b/problems/introduction/problem_ko.md @@ -3,17 +3,17 @@ 정돈을 위해 이 워크숍을 위한 폴더를 만듭시다. -이 명령어를 실행해 `javascripting`이라는 디렉토리(다른 이름이어도 됩니다)를 만드세요. +이 명령어를 실행해 `javascripting`이라는 디렉터리(다른 이름이어도 됩니다)를 만드세요. `mkdir javascripting` -`javascripting` 폴더 안으로 디렉토리를 변경하세요. +`javascripting` 폴더 안으로 디렉터리를 변경하세요. `cd javascripting` `introduction.js`이라는 파일을 만드세요. -`touch introduction.js` 윈도우라면 `type NUL > introduction.js` (`type`도 명령어의 일부입니다!) +`touch introduction.js` 윈도우라면 `type NUL > introduction.js`(`type`도 명령어의 일부입니다!) 좋아하는 편집기에서 파일을 열고 다음 내용을 넣으세요. diff --git a/problems/introduction/solution_ko.md b/problems/introduction/solution_ko.md index 1d4d6500..affae2d3 100644 --- a/problems/introduction/solution_ko.md +++ b/problems/introduction/solution_ko.md @@ -12,9 +12,9 @@ console.log('hello'); 는 `hello`를 터미널에 출력합니다. -현재 `hello`라는 케릭터의 **문자열**을 터미널에 출력했습니다. +현재 `hello`라는 **문자열**을 터미널에 출력했습니다. -다음 과제에서는 **변수**를 배우는데 초점을 맞추겠습니다. +다음 과제에서는 **변수**를 배우는 데 초점을 맞추겠습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/looping-through-arrays/problem_ko.md b/problems/looping-through-arrays/problem_ko.md index b2c6dc77..f951a2e3 100644 --- a/problems/looping-through-arrays/problem_ko.md +++ b/problems/looping-through-arrays/problem_ko.md @@ -2,11 +2,11 @@ # 배열을 루프하기 -이 도전 과제에서는 **for 루프**를 사용해 배열에 있는 값의 목록에 접근하고 조작하겠습니다. +이 도전 과제에서는 **for 반복문**을 사용해 배열에 있는 값의 목록에 접근하고 조작하겠습니다. -배열 값에 접근하는것은 정수를 사용해 할 수 있습니다. +배열 값에 접근하는 것은 정수를 사용해 할 수 있습니다. -배열안의 각 아이템은 `0`으로 시작하는 숫자로 확인할 수 있습니다. +배열 안의 각 아이템은 `0`으로 시작하는 숫자로 확인할 수 있습니다. 그래서 이 배열의 `hi`는 숫자 `1`로 확인할 수 있습니다. @@ -20,21 +20,21 @@ var greetings = ['hello', 'hi', 'good morning']; greetings[1]; ``` -**for 루프**안에서는 숫자 그대로 사용하지 않고 `i` 변수를 각괄호안에서 사용합니다. +**for 반복문** 안에서는 숫자 그대로 사용하지 않고 `i` 변수를 각괄호 안에서 사용합니다. ## 도전 과제 `looping-through-arrays.js`라는 파일을 만듭니다. -이 파일안에서 다음 배열을 참조하는 `pets`라는 이름의 변수를 선언합니다. +이 파일 안에서 다음 배열을 참조하는 `pets`라는 이름의 변수를 선언합니다. ```js ['cat', 'dog', 'rat']; ``` -for 루프를 만들어 복수형이 되도록 각 문자열을 변경하세요. +for 반복문을 만들어 복수형이 되도록 각 문자열을 변경하세요. -루프안에서 이런 구문을 사용하시면 됩니다. +루프 안에서 이런 구문을 사용하시면 됩니다. ```js pets[i] = pets[i] + 's'; diff --git a/problems/number-to-string/problem_ko.md b/problems/number-to-string/problem_ko.md index 5c747275..17eaeac3 100644 --- a/problems/number-to-string/problem_ko.md +++ b/problems/number-to-string/problem_ko.md @@ -2,7 +2,7 @@ # 숫자에서 문자열으로 -가끔 숫자를 문자열로 변경할 필요가 있을때가 있습니다. +가끔 숫자를 문자열로 변경해야 할 때가 있습니다. 그런 경우에 `.toString()` 메소드를 사용하면 됩니다. 예제를 보세요. @@ -15,9 +15,9 @@ n = n.toString(); `number-to-string.js`라는 파일을 만듭니다. -그 파일 안에서 숫자 `128`를 참조하는 `n`이라는 이름의 변수를 선언합니다. +그 파일 안에서 숫자 `128`을 참조하는 `n`이라는 이름의 변수를 선언합니다. -`n` 변수에 `.toString()` 메소드를 호출합니다. +`n` 변수에 `.toString()` 메소드를 호출합니다. `console.log()`를 사용해 `.toString()` 메소드의 결과를 터미널에 출력합니다. diff --git a/problems/number-to-string/solution_ko.md b/problems/number-to-string/solution_ko.md index 12435bab..a4478175 100644 --- a/problems/number-to-string/solution_ko.md +++ b/problems/number-to-string/solution_ko.md @@ -4,7 +4,7 @@ 훌륭합니다. 아주 잘 숫자를 문자열로 변경하셨습니다. -다음 과제에서는 **if 문**을 살펴보겠습니다. +다음 과제에서는 **if 구문**을 살펴보겠습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/numbers/problem_ko.md b/problems/numbers/problem_ko.md index 710edd31..9e7c067a 100644 --- a/problems/numbers/problem_ko.md +++ b/problems/numbers/problem_ko.md @@ -2,7 +2,7 @@ # 숫자 -숫자는 `2`, `14`, `4353`같은 정수이거나 십진수이거나 `3.14`, `1.5`, `100.7893423`같은 실수일 수 있습니다. +숫자는 `2`, `14`, `4353` 같은 정수이거나 십진수이거나 `3.14`, `1.5`, `100.7893423` 같은 실수일 수 있습니다. ## 도전 과제 diff --git a/problems/numbers/solution_ko.md b/problems/numbers/solution_ko.md index 02032708..c560d747 100644 --- a/problems/numbers/solution_ko.md +++ b/problems/numbers/solution_ko.md @@ -4,7 +4,7 @@ 좋네요, 성공적으로 숫자 `123456789`를 변수로 선언했습니다. -다음 과제에서는 숫자를 조작해보겠습니다. +다음 과제에서는 숫자를 조작해 보겠습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/object-properties/problem_ko.md b/problems/object-properties/problem_ko.md index d3e552c6..91c6f345 100644 --- a/problems/object-properties/problem_ko.md +++ b/problems/object-properties/problem_ko.md @@ -2,9 +2,9 @@ # 객체 속성 -배열과 매우 비슷한 방법으로 객체의 속성(객체가 가지고 있는 키와 값)을 접근하고 조작할 수 있습니다. +배열과 매우 비슷한 방법으로 객체의 속성(객체가 가지고 있는 키와 값)에 접근하고 그를 조작할 수 있습니다. -**대 괄호**를 사용하는 예제입니다. +**대괄호**를 사용하는 예제입니다. ```js var example = { @@ -24,7 +24,7 @@ example.pizza; example['pizza']; ``` -위에 있는 두 줄의 코드는 양쪽다 `yummy`를 반환합니다. +위에 있는 두 줄의 코드는 양쪽 다 `yummy`를 반환합니다. ## 도전 과제 @@ -38,7 +38,7 @@ var food = { }; ``` -`console.log()`을 사용해 `food` 객체의 `types` 속성을 터미널에 출력합니다. +`console.log()`를 사용해 `food` 객체의 `types` 속성을 터미널에 출력합니다. 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/object-properties/solution_ko.md b/problems/object-properties/solution_ko.md index 8744b368..9fe01fd6 100644 --- a/problems/object-properties/solution_ko.md +++ b/problems/object-properties/solution_ko.md @@ -1,10 +1,10 @@ --- -# CORRECT. PIZZA IS THE ONLY FOOD. +# 그렇습니다. 피자만이 답입니다. -Good job accessing that property. +속성 접근하기에 성공했습니다. -The next challenge is all about **functions**. +다음 과제는 **함수**에 관한 것입니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/objects/problem_ko.md b/problems/objects/problem_ko.md index 26426a50..0cf56b3e 100644 --- a/problems/objects/problem_ko.md +++ b/problems/objects/problem_ko.md @@ -2,8 +2,7 @@ # 객체 -객체는 배열과 비슷한 값의 목록입니다. 배열과 다른 점은 정수대신 키를 사용해 값을 -확인하는 점입니다. +객체는 배열과 비슷한 값의 목록입니다. 배열과 다른 점은 정수 대신 키를 사용해 값을 확인하는 점입니다. 예제를 보세요. diff --git a/problems/objects/solution_ko.md b/problems/objects/solution_ko.md index 288a52e0..a02cac97 100644 --- a/problems/objects/solution_ko.md +++ b/problems/objects/solution_ko.md @@ -1,10 +1,10 @@ --- -# PIZZA OBJECT IS A GO. +# 피자 객체, 준비 완료. -You successfully created an object! +객체 만들기에 성공했습니다! -In the next challenge we will focus on accessing object properties. +다음 과제에서는 객체 속성에 접근해 보겠습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. diff --git a/problems/revising-strings/problem_ko.md b/problems/revising-strings/problem_ko.md index c4947993..f75bc85e 100644 --- a/problems/revising-strings/problem_ko.md +++ b/problems/revising-strings/problem_ko.md @@ -14,7 +14,7 @@ example = example.replace('exists', 'is awesome'); console.log(example); ``` -`example` 변수가 참조하는 값을 바꾸는 것에 주의하세요. 등호를 다시 사용해야 합니다. 이 번에는 `example.replace()` 메소드를 등호의 오른편에 두었습니다. +`example` 변수가 참조하는 값을 바꾸는 것에 주의하세요. 등호를 다시 사용해야 합니다. 이번에는 `example.replace()` 메소드를 등호의 오른편에 두었습니다. ## 도전 과제 diff --git a/problems/rounding-numbers/problem_ko.md b/problems/rounding-numbers/problem_ko.md index 54836d1b..d37204c9 100644 --- a/problems/rounding-numbers/problem_ko.md +++ b/problems/rounding-numbers/problem_ko.md @@ -2,7 +2,7 @@ # 숫자 반올림 -`+`, `-`, `*`, `/`, `%`같은 익숙한 연산자를 사용해 기본적인 연산을 할 수 있습니다. +`+`, `-`, `*`, `/`, `%` 같은 익숙한 연산자를 사용해 기본적인 연산을 할 수 있습니다. 더 복잡한 연산은 `Math` 객체를 사용해 할 수 있습니다. @@ -12,7 +12,7 @@ `rounding-numbers.js`라는 파일을 만듭니다. -이 파일안에서 실수 `1.5`를 참조하는 `roundUp`라는 변수를 선언합니다. +이 파일 안에서 실수 `1.5`를 참조하는 `roundUp`라는 변수를 선언합니다. `Math.round()` 메소드를 이용해 숫자를 반올림합니다. @@ -22,7 +22,7 @@ Math.round(0.5); ``` -`roundUp` 변수를 인자로 `Math.round()` 메소드에 넘긴 결과를 참조하는 `rounded`라는 두번째 변수를 정의합니다. +`roundUp` 변수를 인자로 `Math.round()` 메소드에 넘긴 결과를 참조하는 `rounded`라는 두 번째 변수를 정의합니다. `console.log()`를 사용해 숫자를 터미널에 출력합니다. diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index 9fb1d30d..fc077c99 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -4,7 +4,7 @@ **문자열**은 따옴표로 감싸진 값입니다. -이는 홀따옴표도 될 수 있고 쌍따옴표도 될수 있습니다. +이는 작은따옴표도 될 수 있고 큰따옴표도 될 수 있습니다. ```js 'this is a string' @@ -13,13 +13,13 @@ ``` # 주의 -일관성을 유지하도록 노력해보세요. 이 워크숍에서는 홀따옴표만 사용하도록 하겠습니다. +일관성을 유지하도록 노력해보세요. 이 워크숍에서는 작은따옴표만 사용하도록 하겠습니다. ## 도전 과제 이 과제를 위해 `strings.js`라는 파일을 만드세요. -그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면됩니다. +그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면 됩니다. ```js var someString = 'this is a string'; diff --git a/problems/variables/problem_ko.md b/problems/variables/problem_ko.md index cd89ab35..a524eccc 100644 --- a/problems/variables/problem_ko.md +++ b/problems/variables/problem_ko.md @@ -26,7 +26,7 @@ var example = 'some string'; `variables.js`라는 파일을 만듭니다. -그 파일안에서 `example`라는 변수를 선언합니다. +그 파일 안에서 `example`라는 변수를 선언합니다. **`example` 변수를 `'some string'` 값과 같게 만듭니다.** **Make the variable `example` equal to the value `'some string'`.** From af0ae9385e9598d4a3564f6953e713ef453f497d Mon Sep 17 00:00:00 2001 From: ChaYoung You Date: Tue, 14 Apr 2015 18:06:48 +0900 Subject: [PATCH 054/346] Translate string-length to Korean --- problems/string-length/problem_ko.md | 35 +++++++++++++++++++++++++++ problems/string-length/solution_ko.md | 9 +++++++ 2 files changed, 44 insertions(+) create mode 100644 problems/string-length/problem_ko.md create mode 100644 problems/string-length/solution_ko.md diff --git a/problems/string-length/problem_ko.md b/problems/string-length/problem_ko.md new file mode 100644 index 00000000..3995af09 --- /dev/null +++ b/problems/string-length/problem_ko.md @@ -0,0 +1,35 @@ +--- + +# 문자열 길이 + +문자열에 얼마나 많은 문자가 있는지 알아야 할 때가 자주 있을 겁니다. + +이는 `.length` 속성을 이용하면 알 수 있습니다. 다음 예제를 보세요. + +```js +var example = 'example string'; +example.length +``` + +# 주의 + +`example`과 `length` 사이에 마침표가 있는 것을 확인하세요. + +위의 코드는 문자열 안에 있는 전체 문자의 **수**를 반환합니다. + + +## 도전 과제 + +`string-length.js`라는 파일을 만듭니다. + +이 파일 안에서 `example`이라는 변수를 선언합니다. + +**`example` 변수에 `'example string'` 문자열을 대입합니다.** + +`console.log`를 이용해 문자열의 **길이**를 터미널에 출력하세요. + +**이 명령어를 실행해 프로그램이 올바른지 확인하세요.** + +`javascripting verify string-length.js` + +--- diff --git a/problems/string-length/solution_ko.md b/problems/string-length/solution_ko.md new file mode 100644 index 00000000..4e2e231e --- /dev/null +++ b/problems/string-length/solution_ko.md @@ -0,0 +1,9 @@ +--- + +# 승리: 14개의 문자 + +해냈습니다! `example string` 문자열은 14개의 문자를 가집니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. + +--- From 1dcc73afdb9c2277c2eee7b040562444244c452e Mon Sep 17 00:00:00 2001 From: Manuel Gonzalez Date: Wed, 15 Apr 2015 23:10:14 -0430 Subject: [PATCH 055/346] added Spanish translation to "accessing array values" --- problems/accessing-array-values/problem_es.md | 49 +++++++++++++++++++ .../accessing-array-values/solution_es.md | 11 +++++ 2 files changed, 60 insertions(+) create mode 100644 problems/accessing-array-values/problem_es.md create mode 100644 problems/accessing-array-values/solution_es.md diff --git a/problems/accessing-array-values/problem_es.md b/problems/accessing-array-values/problem_es.md new file mode 100644 index 00000000..a3ed9285 --- /dev/null +++ b/problems/accessing-array-values/problem_es.md @@ -0,0 +1,49 @@ +--- + +# ACCEDIENDO A LOS VALORES DE UN ARRAY + +Se puede tener acceso a los elementos de un Array a través del número de índice. + +El número de índice comienza en cero y finaliza en el valor de la propiedad longitud (length) del array, restándole uno. + +A continuación, un ejemplo: + +```js + var mascotas = ['gato', 'perro', 'rata']; + + console.log(mascotas[0]); +``` + +El código de arriba, imprime el primer elemento del array de `mascotas` - string `gato` + +Los elementos del Array se deben acceder, únicamente, usando la notación de paréntesis. + +Notación de punto es inválida. + +Notación válida: + +```js + console.log(mascotas[0]); +``` + +Notación inválida: +``` + console.log(mascotas.1); +``` + +## El ejercicio: + +Crea un archivo llamado `accediendo-valores-array.js` + +En ese archivo, define un array llamado `comida` : +```js +var comida = ['manzana', 'pizza', 'pera']; +``` + +Usa `console.log()` para imprimir el `segundo` valor del array en la terminal. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +`javascripting verify accediendo-valores-array.js` + +--- diff --git a/problems/accessing-array-values/solution_es.md b/problems/accessing-array-values/solution_es.md new file mode 100644 index 00000000..0d608408 --- /dev/null +++ b/problems/accessing-array-values/solution_es.md @@ -0,0 +1,11 @@ +--- + +# ¡SE IMPRIMIÓ EL SEGUNDO ELEMENTO DEL ARRAY! + +Buen trabajo, lograste acceder a ese elemento del array. + +En el siguiente ejercicio trabajaremos un ejemplo de bucles usando arrays. + +Corre `javascripting` en la consola para seleccionar el siguiente ejercicio. + +--- \ No newline at end of file From 9faf46124b9f9a7d536dbd183f2a422dec45e247 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 11:05:30 -0400 Subject: [PATCH 056/346] Introduction done --- i18n/zh-cn.json | 22 +++++++++++++++++ index.js | 2 +- problems/introduction/problem_zh-cn.md | 33 +++++++++++++++++++++++++ problems/introduction/solution_zh-cn.md | 21 ++++++++++++++++ 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 i18n/zh-cn.json create mode 100644 problems/introduction/problem_zh-cn.md create mode 100644 problems/introduction/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json new file mode 100644 index 00000000..30270cea --- /dev/null +++ b/i18n/zh-cn.json @@ -0,0 +1,22 @@ +{ + "exercise": { + "INTRODUCTION": "入门" + , "VARIABLES": "VARIABLES" + , "STRINGS": "STRINGS" + , "STRING LENGTH": "STRING LENGTH" + , "REVISING STRINGS": "REVISING STRINGS" + , "NUMBERS": "NUMBERS" + , "ROUNDING NUMBERS": "ROUNDING NUMBERS" + , "NUMBER TO STRING": "NUMBER TO STRING" + , "IF STATEMENT": "IF STATEMENT" + , "FOR LOOP": "FOR LOOP" + , "ARRAYS": "ARRAYS" + , "ARRAY FILTERING": "ARRAY FILTERING" + , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" + , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" + , "OBJECTS": "OBJECTS" + , "OBJECT PROPERTIES": "OBJECT PROPERTIES" + , "FUNCTIONS": "FUNCTIONS" + , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" + } +} diff --git a/index.js b/index.js index b43a0afd..8ee37bbc 100755 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ var adventure = require('workshopper-adventure/adventure'); var jsing = adventure({ name: 'javascripting' , appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn'] }); var problems = require('./menu.json'); diff --git a/problems/introduction/problem_zh-cn.md b/problems/introduction/problem_zh-cn.md new file mode 100644 index 00000000..38eb51c9 --- /dev/null +++ b/problems/introduction/problem_zh-cn.md @@ -0,0 +1,33 @@ +--- +# 入门 + +为了让工作环境整洁有序,我们首先来创建一个文件夹。 + +运行下面的这段命令来创建一个名为 `javascripting` 的文件夹(你也可以使用你喜欢的其它名字): + +`mkdir javascripting` + +进入 `javascripting` 文件夹: + +`cd javascripting` + +创建一个名为 `introduction.js` 的文件: + +非 Windows 用户,请执行 `touch introduction.js`;Windows 用户,请执行 `type NUL > introduction.js`(注意,`type` 也是这个命令的一部分!) + +使用你最喜欢的编辑器,打开这个文件,然后将下面这行加入到文件中: + +```js +console.log('hello'); +``` + +保存文件,运行下面的命令来检查你的程序是否正确: + +`javascripting verify introduction.js` + +--- + + + +> **需要帮助?** 查看本教程的 README 文件:http://github.com/sethvincent/javascripting + diff --git a/problems/introduction/solution_zh-cn.md b/problems/introduction/solution_zh-cn.md new file mode 100644 index 00000000..de9ee703 --- /dev/null +++ b/problems/introduction/solution_zh-cn.md @@ -0,0 +1,21 @@ +--- + +# 完成! + +包裹于 `console.log()` 括号中的东西都将会被打印到终端。 + +所以: + +```js +console.log('hello'); +``` + +打印出 `hello` 到你的终端。 + +此刻,我们打印的是一个 **string**,中文名为 **字符串**。 + +接下来的挑战里我们将学习到 **variables**,也就是 **变量**。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 11b31d632893e08e304f1bbd32a4b7b83b224efc Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 14:08:23 -0400 Subject: [PATCH 057/346] Variables done --- i18n/zh-cn.json | 2 +- problems/introduction/solution_zh-cn.md | 4 +-- problems/variables/problem_zh-cn.md | 39 +++++++++++++++++++++++++ problems/variables/solution_zh-cn.md | 11 +++++++ 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 problems/variables/problem_zh-cn.md create mode 100644 problems/variables/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 30270cea..d77f4731 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -1,7 +1,7 @@ { "exercise": { "INTRODUCTION": "入门" - , "VARIABLES": "VARIABLES" + , "VARIABLES": "变量" , "STRINGS": "STRINGS" , "STRING LENGTH": "STRING LENGTH" , "REVISING STRINGS": "REVISING STRINGS" diff --git a/problems/introduction/solution_zh-cn.md b/problems/introduction/solution_zh-cn.md index de9ee703..5965d7c3 100644 --- a/problems/introduction/solution_zh-cn.md +++ b/problems/introduction/solution_zh-cn.md @@ -12,9 +12,9 @@ console.log('hello'); 打印出 `hello` 到你的终端。 -此刻,我们打印的是一个 **string**,中文名为 **字符串**。 +此刻,我们打印的是一个 **string**,中文名为**字符串**。 -接下来的挑战里我们将学习到 **variables**,也就是 **变量**。 +接下来的挑战里我们将学习到 **variables**,也就是**变量**。 运行 `javascripting` 并选择下一个挑战。 diff --git a/problems/variables/problem_zh-cn.md b/problems/variables/problem_zh-cn.md new file mode 100644 index 00000000..cbc3977a --- /dev/null +++ b/problems/variables/problem_zh-cn.md @@ -0,0 +1,39 @@ +--- + +# 变量 + +变量就是一个可以引用具体值的名字。变量通过使用 `var` 及紧随其后的变量名来声明。 + +下面是一个例子: + +```js +var example; +``` + +这个例子里的变量被**声明**,但是没有被定义(也就是说,它目前还没有引用一个值)。 + +下面是一个定义变量的例子,这样变量将会有一个值: + + +```js +var example = 'some string'; +``` + +# 注 + +变量通过 `var` 来**声明**,并通过等号来**定义**它的值。这也就是经常提到的“让一个变量等于一个值(变量赋值)”。 + +## 挑战: + +创建一个名为 `variables.js` 的文件。 + +在文件中声明一个名为 `example` 的变量。 + +**让变量 `example` 等于值 `'some string'`。** + +然后使用 `console.log()` 打印 `example` 变量到控制台。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify variables.js` +--- diff --git a/problems/variables/solution_zh-cn.md b/problems/variables/solution_zh-cn.md new file mode 100644 index 00000000..b2f10240 --- /dev/null +++ b/problems/variables/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 你创建了一个变量! + +干得漂亮。 + +下一个挑战中我们将进一步地探究字符串。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 859d9695ff7e50ed6c60de9015337df3644a1122 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 14:18:36 -0400 Subject: [PATCH 058/346] Strings done --- i18n/zh-cn.json | 2 +- problems/strings/problem_zh-cn.md | 34 ++++++++++++++++++++++++++++++ problems/strings/solution_zh-cn.md | 11 ++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 problems/strings/problem_zh-cn.md create mode 100644 problems/strings/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index d77f4731..86a61e57 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -2,7 +2,7 @@ "exercise": { "INTRODUCTION": "入门" , "VARIABLES": "变量" - , "STRINGS": "STRINGS" + , "STRINGS": "字符串" , "STRING LENGTH": "STRING LENGTH" , "REVISING STRINGS": "REVISING STRINGS" , "NUMBERS": "NUMBERS" diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md new file mode 100644 index 00000000..f61474b5 --- /dev/null +++ b/problems/strings/problem_zh-cn.md @@ -0,0 +1,34 @@ +--- + +# 字符串 + +**字符串**就是被引号包裹起来的任意的值。 + +单引号或双引号效果是一样的: + +```js +'this is a string' + +"this is also a string" +``` +# 注 + +为了保持一致的风格,本教程中我们将只使用单引号。 + +## 挑战: + +创建一个名为 `strings.js` 的文件。 + +在文件中像这样创建一个名为 `someString` 的变量: + +```js +var someString = 'this is a string'; +``` + +使用 `console.log` 打印变量 **someString** 到终端。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify strings.js` + +--- diff --git a/problems/strings/solution_zh-cn.md b/problems/strings/solution_zh-cn.md new file mode 100644 index 00000000..8d396827 --- /dev/null +++ b/problems/strings/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 成功。 + +你已经对字符串的使用得心应手了! + +下一个挑战里,我们将看到如何对字符串进行操作。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 420619d2e16357a1bf791b8166268af73ddb7be5 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 14:29:43 -0400 Subject: [PATCH 059/346] String length done --- i18n/zh-cn.json | 2 +- problems/string-length/problem_zh-cn.md | 35 ++++++++++++++++++++++++ problems/string-length/solution_zh-cn.md | 9 ++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 problems/string-length/problem_zh-cn.md create mode 100644 problems/string-length/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 86a61e57..f6cd752a 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -3,7 +3,7 @@ "INTRODUCTION": "入门" , "VARIABLES": "变量" , "STRINGS": "字符串" - , "STRING LENGTH": "STRING LENGTH" + , "STRING LENGTH": "字符串长度" , "REVISING STRINGS": "REVISING STRINGS" , "NUMBERS": "NUMBERS" , "ROUNDING NUMBERS": "ROUNDING NUMBERS" diff --git a/problems/string-length/problem_zh-cn.md b/problems/string-length/problem_zh-cn.md new file mode 100644 index 00000000..9588a3b3 --- /dev/null +++ b/problems/string-length/problem_zh-cn.md @@ -0,0 +1,35 @@ +--- + +# 字符串长度 + +在程序中我们经常需要知道一个字符串中到底包含了多少字符。 + +你可以使用 `.length` 来得到它。下面是一个例子: + +```js +var example = 'example string'; +example.length +``` + +# 注 + +不要忘记 `example` 和 `length` 之间的英文句号。 + +上面这段代码将返回一个 **number**,也就是**数字**,指明字符串中的字符个数。 + + +## 挑战: + +创建一个名为 `string-length.js` 的文件。 + +在文件中,创建名为 `example` 的变量。 + +**将字符串 `'example string'` 赋给变量 `example`。** + +使用 `console.log` 打印这个字符串的**length**,也就是**长度**到终端。 + +**运行下面的命令来检查你的程序是否正确:** + +`javascripting verify string-length.js` + +--- diff --git a/problems/string-length/solution_zh-cn.md b/problems/string-length/solution_zh-cn.md new file mode 100644 index 00000000..0b3c4a6e --- /dev/null +++ b/problems/string-length/solution_zh-cn.md @@ -0,0 +1,9 @@ +--- + +# 正确:14 个字符 + +你得到了正确的答案。字符串 `example string` 含有 14 个字符。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From a258676c23ff38e3eee4f9ca0ce6d42849ec8b2e Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 15:04:45 -0400 Subject: [PATCH 060/346] Revising strings done --- i18n/zh-cn.json | 2 +- problems/revising-strings/problem_zh-cn.md | 33 +++++++++++++++++++++ problems/revising-strings/solution_zh-cn.md | 11 +++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 problems/revising-strings/problem_zh-cn.md create mode 100644 problems/revising-strings/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index f6cd752a..ce9f610f 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -4,7 +4,7 @@ , "VARIABLES": "变量" , "STRINGS": "字符串" , "STRING LENGTH": "字符串长度" - , "REVISING STRINGS": "REVISING STRINGS" + , "REVISING STRINGS": "修改字符串" , "NUMBERS": "NUMBERS" , "ROUNDING NUMBERS": "ROUNDING NUMBERS" , "NUMBER TO STRING": "NUMBER TO STRING" diff --git a/problems/revising-strings/problem_zh-cn.md b/problems/revising-strings/problem_zh-cn.md new file mode 100644 index 00000000..1dfa21c0 --- /dev/null +++ b/problems/revising-strings/problem_zh-cn.md @@ -0,0 +1,33 @@ +--- + +# 修改字符串 + +实际工作中可能经常需要修改一个字符串。 + +字符串中包含一些内建的功能允许你查看并修改它们的内容。 + +这里是一个使用 `.replace()` 方法的例子: + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +为了改变 `example` 变量引用的值,我们需要再一次使用等号。这一次出现在等号右边的是 `example.replace()` 方法。 + +## 挑战: + +创建一个名为 `revising-strings.js` 的文件。 + +定义一个名为 `pizza` 的变量,并且让它引用字符串 `pizza is alright`。 + +使用 `.replace()` 方法将 `alright` 替换为 `wonderful`。 + +用 `console.log()` 将 `.replace()` 方法的结果打印到终端。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify revising-strings.js` + +--- diff --git a/problems/revising-strings/solution_zh-cn.md b/problems/revising-strings/solution_zh-cn.md new file mode 100644 index 00000000..32c4062b --- /dev/null +++ b/problems/revising-strings/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 是的, PIZZA _IS_ WONDERFUL。 + +干得漂亮,你已经学会了如何使用 `.replace()` 方法! + +接下来我们将探索 **numbers**,也就是**数字**。 + +运行 `javascripting` 命令并选择下一个挑战。 + +--- From ca6b0524bb3d31d60b6afedfe39b2581c4358f38 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 15:15:55 -0400 Subject: [PATCH 061/346] Numbers done --- i18n/zh-cn.json | 2 +- problems/numbers/problem_zh-cn.md | 19 +++++++++++++++++++ problems/numbers/solution_zh-cn.md | 11 +++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 problems/numbers/problem_zh-cn.md create mode 100644 problems/numbers/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index ce9f610f..284fcef5 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -5,7 +5,7 @@ , "STRINGS": "字符串" , "STRING LENGTH": "字符串长度" , "REVISING STRINGS": "修改字符串" - , "NUMBERS": "NUMBERS" + , "NUMBERS": "数字" , "ROUNDING NUMBERS": "ROUNDING NUMBERS" , "NUMBER TO STRING": "NUMBER TO STRING" , "IF STATEMENT": "IF STATEMENT" diff --git a/problems/numbers/problem_zh-cn.md b/problems/numbers/problem_zh-cn.md new file mode 100644 index 00000000..d3d28f71 --- /dev/null +++ b/problems/numbers/problem_zh-cn.md @@ -0,0 +1,19 @@ +--- + +# 数字 + +数字既可以是整数,像 `2`,`14`,或者 `4353`,也可以是小数,通常也被称为浮点数,比如 `3.14`,`1.5`,和 `100.7893423`。 + +## 挑战: + +创建名为 `numbers.js` 的文件。 + +在文件中定义一个名为 `example` 的变量并让它引用整数 `123456789`。 + +使用 `console.log()` 打印这个数到终端。 + +运行下面的命令检查你的程序是否正确: + +`javascripting verify numbers.js` + +--- diff --git a/problems/numbers/solution_zh-cn.md b/problems/numbers/solution_zh-cn.md new file mode 100644 index 00000000..4f86c079 --- /dev/null +++ b/problems/numbers/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# YEAH!奇妙的数字! + +你成功地定义了一个变量并给它赋了值 `123456789`。 + +下一个挑战中我们将学习如何对数字进行操作。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From d045fa0f84b0609e84e8a83ce228748fcad3e6b5 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 15:30:04 -0400 Subject: [PATCH 062/346] Rounding numbers done --- i18n/zh-cn.json | 2 +- problems/rounding-numbers/problem_zh-cn.md | 33 +++++++++++++++++++++ problems/rounding-numbers/solution_zh-cn.md | 11 +++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 problems/rounding-numbers/problem_zh-cn.md create mode 100644 problems/rounding-numbers/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 284fcef5..052a8948 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -6,7 +6,7 @@ , "STRING LENGTH": "字符串长度" , "REVISING STRINGS": "修改字符串" , "NUMBERS": "数字" - , "ROUNDING NUMBERS": "ROUNDING NUMBERS" + , "ROUNDING NUMBERS": "数字取整" , "NUMBER TO STRING": "NUMBER TO STRING" , "IF STATEMENT": "IF STATEMENT" , "FOR LOOP": "FOR LOOP" diff --git a/problems/rounding-numbers/problem_zh-cn.md b/problems/rounding-numbers/problem_zh-cn.md new file mode 100644 index 00000000..1ef7c09f --- /dev/null +++ b/problems/rounding-numbers/problem_zh-cn.md @@ -0,0 +1,33 @@ +--- + +# 数字取整 + +我们可以对数字进行一些基本的数学运算,比如 `+`,`-`,`*`,`/`,和 `%`。 + +对于更复杂的数学运算,我们需要使用 `Math` 对象。 + +这个挑战中我们将要使用 `Math` 对象来对数字进行取整。 + +## 挑战: + +创建一个名为 `rounding-numbers.js` 的文件。 + +在文件中定义名为 `roundUp` 的变量,并赋值浮点数 `1.5`。 + +下面就要使用 `Math.round()` 方法来对这个数进行向上取整。 + +`Math.round()` 的例子: + +```js +Math.round(0.5); +``` + +再定义一个名为 `rounded` 的变量,让它引用 `Math.round()` 的结果。将 `roundUp` 作为参数传递。 + +使用 `console.log()` 打印结果到终端。 + +运行下面的命令检查你的程序是否正确: + +`javascripting verify rounding-numbers.js` + +--- diff --git a/problems/rounding-numbers/solution_zh-cn.md b/problems/rounding-numbers/solution_zh-cn.md new file mode 100644 index 00000000..db624e22 --- /dev/null +++ b/problems/rounding-numbers/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 很好,得到了取整的结果。 + +刚刚你已经把数 `1.5` 向上取整到了 `2`。 + +下一个挑战里我们将把一个数字转变成一个字符串。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 7c5c95c43c1e96535e4b427cb10153e78f64bba7 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 15:41:32 -0400 Subject: [PATCH 063/346] Number to string done --- i18n/zh-cn.json | 2 +- problems/number-to-string/problem_zh-cn.md | 28 +++++++++++++++++++++ problems/number-to-string/solution_zh-cn.md | 11 ++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 problems/number-to-string/problem_zh-cn.md create mode 100644 problems/number-to-string/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 052a8948..a17a4f65 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -7,7 +7,7 @@ , "REVISING STRINGS": "修改字符串" , "NUMBERS": "数字" , "ROUNDING NUMBERS": "数字取整" - , "NUMBER TO STRING": "NUMBER TO STRING" + , "NUMBER TO STRING": "数字转字符串" , "IF STATEMENT": "IF STATEMENT" , "FOR LOOP": "FOR LOOP" , "ARRAYS": "ARRAYS" diff --git a/problems/number-to-string/problem_zh-cn.md b/problems/number-to-string/problem_zh-cn.md new file mode 100644 index 00000000..8768c546 --- /dev/null +++ b/problems/number-to-string/problem_zh-cn.md @@ -0,0 +1,28 @@ +--- + +# 数字转字符串 + +有时候我们需要把一个数字转换成字符串。 + +这时,你可以使用 `.toString()` 方法。例如: + +```js +var n = 256; +n = n.toString(); +``` + +## 挑战: + +创建名为 `number-to-string.js` 的文件。 + +在文件中定义名为 `n` 的变量,并赋值 `128`; + +在变量 `n` 上调用 `.toString()` 方法。 + +使用 `console.log()` 将 `.toString()` 方法的结果打印到终端。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify number-to-string.js` + +--- diff --git a/problems/number-to-string/solution_zh-cn.md b/problems/number-to-string/solution_zh-cn.md new file mode 100644 index 00000000..0edcfc40 --- /dev/null +++ b/problems/number-to-string/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 那个数字已经变成了字符串! + +完美。你已经学会了如何将一个数字转换为字符串。 + +接下来的挑战里我们将学习的是 **if 语句**。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 3a7ec7b121b870ddcd064236e4c78900f2f2af4c Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 16:01:33 -0400 Subject: [PATCH 064/346] If statement done --- i18n/zh-cn.json | 2 +- problems/if-statement/problem_zh-cn.md | 35 +++++++++++++++++++++++++ problems/if-statement/solution_zh-cn.md | 11 ++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 problems/if-statement/problem_zh-cn.md create mode 100644 problems/if-statement/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index a17a4f65..47e7ea34 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -8,7 +8,7 @@ , "NUMBERS": "数字" , "ROUNDING NUMBERS": "数字取整" , "NUMBER TO STRING": "数字转字符串" - , "IF STATEMENT": "IF STATEMENT" + , "IF STATEMENT": "IF 语句" , "FOR LOOP": "FOR LOOP" , "ARRAYS": "ARRAYS" , "ARRAY FILTERING": "ARRAY FILTERING" diff --git a/problems/if-statement/problem_zh-cn.md b/problems/if-statement/problem_zh-cn.md new file mode 100644 index 00000000..cc6dc242 --- /dev/null +++ b/problems/if-statement/problem_zh-cn.md @@ -0,0 +1,35 @@ +--- + +# IF 语句 + +条件语句基于一个特定的布尔值(即要么为真要么为假的值)来改变程序的控制流。 + +条件语句长得像下面这样: + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +在括号中你必须输入一个逻辑判断语句,这个逻辑判断语句的结果必须要么为真要么为假。 + +`else` 语句块是可选的,包含了一旦逻辑语句结果为假时需要被执行的语句。 + +## 挑战: + +创建一个名为 `if-statement.js` 的文件。 + +在文件中,声明一个名为 `fruit` 的变量。 + +给 `fruit` 变量赋给**字符串**类型的值 **orange**。 + +接下来要使用 `console.log()`。如果 `fruit` 值的长度大于五,打印出 "**The fruit name has more than five characters.**";否则,打印出 "**The fruit name has five characters or less.**" + +运行下面的命令检查你的程序是否正确: + +`javascripting verify if-statement.js` + +--- diff --git a/problems/if-statement/solution_zh-cn.md b/problems/if-statement/solution_zh-cn.md new file mode 100644 index 00000000..cfa8d81c --- /dev/null +++ b/problems/if-statement/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 俨然一个控制专家 + +结果正确!字符串 `orange` 拥有多于五个的字符。 + +准备好了吗?让我们继续学习 **for 循环** 吧! + +运行 `javascripting` 并选择下一个挑战。 + +--- From 8eb0722e7aab672de8322490e26f90e342e74fda Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 17:41:15 -0400 Subject: [PATCH 065/346] For loop done --- i18n/zh-cn.json | 2 +- problems/for-loop/problem_zh-cn.md | 43 +++++++++++++++++++++++++++++ problems/for-loop/solution_zh-cn.md | 11 ++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 problems/for-loop/problem_zh-cn.md create mode 100644 problems/for-loop/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 47e7ea34..9a4e00a1 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -9,7 +9,7 @@ , "ROUNDING NUMBERS": "数字取整" , "NUMBER TO STRING": "数字转字符串" , "IF STATEMENT": "IF 语句" - , "FOR LOOP": "FOR LOOP" + , "FOR LOOP": "FOR 循环" , "ARRAYS": "ARRAYS" , "ARRAY FILTERING": "ARRAY FILTERING" , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" diff --git a/problems/for-loop/problem_zh-cn.md b/problems/for-loop/problem_zh-cn.md new file mode 100644 index 00000000..a9b11ea6 --- /dev/null +++ b/problems/for-loop/problem_zh-cn.md @@ -0,0 +1,43 @@ +--- + +# FOR 循环 + +For 循环看起来是这样的: + +```js +for (var i = 0; i < 10; i++) { + // log the numbers 0 through 9 + console.log(i) +} +``` + +变量 `i` 被用来记录循环已经运行了多少次。 + +语句 `i < 10;` 指明了循环的上限。 +如果 `i` 小于 `10`,循环将继续进行。 + +语句 `i++` 每次循环后将变量 `i` 的值加一。 + +## 挑战: + +创建一个名为 `for-loop.js` 的文件。 + +在文件中定义一个名为 `total` 的变量,让它等于 `0`。 + +再定义第二个名为 `limit` 的变量,让它等于 `10`。 + +创建一个 for 循环。使用变量 `i`,初始值为 0,每次循环将其值加一。只要 `i` 小于 `limit`,循环就应该一直运行。 + +每次循环中,将 `i` 加到 `total` 上。你可以这样做: + +```js +total += i; +``` + +For 循环结束后,使用 `console.log()` 打印 `total` 变量到终端。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify for-loop.js` + +--- diff --git a/problems/for-loop/solution_zh-cn.md b/problems/for-loop/solution_zh-cn.md new file mode 100644 index 00000000..bf0a4fe4 --- /dev/null +++ b/problems/for-loop/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# TOTAL 的值是 45 + +这是 for 循环的一个基本示例。For 循环在很多情况下十分有用,特别是在与像字符串和数组这样的数据结构结合后。 + +下一个挑战我们将开始学习 **arrays**,也就是**数组**。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 5ee1ebde6a955aa4323192d0d61f12425ed6d086 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 20:13:53 -0400 Subject: [PATCH 066/346] Arrays done --- i18n/zh-cn.json | 2 +- problems/arrays/problem_zh-cn.md | 23 +++++++++++++++++++++++ problems/arrays/solution_zh-cn.md | 11 +++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 problems/arrays/problem_zh-cn.md create mode 100644 problems/arrays/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 9a4e00a1..42ea9da9 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -10,7 +10,7 @@ , "NUMBER TO STRING": "数字转字符串" , "IF STATEMENT": "IF 语句" , "FOR LOOP": "FOR 循环" - , "ARRAYS": "ARRAYS" + , "ARRAYS": "数组" , "ARRAY FILTERING": "ARRAY FILTERING" , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" diff --git a/problems/arrays/problem_zh-cn.md b/problems/arrays/problem_zh-cn.md new file mode 100644 index 00000000..f49be3ef --- /dev/null +++ b/problems/arrays/problem_zh-cn.md @@ -0,0 +1,23 @@ +--- + +# 数组 + +数组就是由一组值构成的列表。下面是一个例子: + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +### 挑战: + +创建名为 `arrays.js` 的文件。 + +在文件中定义一个变量 `pizzaToppings`,其值为顺序包含 `tomato sauce, cheese, pepperoni` 这三个字符串的数组。 + +使用 `console.log()` 将 `pizzaToppings` 数组打印到终端。 + +运行下面的命令检查你的程序是否正确: + +`javascripting verify arrays.js` + +--- diff --git a/problems/arrays/solution_zh-cn.md b/problems/arrays/solution_zh-cn.md new file mode 100644 index 00000000..c4637d5a --- /dev/null +++ b/problems/arrays/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# YAY,一个披萨数组! + +你成功地创建了一个数组。 + +下一个挑战里我们将探索的是数组过滤。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From fd03e85abea10ca346a09362964bbfd5f9232267 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Thu, 30 Apr 2015 23:40:24 -0400 Subject: [PATCH 067/346] Array filtering done --- i18n/zh-cn.json | 2 +- problems/array-filtering/problem_zh-cn.md | 49 ++++++++++++++++++++++ problems/array-filtering/solution_zh-cn.md | 11 +++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 problems/array-filtering/problem_zh-cn.md create mode 100644 problems/array-filtering/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 42ea9da9..b1b1b830 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -11,7 +11,7 @@ , "IF STATEMENT": "IF 语句" , "FOR LOOP": "FOR 循环" , "ARRAYS": "数组" - , "ARRAY FILTERING": "ARRAY FILTERING" + , "ARRAY FILTERING": "数组过滤" , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" , "OBJECTS": "OBJECTS" diff --git a/problems/array-filtering/problem_zh-cn.md b/problems/array-filtering/problem_zh-cn.md new file mode 100644 index 00000000..0b5eab4d --- /dev/null +++ b/problems/array-filtering/problem_zh-cn.md @@ -0,0 +1,49 @@ +--- + +# 数组过滤 + +有许多种方法可以对数组进行操作。 + +一个常见的任务是过滤一个数组使之仅包含特定的值。 + +使用 `.filter()` 方法可以达到这个目的。 + +下面是一个例子: + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +变量 `filtered` 现在仅包含 `cat` 和 `dog`。 + +## 挑战: + +创建名为 `array-filtering.js` 的文件。 + +在文件中,定义一个名为 `numbers` 的变量,并赋予下面的值: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +像上面的例子那样,定义一个 `filtered` 变量,使它引用 `numbers.filter()` 的结果。 + +传递给 `.filter()` 方法的函数应该像下面这样: + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +使用 `console.log()` 打印变量 `filtered` 数组到终端。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify array-filtering.js` + +--- diff --git a/problems/array-filtering/solution_zh-cn.md b/problems/array-filtering/solution_zh-cn.md new file mode 100644 index 00000000..4eda09cb --- /dev/null +++ b/problems/array-filtering/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 数组已经被过滤了! + +干得不错。 + +下一个挑战中我们将学习如何访问数组中的值。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 103273e7e9227e451a60be7ba0b002c30205900c Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 15:19:40 -0400 Subject: [PATCH 068/346] Accessing array values done --- i18n/zh-cn.json | 2 +- .../accessing-array-values/problem_zh-cn.md | 50 +++++++++++++++++++ .../accessing-array-values/solution_zh-cn.md | 11 ++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 problems/accessing-array-values/problem_zh-cn.md create mode 100644 problems/accessing-array-values/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index b1b1b830..c404515a 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -12,7 +12,7 @@ , "FOR LOOP": "FOR 循环" , "ARRAYS": "数组" , "ARRAY FILTERING": "数组过滤" - , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" + , "ACCESSING ARRAY VALUES": "访问数组中的值" , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" , "OBJECTS": "OBJECTS" , "OBJECT PROPERTIES": "OBJECT PROPERTIES" diff --git a/problems/accessing-array-values/problem_zh-cn.md b/problems/accessing-array-values/problem_zh-cn.md new file mode 100644 index 00000000..9118fb03 --- /dev/null +++ b/problems/accessing-array-values/problem_zh-cn.md @@ -0,0 +1,50 @@ +--- + +# 访问数组中的值 + +数组中的元素可以通过一个索引值来访问。 + +索引值就是一个整数,从 0 开始一直到数组的长度减一。 + +下面是一个例子: + + +```js + var pets = ['cat', 'dog', 'rat']; + + console.log(pets[0]); +``` + +上面的代码将打印出 `pets` 数组的第一个元素,也就是字符串 `cat`。 + +数组元素必须通过方括号来访问。 + +英文句号的方式将会导致错误。 + +这是一个正确的例子: + +```js + console.log(pets[0]); +``` + +下面的用法是错误的: +``` + console.log(pets.1); +``` + +## 挑战: + +创建一个名为 `accessing-array-values.js` 的文件。 + +在文件中定义一个数组 `food`: +```js +var food = ['apple', 'pizza', 'pear']; +``` + +使用 `console.log()` 打印数组的第二个值到终端。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify accessing-array-values.js` + +--- diff --git a/problems/accessing-array-values/solution_zh-cn.md b/problems/accessing-array-values/solution_zh-cn.md new file mode 100644 index 00000000..3d4b84b6 --- /dev/null +++ b/problems/accessing-array-values/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 数组的第二个值已经被打印出来了! + +你现在已经学会了如何访问数组中的值的方法。 + +下一个挑战中我们将看到如何依次访问数组中的值。 + +运行 `javascripting` 并选择下一个挑战。 + +--- \ No newline at end of file From 8a23c88c43ebb755747a4469e6a0ddc9686dc048 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 15:30:21 -0400 Subject: [PATCH 069/346] Looping through arrays done --- i18n/zh-cn.json | 2 +- .../looping-through-arrays/problem_zh-cn.md | 49 +++++++++++++++++++ .../looping-through-arrays/solution_zh-cn.md | 11 +++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 problems/looping-through-arrays/problem_zh-cn.md create mode 100644 problems/looping-through-arrays/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index c404515a..da8558dc 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -13,7 +13,7 @@ , "ARRAYS": "数组" , "ARRAY FILTERING": "数组过滤" , "ACCESSING ARRAY VALUES": "访问数组中的值" - , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" + , "LOOPING THROUGH ARRAYS": "依次访问数组中的值" , "OBJECTS": "OBJECTS" , "OBJECT PROPERTIES": "OBJECT PROPERTIES" , "FUNCTIONS": "FUNCTIONS" diff --git a/problems/looping-through-arrays/problem_zh-cn.md b/problems/looping-through-arrays/problem_zh-cn.md new file mode 100644 index 00000000..059a4675 --- /dev/null +++ b/problems/looping-through-arrays/problem_zh-cn.md @@ -0,0 +1,49 @@ +--- + +# 依次访问数组中的值 + +本次挑战中,我们将使用一个 **for 循环**来访问并操作数组中的值。 + +访问数组可以使用一个整数轻易办到。 + +数组中的每一项都被一个从 `0` 开始的整数唯一标识。 + +所以下面的数组中,数字 `1` 标识了 `hi`: + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +于是,`hi` 就可以像这样被访问: + +```js +greetings[1]; +``` + +在 **for 循环**中,我们可以在方括号中使用变量 `i`,而不是直接地使用数字。 + +## 挑战: + +创建一个名为 `looping-through-arrays.js` 的文件。 + +在文件中定义一个变量 `pets`,使它引用下面的数组: + +```js +['cat', 'dog', 'rat']; +``` + +创建一个 for 循环,把数组里的每一个字符串都变成复数。 + +在 for 循环里,你可以使用下面的语句: + +```js +pets[i] = pets[i] + 's'; +``` + +最后,使用 `console.log()` 打印 `pets` 数组到终端。 + +运行下面的命令检查你的程序是否正确: + +`javascripting verify looping-through-arrays.js` + +--- diff --git a/problems/looping-through-arrays/solution_zh-cn.md b/problems/looping-through-arrays/solution_zh-cn.md new file mode 100644 index 00000000..05795e8e --- /dev/null +++ b/problems/looping-through-arrays/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 成功!现在你有了很多猫猫狗狗! + +现在 `pets` 数组中的所有元素都变成了复数。 + +下一个挑战里,我们将学习 **objects**,也就是 **对象**。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 6aa6d9dac9ab9e03d82cf6be63f1335140b90aa6 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 15:37:09 -0400 Subject: [PATCH 070/346] Objects done --- i18n/zh-cn.json | 2 +- problems/objects/problem_zh-cn.md | 37 ++++++++++++++++++++++++++++++ problems/objects/solution_zh-cn.md | 11 +++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 problems/objects/problem_zh-cn.md create mode 100644 problems/objects/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index da8558dc..f5ddea7f 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -14,7 +14,7 @@ , "ARRAY FILTERING": "数组过滤" , "ACCESSING ARRAY VALUES": "访问数组中的值" , "LOOPING THROUGH ARRAYS": "依次访问数组中的值" - , "OBJECTS": "OBJECTS" + , "OBJECTS": "对象" , "OBJECT PROPERTIES": "OBJECT PROPERTIES" , "FUNCTIONS": "FUNCTIONS" , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" diff --git a/problems/objects/problem_zh-cn.md b/problems/objects/problem_zh-cn.md new file mode 100644 index 00000000..f7c19161 --- /dev/null +++ b/problems/objects/problem_zh-cn.md @@ -0,0 +1,37 @@ +--- + +# 对象 + +对象像数组一样,也是一组值的集合,所不同是,对象里的值被关键字所标识,而非整数。 + +例子: + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +} +``` + +## 挑战: + +创建名为 `objects.js` 的文件。 + +在文件里,像这样定义一个变量 `pizza`: + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} +``` + +使用 `console.log()` 打印 `pizza` 对象到终端。 + +运行下面的命令检查你的程序是否正确: + +`javascripting verify objects.js` + + +--- diff --git a/problems/objects/solution_zh-cn.md b/problems/objects/solution_zh-cn.md new file mode 100644 index 00000000..f492a669 --- /dev/null +++ b/problems/objects/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 看到 PIZZA 对象了吗? + +你成功地创建了一个对象! + +下一个挑战我们将看到对象的属性。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 069f65316610d960c66b9697beb22e6618834f06 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 17:03:44 -0400 Subject: [PATCH 071/346] Object properties done --- i18n/zh-cn.json | 2 +- problems/object-properties/problem_zh-cn.md | 47 ++++++++++++++++++++ problems/object-properties/solution_zh-cn.md | 11 +++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 problems/object-properties/problem_zh-cn.md create mode 100644 problems/object-properties/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index f5ddea7f..2234337f 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -15,7 +15,7 @@ , "ACCESSING ARRAY VALUES": "访问数组中的值" , "LOOPING THROUGH ARRAYS": "依次访问数组中的值" , "OBJECTS": "对象" - , "OBJECT PROPERTIES": "OBJECT PROPERTIES" + , "OBJECT PROPERTIES": "对象的属性" , "FUNCTIONS": "FUNCTIONS" , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" } diff --git a/problems/object-properties/problem_zh-cn.md b/problems/object-properties/problem_zh-cn.md new file mode 100644 index 00000000..c01baf72 --- /dev/null +++ b/problems/object-properties/problem_zh-cn.md @@ -0,0 +1,47 @@ +--- + +# 对象的属性 + +你可以使用与访问和操作数组非常类似的方法来访问和操作对象的属性——属性就是对象所包含的键和值的对。 + +这里是一个使用**方括号**的例子: + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +上面的例子将打印出 `'yummy'` 到终端。 + +你也可以使用**英文句号**来得到相同的结果: + +```js +example.pizza; + +example['pizza']; +``` + +上面的两行代码都会返回 `yummy`。 + +## 挑战: + +创建名为 `object-properties.js` 的文件。 + +在文件中,像这样定义名为 `food` 的变量: + +```js +var food = { + types: 'only pizza' +}; +``` + +使用 `console.log()` 打印 `food` 对象的 `types` 属性到终端。 + +运行下面的命令来检查你的程序是否正确: + +`javascripting verify object-properties.js` + +--- diff --git a/problems/object-properties/solution_zh-cn.md b/problems/object-properties/solution_zh-cn.md new file mode 100644 index 00000000..5a170d6d --- /dev/null +++ b/problems/object-properties/solution_zh-cn.md @@ -0,0 +1,11 @@ +--- + +# 正确,PIZZA 是目前唯一的食物。 + +你已经学会如何访问属性了。 + +下一个挑战是关于 **functions** 的,也就是**函数**。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 6fb72f192489543e76bc295a9a3cf98d34813f1a Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 17:13:32 -0400 Subject: [PATCH 072/346] Functions done --- i18n/zh-cn.json | 2 +- problems/functions/problem_zh-cn.md | 41 ++++++++++++++++++++++++++++ problems/functions/solution_zh-cn.md | 9 ++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 problems/functions/problem_zh-cn.md create mode 100644 problems/functions/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 2234337f..38aaf75e 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -16,7 +16,7 @@ , "LOOPING THROUGH ARRAYS": "依次访问数组中的值" , "OBJECTS": "对象" , "OBJECT PROPERTIES": "对象的属性" - , "FUNCTIONS": "FUNCTIONS" + , "FUNCTIONS": "函数" , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" } } diff --git a/problems/functions/problem_zh-cn.md b/problems/functions/problem_zh-cn.md new file mode 100644 index 00000000..521f5d92 --- /dev/null +++ b/problems/functions/problem_zh-cn.md @@ -0,0 +1,41 @@ +--- + +# 函数 + +函数就是一大段代码,这段代码将输入处理,然后产生输出。 + +例子: + +```js +function example (x) { + return x * 2; +} +``` + +我们可以像下面这样**调用**这个函数,得到数字 10: + +```js +example(5) +``` + +上面的这段代码里,`example` 函数将一个数字作为参数——也就是输入——然后返回那个数字乘以 2 的结果。 + +## 挑战: + +创建一个名为 `functions.js` 的文件。 + +在文件中,定义一个名为 `eat` 的函数,其参数名为 `food`,类型为 `string`。 + +在函数中将 `food` 参数处理后像下面这样返回: + +```js +return food + ' tasted really good.'; +``` + +在 `console.log()` 的括号中,调用 `eat()` 函数,并把字符串 `bananas` 当做参数传递给它。 + +运行下面的命令检查你的程序是否正确: + +`javascripting verify functions.js` + +--- diff --git a/problems/functions/solution_zh-cn.md b/problems/functions/solution_zh-cn.md new file mode 100644 index 00000000..301ae008 --- /dev/null +++ b/problems/functions/solution_zh-cn.md @@ -0,0 +1,9 @@ +--- + +# 好吃的香蕉 + +你成功了!你创建了一个能将输入处理并输出的函数。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 46af3cc888ba13e561e29fefda89a26bb3cd4bec Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 17:22:34 -0400 Subject: [PATCH 073/346] Function arguments done --- i18n/zh-cn.json | 2 +- problems/function-arguments/problem_zh-cn.md | 39 +++++++++++++++++++ problems/function-arguments/solution_zh-cn.md | 9 +++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 problems/function-arguments/problem_zh-cn.md create mode 100644 problems/function-arguments/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 38aaf75e..7e2e46a2 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -17,6 +17,6 @@ , "OBJECTS": "对象" , "OBJECT PROPERTIES": "对象的属性" , "FUNCTIONS": "函数" - , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" + , "FUNCTION ARGUMENTS": "函数的参数" } } diff --git a/problems/function-arguments/problem_zh-cn.md b/problems/function-arguments/problem_zh-cn.md new file mode 100644 index 00000000..a8ae4c1c --- /dev/null +++ b/problems/function-arguments/problem_zh-cn.md @@ -0,0 +1,39 @@ +--- + +# 函数的参数 + +一个函数可以被声明为接受任意数量的参数。参数可以是任意的类型,例如字符串,数字,数组,对象,甚至另一个函数。 + +例子: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +我们可以**调用**这个函数,并给它两个参数: + +```js +example('hello', 'world'); +``` + +上面的代码将打印 `hello world` 到终端。 + +## 挑战: + +创建名为 `function-arguments.js` 的文件。 + +在文件中,定义一个名为 `math` 的函数,它接受三个参数。你需要知道的是,参数的名字仅仅是用来引用它们的而已。 + +所以你可以给它们起任何你喜欢的名字。 + +`math` 所做的工作是,将第二个和第三个参数相乘,然后加上第一个参数,将最后的结果返回。 + +之后,使用 `console.log()` 调用并打印出函数的结果。调用时,函数的第一个参数是 `53`,第二个参数是 `61`,第三个参数是 `67`。 + +运行下面的命令检查你的程序是否正确: + +`javascripting verify function-arguments.js` + +--- diff --git a/problems/function-arguments/solution_zh-cn.md b/problems/function-arguments/solution_zh-cn.md new file mode 100644 index 00000000..1743248d --- /dev/null +++ b/problems/function-arguments/solution_zh-cn.md @@ -0,0 +1,9 @@ +--- + +# 你现在完全掌控了参数! + +干得漂亮。 + +运行 `javascripting` 并选择下一个挑战。 + +--- From 5c17d8b66812bd6f4605113ee99e816a0b637f5d Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 19:58:27 -0400 Subject: [PATCH 074/346] Troubleshooting done --- troubleshooting_zh-cn.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 troubleshooting_zh-cn.md diff --git a/troubleshooting_zh-cn.md b/troubleshooting_zh-cn.md new file mode 100644 index 00000000..d2cf3a23 --- /dev/null +++ b/troubleshooting_zh-cn.md @@ -0,0 +1,28 @@ +--- +# 啊,出错了…… +# 但是别着急! +--- + +## 检查你的代码: + +`正确答案 +===================` + +%solution% + +`你的答案 +===================` + +%attempt% + +`它们之间的不同 +===================` + +%diff% + +## 遇到了奇怪的错误? + * 确保你的文件名是正确的 + * 确保你没有省略必要的括号,否则编译器将无法理解它们 + * 确保你在字符串中没有笔误(可能叫键盘误更好一些) + +> **需要帮助?** 在这里提出你的问题:github.com/nodeschool/discussions/issues From 9a624b5ef1057c120181699cf6bae9edf8263740 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Fri, 1 May 2015 20:00:21 -0400 Subject: [PATCH 075/346] One more line in accessing array values --- problems/accessing-array-values/solution_zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/accessing-array-values/solution_zh-cn.md b/problems/accessing-array-values/solution_zh-cn.md index 3d4b84b6..30b2a385 100644 --- a/problems/accessing-array-values/solution_zh-cn.md +++ b/problems/accessing-array-values/solution_zh-cn.md @@ -8,4 +8,4 @@ 运行 `javascripting` 并选择下一个挑战。 ---- \ No newline at end of file +--- From 4a143b9e709d4bd90f041e337903e0aadfc1f415 Mon Sep 17 00:00:00 2001 From: Shim Won Date: Wed, 6 May 2015 08:03:55 +0900 Subject: [PATCH 076/346] Add troubleshooting_ko --- troubleshooting_ko.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 troubleshooting_ko.md diff --git a/troubleshooting_ko.md b/troubleshooting_ko.md new file mode 100644 index 00000000..17ace923 --- /dev/null +++ b/troubleshooting_ko.md @@ -0,0 +1,28 @@ +--- +# 이런, 무언가 잘못되었네요. +# 하지만 침착하세요! +--- + +## 해결책을 확인하세요. + +`해결책 +===================` + +%solution% + +`시도한 것 +===================` + +%attempt% + +`차이점 +===================` + +%diff% + +## 추가적인 문제 해결 + * 파일 이름을 정확히 입력하셨나요? ls `%filename%`을 실행해 확인할 수 있습니다. ls: cannot access `%filename%`: No such file or directory가 나왔다면 새 파일을 만들거나, 이미 있는 파일이나 디렉터리의 이름을 바꾸면 됩니다. + * 괄호를 빼먹지 않았는지 확인하세요. 그러면 컴파일러가 파싱할 수 없습니다. + * 문자열 자체에 오타가 없는지 확인하세요. + +> **도움이 필요하세요?** 여기에서 질문하세요! github.com/nodeschool/discussions/issues From a9d6c6cc968b1d651de6249f31552d63e2238d17 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Wed, 6 May 2015 09:54:29 +1000 Subject: [PATCH 077/346] clean up directory structure --- readme.md => README.md | 0 troubleshooting.md => i18n/troubleshooting.md | 0 troubleshooting_ja.md => i18n/troubleshooting_ja.md | 0 troubleshooting_ko.md => i18n/troubleshooting_ko.md | 0 troubleshooting_zh-cn.md => i18n/troubleshooting_zh-cn.md | 0 compare-solution.js => lib/compare-solution.js | 0 get-file.js => lib/get-file.js | 0 problem.js => lib/problem.js | 2 +- run-solution.js => lib/run-solution.js | 0 problems/accessing-array-values/index.js | 2 +- problems/array-filtering/index.js | 2 +- problems/arrays/index.js | 2 +- problems/for-loop/index.js | 2 +- problems/function-arguments/index.js | 2 +- problems/function-return-values/index.js | 2 +- problems/functions/index.js | 2 +- problems/if-statement/index.js | 2 +- problems/introduction/index.js | 2 +- problems/looping-through-arrays/index.js | 2 +- problems/number-to-string/index.js | 2 +- problems/numbers/index.js | 2 +- problems/object-keys/index.js | 2 +- problems/object-properties/index.js | 2 +- problems/objects/index.js | 2 +- problems/revising-strings/index.js | 2 +- problems/rounding-numbers/index.js | 2 +- problems/scope/index.js | 2 +- problems/string-length/index.js | 2 +- problems/strings/index.js | 2 +- problems/this/index.js | 2 +- problems/variables/index.js | 2 +- 31 files changed, 23 insertions(+), 23 deletions(-) rename readme.md => README.md (100%) rename troubleshooting.md => i18n/troubleshooting.md (100%) rename troubleshooting_ja.md => i18n/troubleshooting_ja.md (100%) rename troubleshooting_ko.md => i18n/troubleshooting_ko.md (100%) rename troubleshooting_zh-cn.md => i18n/troubleshooting_zh-cn.md (100%) rename compare-solution.js => lib/compare-solution.js (100%) rename get-file.js => lib/get-file.js (100%) rename problem.js => lib/problem.js (93%) rename run-solution.js => lib/run-solution.js (100%) diff --git a/readme.md b/README.md similarity index 100% rename from readme.md rename to README.md diff --git a/troubleshooting.md b/i18n/troubleshooting.md similarity index 100% rename from troubleshooting.md rename to i18n/troubleshooting.md diff --git a/troubleshooting_ja.md b/i18n/troubleshooting_ja.md similarity index 100% rename from troubleshooting_ja.md rename to i18n/troubleshooting_ja.md diff --git a/troubleshooting_ko.md b/i18n/troubleshooting_ko.md similarity index 100% rename from troubleshooting_ko.md rename to i18n/troubleshooting_ko.md diff --git a/troubleshooting_zh-cn.md b/i18n/troubleshooting_zh-cn.md similarity index 100% rename from troubleshooting_zh-cn.md rename to i18n/troubleshooting_zh-cn.md diff --git a/compare-solution.js b/lib/compare-solution.js similarity index 100% rename from compare-solution.js rename to lib/compare-solution.js diff --git a/get-file.js b/lib/get-file.js similarity index 100% rename from get-file.js rename to lib/get-file.js diff --git a/problem.js b/lib/problem.js similarity index 93% rename from problem.js rename to lib/problem.js index 9993488f..f4f4803e 100644 --- a/problem.js +++ b/lib/problem.js @@ -13,7 +13,7 @@ module.exports = function createProblem(dirname) { this.problem = getFile(path.join(dirname, 'problem' + postfix + '.md')); this.solution = getFile(path.join(dirname, 'solution' + postfix + '.md')); this.solutionPath = path.resolve(dirname, "../../solutions", problemName, "index.js"); - this.troubleshootingPath = path.join(dirname, '../../troubleshooting' + postfix + '.md'); + this.troubleshootingPath = path.join(dirname, '../../i18n/troubleshooting' + postfix + '.md'); } exports.verify = function (args, cb) { diff --git a/run-solution.js b/lib/run-solution.js similarity index 100% rename from run-solution.js rename to lib/run-solution.js diff --git a/problems/accessing-array-values/index.js b/problems/accessing-array-values/index.js index c8da79ee..706d66c2 100644 --- a/problems/accessing-array-values/index.js +++ b/problems/accessing-array-values/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js index c8da79ee..706d66c2 100644 --- a/problems/array-filtering/index.js +++ b/problems/array-filtering/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/arrays/index.js b/problems/arrays/index.js index c8da79ee..706d66c2 100644 --- a/problems/arrays/index.js +++ b/problems/arrays/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index c8da79ee..706d66c2 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index c8da79ee..706d66c2 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js index c8da79ee..706d66c2 100644 --- a/problems/function-return-values/index.js +++ b/problems/function-return-values/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/functions/index.js b/problems/functions/index.js index c8da79ee..706d66c2 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index c8da79ee..706d66c2 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/introduction/index.js b/problems/introduction/index.js index c8da79ee..706d66c2 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js index c8da79ee..706d66c2 100644 --- a/problems/looping-through-arrays/index.js +++ b/problems/looping-through-arrays/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index c8da79ee..706d66c2 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/numbers/index.js b/problems/numbers/index.js index c8da79ee..706d66c2 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js index c8da79ee..706d66c2 100644 --- a/problems/object-keys/index.js +++ b/problems/object-keys/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js index c8da79ee..706d66c2 100644 --- a/problems/object-properties/index.js +++ b/problems/object-properties/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/objects/index.js b/problems/objects/index.js index c8da79ee..706d66c2 100644 --- a/problems/objects/index.js +++ b/problems/objects/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index c8da79ee..706d66c2 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js index c8da79ee..706d66c2 100644 --- a/problems/rounding-numbers/index.js +++ b/problems/rounding-numbers/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/scope/index.js b/problems/scope/index.js index c8da79ee..706d66c2 100644 --- a/problems/scope/index.js +++ b/problems/scope/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/string-length/index.js b/problems/string-length/index.js index c8da79ee..706d66c2 100644 --- a/problems/string-length/index.js +++ b/problems/string-length/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/strings/index.js b/problems/strings/index.js index c8da79ee..706d66c2 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/this/index.js b/problems/this/index.js index c8da79ee..706d66c2 100644 --- a/problems/this/index.js +++ b/problems/this/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file diff --git a/problems/variables/index.js b/problems/variables/index.js index c8da79ee..706d66c2 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -1 +1 @@ -module.exports = require("../../problem")(__dirname) \ No newline at end of file +module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file From f7ca4c5201cdc0f92c21f31b291e25dcf88f9612 Mon Sep 17 00:00:00 2001 From: esalinas Date: Wed, 6 May 2015 07:17:06 -0600 Subject: [PATCH 078/346] Add scope lesson --- menu.json | 3 +- problems/scope/problem.md | 68 ++++++++++++++++++++++++++++++++++++-- problems/scope/solution.md | 6 +++- solutions/scope/index.js | 18 ++++++++++ 4 files changed, 91 insertions(+), 4 deletions(-) diff --git a/menu.json b/menu.json index d8023274..b6fc2417 100644 --- a/menu.json +++ b/menu.json @@ -16,5 +16,6 @@ "OBJECTS", "OBJECT PROPERTIES", "FUNCTIONS", - "FUNCTION ARGUMENTS" + "FUNCTION ARGUMENTS", + "SCOPE" ] diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 09d67ae1..b2e0387a 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -1,5 +1,69 @@ --- -# +# SCOPE ---- +`Scope` is the set of variables, objects, and functions you have access to. + +JavaScript has two scopes: `global` and `local`. A variable that is declared outside a function definition is a `global` variable, and its value is accessible and modifiable throughout your program. A variable that is declared inside a function definition is `local`. It is created and destroyed every time the function is executed, and it cannot be accessed by any code outside the function. + +Functions defined inside other functions, known as nested functions, have access to their parent function's scope. + +Pay attention to the comments in the code below: + +```js +var a = 4; // a is a global variable, it can be accesed by the functions below + +function foo() { + var b = a * 3; // b cannot be accesed outside foo function, but can be accesed by functions + // defined inside foo + function bar(c) { + var b = 2; // another `b` variable is created inside bar function scope + // the changes to this new `b` variable don't affect the old `b` variable + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +IIFE, Immediately Invoked Function Expression, is a common pattern for creating local scopes +example: +```js + (function(){ // the function expression is surrounded by parenthesis + // variables defined here + // can't be accesed outside + })(); // the function is immediately invoked +``` +## The challenge: + +Create a file named `scope.js`. + +In that file, copy the following code: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Use your knowledge of the variables' `scope` and place the following code inside on of the functions in 'scope.js' +so the output is `a: 1, b: 8,c: 6` +```js +console.log("a: "+a+", b: "+b+",c: "+c); +``` +--- \ No newline at end of file diff --git a/problems/scope/solution.md b/problems/scope/solution.md index 09d67ae1..4a351bd7 100644 --- a/problems/scope/solution.md +++ b/problems/scope/solution.md @@ -1,5 +1,9 @@ --- -# +#EXCELLENT! + +You got it! The second function has the scope we were looking for. + +Run javascripting in the console to choose the next challenge. --- diff --git a/solutions/scope/index.js b/solutions/scope/index.js index e69de29b..01958369 100644 --- a/solutions/scope/index.js +++ b/solutions/scope/index.js @@ -0,0 +1,18 @@ +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + console.log("a: "+a+", b: "+b+",c: "+c); + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); \ No newline at end of file From ad07882f3bf24534aa30107b0410c9c0b0567382 Mon Sep 17 00:00:00 2001 From: ledsun Date: Thu, 7 May 2015 10:05:26 +0900 Subject: [PATCH 079/346] Translate the menu into Japanese. --- i18n/ja.json | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/i18n/ja.json b/i18n/ja.json index 88a1d787..2236c3a2 100644 --- a/i18n/ja.json +++ b/i18n/ja.json @@ -1,22 +1,23 @@ { "exercise": { - "INTRODUCTION": "INTRODUCTION" - , "VARIABLES": "VARIABLES" - , "STRINGS": "STRINGS" - , "STRING LENGTH": "STRING LENGTH" - , "REVISING STRINGS": "REVISING STRINGS" - , "NUMBERS": "NUMBERS" - , "ROUNDING NUMBERS": "ROUNDING NUMBERS" - , "NUMBER TO STRING": "NUMBER TO STRING" - , "IF STATEMENT": "IF STATEMENT" - , "FOR LOOP": "FOR LOOP" - , "ARRAYS": "ARRAYS" - , "ARRAY FILTERING": "ARRAY FILTERING" - , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" - , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" - , "OBJECTS": "OBJECTS" - , "OBJECT PROPERTIES": "OBJECT PROPERTIES" - , "FUNCTIONS": "FUNCTIONS" - , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" + "INTRODUCTION": "はじめの一歩" + , "VARIABLES": "変数" + , "STRINGS": "文字列" + , "STRING LENGTH": "文字列の長さ" + , "REVISING STRINGS": "文字列を変更" + , "NUMBERS": "数値" + , "ROUNDING NUMBERS": "数値丸め" + , "NUMBER TO STRING": "数値を文字列に" + , "IF STATEMENT": "if文" + , "FOR LOOP": "forループ" + , "ARRAYS": "配列" + , "ARRAY FILTERING": "配列のフィルター" + , "ACCESSING ARRAY VALUES": "配列の値にアクセスする" + , "LOOPING THROUGH ARRAYS": "配列をループする" + , "OBJECTS": "オブジェクト" + , "OBJECT PROPERTIES": "オブジェクトのプロパティ" + , "FUNCTIONS": "関数" + , "FUNCTION ARGUMENTS": "関数の引数" + , "SCOPE": "スコープ" } -} \ No newline at end of file +} From 2529ef9c3df0d3960c62ccad1903394b5a763d96 Mon Sep 17 00:00:00 2001 From: Shim Won Date: Thu, 7 May 2015 18:20:10 +0900 Subject: [PATCH 080/346] Translate scope to Korean --- i18n/ko.json | 39 +++++++++++---------- problems/scope/problem_ko.md | 66 ++++++++++++++++++++++++++++++++++- problems/scope/solution_ko.md | 6 +++- 3 files changed, 90 insertions(+), 21 deletions(-) diff --git a/i18n/ko.json b/i18n/ko.json index 88a1d787..a05fa99c 100644 --- a/i18n/ko.json +++ b/i18n/ko.json @@ -1,22 +1,23 @@ { "exercise": { - "INTRODUCTION": "INTRODUCTION" - , "VARIABLES": "VARIABLES" - , "STRINGS": "STRINGS" - , "STRING LENGTH": "STRING LENGTH" - , "REVISING STRINGS": "REVISING STRINGS" - , "NUMBERS": "NUMBERS" - , "ROUNDING NUMBERS": "ROUNDING NUMBERS" - , "NUMBER TO STRING": "NUMBER TO STRING" - , "IF STATEMENT": "IF STATEMENT" - , "FOR LOOP": "FOR LOOP" - , "ARRAYS": "ARRAYS" - , "ARRAY FILTERING": "ARRAY FILTERING" - , "ACCESSING ARRAY VALUES": "ACCESSING ARRAY VALUES" - , "LOOPING THROUGH ARRAYS": "LOOPING THROUGH ARRAYS" - , "OBJECTS": "OBJECTS" - , "OBJECT PROPERTIES": "OBJECT PROPERTIES" - , "FUNCTIONS": "FUNCTIONS" - , "FUNCTION ARGUMENTS": "FUNCTION ARGUMENTS" + "INTRODUCTION": "소개" + , "VARIABLES": "변수" + , "STRINGS": "문자열" + , "STRING LENGTH": "문자열 길이" + , "REVISING STRINGS": "문자열 뒤집기" + , "NUMBERS": "숫자" + , "ROUNDING NUMBERS": "숫자 반올림" + , "NUMBER TO STRING": "숫자에서 문자열으로" + , "IF STATEMENT": "IF 구문" + , "FOR LOOP": "FOR 반복문" + , "ARRAYS": "배열" + , "ARRAY FILTERING": "배열 필터" + , "ACCESSING ARRAY VALUES": "배열 값에 접근하기" + , "LOOPING THROUGH ARRAYS": "배열을 루프하기" + , "OBJECTS": "객체" + , "OBJECT PROPERTIES": "객체 속성" + , "FUNCTIONS": "함수" + , "FUNCTION ARGUMENTS": "함수 인자" + , "SCOPE": "스코프" } -} \ No newline at end of file +} diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index 09d67ae1..79d58980 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -1,5 +1,69 @@ --- -# +# 스코프 + +`스코프`는 접근할 수 있는 변수, 객체, 함수의 집합입니다. + +JavaScript에는 `전역`과 `지역` 두 개의 스코프가 있습니다. 함수 선언 밖에 선언된 변수는 `전역` 변수이고, 그 값은 프로그램 전체에서 접근하고 수정할 수 있습니다. 함수 선언 안에 선언된 변수는 `지역` 변수입니다. 지역 변수는 함수가 실행 될 때마다 만들어지고 파괴되고, 함수 밖의 코드에서 접근할 수 없습니다. + +다른 함수 안에 선언된 함수(중첩 함수)는 부모 함수의 스코프에 접근 할 수 있습니다. + +아래 코드의 주석을 잘 읽어보세요. + +```js +var a = 4; // 전연 변수 아래에 있는 함수에서 접근 가능 + +function foo() { + var b = a * 3; // b는 foo 함수 밖에서 접근할 수 없지만, foo 함수 안에서 + // 선언된 함수에서는 접근 가능 + function bar(c) { + var b = 2; // bar 함수 스코프 안에서 생성한 다른 `b` 변수 + // 새로 만든 `b` 변수를 변경해도 오래된 `b` 변수에는 영향이 없음 + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +즉시 실행하는 함수식(IIFE, Immediately Invoked Function Expression)은 지역 스코프를 만드는 일반적인 패턴입니다. +예제: +```js + (function(){ // 함수식은 괄호로 둘러 쌈 + // 변수 선언은 여기서 + // 밖에서 접근할 수 없음 + })(); // 함수는 즉시 실행됨 +``` +## 도전 과제: + +`scope.js`라는 파일을 만듭니다. + +이 파일에 다음 코드를 복사합니다. +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +변수의 `스코프`에 관한 지식을 활용해 다음 코드를 'scope.js' 안의 함수 안에 넣어 `a: 1, b: 8,c: 6`를 출력하게 하세요. +```js +console.log("a: "+a+", b: "+b+",c: "+c); +``` --- diff --git a/problems/scope/solution_ko.md b/problems/scope/solution_ko.md index 09d67ae1..02d94b34 100644 --- a/problems/scope/solution_ko.md +++ b/problems/scope/solution_ko.md @@ -1,5 +1,9 @@ --- -# +# 훌륭해요! + +해냈습니다! 두 번째 함수는 우리가 찾는 스코프를 가지고 있습니다. + +다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. --- From 54810bf65d809e736ef3e7a92a1cad7902f20136 Mon Sep 17 00:00:00 2001 From: ledsun Date: Thu, 7 May 2015 20:25:31 +0900 Subject: [PATCH 081/346] Fix command names in Japanese files. --- problems/accessing-array-values/problem_ja.md | 2 +- problems/accessing-array-values/solution_ja.md | 2 +- problems/array-filtering/problem_ja.md | 2 +- problems/array-filtering/solution_ja.md | 2 +- problems/arrays/problem_ja.md | 2 +- problems/arrays/solution_ja.md | 2 +- problems/for-loop/problem_ja.md | 2 +- problems/for-loop/solution_ja.md | 2 +- problems/function-arguments/problem_ja.md | 2 +- problems/function-arguments/solution_ja.md | 2 +- problems/functions/problem_ja.md | 2 +- problems/functions/solution_ja.md | 2 +- problems/if-statement/problem_ja.md | 2 +- problems/if-statement/solution_ja.md | 2 +- problems/introduction/problem_ja.md | 10 +++++----- problems/introduction/solution_ja.md | 2 +- problems/looping-through-arrays/problem_ja.md | 2 +- problems/looping-through-arrays/solution_ja.md | 2 +- problems/number-to-string/problem_ja.md | 2 +- problems/number-to-string/solution_ja.md | 2 +- problems/numbers/problem_ja.md | 2 +- problems/numbers/solution_ja.md | 2 +- problems/object-properties/problem_ja.md | 2 +- problems/object-properties/solution_ja.md | 2 +- problems/objects/problem_ja.md | 2 +- problems/objects/solution_ja.md | 2 +- problems/revising-strings/problem_ja.md | 2 +- problems/revising-strings/solution_ja.md | 2 +- problems/rounding-numbers/problem_ja.md | 2 +- problems/rounding-numbers/solution_ja.md | 2 +- problems/string-length/problem_ja.md | 2 +- problems/string-length/solution_ja.md | 2 +- problems/strings/problem_ja.md | 2 +- problems/strings/solution_ja.md | 2 +- problems/variables/problem_ja.md | 2 +- problems/variables/solution_ja.md | 2 +- 36 files changed, 40 insertions(+), 40 deletions(-) diff --git a/problems/accessing-array-values/problem_ja.md b/problems/accessing-array-values/problem_ja.md index 9050a280..ed8867fa 100644 --- a/problems/accessing-array-values/problem_ja.md +++ b/problems/accessing-array-values/problem_ja.md @@ -46,6 +46,6 @@ var food = ['apple', 'pizza', 'pear']; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify accessing-array-values.js` +`javascripting verify accessing-array-values.js` --- diff --git a/problems/accessing-array-values/solution_ja.md b/problems/accessing-array-values/solution_ja.md index 3f47eace..3c851fef 100644 --- a/problems/accessing-array-values/solution_ja.md +++ b/problems/accessing-array-values/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、配列のループの例に取り組みます。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/array-filtering/problem_ja.md b/problems/array-filtering/problem_ja.md index c6022ed2..db3cd4c0 100644 --- a/problems/array-filtering/problem_ja.md +++ b/problems/array-filtering/problem_ja.md @@ -45,6 +45,6 @@ function evenNumbers (number) { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify array-filtering.js` +`javascripting verify array-filtering.js` --- diff --git a/problems/array-filtering/solution_ja.md b/problems/array-filtering/solution_ja.md index c07ece8c..02181b9b 100644 --- a/problems/array-filtering/solution_ja.md +++ b/problems/array-filtering/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、配列の値にアクセスする例に取り組みます。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/arrays/problem_ja.md b/problems/arrays/problem_ja.md index 0d21d1e7..03a00aec 100644 --- a/problems/arrays/problem_ja.md +++ b/problems/arrays/problem_ja.md @@ -21,6 +21,6 @@ var pets = ['cat', 'dog', 'rat']; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify arrays.js` +`javascripting verify arrays.js` --- diff --git a/problems/arrays/solution_ja.md b/problems/arrays/solution_ja.md index b37e19ce..b75c8457 100644 --- a/problems/arrays/solution_ja.md +++ b/problems/arrays/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、配列のフィルターを探求します。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/for-loop/problem_ja.md b/problems/for-loop/problem_ja.md index d90ad39d..b618bd32 100644 --- a/problems/for-loop/problem_ja.md +++ b/problems/for-loop/problem_ja.md @@ -39,6 +39,6 @@ total += i; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify for-loop.js` +`javascripting verify for-loop.js` --- diff --git a/problems/for-loop/solution_ja.md b/problems/for-loop/solution_ja.md index 63ab0953..08c1a657 100644 --- a/problems/for-loop/solution_ja.md +++ b/problems/for-loop/solution_ja.md @@ -7,6 +7,6 @@ for ループの基本的な使い方がわかりました。for ループはい 次の課題では**配列**に取り組みましょう。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/function-arguments/problem_ja.md b/problems/function-arguments/problem_ja.md index bbc28393..03e21b65 100644 --- a/problems/function-arguments/problem_ja.md +++ b/problems/function-arguments/problem_ja.md @@ -35,6 +35,6 @@ example('hello', 'world'); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify function-arguments.js` +`javascripting verify function-arguments.js` --- diff --git a/problems/function-arguments/solution_ja.md b/problems/function-arguments/solution_ja.md index 3f4dc6c5..d06d6fbf 100644 --- a/problems/function-arguments/solution_ja.md +++ b/problems/function-arguments/solution_ja.md @@ -4,6 +4,6 @@ これでこの演習は終わりです。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/functions/problem_ja.md b/problems/functions/problem_ja.md index 228a951f..697233b4 100644 --- a/problems/functions/problem_ja.md +++ b/problems/functions/problem_ja.md @@ -40,6 +40,6 @@ return food + ' tasted really good.'; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify functions.js` +`javascripting verify functions.js` --- diff --git a/problems/functions/solution_ja.md b/problems/functions/solution_ja.md index 5ced480c..7ea54fef 100644 --- a/problems/functions/solution_ja.md +++ b/problems/functions/solution_ja.md @@ -6,6 +6,6 @@ 次の課題は、関数の引数です。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/if-statement/problem_ja.md b/problems/if-statement/problem_ja.md index 2628f727..6c80a21e 100644 --- a/problems/if-statement/problem_ja.md +++ b/problems/if-statement/problem_ja.md @@ -31,6 +31,6 @@ if (n > 1) { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify if-statement.js` +`javascripting verify if-statement.js` --- diff --git a/problems/if-statement/solution_ja.md b/problems/if-statement/solution_ja.md index 1e709d4f..37fffe89 100644 --- a/problems/if-statement/solution_ja.md +++ b/problems/if-statement/solution_ja.md @@ -6,6 +6,6 @@ 次は**for loop**です。準備はいいですか? -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/introduction/problem_ja.md b/problems/introduction/problem_ja.md index 8a2979be..04ed515a 100644 --- a/problems/introduction/problem_ja.md +++ b/problems/introduction/problem_ja.md @@ -3,13 +3,13 @@ このワークショップで使うディレクトリを作りましょう。 -次のコマンドを実行して、`javascripting-jp` ディレクトリを作ります。 +次のコマンドを実行して、`javascripting` ディレクトリを作ります。 -`mkdir javascripting-jp` +`mkdir javascripting` -`javascripting-jp` ディレクトリに移動しましょう。 +`javascripting` ディレクトリに移動しましょう。 -`cd javascripting-jp` +`cd javascripting` 次のコマンドで `introduction.js` ファイルを作成します。 @@ -23,7 +23,7 @@ console.log('hello'); ファイルを保存します。次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify introduction.js` +`javascripting verify introduction.js` --- diff --git a/problems/introduction/solution_ja.md b/problems/introduction/solution_ja.md index 7b9a97db..2901e9d8 100644 --- a/problems/introduction/solution_ja.md +++ b/problems/introduction/solution_ja.md @@ -16,6 +16,6 @@ console.log('hello'); 次の課題では**変数**を学びます。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/looping-through-arrays/problem_ja.md b/problems/looping-through-arrays/problem_ja.md index 3770249a..7e715702 100644 --- a/problems/looping-through-arrays/problem_ja.md +++ b/problems/looping-through-arrays/problem_ja.md @@ -45,6 +45,6 @@ forループが終わったら、 `console.log()` を使って配列 `pets` を 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify looping-through-arrays.js` +`javascripting verify looping-through-arrays.js` --- diff --git a/problems/looping-through-arrays/solution_ja.md b/problems/looping-through-arrays/solution_ja.md index 9c83a49f..747f0e1d 100644 --- a/problems/looping-through-arrays/solution_ja.md +++ b/problems/looping-through-arrays/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、配列を離れ**オブジェクト**へ行きましょう。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/number-to-string/problem_ja.md b/problems/number-to-string/problem_ja.md index 9a619d3c..80d8ae2c 100644 --- a/problems/number-to-string/problem_ja.md +++ b/problems/number-to-string/problem_ja.md @@ -23,6 +23,6 @@ n = n.toString(); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify number-to-string.js` +`javascripting verify number-to-string.js` --- diff --git a/problems/number-to-string/solution_ja.md b/problems/number-to-string/solution_ja.md index 9a3ff654..1e067e51 100644 --- a/problems/number-to-string/solution_ja.md +++ b/problems/number-to-string/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、**if文**を見てみましょう。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/numbers/problem_ja.md b/problems/numbers/problem_ja.md index 6824e398..f1263c6e 100644 --- a/problems/numbers/problem_ja.md +++ b/problems/numbers/problem_ja.md @@ -16,6 +16,6 @@ JavaScriptの数値は `2` 、`14` 、`4353` のような整数と 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify numbers.js` +`javascripting verify numbers.js` --- diff --git a/problems/numbers/solution_ja.md b/problems/numbers/solution_ja.md index 857239bf..0904fbd0 100644 --- a/problems/numbers/solution_ja.md +++ b/problems/numbers/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、数値の変更を扱います。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/object-properties/problem_ja.md b/problems/object-properties/problem_ja.md index 12a5547f..46e0ca8a 100644 --- a/problems/object-properties/problem_ja.md +++ b/problems/object-properties/problem_ja.md @@ -46,6 +46,6 @@ var food = { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify object-properties.js` +`javascripting verify object-properties.js` --- diff --git a/problems/object-properties/solution_ja.md b/problems/object-properties/solution_ja.md index de9e0ff5..f88d789b 100644 --- a/problems/object-properties/solution_ja.md +++ b/problems/object-properties/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、**関数**のすべてを説明します。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/objects/problem_ja.md b/problems/objects/problem_ja.md index 2cc290e0..bcd64a24 100644 --- a/problems/objects/problem_ja.md +++ b/problems/objects/problem_ja.md @@ -34,6 +34,6 @@ var pizza = { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう... -`javascripting-jp verify objects.js` +`javascripting verify objects.js` --- diff --git a/problems/objects/solution_ja.md b/problems/objects/solution_ja.md index 034fdb37..942f9224 100644 --- a/problems/objects/solution_ja.md +++ b/problems/objects/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、オブジェクトのプロパティへのアクセスを見てみましょう。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/revising-strings/problem_ja.md b/problems/revising-strings/problem_ja.md index a7cc5d79..b7263d72 100644 --- a/problems/revising-strings/problem_ja.md +++ b/problems/revising-strings/problem_ja.md @@ -29,6 +29,6 @@ console.log(example); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify revising-strings.js` +`javascripting verify revising-strings.js` --- diff --git a/problems/revising-strings/solution_ja.md b/problems/revising-strings/solution_ja.md index 0ff9a253..75c8dfef 100644 --- a/problems/revising-strings/solution_ja.md +++ b/problems/revising-strings/solution_ja.md @@ -6,6 +6,6 @@ つづいて**数値**の探検をしましょう。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/rounding-numbers/problem_ja.md b/problems/rounding-numbers/problem_ja.md index aff13dcb..d8b22631 100644 --- a/problems/rounding-numbers/problem_ja.md +++ b/problems/rounding-numbers/problem_ja.md @@ -29,6 +29,6 @@ Math.round(0.5); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify rounding-numbers.js` +`javascripting verify rounding-numbers.js` --- diff --git a/problems/rounding-numbers/solution_ja.md b/problems/rounding-numbers/solution_ja.md index ec813b11..85c167ac 100644 --- a/problems/rounding-numbers/solution_ja.md +++ b/problems/rounding-numbers/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では、数値を文字列に変換します。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/string-length/problem_ja.md b/problems/string-length/problem_ja.md index a37a1a72..948029f8 100644 --- a/problems/string-length/problem_ja.md +++ b/problems/string-length/problem_ja.md @@ -27,6 +27,6 @@ example.length 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify string-length.js` +`javascripting verify string-length.js` --- diff --git a/problems/string-length/solution_ja.md b/problems/string-length/solution_ja.md index c86285b6..5f9e6d59 100644 --- a/problems/string-length/solution_ja.md +++ b/problems/string-length/solution_ja.md @@ -4,6 +4,6 @@ やりました! 文字列 `example string` は14文字です。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index 0fc358df..d6ef268d 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -28,6 +28,6 @@ var someString = 'this is a string'; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify strings.js` +`javascripting verify strings.js` --- diff --git a/problems/strings/solution_ja.md b/problems/strings/solution_ja.md index edd94917..ecdbfc9f 100644 --- a/problems/strings/solution_ja.md +++ b/problems/strings/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では文字列の編集を扱います。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- diff --git a/problems/variables/problem_ja.md b/problems/variables/problem_ja.md index 0356003e..104ec183 100644 --- a/problems/variables/problem_ja.md +++ b/problems/variables/problem_ja.md @@ -34,6 +34,6 @@ var example = 'some string'; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting-jp verify variables.js` +`javascripting verify variables.js` --- diff --git a/problems/variables/solution_ja.md b/problems/variables/solution_ja.md index 13347c48..491b66d2 100644 --- a/problems/variables/solution_ja.md +++ b/problems/variables/solution_ja.md @@ -6,6 +6,6 @@ 次の課題では**文字列**をもっと詳しく見てみましょう。 -コンソールで `javascripting-jp` コマンドを実行します。次の課題を選択しましょう。 +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- From 0b93c8f3b5d701f293221cb36e335a7985d648bb Mon Sep 17 00:00:00 2001 From: ledsun Date: Thu, 7 May 2015 20:21:32 +0900 Subject: [PATCH 082/346] Translate scope to Japanese. --- problems/scope/problem_ja.md | 73 ++++++++++++++++++++++++++++++++++- problems/scope/solution_ja.md | 6 ++- 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/problems/scope/problem_ja.md b/problems/scope/problem_ja.md index 09d67ae1..f649e27a 100644 --- a/problems/scope/problem_ja.md +++ b/problems/scope/problem_ja.md @@ -1,5 +1,76 @@ --- -# +# スコープ +「スコープ」は参照できる変数・オブジェクト・関数の集合です。 + +JavaScriptには、二つのスコープがあります。グローバルとローカルです。 +関数定義の外側で定義した変数はグローバルスコープです。プログラムのどこからでも参照して変更することができます。 +関数定義の内側で定義した変数はローカルスコープです。関数が実行されるときに作られ、関数が終了すると破棄されます。 +関数外のプログラムからは参照できません。 + +他の関数の中で定義した関数を「ネストした関数」と呼びます。「ネストした関数」からは親関数のスコープを参照できます。 + +次のソースコードのコメントを読んでください... + +```js +var a = 4; // a はグローバル変数です。下の全ての関数から参照できます。 + +function foo() { + var b = a * 3; // b は foo 関数の外からは参照できません。 foo 関数の中で定義した関数 bar からは参照できます。 + + function bar(c) { + var b = 2; // bar 関数の中でもう一つ b 変数を定義します + // 新しい b を変更しても、元の b 変数は変わりません。 + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` + +即時実行関数式 (Immediately Invoked Function Expression : IIFE) という共通パターンで、ローカルスコープを作れます。 +例えば... + +```js +(function(){ // 関数式をカッコで括ります + // 変数はここで定義します + // 関数の外からは参照できません +})(); // 関数を即座に実行します +``` + +## やってみよう + +`scope.js`ファイルを作りましょう。 +ファイルの中に、次のソースコードをコピーしましょう... + +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +変数のスコープを活用しましょう。次のコードを関数の中に配置してください。`scope.js` の中の関数です。 +そして、目指す出力は `a: 1, b: 8,c: 6` です。 + +```js +console.log("a: "+a+", b: "+b+",c: "+c); +``` --- diff --git a/problems/scope/solution_ja.md b/problems/scope/solution_ja.md index 09d67ae1..e8228a5b 100644 --- a/problems/scope/solution_ja.md +++ b/problems/scope/solution_ja.md @@ -1,5 +1,9 @@ --- -# +# 素晴らしい! + +やるね! 二番目の関数が、求めていたスコープを持っています。 + +コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 --- From f6cea9474184fb2e503b6a0bfd7d28ae96f17053 Mon Sep 17 00:00:00 2001 From: Pepo Viola Date: Mon, 11 May 2015 20:06:53 -0300 Subject: [PATCH 083/346] add spanish translation for scope --- problems/scope/problem_es.md | 69 +++++++++++++++++++++++++++++++++++ problems/scope/solution_es.md | 8 ++++ 2 files changed, 77 insertions(+) create mode 100644 problems/scope/problem_es.md create mode 100644 problems/scope/solution_es.md diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md new file mode 100644 index 00000000..d139dde7 --- /dev/null +++ b/problems/scope/problem_es.md @@ -0,0 +1,69 @@ +--- + +# SCOPE ( AMBITO ) + +El `scope` o ámbito es el conjunto de variables, objetos y funciones a las que tienes acceso. + +JavaScript tiene dos ámbitos: `global` y `local`. Una variable que es declarada fuera de la definición de una función es una variable `global`, y su valor es accesible y modificable a través de tu programa. Una variable que es declarada dentro de la definición de una función es una variable `local`. Se crea y se destruye cada vez que se ejecuta la función, y no se puede acceder a su valor ni modificarlo por ningún código fuera de la misma. + +Las funciones definidas dentro de otras funciones, conocidas como funciones anidadas, tienen acceso al ámbito de su función padre. + +Presta atención a los comentarios en el siguiente código: + +```js +var a = 4; // es una variable global, puede ser accedida por las siguientes funciones + +function foo() { + var b = a * 3; // b no puede ser accedida por fuera de la función foo, pero puede ser accedida + // por las funciones definidas dentro de foo + function bar(c) { + var b = 2; // otra variable `b` es creada dentro del ámbito de la función bar + // los cambios a esta nueva `b` no afectan a la vieja variable `b` + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +IIFE, Immediately Invoked Function Expression( Expresión de Functión Invocada Inmediatamente ), es un patrón común para crear ámbitos locales. +Por ejemplo: +```js + (function(){ // La expresión de la función está entre parentesis + // las variables definidas aquí + // no pueden ser accedidas por fuera + })(); // la función es inmediatamente invocada +``` +## El ejercicio: + +Crea un archivo llamado `scope.js`. + +En ese archivo, copia el siguiente código: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Usa tu conocimiento sobre el ámbito de las variables y ubica el siguiente código dentro de alguna de las funciones +en `scope.js` para que la salida sea `a: 1, b: 8,c: 6` +```js +console.log("a: "+a+", b: "+b+",c: "+c); +``` +--- \ No newline at end of file diff --git a/problems/scope/solution_es.md b/problems/scope/solution_es.md new file mode 100644 index 00000000..62692356 --- /dev/null +++ b/problems/scope/solution_es.md @@ -0,0 +1,8 @@ +--- + +#EXCELENTE! + +Lo hiciste! La segunda función tiene el ámbito que estabamos buscando. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. +--- From 52da67ee18e21c14c740dc0b1909719b3c1479b5 Mon Sep 17 00:00:00 2001 From: Pepo Viola Date: Mon, 11 May 2015 23:39:24 -0300 Subject: [PATCH 084/346] fix typo --- problems/scope/problem_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md index d139dde7..51b6cb7c 100644 --- a/problems/scope/problem_es.md +++ b/problems/scope/problem_es.md @@ -30,7 +30,7 @@ foo(); // 4, 2, 48 IIFE, Immediately Invoked Function Expression( Expresión de Functión Invocada Inmediatamente ), es un patrón común para crear ámbitos locales. Por ejemplo: ```js - (function(){ // La expresión de la función está entre parentesis + (function(){ // La expresión de la función está entre paréntesis // las variables definidas aquí // no pueden ser accedidas por fuera })(); // la función es inmediatamente invocada From e99feecce3498b0844ea7cf0210ac3580e591443 Mon Sep 17 00:00:00 2001 From: Haoliang Quan Date: Tue, 12 May 2015 19:47:36 -0400 Subject: [PATCH 085/346] Add missing Chinese translations --- i18n/zh-cn.json | 1 + .../function-return-values/problem_zh-cn.md | 5 ++ .../function-return-values/solution_zh-cn.md | 5 ++ problems/object-keys/problem_zh-cn.md | 5 ++ problems/object-keys/solution_zh-cn.md | 5 ++ problems/scope/problem_zh-cn.md | 68 +++++++++++++++++++ problems/scope/solution_zh-cn.md | 9 +++ problems/this/problem_zh-cn.md | 5 ++ problems/this/solution_zh-cn.md | 5 ++ 9 files changed, 108 insertions(+) create mode 100644 problems/function-return-values/problem_zh-cn.md create mode 100644 problems/function-return-values/solution_zh-cn.md create mode 100644 problems/object-keys/problem_zh-cn.md create mode 100644 problems/object-keys/solution_zh-cn.md create mode 100644 problems/scope/problem_zh-cn.md create mode 100644 problems/scope/solution_zh-cn.md create mode 100644 problems/this/problem_zh-cn.md create mode 100644 problems/this/solution_zh-cn.md diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 7e2e46a2..8a9ce439 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -18,5 +18,6 @@ , "OBJECT PROPERTIES": "对象的属性" , "FUNCTIONS": "函数" , "FUNCTION ARGUMENTS": "函数的参数" + , "SCOPE": "作用域" } } diff --git a/problems/function-return-values/problem_zh-cn.md b/problems/function-return-values/problem_zh-cn.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_zh-cn.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_zh-cn.md b/problems/function-return-values/solution_zh-cn.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_zh-cn.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/problem_zh-cn.md b/problems/object-keys/problem_zh-cn.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_zh-cn.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_zh-cn.md b/problems/object-keys/solution_zh-cn.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_zh-cn.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/scope/problem_zh-cn.md b/problems/scope/problem_zh-cn.md new file mode 100644 index 00000000..a12dd1a5 --- /dev/null +++ b/problems/scope/problem_zh-cn.md @@ -0,0 +1,68 @@ +--- + +# 作用域 + +`作用域` 就是你能访问到的变量、对象以及函数的集合。 + +JavaScript 有两种类型的作用域:`全局` 以及 `局部`。函数外声明的变量是一个 `全局` 变量,它的值可以在整个程序中被访问和修改。函数内声明的变量是 `局部` 的,它随着函数的调用而被创建,随着函数的结束而被销毁。它不能在函数外被访问。 + +在函数中定义的函数,也叫嵌套函数,可以访问到外层函数的作用域。 + +注意下面的代码: + +```js +var a = 4; // a is a global variable, it can be accesed by the functions below + +function foo() { + var b = a * 3; // b cannot be accesed outside foo function, but can be accesed by functions + // defined inside foo + function bar(c) { + var b = 2; // another `b` variable is created inside bar function scope + // the changes to this new `b` variable don't affect the old `b` variable + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +立即函式(IIFE, Immediately Invoked Function Expression)是用来创建局部作用域的常用方法。 +例子: +```js + (function(){ // the function expression is surrounded by parenthesis + // variables defined here + // can't be accesed outside + })(); // the function is immediately invoked +``` +## 挑战: + +创建名为 `scope.js` 的文件。 + +在文件中复制粘贴下面的代码: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +依你对 `作用域` 的理解,将下面这段代码插入上述代码里,使得代码的输出为 `a: 1, b: 8,c: 6`。 +```js +console.log("a: "+a+", b: "+b+",c: "+c); +``` +--- \ No newline at end of file diff --git a/problems/scope/solution_zh-cn.md b/problems/scope/solution_zh-cn.md new file mode 100644 index 00000000..5dd3f843 --- /dev/null +++ b/problems/scope/solution_zh-cn.md @@ -0,0 +1,9 @@ +--- + +# 真棒! + +第二个函数的作用域就是我们要找的。 + +运行 `javascripting` 并选择下一个挑战。 + +--- diff --git a/problems/this/problem_zh-cn.md b/problems/this/problem_zh-cn.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_zh-cn.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_zh-cn.md b/problems/this/solution_zh-cn.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_zh-cn.md @@ -0,0 +1,5 @@ +--- + +# + +--- From 2db60fd52dc489c6abab17ca0992539129c82780 Mon Sep 17 00:00:00 2001 From: Alejandro Oviedo Date: Wed, 13 May 2015 11:17:41 -0300 Subject: [PATCH 086/346] added missing spanish translation files --- i18n/troubleshooting_es.md | 28 +++++++++++++++++++ problems/function-return-values/problem_es.md | 5 ++++ .../function-return-values/solution_es.md | 5 ++++ problems/object-keys/problem_es.md | 5 ++++ problems/this/problem_es.md | 5 ++++ problems/this/solution_es.md | 5 ++++ 6 files changed, 53 insertions(+) create mode 100644 i18n/troubleshooting_es.md create mode 100644 problems/function-return-values/problem_es.md create mode 100644 problems/function-return-values/solution_es.md create mode 100644 problems/object-keys/problem_es.md create mode 100644 problems/this/problem_es.md create mode 100644 problems/this/solution_es.md diff --git a/i18n/troubleshooting_es.md b/i18n/troubleshooting_es.md new file mode 100644 index 00000000..61527fb9 --- /dev/null +++ b/i18n/troubleshooting_es.md @@ -0,0 +1,28 @@ +--- +# Ups, algo no está funcionando. +# Pero ¡Que no cunda el pánico! +--- + +## Revisa tu solución: + +`Solución +===================` + +%solution% + +`Tu intento +===================` + +%attempt% + +`Diferencia +===================` + +%diff% + +## Solución de problemas frecuentes: + * ¿Escribiste correctamente el nombre del archivo? Lo puedes comprobar ejecutanto ls `%filename%`, si ves: ls: cannot access `%filename%`: No such file or directory entonces deberias crear un nuevo archivo, renombrar el existente o cambiar de carpeta a la que contenga el archivo + * Asegúrate de no omitir paréntesis, ya que de otra manera el compilador no sería capaz de parsearlo. + * Asegúrate de no cometer ningún tipo de error ortográfico + +> **¿Necesita ayuda?** Has una pregunta en: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/problems/function-return-values/problem_es.md b/problems/function-return-values/problem_es.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_es.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_es.md b/problems/function-return-values/solution_es.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_es.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/problem_es.md b/problems/object-keys/problem_es.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_es.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/problem_es.md b/problems/this/problem_es.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_es.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_es.md b/problems/this/solution_es.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_es.md @@ -0,0 +1,5 @@ +--- + +# + +--- From 21fb469a52cd3a1b55f92232caa45765bfcfc80b Mon Sep 17 00:00:00 2001 From: Enzo Strongoli Date: Mon, 18 May 2015 12:01:35 -0300 Subject: [PATCH 087/346] fixes in spanish translations --- problems/accessing-array-values/problem_es.md | 16 ++++++------ problems/array-filtering/problem_es.md | 16 ++++++------ problems/arrays/problem_es.md | 4 +-- problems/for-loop/problem_es.md | 18 ++++++------- problems/function-arguments/problem_es.md | 4 +-- problems/functions/problem_es.md | 20 +++++++------- problems/if-statement/problem_es.md | 12 ++++----- problems/introduction/problem_es.md | 9 ++++--- problems/looping-through-arrays/problem_es.md | 18 ++++++------- problems/number-to-string/problem_es.md | 10 +++---- problems/numbers/problem_es.md | 6 ++--- problems/object-properties/problem_es.md | 26 +++++++++---------- problems/objects/problem_es.md | 19 +++++++------- problems/revising-strings/problem_es.md | 22 ++++++++-------- problems/rounding-numbers/problem_es.md | 16 +++++++----- problems/string-length/problem_es.md | 19 ++++++++------ problems/strings/problem_es.md | 11 ++++---- problems/variables/problem_es.md | 8 +++--- 18 files changed, 130 insertions(+), 124 deletions(-) diff --git a/problems/accessing-array-values/problem_es.md b/problems/accessing-array-values/problem_es.md index a3ed9285..dac29a81 100644 --- a/problems/accessing-array-values/problem_es.md +++ b/problems/accessing-array-values/problem_es.md @@ -9,35 +9,35 @@ El número de índice comienza en cero y finaliza en el valor de la propiedad lo A continuación, un ejemplo: ```js - var mascotas = ['gato', 'perro', 'rata']; + var pets = ['cat', 'dog', 'rat']; - console.log(mascotas[0]); + console.log(pets[0]); ``` -El código de arriba, imprime el primer elemento del array de `mascotas` - string `gato` +El código de arriba, imprime el primer elemento del array de `pets` - string `cat` -Los elementos del Array se deben acceder, únicamente, usando la notación de paréntesis. +Los elementos del Array se deben acceder, únicamente, mediante corchetes. Notación de punto es inválida. Notación válida: ```js - console.log(mascotas[0]); + console.log(pets[0]); ``` Notación inválida: ``` - console.log(mascotas.1); + console.log(pets.1); ``` ## El ejercicio: Crea un archivo llamado `accediendo-valores-array.js` -En ese archivo, define un array llamado `comida` : +En ese archivo, define un array llamado `food` : ```js -var comida = ['manzana', 'pizza', 'pera']; +var food = ['apple', 'pizza', 'pear']; ``` Usa `console.log()` para imprimir el `segundo` valor del array en la terminal. diff --git a/problems/array-filtering/problem_es.md b/problems/array-filtering/problem_es.md index 74ad57c4..cbfab094 100644 --- a/problems/array-filtering/problem_es.md +++ b/problems/array-filtering/problem_es.md @@ -13,32 +13,32 @@ Para esto podemos utilizar el método `.filter`. Por ejemplo: ```js -var mascotas = ['gato', 'perro', 'elefante']; +var pets = ['cat', 'dog', 'elephant']; -var filtrados = mascotas.filter(function (mascota) { - return (mascota !== 'elephant'); +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); }); ``` -La variable `filtrados` será igual a un array que contiene solo `gato` y `perro`. +La variable `filtered` será igual a un array que contiene solo `cat` y `dog`. ## El ejercicio: Crea un archivo llamado `filtrado-de-arrays.js`. -En ese archivo, define una variable llamada `numeros` que referencie al siguiente array: +En ese archivo, define una variable llamada `numbers` que referencie al siguiente array: ```js [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; ``` -Luego, define una variable llamada `filtrados` que referencie el resultado de `numeros.filter()`. +Luego, define una variable llamada `filtered` que referencie el resultado de `numbers.filter()`. La función que recibe `.filter()` será algo cómo lo siguiente: ```js -function numerosPares (numero) { - return numero % 2 === 0; +function evenNumbers (number) { + return number % 2 === 0; } ``` diff --git a/problems/arrays/problem_es.md b/problems/arrays/problem_es.md index 9410437c..e02075f7 100644 --- a/problems/arrays/problem_es.md +++ b/problems/arrays/problem_es.md @@ -5,14 +5,14 @@ Un array es una lista ordenada de elementos. Por ejemplo: ```js -var mascotas = ['gato', 'perro', 'conejo']; +var pets = ['cat', 'dog', 'rat']; ``` ### El ejercicio: Crea un archivo llamado `arrays.js` -En ese archivo define una variable llamada `condimentos` que referencie a un array el cual contenga los siguientes elementos: `"salsa de tomate", "queso" y "aceitunas"`. +En ese archivo define una variable llamada `pizzaToppings` que referencie a un array el cual contenga los siguientes elementos (en el siguiente orden): `tomato sauce, cheese, pepperoni`. Utiliza `console.log()` para imprimir la variable `condimentos` a la terminal. diff --git a/problems/for-loop/problem_es.md b/problems/for-loop/problem_es.md index 8b2ba5c2..b4ace994 100644 --- a/problems/for-loop/problem_es.md +++ b/problems/for-loop/problem_es.md @@ -5,27 +5,25 @@ Un bucle for es como lo siguiente: ```js -for (var i = 0; i < 100; i++) { - // imprime los números del 0 al 99 +for (var i = 0; i < 10; i++) { + // imprime los números del 0 al 9 console.log(i); } ``` +La variable `i` es utilizada como contador, en ella se almacenará la cantidad de veces que se ejecutó el bucle. -Lo que se encuentra dentro de las llaves ({}), `console.log(i)`, se ejecutará por cada iteración del bucle. +La expresión `i < 10;` indica el limite de veces que se ejecutara el código dentro del bucle. +Este continuara iterando si `i` es menor que `10`. -El termino `i < 10;` indica cuantas veces iterará. - -Continuará iterando si `i` es menor que `10`. - -El termino `i++` incrementa la variable `i` en uno por cada iteración. +La expresión `i++` incrementa la variable `i` en uno por cada iteración. ## El ejercicio: -Crea un archivo llamado for.js. +Crea un archivo llamado `for-loop.js`. En ese archivo define una variable llamada `total` e iniciala con el número `0`. -Define una segunda variable llamada `limite` e iniciala con el número `10`. +Define una segunda variable llamada `limit` e iniciala con el número `10`. Crea un for que itere 10 veces. En cada iteración, añade el valor de `i` a la variable `total`. diff --git a/problems/function-arguments/problem_es.md b/problems/function-arguments/problem_es.md index a566d346..943edc63 100644 --- a/problems/function-arguments/problem_es.md +++ b/problems/function-arguments/problem_es.md @@ -24,7 +24,7 @@ El ejemplo anterior imprimirá `hello world` a la terminal. ## El ejercicio: -Crea un archivo llamando argumentos-de-funciones.js. +Crea un archivo llamando `function-arguments.js`. En ese archivo, define una función llamada `math` que recibe trés argumentos. Es importante que entiendas que los nombres de los argumentos son únicamente utilizados para referenciarlos. @@ -36,6 +36,6 @@ Luego de eso, dentro de los paréntesis de `console.log()`, llamá la función ` Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify argumentos-de-funciones.js` +`javascripting verify function-arguments.js` --- diff --git a/problems/functions/problem_es.md b/problems/functions/problem_es.md index 8ce93740..efd66577 100644 --- a/problems/functions/problem_es.md +++ b/problems/functions/problem_es.md @@ -4,12 +4,12 @@ Una función es un bloque de código que puede recibir un input y devolver un output. -Vamos a utilizar la palabra reservada `return` para especificar lo que devuelve una funcioón. +Vamos a utilizar la palabra reservada `return` para especificar lo que devuelve una función. Por ejemplo: ```js -function ejemplo (x) { +function example (x) { return x * 2; } ``` @@ -17,27 +17,27 @@ function ejemplo (x) { Podemos **llamar** a la función de esta forma para obtener el número 10: ```js -console.log(ejemplo(5)) +console.log(example(5)) ``` -El ejemplo anterior asume que la función `ejemplo` recibirá un número cómo argumento –– input –– y retornará el número multiplicado por 2. +El ejemplo anterior asume que la función `example` recibirá un número cómo argumento –– input –– y retornará el número multiplicado por 2. ## El ejercicio: -Crea una archivo llamando funciones.js +Crea una archivo llamando `functions.js` -En ese archivo, define una función llamada `comida` que reciba un argumento llamado `fruta` que será una string. +En ese archivo, define una función llamada `eat` que reciba un argumento llamado `food` que será una string. -Dentro de la función, retorna el argumento `fruta` de la siguiente manera: +Dentro de la función, retorna el argumento `food` de la siguiente manera: ```js -return 'las ' + fruta + ' son ricas.'; +return food + ' tasted really good.'; ``` -Dentro de los paréntesis de `console.log()`, llama a la función `comida()` con la string `bananas` cómo argumento. +Dentro de los paréntesis de `console.log()`, llama a la función `eat()` con la string `bananas` cómo argumento. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify funciones.js` +`javascripting verify functions.js` --- diff --git a/problems/if-statement/problem_es.md b/problems/if-statement/problem_es.md index 4ec26e7a..ddabc10f 100644 --- a/problems/if-statement/problem_es.md +++ b/problems/if-statement/problem_es.md @@ -20,17 +20,17 @@ El *else* block es opcional y contiene el código que será ejecutado si la sent ## El ejercicio -Crea un archivo llamando `bloque-condicional.js`. +Crea un archivo llamando `if-statement.js`. -En ese archivo, declara una variabe llamada `fruta`. +En ese archivo, declara una variabe llamada `fruit`. -Haz la variable `fruta` referenciar al valor **naranja**. +Haz la variable `fruit` referenciar al valor **orange**, del tipo **String**. -Luego utiliza `console.log()` para imprimir a la terminal **La cantidad de caracteres del nombre de la fruta es mayor a cinco.** si el length de la variable `fruta` es mayor a cinco. -Imprime **La cantidad de caracteres del nombre de la fruta es menor o igual a cinco.** de lo contrario. +Luego utiliza `console.log()` para imprimir a la terminal "**The fruit name has more than five characters."** si el length de la variable `fruit` es mayor a cinco. +Imprime "**The fruit name has five characters or less.**" de lo contrario. Comprueba si tu programa funciona correctamente ejecutando el siguiente comando: -`javascripting verify bloque-condicional.js` +`javascripting verify if-statement.js` --- diff --git a/problems/introduction/problem_es.md b/problems/introduction/problem_es.md index 5db51f82..f6ac95e1 100644 --- a/problems/introduction/problem_es.md +++ b/problems/introduction/problem_es.md @@ -1,7 +1,7 @@ --- # INTRODUCCIÓN -Crea una carpeta para este whorkshop. +Para mantener el orden, procederemos a crear una carpeta para este workshop. Ejecuta el siguiente comando, cambiando el nombre de la carpeta o colocando el path que necesites: @@ -11,17 +11,18 @@ Cambia de directorio a la carpeta que acabas de crear: `cd javascripting` -Crea un archivo llamado `intro.js`: +Crea un archivo llamado `introduction.js` utilizando: +`touch introduction.js`, o si utilizas Windows `type NUL > introduction.js` (`type` es parte del comando!) Agrega el siguiente texto al archivo: ```js -console.log('hola'); +console.log('hello'); ``` Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify intro.js` +`javascripting verify introduction.js` --- diff --git a/problems/looping-through-arrays/problem_es.md b/problems/looping-through-arrays/problem_es.md index 47451ec4..61d298b3 100644 --- a/problems/looping-through-arrays/problem_es.md +++ b/problems/looping-through-arrays/problem_es.md @@ -10,27 +10,27 @@ Cada ítem en el array es identificado por un número, su índice. Los índices comienzan desde el cero. -Entonces en este array, el elemento `que tal` es identificado por el número `1`: +Entonces en este array, el elemento `hi` es identificado por el número `1`: ```js -var saludos = ['hola', 'que tal', 'buen día']; +var greetings = ['hello', 'hi', 'good morning']; ``` Puede ser accedido de la siguiente forma: ```js -saludos[1]; +greetings[1]; ``` Entonces dentro de un bucle **for** utilizaremos la variable `ì` dentro de los corchetes. ## El ejercicio: -Crea un archivo llamando `recorriendo-arrays.js`. +Crea un archivo llamando `looping-through-arrays.js`. -En ese archivo, define una variable llamada `mascotas` que referencie este array: +En ese archivo, define una variable llamada `pets` que referencie este array: ```js -['gato', 'perro', 'tortuga']; +['cat', 'dog', 'rat']; ``` Crea un bucle for que cambie cada string en el array para que sean plurales. @@ -38,13 +38,13 @@ Crea un bucle for que cambie cada string en el array para que sean plurales. Usarás una sentencia parecida a la siguiente dentro del bucle: ```js -mascotas[i] = mascotas[i] + 's'; +pets[i] = pets[i] + 's'; ``` -Utiliza `console.log()` para imprimir el array `mascotas` a la terminal. +Utiliza `console.log()` para imprimir el array `pets` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify recorriendo-arrays.js` +`javascripting verify looping-through-arrays.js` --- diff --git a/problems/number-to-string/problem_es.md b/problems/number-to-string/problem_es.md index 8b926286..c1d3c4ce 100644 --- a/problems/number-to-string/problem_es.md +++ b/problems/number-to-string/problem_es.md @@ -4,7 +4,7 @@ A veces necesitarás convertir un número a una string. -En esos casos, usarás el método `toString`. A continuación un ejemplo: +En esos casos, usarás el método `.toString()`. A continuación un ejemplo: ```js var n = 256; @@ -13,16 +13,16 @@ n.toString(); ## El ejercicio -Crea un archivo llamado `numero-a-string.js`. +Crea un archivo llamado `number-to-string.js`. En ese archivo define una variable llamada `n` que referencie el número `128`; -LLama al método `toString` de esa variable `n`. +LLama al método `.toString()` de esa variable `n`. -Utiliza `console.log` para imprimir los resultados de `toString()` a la terminal. +Utiliza `console.log()` para imprimir los resultados de `.toString()` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify numero-a-string.js` +`javascripting verify number-to-string.js` --- diff --git a/problems/numbers/problem_es.md b/problems/numbers/problem_es.md index bbd7201b..0fc97d97 100644 --- a/problems/numbers/problem_es.md +++ b/problems/numbers/problem_es.md @@ -7,14 +7,14 @@ cómo `3.14`, `1.5` o `100.7893423`. ## El ejercicio: -Crea un archivo llamado numeros.js +Crea un archivo llamado `numbers.js`. En ese archivo define una variable llamada `ejemplo` qué referencie el entero `123456789`. -Utiliza `console.log` para imprimir ese número a la terminal. +Utiliza `console.log()` para imprimir ese número a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify numeros.js` +`javascripting verify numbers.js` --- diff --git a/problems/object-properties/problem_es.md b/problems/object-properties/problem_es.md index 363babe8..16ff0a5b 100644 --- a/problems/object-properties/problem_es.md +++ b/problems/object-properties/problem_es.md @@ -7,41 +7,41 @@ Puedes acceder y manipular propiedades de objetos –– las **llaves** y **valo Un ejemplo usando **corchetes**: ```js -var ejemplo = { - programar: 'divertido' +var example = { + pizza: 'yummy' }; -console.log(ejemplo['programar']); +console.log(example['pizza']); ``` -El código anterior imprimirá la string `divertido` al a terminal. +El código anterior imprimirá la string `yummy` al a terminal. Alternativamente, puedes usar la **notación de punto** para obtener resultados idénticos: ```js -ejemplo.programar; +example.pizza; -ejemplo['programar']; +example['pizza']; ``` -La dos líneas de código anteriores retornaran `divertido`. +La dos líneas de código anteriores retornaran `yummy`. ## El ejercicio: -Crea un archivo llamado `propiedades-de-objetos.js`. +Crea un archivo llamado `object-properties.js`. -En ese archivo, define una variable llamada `bicicleta` de la siguiente forma: +En ese archivo, define una variable llamada `food` de la siguiente forma: ```js -var bicicleta = { - tipos: ['todo terreno', 'de carrera', 'hipster'] +var food = { + types: 'only pizza' }; ``` -Utiliza `console.log()` para imprimir la propiedad `tipos` del objeto `bicileta` a la terminal. +Utiliza `console.log()` para imprimir la propiedad `types` del objeto `food` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify propiedades-de-objetos.js` +`javascripting verify object-properties.js` --- diff --git a/problems/objects/problem_es.md b/problems/objects/problem_es.md index 75cf5b16..7cc54585 100644 --- a/problems/objects/problem_es.md +++ b/problems/objects/problem_es.md @@ -10,24 +10,25 @@ Tendrá ciertas **llaves** y cada una se verá referenciada a un **valor**. Por ejemplo: ```js -var comida = { - pizza: 'muy rica', - noquis: 'no pueden faltar los 29' +var foodPreferences = { + pizza: 'yum', + salad: 'gross' } ``` -En el ejemplo anterior podemos ver que las **llaves** del objeto `comida` son **pizza** y **noquis**. Sus valores son `muy rica` y `no pueden faltar los 29` respectivamente. + +En el ejemplo anterior podemos ver que las **llaves** del objeto `foodPreferences` son **pizza** y **salad**. Sus valores son `yum` y `gross` respectivamente. ## El ejercicio: -Crea un archivo llamado `objetos.js`. +Crea un archivo llamado `objects.js`. En ese archivo, define una variable llamada `pizza` de la siguiente forma: ```js var pizza = { - ingredientes: ['queso', 'salsa de tomate', 'aceitunas'], - coccion: 'a la piedra', - porciones: 8 + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 } ``` @@ -35,6 +36,6 @@ Utiliza `console.log()` para imprimir el objeto `pizza` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify objetos.js` +`javascripting verify objects.js` --- diff --git a/problems/revising-strings/problem_es.md b/problems/revising-strings/problem_es.md index a99b9a5e..80bd4b1f 100644 --- a/problems/revising-strings/problem_es.md +++ b/problems/revising-strings/problem_es.md @@ -6,30 +6,30 @@ A menudo necesitarás cambiar el contenido de una string. Las strings tienen una funcionalidad por defecto que te permite reemplazar caracteres. -Por ejemplo a continuación veremos un uso del método `replace`: +Por ejemplo a continuación veremos un uso del método `.replace()`: ```js -var ejemplo = 'este ejemplo es simple'; -ejemplo = ejemplo.replace('simple', 'genial'); -console.log(ejemplo); +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); ``` -Nota que para cambiar el valor que la variable `ejemplo` referencia, +Nota que para cambiar el valor que la variable `example` referencia, necesitamos utilizar el signo de igualdad de nuevo, esta vez con el resultado -del método `ejemplo.replace` del lado derecho del signo. +del método `example.replace()` del lado derecho del signo. ## El ejercicio: -Crea un archivo llamado `modificando-strings.js`. +Crea un archivo llamado `revising-strings.js`. -Define una variable llamada `pizza` que referencie esta string: `la pizza es rica` +Define una variable llamada `pizza` que referencie esta string: `pizza is alright` -Utiliza el método `.replace()` para cambiar `rica` con `exquisita`. +Utiliza el método `.replace()` para cambiar `alright` con `wonderful`. -Luego, utiliza `console.log` para imprimir los resultados del método `replace` a la terminal. +Luego, utiliza `console.log()` para imprimir los resultados del método `.replace()` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify modificando-strings.js` +`javascripting verify revising-strings.js` --- diff --git a/problems/rounding-numbers/problem_es.md b/problems/rounding-numbers/problem_es.md index d905a875..07a810ee 100644 --- a/problems/rounding-numbers/problem_es.md +++ b/problems/rounding-numbers/problem_es.md @@ -6,26 +6,28 @@ Los operadores básicos son `+`, `-`, `*`, `/`, y `%`. Para operaciones más complejas, podemos usar el objeto `Math`. +En este ejercicio utilizaremos el objeto `Math` para redondear números. + ## El ejercicio: -Crea un archivo llamado redondeando-numeros.js. +Crea un archivo llamado `rounding-numbers.js`. -En ese archivo define una variable llamada `decimal` que referencie el número decimal `1.5`. +En ese archivo define una variable llamada `roundUp` que referencie el número decimal `1.5`. -Usaremos el método `Math.round` para redondear el número. +Usaremos el método `Math.round()` para redondear el número. -Un ejemplo de `Math.round`: +Un ejemplo de `Math.round()`: ```js Math.round(0.5); ``` -Define una segunda variable llamada `redondeado` que referencie lo que retorna el método `Math.round()`, pasando la variable `decimal` cómo argumento. +Define una segunda variable llamada `rounded` que referencie lo que retorna el método `Math.round()`, pasando la variable `roundUp` cómo argumento. -Utiliza `console.log` para imprimir el número a la terminal. +Utiliza `console.log()` para imprimir el número a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente commando: -`javascripting verify redondeando-numeros.js` +`javascripting verify rounding-numbers.js` --- diff --git a/problems/string-length/problem_es.md b/problems/string-length/problem_es.md index ff12751d..f280cce0 100644 --- a/problems/string-length/problem_es.md +++ b/problems/string-length/problem_es.md @@ -4,24 +4,27 @@ Muy seguido necesitarás saber cuantos caracteres hay en una string. -Para esto, usarás la propiedad `length`. Por ejemplo: +Para esto, usarás la propiedad `.length`. Por ejemplo: ```js -var ejemplo = 'una string'; -console.log(ejemplo.length); +var example = 'example string'; +example.length ``` -El ejemplo anterior imprimirá el número 10 a la consola. +#NOTA + +Asegúrate de que hay un punto entre `example` y `length` + +El código de arriba devuelve el **numero** del total de caracteres en el string. -Asegurate de que siempre haya un punto entre la variable y la propiedad `length`. ## El ejercicio -Crea un archivo llamado string-length.js. +Crea un archivo llamado `string-length.js`. -En ese archivo, declará una variable llamada `ejemplo`. +En ese archivo, declará una variable llamada `example`. -**Haz que la variable `ejemplo` referencie el valor `string de ejemplo`.** +**Haz que la variable `example` referencie el valor `'example string'`.** Utiliza `console.log` para imprimir el **length** de la string a la terminal. diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 91e2fa6e..e1b5d79e 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -7,10 +7,11 @@ Una **string** representa una cadena de caracteres y se puede definir con comill Por ejemplo: ```js -'esto es una string' +'this is a string' -"esto también es una string" +"this is also a string" ``` +#NOTA Trata de permanecer consistente. En este workshop usaremos comillas simples. @@ -18,13 +19,13 @@ Trata de permanecer consistente. En este workshop usaremos comillas simples. Para este ejercicio, crea un archivo llamado `strings.js`. -En ese archivo define una variable llamada `string1` de la siguiente forma: +En ese archivo define una variable llamada `someString` de la siguiente forma: ```js -var string1 = 'esto es una string'; +var someString = 'this is a string'; ``` -Utiliza `console.log` para imprimir la variable `string1` a la terminal. +Utiliza `console.log` para imprimir la variable `someString` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: diff --git a/problems/variables/problem_es.md b/problems/variables/problem_es.md index 228b755b..233cdd3d 100644 --- a/problems/variables/problem_es.md +++ b/problems/variables/problem_es.md @@ -14,7 +14,7 @@ La variable anterior es **declarada**, pero no definida. A continuación damos un ejemplo de cómo definir una variable, haciendo que referencie a un valor específico: ```js -var example = 'una string'; +var example = 'some string'; ``` Nota que empieza con la palabra reserva `var` y usa el signo de igualdad entre en nombre de la variable y el valor que referencia. @@ -23,11 +23,11 @@ Nota que empieza con la palabra reserva `var` y usa el signo de igualdad entre e Crea un archivo llamado `variables.js` -En ese archivo crea una variable llamada `ejemplo`. +En ese archivo crea una variable llamada `example`. -**Haz que la variable `ejemplo` referencie el valor `una string`.** +**Haz que la variable `example` referencie el valor `'some string'`.** -Luego usa `console.log()` para imprimir la variable `ejemplo` a la consola. +Luego usa `console.log()` para imprimir la variable `example` a la consola. Comprueba si tu programa es correcto ejecutando el siguiente comando: From d488dd6ea549c9ecb30b8a21fd7a0c5608e22bc5 Mon Sep 17 00:00:00 2001 From: Alejandro Oviedo Date: Mon, 18 May 2015 12:17:19 -0300 Subject: [PATCH 088/346] add missing item in the spanish menu --- i18n/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/es.json b/i18n/es.json index 254abaa8..9b8e6d31 100644 --- a/i18n/es.json +++ b/i18n/es.json @@ -18,5 +18,6 @@ , "OBJECT PROPERTIES": "PROPIEDADES DE OBJECTOS" , "FUNCTIONS": "FUNCIONES" , "FUNCTION ARGUMENTS": "ARGUMENTOS DE FUNCIONES" + , "SCOPE": "CONTEXTO" } } \ No newline at end of file From 4a3dcc562a33b51c26ef21f29eaeacefa08db4b5 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 18 May 2015 10:27:36 -0700 Subject: [PATCH 089/346] v2.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index faed9690..be8e40d8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "1.12.0", + "version": "2.0.0", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From a2682cf22f7665448cda437bc7641662fff6b7da Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 18 May 2015 11:31:12 -0700 Subject: [PATCH 090/346] update workshopper-adventure to get ko translation --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index be8e40d8..deb3d3e0 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1", - "workshopper-adventure": "^3.0.2" + "workshopper-adventure": "git://github.com/martinheidegger/workshopper.git#adventure" }, "license": "MIT" } From b9b8555da3efc914ef6c5c3fd61737ae6ab74101 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 18 May 2015 11:31:27 -0700 Subject: [PATCH 091/346] v2.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index deb3d3e0..3da26116 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.0.0", + "version": "2.0.1", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 36244b029c32c9944c0a7611b0003ff5335b8e7c Mon Sep 17 00:00:00 2001 From: dpcamargo Date: Wed, 20 May 2015 18:53:57 -0300 Subject: [PATCH 092/346] Update index.js Missing space before the c: --- solutions/scope/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/scope/index.js b/solutions/scope/index.js index 01958369..aaafd8d2 100644 --- a/solutions/scope/index.js +++ b/solutions/scope/index.js @@ -5,7 +5,7 @@ var a = 1, b = 2, c = 3; (function secondFunction(){ var b = 8; - console.log("a: "+a+", b: "+b+",c: "+c); + console.log("a: "+a+", b: "+b+", c: "+c); (function thirdFunction(){ var a = 7, c = 9; @@ -15,4 +15,4 @@ var a = 1, b = 2, c = 3; })(); })(); })(); -})(); \ No newline at end of file +})(); From c51126fa30d54b883dffb58b21ed078f5ec76ab5 Mon Sep 17 00:00:00 2001 From: faridonfire Date: Thu, 21 May 2015 15:06:59 -0700 Subject: [PATCH 093/346] Update problem.md fixed accesed to accessed --- problems/scope/problem.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index b2e0387a..2b615672 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -11,10 +11,10 @@ Functions defined inside other functions, known as nested functions, have access Pay attention to the comments in the code below: ```js -var a = 4; // a is a global variable, it can be accesed by the functions below +var a = 4; // a is a global variable, it can be accessed by the functions below function foo() { - var b = a * 3; // b cannot be accesed outside foo function, but can be accesed by functions + var b = a * 3; // b cannot be accessed outside foo function, but can be accessed by functions // defined inside foo function bar(c) { var b = 2; // another `b` variable is created inside bar function scope @@ -32,7 +32,7 @@ example: ```js (function(){ // the function expression is surrounded by parenthesis // variables defined here - // can't be accesed outside + // can't be accessed outside })(); // the function is immediately invoked ``` ## The challenge: @@ -66,4 +66,4 @@ so the output is `a: 1, b: 8,c: 6` ```js console.log("a: "+a+", b: "+b+",c: "+c); ``` ---- \ No newline at end of file +--- From 5e5e678d260b4c914272c952af8c8cbc32b7aa4c Mon Sep 17 00:00:00 2001 From: Talles L Date: Fri, 22 May 2015 13:27:07 -0300 Subject: [PATCH 094/346] a minor typo --- problems/scope/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 2b615672..6592d1aa 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -61,7 +61,7 @@ var a = 1, b = 2, c = 3; })(); ``` -Use your knowledge of the variables' `scope` and place the following code inside on of the functions in 'scope.js' +Use your knowledge of the variables' `scope` and place the following code inside one of the functions in 'scope.js' so the output is `a: 1, b: 8,c: 6` ```js console.log("a: "+a+", b: "+b+",c: "+c); From dc1ca4cd47a833d58817168cc204fd84999c3504 Mon Sep 17 00:00:00 2001 From: pd_shima Date: Sat, 23 May 2015 13:54:31 +0900 Subject: [PATCH 095/346] fix typo --- problems/functions/problem_ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/functions/problem_ja.md b/problems/functions/problem_ja.md index 697233b4..c4ba9216 100644 --- a/problems/functions/problem_ja.md +++ b/problems/functions/problem_ja.md @@ -24,7 +24,7 @@ example(5) ## やってみよう -`function.js` ファイルを作りましょう。 +`functions.js` ファイルを作りましょう。 ファイルの中で、関数 `eat` を定義します。`eat` は、ひとつの引数 `food` を受け取ります。 From 73e9606ab6e920ffa3839dcc9f77aadf7ed28de5 Mon Sep 17 00:00:00 2001 From: Alejandro Suarez Date: Sat, 23 May 2015 12:50:26 -0500 Subject: [PATCH 096/346] fixes in spanish translations --- i18n/es.json | 4 ++-- problems/accessing-array-values/solution_es.md | 4 ++-- problems/arrays/problem_es.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es.json b/i18n/es.json index 9b8e6d31..8642ef2c 100644 --- a/i18n/es.json +++ b/i18n/es.json @@ -15,9 +15,9 @@ , "ACCESSING ARRAY VALUES": "ACCEDIENDO ARRAYS" , "LOOPING THROUGH ARRAYS": "RECORRIENDO ARRAYS" , "OBJECTS": "OBJETOS" - , "OBJECT PROPERTIES": "PROPIEDADES DE OBJECTOS" + , "OBJECT PROPERTIES": "PROPIEDADES DE OBJETOS" , "FUNCTIONS": "FUNCIONES" , "FUNCTION ARGUMENTS": "ARGUMENTOS DE FUNCIONES" , "SCOPE": "CONTEXTO" } -} \ No newline at end of file +} diff --git a/problems/accessing-array-values/solution_es.md b/problems/accessing-array-values/solution_es.md index 0d608408..0f2594e5 100644 --- a/problems/accessing-array-values/solution_es.md +++ b/problems/accessing-array-values/solution_es.md @@ -6,6 +6,6 @@ Buen trabajo, lograste acceder a ese elemento del array. En el siguiente ejercicio trabajaremos un ejemplo de bucles usando arrays. -Corre `javascripting` en la consola para seleccionar el siguiente ejercicio. +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. ---- \ No newline at end of file +--- diff --git a/problems/arrays/problem_es.md b/problems/arrays/problem_es.md index e02075f7..993aec1b 100644 --- a/problems/arrays/problem_es.md +++ b/problems/arrays/problem_es.md @@ -12,7 +12,7 @@ var pets = ['cat', 'dog', 'rat']; Crea un archivo llamado `arrays.js` -En ese archivo define una variable llamada `pizzaToppings` que referencie a un array el cual contenga los siguientes elementos (en el siguiente orden): `tomato sauce, cheese, pepperoni`. +En ese archivo define una variable llamada `condimentos` que referencie a un array el cual contenga los siguientes elementos (en el siguiente orden): `tomato sauce, cheese, pepperoni`. Utiliza `console.log()` para imprimir la variable `condimentos` a la terminal. From 4794242748e924a4640b308561f8197c5d7621a2 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Sat, 23 May 2015 12:53:49 -0700 Subject: [PATCH 097/346] v2.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3da26116..17626e6c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.0.1", + "version": "2.0.2", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From b05651af6fdc942664858f6d9a42a81ad32e46d7 Mon Sep 17 00:00:00 2001 From: Alejandro Suarez Date: Sat, 23 May 2015 16:26:06 -0500 Subject: [PATCH 098/346] fixed a variable name for the convention --- problems/arrays/problem_es.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/problems/arrays/problem_es.md b/problems/arrays/problem_es.md index 993aec1b..38433ec1 100644 --- a/problems/arrays/problem_es.md +++ b/problems/arrays/problem_es.md @@ -12,9 +12,9 @@ var pets = ['cat', 'dog', 'rat']; Crea un archivo llamado `arrays.js` -En ese archivo define una variable llamada `condimentos` que referencie a un array el cual contenga los siguientes elementos (en el siguiente orden): `tomato sauce, cheese, pepperoni`. +En ese archivo define una variable llamada `pizzaToppings` que referencie a un array el cual contenga los siguientes elementos (en el siguiente orden): `tomato sauce, cheese, pepperoni`. -Utiliza `console.log()` para imprimir la variable `condimentos` a la terminal. +Utiliza `console.log()` para imprimir la variable `pizzaToppings` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente commando: From 905c955cac03e799c88f4065562ca129a8f453de Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Mon, 25 May 2015 01:11:57 +0900 Subject: [PATCH 099/346] There is a workshopper-adventure now published. Updated the reference in the dependencies. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 17626e6c..d57c83fb 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1", - "workshopper-adventure": "git://github.com/martinheidegger/workshopper.git#adventure" + "workshopper-adventure": "^3.4.4" }, "license": "MIT" } From 7467ac1ccb532d455e1ef0d9c752d037014c3fe0 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Mon, 25 May 2015 01:24:12 +0900 Subject: [PATCH 100/346] Updated to latest release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d57c83fb..da2b52ce 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1", - "workshopper-adventure": "^3.4.4" + "workshopper-adventure": "^3.4.5" }, "license": "MIT" } From 60d101d82fd4bbab882affe5143d944b055d52a3 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 25 May 2015 10:12:00 -0700 Subject: [PATCH 101/346] =?UTF-8?q?v2.0.3=20=E2=80=93=20update=20workshopp?= =?UTF-8?q?er-adventure,=20fix=20spanish=20translations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index da2b52ce..0fc016ff 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.0.2", + "version": "2.0.3", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From 77cf2cc6f4b1b7ff7c103666898ff59607f61c65 Mon Sep 17 00:00:00 2001 From: David Cheng Date: Tue, 16 Jun 2015 01:57:25 -0700 Subject: [PATCH 102/346] Added verify step at end of scope.md exercise --- problems/scope/problem.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 6592d1aa..234c02e0 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -66,4 +66,9 @@ so the output is `a: 1, b: 8,c: 6` ```js console.log("a: "+a+", b: "+b+",c: "+c); ``` + +Check to see if your program is correct by running this command: + +`javascripting verify scope.js` + --- From 95d1c006edced7730fc298c84c9b225a436e90f6 Mon Sep 17 00:00:00 2001 From: Katrina Owen Date: Sun, 28 Jun 2015 15:12:55 -0600 Subject: [PATCH 103/346] Simplify EACCESS instructions in README I watched a beginner (who knows nothing about unix permissions) go through this, and they didn't understand what 'prefix the command with sudo' meant. This makes it more explicit. --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2fb0a666..555f6af0 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,16 @@ npm install --global javascripting The `--global` option installs this module globally so that you can run it as a command in your terminal. -> Having issues with installation? If you get an EACCESS error you can prefix the command with `sudo`, but also take a look at this npm documentation for fixing permissions so that you don't have to use `sudo`: https://docs.npmjs.com/getting-started/fixing-npm-permissions +#### Having issues with installation? + +If you get an `EACCESS` error, the simplest way to fix this is to rerun the command, prefixed with sudo: + +``` +sudo npm install --global javascripting +``` + +You can also fix the permissions so that you don't have to use `sudo`. Take a look at this npm documentation: +https://docs.npmjs.com/getting-started/fixing-npm-permissions ## Run the workshop From c8eca96f0c416e79e0c2972eaae6314ec21169f3 Mon Sep 17 00:00:00 2001 From: Justin Cheung Date: Sun, 28 Jun 2015 16:57:28 -0700 Subject: [PATCH 104/346] Fix scope instructions typo to match solution --- problems/scope/problem.md | 2 +- problems/scope/problem_es.md | 2 +- problems/scope/problem_ja.md | 2 +- problems/scope/problem_ko.md | 2 +- problems/scope/problem_zh-cn.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 234c02e0..2bd03c1f 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -64,7 +64,7 @@ var a = 1, b = 2, c = 3; Use your knowledge of the variables' `scope` and place the following code inside one of the functions in 'scope.js' so the output is `a: 1, b: 8,c: 6` ```js -console.log("a: "+a+", b: "+b+",c: "+c); +console.log("a: "+a+", b: "+b+", c: "+c); ``` Check to see if your program is correct by running this command: diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md index 51b6cb7c..540b36cb 100644 --- a/problems/scope/problem_es.md +++ b/problems/scope/problem_es.md @@ -64,6 +64,6 @@ var a = 1, b = 2, c = 3; Usa tu conocimiento sobre el ámbito de las variables y ubica el siguiente código dentro de alguna de las funciones en `scope.js` para que la salida sea `a: 1, b: 8,c: 6` ```js -console.log("a: "+a+", b: "+b+",c: "+c); +console.log("a: "+a+", b: "+b+", c: "+c); ``` --- \ No newline at end of file diff --git a/problems/scope/problem_ja.md b/problems/scope/problem_ja.md index f649e27a..c1740fd1 100644 --- a/problems/scope/problem_ja.md +++ b/problems/scope/problem_ja.md @@ -71,6 +71,6 @@ var a = 1, b = 2, c = 3; そして、目指す出力は `a: 1, b: 8,c: 6` です。 ```js -console.log("a: "+a+", b: "+b+",c: "+c); +console.log("a: "+a+", b: "+b+", c: "+c); ``` --- diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index 79d58980..1e156594 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -64,6 +64,6 @@ var a = 1, b = 2, c = 3; 변수의 `스코프`에 관한 지식을 활용해 다음 코드를 'scope.js' 안의 함수 안에 넣어 `a: 1, b: 8,c: 6`를 출력하게 하세요. ```js -console.log("a: "+a+", b: "+b+",c: "+c); +console.log("a: "+a+", b: "+b+", c: "+c); ``` --- diff --git a/problems/scope/problem_zh-cn.md b/problems/scope/problem_zh-cn.md index a12dd1a5..81a81f31 100644 --- a/problems/scope/problem_zh-cn.md +++ b/problems/scope/problem_zh-cn.md @@ -63,6 +63,6 @@ var a = 1, b = 2, c = 3; 依你对 `作用域` 的理解,将下面这段代码插入上述代码里,使得代码的输出为 `a: 1, b: 8,c: 6`。 ```js -console.log("a: "+a+", b: "+b+",c: "+c); +console.log("a: "+a+", b: "+b+", c: "+c); ``` --- \ No newline at end of file From 681f11e8f1d8a7866e635a398556a696299a2de6 Mon Sep 17 00:00:00 2001 From: Alan Cezar Silva Date: Tue, 30 Jun 2015 20:13:43 -0300 Subject: [PATCH 105/346] =?UTF-8?q?Localiza=C3=A7=C3=A3o=20pt-br?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- i18n/pt-br.json | 23 +++++++++++++++++++++++ index.js | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 i18n/pt-br.json diff --git a/i18n/pt-br.json b/i18n/pt-br.json new file mode 100644 index 00000000..2f457e95 --- /dev/null +++ b/i18n/pt-br.json @@ -0,0 +1,23 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUÇÃO" + , "VARIABLES": "VARIÁVEIS" + , "STRINGS": "STRINGS" + , "STRING LENGTH": "TAMANHO DAS STRINGS" + , "REVISING STRINGS": "MODIFICANDO STRINGS" + , "NUMBERS": "NÚMEROS" + , "ROUNDING NUMBERS": "ARREDONDANDO NÚMEROS" + , "NUMBER TO STRING": "CONVERTENDO NÚMERO PARA STRING" + , "IF STATEMENT": "CONDICIONAL COM IF" + , "FOR LOOP": "FAZENDO LOOP COM FOR" + , "ARRAYS": "ARRAYS" + , "ARRAY FILTERING": "FILTRANDO ARRAYS" + , "ACCESSING ARRAY VALUES": "ACESSANDO VALORES DE UM ARRAY" + , "LOOPING THROUGH ARRAYS": "VARRENDO ARRAYS COM LOOP" + , "OBJECTS": "OBJETOS" + , "OBJECT PROPERTIES": "PROPIEDADES DE OBJETOS" + , "FUNCTIONS": "FUNÇÕES" + , "FUNCTION ARGUMENTS": "ARGUMENTOS DE FUNÇÕES" + , "SCOPE": "ESCOPO" + } +} diff --git a/index.js b/index.js index 8ee37bbc..b96b2fb3 100755 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ var adventure = require('workshopper-adventure/adventure'); var jsing = adventure({ name: 'javascripting' , appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br'] }); var problems = require('./menu.json'); From c2ca4bbaa92ce9202306bd8a46901f59d6c31e01 Mon Sep 17 00:00:00 2001 From: Alan Cezar Silva Date: Tue, 30 Jun 2015 20:20:05 -0300 Subject: [PATCH 106/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20para=20pt-br:=20tr?= =?UTF-8?q?oubleshooting=20if-statement=20introduction=20number-to-string?= =?UTF-8?q?=20numbers=20revising-strings=20rounding-numbers=20string-lengt?= =?UTF-8?q?h=20strings=20variables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- i18n/troubleshooting_pt-br.md | 28 +++++++++++++++ problems/if-statement/problem_pt-br.md | 36 +++++++++++++++++++ problems/if-statement/solution_pt-br.md | 11 ++++++ problems/introduction/problem_pt-br.md | 33 +++++++++++++++++ problems/introduction/solution_pt-br.md | 21 +++++++++++ problems/number-to-string/problem_pt-br.md | 28 +++++++++++++++ problems/number-to-string/solution_pt-br.md | 11 ++++++ problems/numbers/problem_pt-br.md | 20 +++++++++++ problems/numbers/solution_pt-br.md | 11 ++++++ problems/revising-strings/problem_pt-br.md | 35 ++++++++++++++++++ problems/revising-strings/solution_pt-br.md | 11 ++++++ problems/rounding-numbers/problem_pt-br.md | 33 +++++++++++++++++ problems/rounding-numbers/solution_pt-br.md | 11 ++++++ problems/string-length/problem_pt-br.md | 35 ++++++++++++++++++ problems/string-length/solution_pt-br.md | 9 +++++ problems/strings/problem_pt-br.md | 34 ++++++++++++++++++ problems/strings/solution_pt-br.md | 11 ++++++ problems/variables/problem_pt-br.md | 40 +++++++++++++++++++++ problems/variables/solution_pt-br.md | 11 ++++++ 19 files changed, 429 insertions(+) create mode 100644 i18n/troubleshooting_pt-br.md create mode 100644 problems/if-statement/problem_pt-br.md create mode 100644 problems/if-statement/solution_pt-br.md create mode 100644 problems/introduction/problem_pt-br.md create mode 100644 problems/introduction/solution_pt-br.md create mode 100644 problems/number-to-string/problem_pt-br.md create mode 100644 problems/number-to-string/solution_pt-br.md create mode 100644 problems/numbers/problem_pt-br.md create mode 100644 problems/numbers/solution_pt-br.md create mode 100644 problems/revising-strings/problem_pt-br.md create mode 100644 problems/revising-strings/solution_pt-br.md create mode 100644 problems/rounding-numbers/problem_pt-br.md create mode 100644 problems/rounding-numbers/solution_pt-br.md create mode 100644 problems/string-length/problem_pt-br.md create mode 100644 problems/string-length/solution_pt-br.md create mode 100644 problems/strings/problem_pt-br.md create mode 100644 problems/strings/solution_pt-br.md create mode 100644 problems/variables/problem_pt-br.md create mode 100644 problems/variables/solution_pt-br.md diff --git a/i18n/troubleshooting_pt-br.md b/i18n/troubleshooting_pt-br.md new file mode 100644 index 00000000..e80792e3 --- /dev/null +++ b/i18n/troubleshooting_pt-br.md @@ -0,0 +1,28 @@ +--- +# Opa! Parece que algo não está funcionando. +# Mas não se desespere! +--- + +## Verefique a solução: + +`Solução +===================` + +%solution% + +`Sua Tentativa +===================` + +%attempt% + +`Diferença +===================` + +%diff% + +## Solução de problemas adicionais: + * Você digitou o nome do arquivo corretamente? Certifique-se de que o nome do arquivo é `%filename%`. + * Verifique se você não se esqueceu dos parênteses, já que de outra maneira o compilador não iria conseguir ler o arquivo. + * Certifique-se de não ter cometido erros ortográficos. + +> **Precisa de ajuda?** Faça uma pergunta: github.com/nodeschool/discussions/issues diff --git a/problems/if-statement/problem_pt-br.md b/problems/if-statement/problem_pt-br.md new file mode 100644 index 00000000..3c5e3b75 --- /dev/null +++ b/problems/if-statement/problem_pt-br.md @@ -0,0 +1,36 @@ +--- + +# CONDICIONAL COM IF + +Instruções condicionais são usadas para alterar o controle de fluxo de um programa, baseado em uma condição de verdadeiro ou falso. + +Uma instrução condicional é mais ou menos assim: + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +Dentro dos parênteses você deve informar uma instrução de lógica, com a idéia de que o resultado seja `true` ou `false`. + +O bloco `else` é opcional e contém o código que será executado caso a instrução resulte em false. + +## Desafio: + +Crie uma arquivo chamado `if-statement.js`. + +No arquivo criado, declare uma variável chamada `fruit`. + +Faça a variável `fruit` referenciar o valor **orange** com o tipo **String**. + +Depois use o `console.log()` para imprimir "**The fruit name has more than five characters."** se o tamanho do valor da variável `fruit` é maior do que cinco. +Caso contrário, imprima "**The fruit name has five characters or less.**" + +Verifique se o seu programa está correto executando o comando: + +`javascripting verify if-statement.js` + +--- diff --git a/problems/if-statement/solution_pt-br.md b/problems/if-statement/solution_pt-br.md new file mode 100644 index 00000000..516262b1 --- /dev/null +++ b/problems/if-statement/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# MESTRE DAS CONDICIONAIS! + +Você entendeu a coisa toda! A string `orange` tem mais do que cinco caracteres. + +Se prepare para **fazer loops com for**! + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/introduction/problem_pt-br.md b/problems/introduction/problem_pt-br.md new file mode 100644 index 00000000..3e7ee471 --- /dev/null +++ b/problems/introduction/problem_pt-br.md @@ -0,0 +1,33 @@ +--- +# INTRODUÇÃO + +Para manter uma boa organização, vamos criar uma pasta pare este workshop. + +Execute este comando para criar um diretório chamado `javascripting`: + +`mkdir javascripting` + +Mude o diretório do console para a pasta que você acabou de criar: + +`cd javascripting` + +Crie um arquivo chamado `introduction.js`: + +`touch introduction.js` ou se você estiver no Windows execute o comando: `type NUL > introduction.js` + +Abra o arquivo no seu editor favorito, e adicione este texto: + +```js +console.log('hello'); +``` + +Salve o arquivo, e então verifique se o seu programa está correto executando este comando: + +`javascripting verify introduction.js` + +--- + + + +> **Precisa de ajuda?** Leia o README deste workshop: http://github.com/sethvincent/javascripting + diff --git a/problems/introduction/solution_pt-br.md b/problems/introduction/solution_pt-br.md new file mode 100644 index 00000000..16bdf79f --- /dev/null +++ b/problems/introduction/solution_pt-br.md @@ -0,0 +1,21 @@ +--- + +# VOCÊ CONSEGUIU! + +Qualquer coisa entre o parênteses de `console.log()` é impresso no terminal. + +Então isto: + +```js +console.log('hello'); +``` + +imprime `hello` no terminal. + +Atualmente estamos imprimindo uma **string** de caracteres para o terminal: `hello`. + +No próximo desafio vamos nos focar em aprender sobre **variáveis**. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/number-to-string/problem_pt-br.md b/problems/number-to-string/problem_pt-br.md new file mode 100644 index 00000000..bf86e1fa --- /dev/null +++ b/problems/number-to-string/problem_pt-br.md @@ -0,0 +1,28 @@ +--- + +# CONVERTENDO NÚMERO PARA STRING + +Ás vezes você precisará converter um número para uma string. + +Nestas situações você usará o método `.toString()`. Veja um exemplo de como usá-lo: + +```js +var n = 256; +n = n.toString(); +``` + +## Desafio: + +Crie um arquivo chamado `number-to-string.js`. + +Neste arquivo defina uma variável chamada `n` que referencia o número `128`; + +Chame o método `.toString()` na variável `n`. + +Use o `console.log()`para imprimir o resultado do método `.toString()` no terminal. + +Verifique se o seu programa está correto executando o comando: + +`javascripting verify number-to-string.js` + +--- diff --git a/problems/number-to-string/solution_pt-br.md b/problems/number-to-string/solution_pt-br.md new file mode 100644 index 00000000..c7605218 --- /dev/null +++ b/problems/number-to-string/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# ESTE NÚMERO AGORA É UMA STRING! + +Excelente! Você fez um bom trabalho convertendo o número em uma string. + +No próximo desafio vamos ver como fazer condições usando **if**. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/numbers/problem_pt-br.md b/problems/numbers/problem_pt-br.md new file mode 100644 index 00000000..b64c68a5 --- /dev/null +++ b/problems/numbers/problem_pt-br.md @@ -0,0 +1,20 @@ +--- + +# NÚMEROS + +O números podem ser inteiros como `2`, `14`, ou `4353`, ou podem ser decimais +como `3.14`, `1.5`, ou `100.7893423`. + +## Dasafio: + +Crie um arquivo chamado `numbers.js`. + +No arquivo defina uma variável chamada `example` que referencia o valor `123456789`. + +Use o `console.log()` para imprimir o número no terminal. + +Verifique se o seu programa está correto executando o seguinte comando: + +`javascripting verify numbers.js` + +--- diff --git a/problems/numbers/solution_pt-br.md b/problems/numbers/solution_pt-br.md new file mode 100644 index 00000000..c53ee68b --- /dev/null +++ b/problems/numbers/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# SIM! NÚMEROS! + +Legal, você conseguiu definir uma variável com o valor `123456789`. + +No próximo desafio vamos ver como manipular os números. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/revising-strings/problem_pt-br.md b/problems/revising-strings/problem_pt-br.md new file mode 100644 index 00000000..d175a5a4 --- /dev/null +++ b/problems/revising-strings/problem_pt-br.md @@ -0,0 +1,35 @@ +--- + +# MODIFICANDO STRINGS + +Frequentemente você precisará mudar o conteúdo de uma string. + +As strings tem funcionalidades que te permitem inspecionar e manipular seus conteúdos. + +Aqui está um exemplo que usa o método `.replace()`: + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +Perceba que para mudar o valor da string da variável `example`, nós precisamos +usar o sinal `=` novamente, desta vez com o método `example.replace()` no lado +direito dele. + +## Desafio: + +Crie um arquivo chamado `revising-strings.js`. + +Defina uma variável chamada `pizza` que referencia esta string: `pizza is alright` + +Use o método `.replace()` para modificar o `alright` para `wonderful`. + +Use o `console.log()` para imprimir o resultado do método `.replace()` no terminal. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify revising-strings.js` + +--- diff --git a/problems/revising-strings/solution_pt-br.md b/problems/revising-strings/solution_pt-br.md new file mode 100644 index 00000000..f4c46ce9 --- /dev/null +++ b/problems/revising-strings/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# SIM, PIZZA _É_ MARAVILHOSA. + +Muito bem feito! Você acertou com o método `.replace()`! + +Em seguida vamos explorar os **numbers**. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/rounding-numbers/problem_pt-br.md b/problems/rounding-numbers/problem_pt-br.md new file mode 100644 index 00000000..97076e93 --- /dev/null +++ b/problems/rounding-numbers/problem_pt-br.md @@ -0,0 +1,33 @@ +--- + +# ARREDONDANDO NÚMEROS + +Podemos fazer operações simples de matemática usando operadores como `+`, `-`, `*`, `/`, e `%`. + +Para cálculos complexos, usamos o objeto `Math`. + +Neste desafio usaremos o objeto `Math` para arredondar os números. + +## Desafio: + +Crie um arquivo chamado `rounding-numbers.js`. + +No arquivo que foi criado, defina uma veriável chamada `roundUp` que referencia o valor `1.5`. + +Usaremos o método `Math.round()` para arredondar o valor para cima. + +Veja um exemplo de utilização do método `Math.round()`: + +```js +Math.round(0.5); +``` + +Defina uma segunda variável chamada `rounded` que referencia a saída do método `Math.round()`, passando a variável `roundUp` como argumento. + +Use o `console.log()` para imprimir o número no terminal. + +Verifique se o seu programa está correto executando o comando: + +`javascripting verify rounding-numbers.js` + +--- diff --git a/problems/rounding-numbers/solution_pt-br.md b/problems/rounding-numbers/solution_pt-br.md new file mode 100644 index 00000000..19c7c32e --- /dev/null +++ b/problems/rounding-numbers/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# AGORA TÁ REDONDO! + +Isso aê! Você arredondou o número `1.5` para `2`. Bom trabalho! + +No próximo desafio iremos transformar o número numa string. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/string-length/problem_pt-br.md b/problems/string-length/problem_pt-br.md new file mode 100644 index 00000000..4cb3092a --- /dev/null +++ b/problems/string-length/problem_pt-br.md @@ -0,0 +1,35 @@ +--- + +# TAMANHO DA STRING + +Você irá frequentemente precisar saber quantos caracteres estão em uma string. + +Para isso você usará a propriedade `.length` da string. Aqui está um exemplo: + +```js +var example = 'example string'; +example.length; +``` + +# OBSERVAÇÕES + +Tenha certeza de que existe um ponto entre `example` e `length`. + +O código acima irá retornar um **number** com o total de caracteres na string. + + +## Desafio: + +Crie um arquivo chamado `string-length.js`. + +Nest arquivo, crie uma variável chamada `example`. + +**Referencie a `'example string'` á variável `example`.** + +Use o `console.log` para imprimir o **length** (tamanho) da string no terminal. + +**Verifique se o seu projeto está correto executando o comando:** + +`javascripting verify string-length.js` + +--- diff --git a/problems/string-length/solution_pt-br.md b/problems/string-length/solution_pt-br.md new file mode 100644 index 00000000..2b27f4e4 --- /dev/null +++ b/problems/string-length/solution_pt-br.md @@ -0,0 +1,9 @@ +--- + +# VITÓRIA! + +Você conseguiu! A string `example string` tem 14 caracteres. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md new file mode 100644 index 00000000..a5d8def7 --- /dev/null +++ b/problems/strings/problem_pt-br.md @@ -0,0 +1,34 @@ +--- + +# STRINGS + +Uma **string** pode ser qualquer valor cercado de aspas. + +Pode ser usado aspas simples ou aspas duplas: + +```js +'this is a string' + +"this is also a string" +``` +# OBSERVAÇÃO + +Tente ser consistente. Neste workshop usaremos apenas aspas simples. + +## Desafio: + +Para este desafio, crie um arquivo chamado `strings.js`. + +No arquivo que foi criado, crie uma variável chamada `someString` da seguinte forma: + +```js +var someString = 'this is a string'; +``` + +Use o `console.log` para imprimir a variável **someString** para o terminal. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify strings.js` + +--- diff --git a/problems/strings/solution_pt-br.md b/problems/strings/solution_pt-br.md new file mode 100644 index 00000000..c3dfab75 --- /dev/null +++ b/problems/strings/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# SUCESSO! + +Você tá pegando o jeito com as strings! + +Nos próximos desafios vamos aprender á manipular as strings. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- diff --git a/problems/variables/problem_pt-br.md b/problems/variables/problem_pt-br.md new file mode 100644 index 00000000..67bd1e54 --- /dev/null +++ b/problems/variables/problem_pt-br.md @@ -0,0 +1,40 @@ +--- + +# VARIÁVEIS + +Uma variável é o nome que pode fazer referência á um valor específico. Variáveis são declaradas usando a palavra `var` seguida do nome da variável. + +Aqui está um exemplo: + +```js +var example; +``` + +A variável acima foi **declarada**, mas ainda não foi definida (ou seja, ainda não faz referência á um valor específico). + +Aqui está um exemplo de como definir uma variável, fazendo ela referenciar um valor específico: + +```js +var example = 'some string'; +``` + +# OBSERVAÇÃO + +Um variável é **declarada** quando usamos `var`, e o `=` é usado para **definir** o valor pelo qual a variável vai fazer referência. + +Coloquialmente dizemos que "criamos uma variável com um valor". + +## Desafio: + +Crie um arquivo chamado `variables.js`. + +No arquivo que foi criado declare uma variável chamada `example`. + +**Faça a variável `example` ter o valor igual á `'some string'`.** + +Então use o `console.log()` para imprimir a variável `example` no console. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify variables.js` +--- diff --git a/problems/variables/solution_pt-br.md b/problems/variables/solution_pt-br.md new file mode 100644 index 00000000..225d66e1 --- /dev/null +++ b/problems/variables/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# VOCÊ CRIOU UMA VARIÁVEL! + +Bom trabalho! + +No próximo desafio vamos dar uma olhada mais de perto nas strings. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From 18f267544e1315a0c71ab42e908145348b2e2cb8 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Tue, 30 Jun 2015 23:52:50 -0300 Subject: [PATCH 107/346] =?UTF-8?q?Atualiza=C3=A7ao=20do=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 9daa8247..b666e34b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store node_modules +.settings From 6aa778bf6e6a568d606f12c5ea4ca4b8fb08330e Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Wed, 1 Jul 2015 00:50:22 -0300 Subject: [PATCH 108/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20do=20for-loop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/for-loop/problem_pt-br.md | 43 +++++++++++++++++++++++++++++ problems/for-loop/solution_pt-br.md | 11 ++++++++ 2 files changed, 54 insertions(+) create mode 100644 problems/for-loop/problem_pt-br.md create mode 100644 problems/for-loop/solution_pt-br.md diff --git a/problems/for-loop/problem_pt-br.md b/problems/for-loop/problem_pt-br.md new file mode 100644 index 00000000..d0d68047 --- /dev/null +++ b/problems/for-loop/problem_pt-br.md @@ -0,0 +1,43 @@ +--- + +# FAZENDO LOOP COM FOR + +Loops com *for* são dessa forma: + +```js +for (var i = 0; i < 10; i++) { + // log the numbers 0 through 9 + console.log(i) +} +``` + +A variável `i` é usada para rastrear a quantidade de vezes em que o loop foi executado. + +A expressão `i < 10;` indica o limite do loop. +O loop continuará se o valor da variável `i` for menor que `10`. + +A expressão `i++` incrementa o valor da variável `i` á cada iteração. + +## Desafio: + +Crie um arquivo chamado `for-loop.js`. + +No arquivo que você acabou de criar, defina uma variável chamada `total` e inicialize ela com o valor `0`. + +Defina uma segunda variável chamada `limit` e inicialize ela com o valor `10`. + +Crie um loop for com a variável `i` iniciando do 0 aumentando por um 1 á cada iteração. O loop deverá correr enquanto o valor de `i` for menor que o valor de `limit`. + +Á cada iteração do loop, adicione o número do `i` á variável `total`. Para fazer isto, você pode usar a seguinte expressão: + +```js +total += i; +``` + +Após o loop, use o `console.log()` para imprimir a variável `total` ao terminal. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify for-loop.js` + +--- diff --git a/problems/for-loop/solution_pt-br.md b/problems/for-loop/solution_pt-br.md new file mode 100644 index 00000000..7546e5f9 --- /dev/null +++ b/problems/for-loop/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# O TOTAL É 45 + +Isto foi uma introdução bem básica aos loops, dos quais são úteis em várias situações, particularmente em combinação com outros tipos de dados como strings e arrays. + +No próximo desafio começaremos á trabalhar com **arrays**. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From 7763de8961954afba24a234ad4a7770442bfcdd4 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Wed, 1 Jul 2015 01:01:48 -0300 Subject: [PATCH 109/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20do=20Arrays?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/arrays/problem_pt-br.md | 23 +++++++++++++++++++++++ problems/arrays/solution_pt-br.md | 11 +++++++++++ 2 files changed, 34 insertions(+) create mode 100644 problems/arrays/problem_pt-br.md create mode 100644 problems/arrays/solution_pt-br.md diff --git a/problems/arrays/problem_pt-br.md b/problems/arrays/problem_pt-br.md new file mode 100644 index 00000000..18d336cc --- /dev/null +++ b/problems/arrays/problem_pt-br.md @@ -0,0 +1,23 @@ +--- + +# ARRAYS + +Um array é uma lista de valores. Aqui está um exemplo: + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +### Desafio: + +Crie um arquivo chamado `arrays.js`. + +No arquivo criado defina uma variável chamada `pizzaToppings` que referencia um array com três strings nesta ordem: `tomato sauce, cheese, pepperoni`. + +Use o `console.log()` para imprimir o array `pizzaToppings` no terminal. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify arrays.js` + +--- diff --git a/problems/arrays/solution_pt-br.md b/problems/arrays/solution_pt-br.md new file mode 100644 index 00000000..1ce86077 --- /dev/null +++ b/problems/arrays/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# AEEEE! UM ARRAY DE PIZZAS! + +Você criou um array com sucesso! + +No próximo desafio veremos como filtrar os arrays. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From 498462dba6f203df01c98fd7eb4df48ae956390f Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Wed, 1 Jul 2015 01:15:39 -0300 Subject: [PATCH 110/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20do=20array-filteri?= =?UTF-8?q?ng?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/array-filtering/problem_pt-br.md | 49 ++++++++++++++++++++++ problems/array-filtering/solution_pt-br.md | 11 +++++ 2 files changed, 60 insertions(+) create mode 100644 problems/array-filtering/problem_pt-br.md create mode 100644 problems/array-filtering/solution_pt-br.md diff --git a/problems/array-filtering/problem_pt-br.md b/problems/array-filtering/problem_pt-br.md new file mode 100644 index 00000000..a350399c --- /dev/null +++ b/problems/array-filtering/problem_pt-br.md @@ -0,0 +1,49 @@ +--- + +# FILTRANDO ARRAYS + +Existem muitas formas de manipular arrays. + +Uma tarefa comum é filtrar um array para que ele tenha somente alguns valores. + +Para isso podemos usar o método `.filter()`. + +Aqui está um exemplo: + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +A variável `filtered` irá conter apenas `cat` e `dog`. + +## Desafio: + +Crie um arquivo chamado `array-filtering.js`. + +Neste arquivo, defina uma variável chamada `numbers` que referencia este array: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +Como acima, defina uma variavel chamada `filtered` com referência ao resultado de `numbers.filter()`. + +A função que você passa para o método `.filter()` será igual essa: + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +Use o `console.log()` para imprimir o array `filtered` no terminal. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify array-filtering.js` + +--- diff --git a/problems/array-filtering/solution_pt-br.md b/problems/array-filtering/solution_pt-br.md new file mode 100644 index 00000000..66a5cdd1 --- /dev/null +++ b/problems/array-filtering/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# FILTRADO! + +Você fez um bom trabalho ao filtrar aquele array. + +No próximo desafio vamos ver como acessar os valores de um array. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From 1a7a9bb2224f5bf13477900f5c43751274915e3d Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Wed, 1 Jul 2015 23:42:17 -0300 Subject: [PATCH 111/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20do=20accessing-arr?= =?UTF-8?q?ay-values?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../accessing-array-values/problem_pt-br.md | 51 +++++++++++++++++++ .../accessing-array-values/solution_pt-br.md | 11 ++++ 2 files changed, 62 insertions(+) create mode 100644 problems/accessing-array-values/problem_pt-br.md create mode 100644 problems/accessing-array-values/solution_pt-br.md diff --git a/problems/accessing-array-values/problem_pt-br.md b/problems/accessing-array-values/problem_pt-br.md new file mode 100644 index 00000000..555f6be8 --- /dev/null +++ b/problems/accessing-array-values/problem_pt-br.md @@ -0,0 +1,51 @@ +--- + +# ACESSANDO VALORES DE UM ARRAY + +Podemos acessar elementos de um array através de um número que representa sua posição, conhecido como índice. + +O valor do índice inicia com 0 e vai até o valor que representa o tamanho do array menos 1. + +Aqui está um exemplo: + + +```js + var pets = ['cat', 'dog', 'rat']; + + console.log(pets[0]); +``` + +O código acima imprime o primeiro elemento do array `pets` - a string `cat`. + +Os elementos do array devem ser acessados através do uso do valor do índice entre colchetes. + +Utilizar ponto para acessar o elemento não é válido. + +Uso válido: + +```js + console.log(pets[0]); +``` + +Uso invalido: +``` + console.log(pets.1); +``` + +## Desafio: + +Crie um arquivo chamado `accessing-array-values.js`. + +Neste arquivo, defina o array `food` : +```js +var food = ['apple', 'pizza', 'pear']; +``` + + +Use o `console.log()` para imprimir o segundo valor do array no terminal. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify accessing-array-values.js` + +--- diff --git a/problems/accessing-array-values/solution_pt-br.md b/problems/accessing-array-values/solution_pt-br.md new file mode 100644 index 00000000..7c355b3b --- /dev/null +++ b/problems/accessing-array-values/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# VOCÊ IMPRIMIU O SEGUNDO ELEMENTO DO ARRAY! + +Você realizou um bom trabalho ao acessar aquele elemento do array. + +No próximo desafio vamos ver como fazer um loop pelos elementos do array. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- \ No newline at end of file From 7eeb23b58296f0feed3cf7ae3416c99262ad53b6 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Sat, 4 Jul 2015 14:57:06 -0300 Subject: [PATCH 112/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20do=20looping-throu?= =?UTF-8?q?gh-arrays?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../looping-through-arrays/problem_pt-br.md | 49 +++++++++++++++++++ .../looping-through-arrays/solution_pt-br.md | 11 +++++ 2 files changed, 60 insertions(+) create mode 100644 problems/looping-through-arrays/problem_pt-br.md create mode 100644 problems/looping-through-arrays/solution_pt-br.md diff --git a/problems/looping-through-arrays/problem_pt-br.md b/problems/looping-through-arrays/problem_pt-br.md new file mode 100644 index 00000000..50731eff --- /dev/null +++ b/problems/looping-through-arrays/problem_pt-br.md @@ -0,0 +1,49 @@ +--- + +# VARRENDO ARRAYS COM LOOP + +Para este desafio usaremos um **loop for** para acessar e manipular uma lista de valores em um array. + +Podemos acessar os valores de um array usando um contador. + +Cada item em um array é identificado por um número inteiro, começando do `0`. + +Então neste array a string `hi` é identificada pelo número `1`: + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +Podemos acessá-la dessa forma: + +```js +greetings[1]; +``` + +Então dentro de um **loop for** usaríamos a variável `i` dentro dos colchetes ao invés de usar diretamente um inteiro. + +## Desafio: + +Crie um arquivo chamado `looping-through-arrays.js`. + +Neste arquivo, defina uma variável chamada `pets` que referencie este array: + +```js +['cat', 'dog', 'rat']; +``` + +Crie um loop for que altera cada string no array para o plural. + +Você usará uma instrução como esta dentro do loop: + +```js +pets[i] = pets[i] + 's'; +``` + +Depois do loop, use o `console.log()` para imprimir o array `pets` no terminal. + +Verifique se o seu programa está correto usando o comando: + +`javascripting verify looping-through-arrays.js` + +--- diff --git a/problems/looping-through-arrays/solution_pt-br.md b/problems/looping-through-arrays/solution_pt-br.md new file mode 100644 index 00000000..2d068dad --- /dev/null +++ b/problems/looping-through-arrays/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# SUCESSO! UM MONTE DE BICHINHOS! + +Agora todos os itens no array `pets` estão no plural! + +No próximo desafio vamos começar á trabalhar com **objects**. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From 83002567a8746d392becd9bc0d4b68cefd1f0a6c Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Sat, 4 Jul 2015 15:15:48 -0300 Subject: [PATCH 113/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20de=20objects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/objects/problem_pt-br.md | 37 ++++++++++++++++++++++++++++++ problems/objects/solution_pt-br.md | 11 +++++++++ 2 files changed, 48 insertions(+) create mode 100644 problems/objects/problem_pt-br.md create mode 100644 problems/objects/solution_pt-br.md diff --git a/problems/objects/problem_pt-br.md b/problems/objects/problem_pt-br.md new file mode 100644 index 00000000..80df4ce1 --- /dev/null +++ b/problems/objects/problem_pt-br.md @@ -0,0 +1,37 @@ +--- + +# OBJETOS + +Um objetos é uma lista de valores similar á um array, exceto que seus valores são identificados por chaves ao invés de inteiros. + +Aqui está um exemplo: + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +} +``` + +## Desafio: + +Crie um arquivo chamado `objects.js`. + +Neste arquivo, defina uma variável chamada `pizza` desta forma: + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} +``` + +Use o `console.log()` para imprimir o objeto `pizza` no terminal. + +Verifique se o seu programa está correto usando este comando: + +`javascripting verify objects.js` + + +--- diff --git a/problems/objects/solution_pt-br.md b/problems/objects/solution_pt-br.md new file mode 100644 index 00000000..3ee7e9e3 --- /dev/null +++ b/problems/objects/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# O OBJETO PIZZA FOI UMA BOA! + +Você criou um objeto com sucesso! + +No próximo desafio vamos ver como fazemos para acessar as propriedades de um objeto. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From dcdd89b51bf3a3b73cbe2e4af28e7e0fd2fe6390 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Sat, 4 Jul 2015 15:35:28 -0300 Subject: [PATCH 114/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20de=20object-proper?= =?UTF-8?q?ties?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/object-properties/problem_pt-br.md | 47 ++++++++++++++++++++ problems/object-properties/solution_pt-br.md | 11 +++++ 2 files changed, 58 insertions(+) create mode 100644 problems/object-properties/problem_pt-br.md create mode 100644 problems/object-properties/solution_pt-br.md diff --git a/problems/object-properties/problem_pt-br.md b/problems/object-properties/problem_pt-br.md new file mode 100644 index 00000000..9a0cfc8b --- /dev/null +++ b/problems/object-properties/problem_pt-br.md @@ -0,0 +1,47 @@ +--- + +# PROPRIEDADES DE OBJETO + +Você pode acessar e manipular propriedades de objetos –– as chaves e valores de um objeto –– de uma maneira bem similar como fazemos com arrays. + +Aqui está exemplo usando **colchetes**: + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +O código acima vai imprimir no terminal a string `'yummy'`. + +Como alternativa você pode utilizar **ponto** para obter o mesmo resultado: + +```js +example.pizza; + +example['pizza']; +``` + +As duas linhas de código acima retornarão `yummy`. + +## Desafio: + +Crie um arquivo chamado `object-properties.js`. + +Neste arquivo, defina uma variável chamada `food` desta maneira: + +```js +var food = { + types: 'only pizza' +}; +``` + +Use o `console.log()` para imprimir a propriedade `types` do objeto `food` no terminal. + +Verifique se o seu programa está correto usando o comando: + +`javascripting verify object-properties.js` + +--- diff --git a/problems/object-properties/solution_pt-br.md b/problems/object-properties/solution_pt-br.md new file mode 100644 index 00000000..95207662 --- /dev/null +++ b/problems/object-properties/solution_pt-br.md @@ -0,0 +1,11 @@ +--- + +# CORRETO! PIZZA É O ÚNICO ALIMENTO. + +Bom trabalho ao acessar esta propriedade. + +O próximo desafio se trata de **funções**. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From 8b5fb9f9177b4a2799c354cf675db33dd17360f3 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Sat, 4 Jul 2015 15:59:38 -0300 Subject: [PATCH 115/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20de=20functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/functions/problem_pt-br.md | 42 ++++++++++++++++++++++++++++ problems/functions/solution_pt-br.md | 9 ++++++ 2 files changed, 51 insertions(+) create mode 100644 problems/functions/problem_pt-br.md create mode 100644 problems/functions/solution_pt-br.md diff --git a/problems/functions/problem_pt-br.md b/problems/functions/problem_pt-br.md new file mode 100644 index 00000000..1c257313 --- /dev/null +++ b/problems/functions/problem_pt-br.md @@ -0,0 +1,42 @@ +--- + +# FUNÇÕES + +Uma função basicamente recebe uma entrada, processa a entrada, e então produz uma saída. + +Aqui está um exemplo: + +```js +function example (x) { + return x * 2; +} +``` + +Podemos **chamar** a função `example` dessa forma para conseguir o número 10: + +```js +example(5) +``` + +O exemplo acima assume que a função `example` irá receber um número como um argumento/parâmetro –– ou seja, como entrada –– e irá retornar este número multiplicado por 2. + +## Desafio: + +Crie um arquivo chamado `functions.js`. + +Neste arquivo, defina uma função chamada `eat` que recebe um argumento chamado `food` +que deverá ser uma string. + +De dentro da função retorne o argumento `food` dessa maneira: + +```js +return food + ' tasted really good.'; +``` + +Dentro do parênteses do `console.log()`, chame a função `eat()` com a string `bananas` como argumento. + +Verifique se o seu programa está correto executando este comando: + +`javascripting verify functions.js` + +--- diff --git a/problems/functions/solution_pt-br.md b/problems/functions/solution_pt-br.md new file mode 100644 index 00000000..a3225ec9 --- /dev/null +++ b/problems/functions/solution_pt-br.md @@ -0,0 +1,9 @@ +--- + +# UHUUU! BANANAS!!! + +Você conseguiu! Você criou uma função que recebe uma entrada, processa aquela entrada, e devolve uma saída. + +Execute `javascripting` no console para escolher o próximo resultado. + +--- From f6ec1c66ed0310e9ae512f366cbdc1c1bfdba0e4 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Sat, 4 Jul 2015 23:58:08 -0300 Subject: [PATCH 116/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20de=20functions-arg?= =?UTF-8?q?uments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/function-arguments/problem_pt-br.md | 39 +++++++++++++++++++ problems/function-arguments/solution_pt-br.md | 9 +++++ 2 files changed, 48 insertions(+) create mode 100644 problems/function-arguments/problem_pt-br.md create mode 100644 problems/function-arguments/solution_pt-br.md diff --git a/problems/function-arguments/problem_pt-br.md b/problems/function-arguments/problem_pt-br.md new file mode 100644 index 00000000..821cf355 --- /dev/null +++ b/problems/function-arguments/problem_pt-br.md @@ -0,0 +1,39 @@ +--- + +# ARGUMENTOS DE FUNÇÕES + +Podemos declarar uma função que recebe qualquer quantidade de argumentos. Os argumentos podem ser de qualquer tipo. Um argumento poderia ser uma string, um número, um array, um objeto e até mesmo outra função. + +Aqui está um exemplo: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +Podemos **chamar** essa função passando dois argumentos dessa forma: + +```js +example('hello', 'world'); +``` + +O exemplo acima irá imprimir no terminal `hello world`. + +## Desafio: + +Crie um arquivo chamado `function-arguments.js`. + +Nesse arquivo, defina uma função chamada `math` que recebe 3 argumentos. É importante compreender que o nome dos argumentos são usados somente para referência-los. + +Dê um nome para cada argumento da maneira que você quiser. + +A função `math` deverá multiplicar o segundo e o terceiro argumento, e então somar o primeiro argumento ao resultado da multiplicação e então retornar o valor obtido. + +Depois disso, dentro dos parênteses do `console.log()`, chame a função `math()` com o número `53` como primeiro argumento, `61` como segundo e `6*7` como terceiro argumento. + +Verifique se o seu programa está correto executando esse comando: + +`javascripting verify function-arguments.js` + +--- diff --git a/problems/function-arguments/solution_pt-br.md b/problems/function-arguments/solution_pt-br.md new file mode 100644 index 00000000..4bab4bd7 --- /dev/null +++ b/problems/function-arguments/solution_pt-br.md @@ -0,0 +1,9 @@ +--- + +# VOCÊ DOMINOU OS ARGUMENTOS! + +Muito bom! Você conseguiu completar o exercício. + +Execute `javascripting` no console para escolher o próximo desafio. + +--- From 6a79171ffe08e066714aaae53079a6ff4b371e97 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Sun, 5 Jul 2015 00:55:01 -0300 Subject: [PATCH 117/346] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20de=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/scope/problem_pt-br.md | 75 ++++++++++++++++++++++++++++++++ problems/scope/solution_pt-br.md | 9 ++++ 2 files changed, 84 insertions(+) create mode 100644 problems/scope/problem_pt-br.md create mode 100644 problems/scope/solution_pt-br.md diff --git a/problems/scope/problem_pt-br.md b/problems/scope/problem_pt-br.md new file mode 100644 index 00000000..df0b76e9 --- /dev/null +++ b/problems/scope/problem_pt-br.md @@ -0,0 +1,75 @@ +--- + +# ESCOPO + +`Escopo` é o conjunto de variáveis, objetos, e funções dos quais temos acesso. + +O JavaScript tem dois escopos: `global` e `local`. Uma variável que é declarada fora da definição de uma função é uma variável `global`, e o seu valor pode ser acessado e modificado á partir de qualquer parte do seu programa. Uma variável que é declarada dentro da definição de uma função é `local`. Ela é criada e destruída toda vez que a função é executada, e não pode ser acessada por qualquer código fora da função. + +Funções definidas dentro de outras funções, conhecidas como funções aninhadas, tem acesso ao escopo da função pai. + +Preste atenção nos comentários do código abaixo: + +```js +var a = 4; // uma variável global, pode ser acessada pelas funções abaixo + +function foo() { + var b = a * 3; // b não pode ser acessada fora da função, mas pode ser acessada pelas funções + // definidas dentro da função foo + function bar(c) { + var b = 2; // uma outra variável `b` é criada dentro do escopo da função bar + // as mudanças dessa nova variável `b` não afeta a outra variável `b` + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +IIFE, Immediately Invoked Function Expression (Expressão de Função Executada Imediatamente em tradução livre), é um padrão bastante usado para criar escopos locais. + +Exemplo: +```js + (function(){ // a expressão da função é cercada por parênteses + // as variáveis definidas aqui + // não podem ser acessadas do lado de fora + })(); // a função é executada imediatamente +``` +## Desafio: + +Crie um arquivo chamado `scope.js`. + +Nesse arquivo, copie o seguinte código: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Utilize seus conhecimentos sobre `escopo` de variáveis e posicione o seguinte código dentro de uma das funções no 'scope.js' +fazendo o resultado ser `a: 1, b: 8,c: 6` +```js +console.log("a: "+a+", b: "+b+", c: "+c); +``` + +Verifique se o seu programa está correto executando o comando: + +`javascripting verify scope.js` + +--- diff --git a/problems/scope/solution_pt-br.md b/problems/scope/solution_pt-br.md new file mode 100644 index 00000000..92253b43 --- /dev/null +++ b/problems/scope/solution_pt-br.md @@ -0,0 +1,9 @@ +--- + +#EXCELENTE! + +Você pegou o jeito! A segunda função tem o escopo que procurávamos. + +Execute javascripting no console para escolher o próximo desafio. + +--- From f8ed6aacf6151749104373f6726bf599a229c5f1 Mon Sep 17 00:00:00 2001 From: AlanCezarAraujo Date: Sun, 5 Jul 2015 01:00:50 -0300 Subject: [PATCH 118/346] =?UTF-8?q?Adequa=C3=A7=C3=A3o=20de=20arquivos=20j?= =?UTF-8?q?=C3=A1=20criados.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/function-return-values/problem_pt-br.md | 5 +++++ problems/function-return-values/solution_pt-br.md | 5 +++++ problems/object-keys/problem_pt-br.md | 5 +++++ problems/object-keys/solution_pt-br.md | 5 +++++ problems/this/problem_pt-br.md | 5 +++++ problems/this/solution_pt-br.md | 5 +++++ 6 files changed, 30 insertions(+) create mode 100644 problems/function-return-values/problem_pt-br.md create mode 100644 problems/function-return-values/solution_pt-br.md create mode 100644 problems/object-keys/problem_pt-br.md create mode 100644 problems/object-keys/solution_pt-br.md create mode 100644 problems/this/problem_pt-br.md create mode 100644 problems/this/solution_pt-br.md diff --git a/problems/function-return-values/problem_pt-br.md b/problems/function-return-values/problem_pt-br.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_pt-br.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_pt-br.md b/problems/function-return-values/solution_pt-br.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_pt-br.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/problem_pt-br.md b/problems/object-keys/problem_pt-br.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_pt-br.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_pt-br.md b/problems/object-keys/solution_pt-br.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_pt-br.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/problem_pt-br.md b/problems/this/problem_pt-br.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_pt-br.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_pt-br.md b/problems/this/solution_pt-br.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_pt-br.md @@ -0,0 +1,5 @@ +--- + +# + +--- From 50cc47fe09bac3206b30475c30854e4014c8f424 Mon Sep 17 00:00:00 2001 From: Filipe Oliveira Date: Mon, 20 Jul 2015 06:27:16 -0300 Subject: [PATCH 119/346] Fixing a little bit typos from pt-br translation. --- i18n/troubleshooting_pt-br.md | 4 ++-- problems/function-arguments/problem_pt-br.md | 2 +- problems/introduction/problem_pt-br.md | 2 +- problems/introduction/solution_pt-br.md | 2 +- problems/object-properties/problem_pt-br.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/troubleshooting_pt-br.md b/i18n/troubleshooting_pt-br.md index e80792e3..d17c293a 100644 --- a/i18n/troubleshooting_pt-br.md +++ b/i18n/troubleshooting_pt-br.md @@ -3,14 +3,14 @@ # Mas não se desespere! --- -## Verefique a solução: +## Verifique a solução: `Solução ===================` %solution% -`Sua Tentativa +`Sua tentativa ===================` %attempt% diff --git a/problems/function-arguments/problem_pt-br.md b/problems/function-arguments/problem_pt-br.md index 821cf355..4144a936 100644 --- a/problems/function-arguments/problem_pt-br.md +++ b/problems/function-arguments/problem_pt-br.md @@ -24,7 +24,7 @@ O exemplo acima irá imprimir no terminal `hello world`. Crie um arquivo chamado `function-arguments.js`. -Nesse arquivo, defina uma função chamada `math` que recebe 3 argumentos. É importante compreender que o nome dos argumentos são usados somente para referência-los. +Nesse arquivo, defina uma função chamada `math` que recebe 3 argumentos. É importante compreender que o nome dos argumentos são usados somente para referenciá-los. Dê um nome para cada argumento da maneira que você quiser. diff --git a/problems/introduction/problem_pt-br.md b/problems/introduction/problem_pt-br.md index 3e7ee471..04b3eb5c 100644 --- a/problems/introduction/problem_pt-br.md +++ b/problems/introduction/problem_pt-br.md @@ -1,7 +1,7 @@ --- # INTRODUÇÃO -Para manter uma boa organização, vamos criar uma pasta pare este workshop. +Para manter uma boa organização, vamos criar uma pasta para este workshop. Execute este comando para criar um diretório chamado `javascripting`: diff --git a/problems/introduction/solution_pt-br.md b/problems/introduction/solution_pt-br.md index 16bdf79f..54da0f66 100644 --- a/problems/introduction/solution_pt-br.md +++ b/problems/introduction/solution_pt-br.md @@ -2,7 +2,7 @@ # VOCÊ CONSEGUIU! -Qualquer coisa entre o parênteses de `console.log()` é impresso no terminal. +Qualquer coisa entre os parênteses de `console.log()` é impresso no terminal. Então isto: diff --git a/problems/object-properties/problem_pt-br.md b/problems/object-properties/problem_pt-br.md index 9a0cfc8b..d70d0d67 100644 --- a/problems/object-properties/problem_pt-br.md +++ b/problems/object-properties/problem_pt-br.md @@ -4,7 +4,7 @@ Você pode acessar e manipular propriedades de objetos –– as chaves e valores de um objeto –– de uma maneira bem similar como fazemos com arrays. -Aqui está exemplo usando **colchetes**: +Aqui está um exemplo usando **colchetes**: ```js var example = { From 627d3783723ba154fdb63d8337852bf9864a43a3 Mon Sep 17 00:00:00 2001 From: Victor Perin Date: Tue, 4 Aug 2015 00:18:39 -0300 Subject: [PATCH 120/346] =?UTF-8?q?Corrigindo=20o=20t=C3=ADtulo=20do=20exe?= =?UTF-8?q?rc=C3=ADcio=2016=20(object=20properties)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- i18n/pt-br.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt-br.json b/i18n/pt-br.json index 2f457e95..2d219e00 100644 --- a/i18n/pt-br.json +++ b/i18n/pt-br.json @@ -15,7 +15,7 @@ , "ACCESSING ARRAY VALUES": "ACESSANDO VALORES DE UM ARRAY" , "LOOPING THROUGH ARRAYS": "VARRENDO ARRAYS COM LOOP" , "OBJECTS": "OBJETOS" - , "OBJECT PROPERTIES": "PROPIEDADES DE OBJETOS" + , "OBJECT PROPERTIES": "PROPRIEDADES DE OBJETOS" , "FUNCTIONS": "FUNÇÕES" , "FUNCTION ARGUMENTS": "ARGUMENTOS DE FUNÇÕES" , "SCOPE": "ESCOPO" From a743f186d48c09ae616477cc784673bc1c28b8c7 Mon Sep 17 00:00:00 2001 From: Victor Perin Date: Tue, 4 Aug 2015 00:36:16 -0300 Subject: [PATCH 121/346] =?UTF-8?q?Corrigindo=20introdu=C3=A7=C3=A3o=20do?= =?UTF-8?q?=20exerc=C3=ADcio=202=20(Variables)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/variables/problem_pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/variables/problem_pt-br.md b/problems/variables/problem_pt-br.md index 67bd1e54..c5ddeffb 100644 --- a/problems/variables/problem_pt-br.md +++ b/problems/variables/problem_pt-br.md @@ -2,7 +2,7 @@ # VARIÁVEIS -Uma variável é o nome que pode fazer referência á um valor específico. Variáveis são declaradas usando a palavra `var` seguida do nome da variável. +Uma variável é o nome que pode fazer referência a um valor específico. Variáveis são declaradas usando a palavra `var` seguida do nome da variável. Aqui está um exemplo: From 2169174f5eaa120b6626b5520d6c9c6054484b79 Mon Sep 17 00:00:00 2001 From: Victor Perin Date: Tue, 4 Aug 2015 01:05:56 -0300 Subject: [PATCH 122/346] =?UTF-8?q?Corrigindo=20texto=20do=20exerc=C3=ADci?= =?UTF-8?q?o=2010=20(for-loop)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/for-loop/problem_pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/for-loop/problem_pt-br.md b/problems/for-loop/problem_pt-br.md index d0d68047..b4b4ee81 100644 --- a/problems/for-loop/problem_pt-br.md +++ b/problems/for-loop/problem_pt-br.md @@ -16,7 +16,7 @@ A variável `i` é usada para rastrear a quantidade de vezes em que o loop foi e A expressão `i < 10;` indica o limite do loop. O loop continuará se o valor da variável `i` for menor que `10`. -A expressão `i++` incrementa o valor da variável `i` á cada iteração. +A expressão `i++` incrementa o valor da variável `i` a cada iteração. ## Desafio: From 4cf63a311d0a2403833e5021e5c83003a54b4a47 Mon Sep 17 00:00:00 2001 From: Victor Perin Date: Tue, 4 Aug 2015 01:55:02 -0300 Subject: [PATCH 123/346] =?UTF-8?q?Removendo=20erro=20ao=20traduzir=20o=20?= =?UTF-8?q?exerc=C3=ADcio=2018=20(function-arguments)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/function-arguments/problem_pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/function-arguments/problem_pt-br.md b/problems/function-arguments/problem_pt-br.md index 4144a936..528c8780 100644 --- a/problems/function-arguments/problem_pt-br.md +++ b/problems/function-arguments/problem_pt-br.md @@ -30,7 +30,7 @@ Dê um nome para cada argumento da maneira que você quiser. A função `math` deverá multiplicar o segundo e o terceiro argumento, e então somar o primeiro argumento ao resultado da multiplicação e então retornar o valor obtido. -Depois disso, dentro dos parênteses do `console.log()`, chame a função `math()` com o número `53` como primeiro argumento, `61` como segundo e `6*7` como terceiro argumento. +Depois disso, dentro dos parênteses do `console.log()`, chame a função `math()` com o número `53` como primeiro argumento, `61` como segundo e `67` como terceiro argumento. Verifique se o seu programa está correto executando esse comando: From 7e0b808bf266c2f102b32959ad891b599953a0c3 Mon Sep 17 00:00:00 2001 From: d9magai Date: Tue, 18 Aug 2015 20:34:54 +0900 Subject: [PATCH 124/346] unnecessary character in arrays/problem_ja :put_litter_in_its_place: --- problems/arrays/problem_ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/arrays/problem_ja.md b/problems/arrays/problem_ja.md index 03a00aec..edf932e9 100644 --- a/problems/arrays/problem_ja.md +++ b/problems/arrays/problem_ja.md @@ -11,7 +11,7 @@ var pets = ['cat', 'dog', 'rat']; ## やってみよう `arrays.js` ファイルを作りましょう。 - + ファイルの中で、配列を表す変数 `pizzaToppings` を定義してください。配列は次の3つの文字列変数を順番通りに含みます... `tomato sauce, cheese, pepperoni` From daf9bfc24a43f76b4341e51f895d176d472f1536 Mon Sep 17 00:00:00 2001 From: Fernando Montoya Date: Tue, 25 Aug 2015 11:56:08 -0500 Subject: [PATCH 125/346] Typo in Spanish --- problems/variables/solution_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/variables/solution_es.md b/problems/variables/solution_es.md index 1e828b4f..1d7b0ce6 100644 --- a/problems/variables/solution_es.md +++ b/problems/variables/solution_es.md @@ -6,6 +6,6 @@ Buen trabajo. En el siguiente ejercicio trabajaremos más en profundidad con strings. -Ejecuta `javascripting` en la terminal para seleccionar el sigueinte ejercicio. +Ejecuta `javascripting` en la terminal para seleccionar el siguiente ejercicio. --- From d16887c021a85d6639a33c8f2e4371e168580e21 Mon Sep 17 00:00:00 2001 From: Fernando Montoya Date: Tue, 25 Aug 2015 13:50:38 -0500 Subject: [PATCH 126/346] Spanish typo in number exercise --- problems/numbers/problem_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/numbers/problem_es.md b/problems/numbers/problem_es.md index 0fc97d97..7858e760 100644 --- a/problems/numbers/problem_es.md +++ b/problems/numbers/problem_es.md @@ -2,7 +2,7 @@ # NÚMEROS -Los números pueden ser enterios, cómo `3`, `5` o `3337`, o pueden ser decimales, +Los números pueden ser enteros, cómo `3`, `5` o `3337`, o pueden ser decimales, cómo `3.14`, `1.5` o `100.7893423`. ## El ejercicio: From 965511d5d7561deb4118604fe501ecfd172b9c38 Mon Sep 17 00:00:00 2001 From: Fernando Montoya Date: Tue, 25 Aug 2015 15:28:24 -0500 Subject: [PATCH 127/346] Fix styles and typos --- problems/array-filtering/solution_es.md | 2 +- problems/rounding-numbers/problem_es.md | 2 +- problems/scope/problem_es.md | 8 ++++---- problems/scope/solution_es.md | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/problems/array-filtering/solution_es.md b/problems/array-filtering/solution_es.md index 4b7ea0e5..c69541c1 100644 --- a/problems/array-filtering/solution_es.md +++ b/problems/array-filtering/solution_es.md @@ -4,7 +4,7 @@ Buen trabajo filtrando ese array. -En el siguiente ejercicio estarmos trabajando con un ejemplo de cómo recorrer arrays. +En el siguiente ejercicio estaremos trabajando con un ejemplo de cómo recorrer arrays. Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. diff --git a/problems/rounding-numbers/problem_es.md b/problems/rounding-numbers/problem_es.md index 07a810ee..52983d65 100644 --- a/problems/rounding-numbers/problem_es.md +++ b/problems/rounding-numbers/problem_es.md @@ -6,7 +6,7 @@ Los operadores básicos son `+`, `-`, `*`, `/`, y `%`. Para operaciones más complejas, podemos usar el objeto `Math`. -En este ejercicio utilizaremos el objeto `Math` para redondear números. +En este ejercicio utilizaremos el objeto `Math` para redondear números. ## El ejercicio: diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md index 540b36cb..46104de8 100644 --- a/problems/scope/problem_es.md +++ b/problems/scope/problem_es.md @@ -18,7 +18,7 @@ function foo() { // por las funciones definidas dentro de foo function bar(c) { var b = 2; // otra variable `b` es creada dentro del ámbito de la función bar - // los cambios a esta nueva `b` no afectan a la vieja variable `b` + // los cambios a esta nueva `b` no afectan a la vieja variable `b` console.log( a, b, c ); } @@ -27,7 +27,7 @@ function foo() { foo(); // 4, 2, 48 ``` -IIFE, Immediately Invoked Function Expression( Expresión de Functión Invocada Inmediatamente ), es un patrón común para crear ámbitos locales. +IIFE, Immediately Invoked Function Expression( Expresión de Función Invocada Inmediatamente ), es un patrón común para crear ámbitos locales. Por ejemplo: ```js (function(){ // La expresión de la función está entre paréntesis @@ -48,7 +48,7 @@ var a = 1, b = 2, c = 3; (function secondFunction(){ var b = 8; - + (function thirdFunction(){ var a = 7, c = 9; @@ -62,7 +62,7 @@ var a = 1, b = 2, c = 3; ``` Usa tu conocimiento sobre el ámbito de las variables y ubica el siguiente código dentro de alguna de las funciones -en `scope.js` para que la salida sea `a: 1, b: 8,c: 6` +en `scope.js` para que la salida sea `a: 1, b: 8, c: 6` ```js console.log("a: "+a+", b: "+b+", c: "+c); ``` diff --git a/problems/scope/solution_es.md b/problems/scope/solution_es.md index 62692356..c4416387 100644 --- a/problems/scope/solution_es.md +++ b/problems/scope/solution_es.md @@ -1,6 +1,6 @@ --- -#EXCELENTE! +# EXCELENTE! Lo hiciste! La segunda función tiene el ámbito que estabamos buscando. From 3bb507f43324e83243da44112e749e198595cdcc Mon Sep 17 00:00:00 2001 From: Matthew Diana Date: Wed, 26 Aug 2015 00:26:42 -0400 Subject: [PATCH 128/346] Added ; to the end of both object declarations --- problems/objects/problem.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/problems/objects/problem.md b/problems/objects/problem.md index 2d29b9d8..da3970fb 100644 --- a/problems/objects/problem.md +++ b/problems/objects/problem.md @@ -10,7 +10,7 @@ Here is an example: var foodPreferences = { pizza: 'yum', salad: 'gross' -} +}; ``` ## The challenge: @@ -24,7 +24,7 @@ var pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 -} +}; ``` Use `console.log()` to print the `pizza` object to the terminal. From 11ce390dd80b9e7cccaf6c4bdb1878a7fef7c690 Mon Sep 17 00:00:00 2001 From: Richard Littauer Date: Thu, 3 Sep 2015 14:57:30 -0400 Subject: [PATCH 129/346] Added a note about changing the file names and verifying them This was in answer to https://github.com/nodeschool/discussions/issues/1337 --- problems/introduction/problem.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/problems/introduction/problem.md b/problems/introduction/problem.md index bdf3adcd..c8789b9a 100644 --- a/problems/introduction/problem.md +++ b/problems/introduction/problem.md @@ -25,6 +25,10 @@ Save the file, then check to see if your program is correct by running this comm `javascripting verify introduction.js` +By the way, throughout this tutorial, you can name give the file you work with any name you like, so if you want to use something like `catsAreAwesome.js` file for every exercise, you can do that. Just make sure to run: + +`javascripting verify catsAreAwesome.js` + --- From d75df24658cf535e4c18bdc8428d826e3b3640b7 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Thu, 3 Sep 2015 19:15:14 -0700 Subject: [PATCH 130/346] v2.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0fc016ff..b8f81e2b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.0.3", + "version": "2.1.0", "repository": { "url": "git://github.com/sethvincent/javascripting.git" }, From b4ff3530994da445325b17bf10a93b79371f51ec Mon Sep 17 00:00:00 2001 From: Michael Grilo Date: Tue, 8 Sep 2015 15:11:49 -0400 Subject: [PATCH 131/346] Function Clarification As someone unfamiliar with JavaScript, it wasn't immediately obvious how Math.round() worked. --- problems/rounding-numbers/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/rounding-numbers/problem.md b/problems/rounding-numbers/problem.md index 045b3106..d043179a 100644 --- a/problems/rounding-numbers/problem.md +++ b/problems/rounding-numbers/problem.md @@ -14,7 +14,7 @@ Create a file named `rounding-numbers.js`. In that file define a variable named `roundUp` that references the float `1.5`. -We will use the `Math.round()` method to round the number up. +We will use the `Math.round()` method to round the number up. This method rounds either up or down to the nearest integer. An example of using `Math.round()`: From 061f23ac09c5cf52d121fa46266ff400bddef5ed Mon Sep 17 00:00:00 2001 From: Michael Grilo Date: Tue, 8 Sep 2015 16:56:14 -0400 Subject: [PATCH 132/346] Clarification The challenge for this problem is jarring compared to the `Functions` problem which came before it. It wasn't obvious to me that the equation could be in the return statement, so my code ended up being overly verbose because I had to just guess a solution: ``` function math (firstArg, secondArg, thirdArg) { var argValue = secondArg * thirdArg + firstArg; return argValue; } console.log(math (53, 61, 67)); ``` --- problems/function-arguments/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/function-arguments/problem.md b/problems/function-arguments/problem.md index ee65b641..19555c82 100644 --- a/problems/function-arguments/problem.md +++ b/problems/function-arguments/problem.md @@ -28,7 +28,7 @@ In that file, define a function named `math` that takes three arguments. It's im Name each argument as you like. -The function `math` should multiply the second and third arguments, then add the first argument to the outcome of the multiplication and return the value obtained. +Within the `math` function, return the value obtained from multiplying the second and third arguments and adding that result to the first argument. After that, inside the parentheses of `console.log()`, call the `math()` function with the number `53` as first argument, the number `61` as second and the number `67` as third argument. From 5fa52e26e3b9b8f370235c6b386a646cbdcc8018 Mon Sep 17 00:00:00 2001 From: Michael Grilo Date: Fri, 11 Sep 2015 15:10:32 -0400 Subject: [PATCH 133/346] Clarification Whether or not this line is needed depends on how much hand-holding we want this problem to have. --- problems/array-filtering/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/array-filtering/problem.md b/problems/array-filtering/problem.md index 18da0a87..7f9af480 100644 --- a/problems/array-filtering/problem.md +++ b/problems/array-filtering/problem.md @@ -40,7 +40,7 @@ function evenNumbers (number) { } ``` -Use `console.log()` to print the `filtered` array to the terminal. +Pay close attention to the syntax used throughout your solution. Use `console.log()` to print the `filtered` array to the terminal. Check to see if your program is correct by running this command: From 3fd8ec0090878815769a86afd2954c918ccc5685 Mon Sep 17 00:00:00 2001 From: Shim Won Date: Mon, 14 Sep 2015 06:36:06 +0900 Subject: [PATCH 134/346] Update Korean translation to 67a5212 --- problems/function-arguments/problem_ko.md | 2 +- problems/introduction/problem_ko.md | 5 ++++- problems/objects/problem_ko.md | 4 ++-- problems/rounding-numbers/problem_ko.md | 2 +- problems/scope/problem_ko.md | 5 +++++ 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/problems/function-arguments/problem_ko.md b/problems/function-arguments/problem_ko.md index 9303f81a..fd0db0f4 100644 --- a/problems/function-arguments/problem_ko.md +++ b/problems/function-arguments/problem_ko.md @@ -27,7 +27,7 @@ example('hello', 'world'); 이 파일에서는 3개의 인자를 받는 `math`라는 이름의 함수를 선언합니다. 인자 이름은 참조로만 사용한다는 것을 이해하는 것은 중요합니다. -각 인자는 좋아하는 이름을 지으세요. +인자들에는 편한 이름을 지으세요. `math` 함수는 두 번째와 세 번째 인자를 곱하고, 곱한 값에 첫 번째 인자를 더해 얻은 결과를 출력합니다. diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md index eb10a92e..b20ee907 100644 --- a/problems/introduction/problem_ko.md +++ b/problems/introduction/problem_ko.md @@ -25,8 +25,11 @@ console.log('hello'); `javascripting verify introduction.js` ---- +하지만 튜토리얼 내내 편한 이름을 사용하셔도 됩니다. 모든 연습 문제에 `catsAreAwesome.js` 같은 이름을 사용하시고 싶다면, 그럴 수 있습니다. 그냥 다음 명령어를 실행해 확인하세요. + +`javascripting verify catsAreAwesome.js` +--- > **도움이 필요하신가요?** 이 워크숍의 README를 확인하세요. http://github.com/sethvincent/javascripting diff --git a/problems/objects/problem_ko.md b/problems/objects/problem_ko.md index 0cf56b3e..0ebcb76d 100644 --- a/problems/objects/problem_ko.md +++ b/problems/objects/problem_ko.md @@ -10,7 +10,7 @@ var foodPreferences = { pizza: 'yum', salad: 'gross' -} +}; ``` ## 도전 과제 @@ -24,7 +24,7 @@ var pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 -} +}; ``` `console.log()`를 사용해 `pizza` 객체를 터미널에 출력합니다. diff --git a/problems/rounding-numbers/problem_ko.md b/problems/rounding-numbers/problem_ko.md index d37204c9..ac73587e 100644 --- a/problems/rounding-numbers/problem_ko.md +++ b/problems/rounding-numbers/problem_ko.md @@ -14,7 +14,7 @@ 이 파일 안에서 실수 `1.5`를 참조하는 `roundUp`라는 변수를 선언합니다. -`Math.round()` 메소드를 이용해 숫자를 반올림합니다. +`Math.round()` 메소드를 이용해 숫자를 반올림합니다. 이 메소드는 숫자를 가까운 정수로 올리거나 내립니다. `Math.round()`을 사용하는 예입니다. diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index 1e156594..53c1f78b 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -66,4 +66,9 @@ var a = 1, b = 2, c = 3; ```js console.log("a: "+a+", b: "+b+", c: "+c); ``` + +이 명령어를 실행해 프로그램이 올바른지 확인하세요. + +`javascripting verify scope.js` + --- From 0027459264afcc1885d0732a5d003ced0ddae820 Mon Sep 17 00:00:00 2001 From: Wellington Viana Date: Sun, 20 Sep 2015 23:49:30 -0300 Subject: [PATCH 135/346] =?UTF-8?q?Corrigindo=20um=20t=C3=ADtulo=20do=20de?= =?UTF-8?q?safio=206=20(numbers)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Estava escrito "Dasafio" --- problems/numbers/problem_pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/numbers/problem_pt-br.md b/problems/numbers/problem_pt-br.md index b64c68a5..e16d9ff2 100644 --- a/problems/numbers/problem_pt-br.md +++ b/problems/numbers/problem_pt-br.md @@ -5,7 +5,7 @@ O números podem ser inteiros como `2`, `14`, ou `4353`, ou podem ser decimais como `3.14`, `1.5`, ou `100.7893423`. -## Dasafio: +## Desafio: Crie um arquivo chamado `numbers.js`. From 4886871a0f4f2b257e2546d3521ce7e79b5cf055 Mon Sep 17 00:00:00 2001 From: Shim Won Date: Mon, 21 Sep 2015 12:01:23 +0900 Subject: [PATCH 136/346] Fix Korean grammar --- problems/introduction/problem_ko.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md index b20ee907..9c278f5a 100644 --- a/problems/introduction/problem_ko.md +++ b/problems/introduction/problem_ko.md @@ -3,17 +3,12 @@ 정돈을 위해 이 워크숍을 위한 폴더를 만듭시다. -이 명령어를 실행해 `javascripting`이라는 디렉터리(다른 이름이어도 됩니다)를 만드세요. +`mkdir javascripting` 명령어를 실행해 `javascripting`이라는 디렉터리(다른 이름이어도 됩니다)를 만드세요. -`mkdir javascripting` +`cd javascripting`로 `javascripting` 폴더 안으로 디렉터리를 변경하세요. -`javascripting` 폴더 안으로 디렉터리를 변경하세요. - -`cd javascripting` - -`introduction.js`이라는 파일을 만드세요. - -`touch introduction.js` 윈도우라면 `type NUL > introduction.js`(`type`도 명령어의 일부입니다!) +`touch introduction.js`를 입력해 `introduction.js`이라는 파일을 만드세요. +윈도우라면 `type NUL > introduction.js`(`type`도 명령어의 일부입니다!)로 만들 수 있습니다. 좋아하는 편집기에서 파일을 열고 다음 내용을 넣으세요. @@ -33,3 +28,4 @@ console.log('hello'); > **도움이 필요하신가요?** 이 워크숍의 README를 확인하세요. http://github.com/sethvincent/javascripting + From 8806ea05d49cda94d700c953b398e84296c55cf3 Mon Sep 17 00:00:00 2001 From: Shim Won Date: Mon, 21 Sep 2015 12:20:13 +0900 Subject: [PATCH 137/346] Explicitly quote string --- problems/introduction/problem_ko.md | 2 +- problems/revising-strings/problem.md | 2 +- problems/revising-strings/problem_es.md | 2 +- problems/revising-strings/problem_ja.md | 2 +- problems/revising-strings/problem_ko.md | 2 +- problems/revising-strings/problem_pt-br.md | 2 +- problems/revising-strings/problem_zh-cn.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md index 9c278f5a..914041d6 100644 --- a/problems/introduction/problem_ko.md +++ b/problems/introduction/problem_ko.md @@ -5,7 +5,7 @@ `mkdir javascripting` 명령어를 실행해 `javascripting`이라는 디렉터리(다른 이름이어도 됩니다)를 만드세요. -`cd javascripting`로 `javascripting` 폴더 안으로 디렉터리를 변경하세요. +`cd javascripting`을 통해 `javascripting` 폴더 안으로 디렉터리를 변경하세요. `touch introduction.js`를 입력해 `introduction.js`이라는 파일을 만드세요. 윈도우라면 `type NUL > introduction.js`(`type`도 명령어의 일부입니다!)로 만들 수 있습니다. diff --git a/problems/revising-strings/problem.md b/problems/revising-strings/problem.md index 726cf55a..e7a9ce3a 100644 --- a/problems/revising-strings/problem.md +++ b/problems/revising-strings/problem.md @@ -22,7 +22,7 @@ the right of the equals sign. Create a file named `revising-strings.js`. -Define a variable named `pizza` that references this string: `pizza is alright` +Define a variable named `pizza` that references this string: `'pizza is alright'` Use the `.replace()` method to change `alright` to `wonderful`. diff --git a/problems/revising-strings/problem_es.md b/problems/revising-strings/problem_es.md index 80bd4b1f..718aab05 100644 --- a/problems/revising-strings/problem_es.md +++ b/problems/revising-strings/problem_es.md @@ -22,7 +22,7 @@ del método `example.replace()` del lado derecho del signo. Crea un archivo llamado `revising-strings.js`. -Define una variable llamada `pizza` que referencie esta string: `pizza is alright` +Define una variable llamada `pizza` que referencie esta string: `'pizza is alright'` Utiliza el método `.replace()` para cambiar `alright` con `wonderful`. diff --git a/problems/revising-strings/problem_ja.md b/problems/revising-strings/problem_ja.md index b7263d72..1212a8cd 100644 --- a/problems/revising-strings/problem_ja.md +++ b/problems/revising-strings/problem_ja.md @@ -21,7 +21,7 @@ console.log(example); `revising-strings.js` ファイルを作りましょう。 -ファイルの中で、文字列は `pizza is alright` を表す、変数 `pizza` を定義します。 +ファイルの中で、文字列は `'pizza is alright'` を表す、変数 `pizza` を定義します。 `.replace()` メソッドを使って、 `alright` を `wonderful` に変更します。 diff --git a/problems/revising-strings/problem_ko.md b/problems/revising-strings/problem_ko.md index f75bc85e..d2a3e386 100644 --- a/problems/revising-strings/problem_ko.md +++ b/problems/revising-strings/problem_ko.md @@ -20,7 +20,7 @@ console.log(example); `revising-strings.js`라는 파일을 만드세요. -`pizza is alright` 문자열을 참조하는 `pizza`라는 변수를 정의합니다. +`'pizza is alright'` 문자열을 참조하는 `pizza`라는 변수를 정의합니다. `.replace()` 메소드를 사용해 `alright`을 `wonderful`로 바꿉니다. diff --git a/problems/revising-strings/problem_pt-br.md b/problems/revising-strings/problem_pt-br.md index d175a5a4..b43bc499 100644 --- a/problems/revising-strings/problem_pt-br.md +++ b/problems/revising-strings/problem_pt-br.md @@ -22,7 +22,7 @@ direito dele. Crie um arquivo chamado `revising-strings.js`. -Defina uma variável chamada `pizza` que referencia esta string: `pizza is alright` +Defina uma variável chamada `pizza` que referencia esta string: `'pizza is alright'` Use o método `.replace()` para modificar o `alright` para `wonderful`. diff --git a/problems/revising-strings/problem_zh-cn.md b/problems/revising-strings/problem_zh-cn.md index 1dfa21c0..b36cdd81 100644 --- a/problems/revising-strings/problem_zh-cn.md +++ b/problems/revising-strings/problem_zh-cn.md @@ -20,7 +20,7 @@ console.log(example); 创建一个名为 `revising-strings.js` 的文件。 -定义一个名为 `pizza` 的变量,并且让它引用字符串 `pizza is alright`。 +定义一个名为 `pizza` 的变量,并且让它引用字符串 `'pizza is alright'`。 使用 `.replace()` 方法将 `alright` 替换为 `wonderful`。 From 96db879e7162e6e9688a03de3a274150f1883bee Mon Sep 17 00:00:00 2001 From: Shim Won Date: Mon, 21 Sep 2015 12:30:12 +0900 Subject: [PATCH 138/346] Clearfy numbers --- problems/numbers/problem.md | 1 + problems/numbers/problem_ko.md | 1 + 2 files changed, 2 insertions(+) diff --git a/problems/numbers/problem.md b/problems/numbers/problem.md index d0e38ee4..ee369b50 100644 --- a/problems/numbers/problem.md +++ b/problems/numbers/problem.md @@ -4,6 +4,7 @@ Numbers can be integers, like `2`, `14`, or `4353`, or they can be decimals, also known as floats, like `3.14`, `1.5`, or `100.7893423`. +Unlike Strings, Numbers do not need to quotes. ## The challenge: diff --git a/problems/numbers/problem_ko.md b/problems/numbers/problem_ko.md index 9e7c067a..025f4c00 100644 --- a/problems/numbers/problem_ko.md +++ b/problems/numbers/problem_ko.md @@ -3,6 +3,7 @@ # 숫자 숫자는 `2`, `14`, `4353` 같은 정수이거나 십진수이거나 `3.14`, `1.5`, `100.7893423` 같은 실수일 수 있습니다. +문자열과 다르게 숫자는 따옴표로 감쌀 필요가 없습니다. ## 도전 과제 From 49d019256fa451b0236d0f4ecb66ae7a2db71718 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Mon, 21 Sep 2015 23:09:33 +0900 Subject: [PATCH 139/346] Add japanese translation for #123. --- problems/rounding-numbers/problem_ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/rounding-numbers/problem_ja.md b/problems/rounding-numbers/problem_ja.md index d8b22631..cc664f52 100644 --- a/problems/rounding-numbers/problem_ja.md +++ b/problems/rounding-numbers/problem_ja.md @@ -15,7 +15,7 @@ rounding-numbers.jsファイルを作りましょう。 ファイルの中で、小数 `1.5` を表す、変数 `roundUp` を定義しましょう。 -`Math.round()` メソッドを使って数値を切り上げましょう。 +`Math.round()` メソッドを使って数値を切り上げましょう。 このメソッドは引数の数値を四捨五入して、最も近いの整数を返します。 `Math.round()` メソッドの使用例です... From bfa7d9bb19e4e3c959af428d0dfc4b1eabaadfbb Mon Sep 17 00:00:00 2001 From: Phillip Johnsen Date: Thu, 4 Jun 2015 20:09:14 +0200 Subject: [PATCH 140/346] Norwegian translation. * introduction translation * norwegian translation of revising strings * translating strings, closes #36 * Minor translation fix for norwegian string-length * norwegian workshop core translation * translating strings, closes #36 * Norwegian scope translation. * Norwegian rounding numbers translation. * Norwegian objects translation. * Norwegian object properties translation. * Norwegian number translation. * Norwegian number-to-string translation. * Norwegian looping-through-arrays translation. * Norwegian translation of functions. * Norwegian function-return-values translation (empty). * Norwegian translation for object-keys (empty). * Norwegian translation of array-filtering. * Norwegian translation of arrays. * Norwegian translation of if-statements. * Norwegian translation of for-loop. * Norwegian translation of function-arguments. * Norwegian translation of accessing-array-values. --- i18n/nb-no.json | 23 ++++++ i18n/troubleshooting_nb-no.md | 28 +++++++ index.js | 2 +- .../accessing-array-values/problem_nb-no.md | 49 ++++++++++++ .../accessing-array-values/solution_nb-no.md | 11 +++ problems/array-filtering/problem_nb-no.md | 48 ++++++++++++ problems/array-filtering/solution_nb-no.md | 11 +++ problems/arrays/problem_nb-no.md | 23 ++++++ problems/arrays/solution_nb-no.md | 11 +++ problems/for-loop/problem_nb-no.md | 43 +++++++++++ problems/for-loop/solution_nb-no.md | 12 +++ problems/function-arguments/problem_nb-no.md | 39 ++++++++++ problems/function-arguments/solution_nb-no.md | 9 +++ .../function-return-values/problem_nb-no.md | 5 ++ .../function-return-values/solution_nb-no.md | 5 ++ problems/functions/problem_nb-no.md | 42 +++++++++++ problems/functions/solution_nb-no.md | 9 +++ problems/if-statement/problem_nb-no.md | 36 +++++++++ problems/if-statement/solution_nb-no.md | 11 +++ problems/introduction/problem_nb-no.md | 33 +++++++++ problems/introduction/solution_nb-no.md | 21 ++++++ .../looping-through-arrays/problem_nb-no.md | 49 ++++++++++++ .../looping-through-arrays/solution_nb-no.md | 11 +++ problems/number-to-string/problem_nb-no.md | 28 +++++++ problems/number-to-string/solution_nb-no.md | 11 +++ problems/numbers/problem_nb-no.md | 20 +++++ problems/numbers/solution_nb-no.md | 11 +++ problems/object-keys/problem_nb-no.md | 5 ++ problems/object-keys/solution_nb-no.md | 5 ++ problems/object-properties/problem_nb-no.md | 47 ++++++++++++ problems/object-properties/solution_nb-no.md | 11 +++ problems/objects/problem_nb-no.md | 37 ++++++++++ problems/objects/solution_nb-no.md | 11 +++ problems/revising-strings/problem_nb-no.md | 33 +++++++++ problems/revising-strings/solution_nb-no.md | 11 +++ problems/rounding-numbers/problem_nb-no.md | 34 +++++++++ problems/rounding-numbers/solution_nb-no.md | 11 +++ problems/scope/problem_nb-no.md | 74 +++++++++++++++++++ problems/scope/solution_nb-no.md | 9 +++ problems/string-length/problem_nb-no.md | 35 +++++++++ problems/string-length/solution_nb-no.md | 9 +++ problems/strings/problem_nb-no.md | 32 ++++++++ problems/strings/solution_nb-no.md | 11 +++ problems/variables/problem_nb-no.md | 39 ++++++++++ problems/variables/solution_nb-no.md | 11 +++ 45 files changed, 1025 insertions(+), 1 deletion(-) create mode 100644 i18n/nb-no.json create mode 100644 i18n/troubleshooting_nb-no.md create mode 100644 problems/accessing-array-values/problem_nb-no.md create mode 100644 problems/accessing-array-values/solution_nb-no.md create mode 100644 problems/array-filtering/problem_nb-no.md create mode 100644 problems/array-filtering/solution_nb-no.md create mode 100644 problems/arrays/problem_nb-no.md create mode 100644 problems/arrays/solution_nb-no.md create mode 100644 problems/for-loop/problem_nb-no.md create mode 100644 problems/for-loop/solution_nb-no.md create mode 100644 problems/function-arguments/problem_nb-no.md create mode 100644 problems/function-arguments/solution_nb-no.md create mode 100644 problems/function-return-values/problem_nb-no.md create mode 100644 problems/function-return-values/solution_nb-no.md create mode 100644 problems/functions/problem_nb-no.md create mode 100644 problems/functions/solution_nb-no.md create mode 100644 problems/if-statement/problem_nb-no.md create mode 100644 problems/if-statement/solution_nb-no.md create mode 100644 problems/introduction/problem_nb-no.md create mode 100644 problems/introduction/solution_nb-no.md create mode 100644 problems/looping-through-arrays/problem_nb-no.md create mode 100644 problems/looping-through-arrays/solution_nb-no.md create mode 100644 problems/number-to-string/problem_nb-no.md create mode 100644 problems/number-to-string/solution_nb-no.md create mode 100644 problems/numbers/problem_nb-no.md create mode 100644 problems/numbers/solution_nb-no.md create mode 100644 problems/object-keys/problem_nb-no.md create mode 100644 problems/object-keys/solution_nb-no.md create mode 100644 problems/object-properties/problem_nb-no.md create mode 100644 problems/object-properties/solution_nb-no.md create mode 100644 problems/objects/problem_nb-no.md create mode 100644 problems/objects/solution_nb-no.md create mode 100644 problems/revising-strings/problem_nb-no.md create mode 100644 problems/revising-strings/solution_nb-no.md create mode 100644 problems/rounding-numbers/problem_nb-no.md create mode 100644 problems/rounding-numbers/solution_nb-no.md create mode 100644 problems/scope/problem_nb-no.md create mode 100644 problems/scope/solution_nb-no.md create mode 100644 problems/string-length/problem_nb-no.md create mode 100644 problems/string-length/solution_nb-no.md create mode 100644 problems/strings/problem_nb-no.md create mode 100644 problems/strings/solution_nb-no.md create mode 100644 problems/variables/problem_nb-no.md create mode 100644 problems/variables/solution_nb-no.md diff --git a/i18n/nb-no.json b/i18n/nb-no.json new file mode 100644 index 00000000..97df3d1f --- /dev/null +++ b/i18n/nb-no.json @@ -0,0 +1,23 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUKSJON" + , "VARIABLES": "VARIABLER" + , "STRINGS": "STRINGER" + , "STRING LENGTH": "STRINGENS LENGDE" + , "REVISING STRINGS": "ENDRE STRINGER" + , "NUMBERS": "NUMMER" + , "ROUNDING NUMBERS": "AVRUNDE NUMMER" + , "NUMBER TO STRING": "NUMMER TIL STRING" + , "IF STATEMENT": "IF UTTRYKK" + , "FOR LOOP": "FOR LØKKEN" + , "ARRAYS": "ARRAYER" + , "ARRAY FILTERING": "FILTERING AV ARRAYER" + , "ACCESSING ARRAY VALUES": "BRUKE ARRAY VERDIER" + , "LOOPING THROUGH ARRAYS": "ITERERE GJENNOM ARRAYER" + , "OBJECTS": "OBJEKTER" + , "OBJECT PROPERTIES": "OBJEKTEGENSKAPER" + , "FUNCTIONS": "FUNKSJONER" + , "FUNCTION ARGUMENTS": "FUNKSJONSARGUMENTER" + , "SCOPE": "KONTEKST" + } +} diff --git a/i18n/troubleshooting_nb-no.md b/i18n/troubleshooting_nb-no.md new file mode 100644 index 00000000..954c42ab --- /dev/null +++ b/i18n/troubleshooting_nb-no.md @@ -0,0 +1,28 @@ +--- +# Huffda, her var det noe som ikke fungerte. +# Men ingen grunn til panikk! +--- + +## Kontroller din løsning: + +`Løsningen +===================` + +%solution% + +`Ditt forsøk +===================` + +%attempt% + +`Sammenligning +===================` + +%diff% + +## Tips til feilsøking: + * Er du sikker på at du skrev filnavnet riktig? Du kan dobbeltsjekket ved å kjøre ls `%filename%`, hvis du ser: cannot access `%filename%`: No such file or directory burde du lage filen med det navnet / gi filen nytt navn eller bytte til katalogen hvor filen er lagret + * Sjekk at du ikke ha glemt noen paranteser, det hindrer programmet å bli lest / kompileres + * Sjekk at du ikke har skrivefeil i stringen som ble skrevet ut + +> **Trenger du hjelp?** Spør et spørsmål på: github.com/nodeschool/discussions/issues diff --git a/index.js b/index.js index b96b2fb3..cac62678 100755 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ var adventure = require('workshopper-adventure/adventure'); var jsing = adventure({ name: 'javascripting' , appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no'] }); var problems = require('./menu.json'); diff --git a/problems/accessing-array-values/problem_nb-no.md b/problems/accessing-array-values/problem_nb-no.md new file mode 100644 index 00000000..d60ba5e7 --- /dev/null +++ b/problems/accessing-array-values/problem_nb-no.md @@ -0,0 +1,49 @@ +--- + +# BRUKE ARRAY VERDIER + +Verdiene i et array kan nås ved å bruke et indeksnummer. + +Indeksnummeret starter fra null opp til antallet verdier i arrayet, minus en. + +Her er et eksempel: + +```js + var dyr = ['katt', 'hund', 'rotte']; + + console.log(dyr[0]); +``` + +Koden over skriver ut den første verdien i `dyr` arrayet - strengen `katt`. + +Array verdier kan kun nås ved å bruke klammeparantes. + +Punktum notasjon er ikke gyldig. + +Gyldig: + +```js + console.log(dyr[0]); +``` + +Ugyldig: +``` + console.log(dyr.1); +``` + +## Oppgaven: + +Lag en fil som heter `accessing-array-values.js`. + +Definer et array `food` i den filen: +```js +var food = ['apple', 'pizza', 'pear']; +``` + +Bruk `console.log()` til å skrive ut den `andre` verdien av det arrayet til skjermen. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify accessing-array-values.js` + +--- diff --git a/problems/accessing-array-values/solution_nb-no.md b/problems/accessing-array-values/solution_nb-no.md new file mode 100644 index 00000000..ed796ba1 --- /dev/null +++ b/problems/accessing-array-values/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# DEN ANDRE VERDIEN AV ARRAYET SKREVET UT! + +Godt jobba med å bruke den verdien i arrayet. + +I den neste oppgaven skal vi jobbe med et eksempel på å bruke løkker på arrayer. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- \ No newline at end of file diff --git a/problems/array-filtering/problem_nb-no.md b/problems/array-filtering/problem_nb-no.md new file mode 100644 index 00000000..b086615f --- /dev/null +++ b/problems/array-filtering/problem_nb-no.md @@ -0,0 +1,48 @@ +--- + +# FILTERING AV ARRAYER + +Det finnes mange måter å manipulere arrayer på. + +Noe man ofte gjør er å filtrere et array til å kun inneholde noen ønskede verdier. + +For det kan vi bruke `.filter()` metoden. + +Her er et eksempel: + +```js +var dyr = ['katt', 'hund', 'elefant']; + +var filtrert = dyr.filter(function (ettDyr) { + return (ettDyr !== 'elefant'); +}); +``` +`filtrert` variablen vil nå kun inneholde `katt` og `hund`. + +## Oppgaven: + +Lag en fil som heter `array-filtering.js`. + +Definer en variabel med navnet `numbers` i den filen som referer dette arrayet: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +Som i eksemplet over, definer en variabel med navnet `filtered` som refererer resultatet av `numbers.filter()`. + +Funksjonen du gir til `.filter()` metoden skal se slik ut: + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +Bruk `console.log()` til å skrive ut `filtered` arrayet til skjermen. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify array-filtering.js` + +--- diff --git a/problems/array-filtering/solution_nb-no.md b/problems/array-filtering/solution_nb-no.md new file mode 100644 index 00000000..50524e4f --- /dev/null +++ b/problems/array-filtering/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# FILTRERT! + +Godt jobba med å filtrere det arrayet. + +I den neste oppgaven skal vi jobbe med å lese verdiene i et array. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/arrays/problem_nb-no.md b/problems/arrays/problem_nb-no.md new file mode 100644 index 00000000..63b4f0eb --- /dev/null +++ b/problems/arrays/problem_nb-no.md @@ -0,0 +1,23 @@ +--- + +# ARRAYER + +Et array er en liste av verdier. Her er et eksempel: + +```js +var dyr = ['katt', 'hund', 'rotte']; +``` + +### Oppgaven: + +Lag en fil som heter `arrays.js`. + +Definer en variabel med navnet `pizzaToppings` som refererer et array som inneholder tre strenger i følgende rekkefølge: `tomato sauce, cheese, pepperoni` + +Bruk `console.log()` til å skrive ut `pizzaToppings` arrayet til skjermen. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify arrays.js` + +--- diff --git a/problems/arrays/solution_nb-no.md b/problems/arrays/solution_nb-no.md new file mode 100644 index 00000000..0d054031 --- /dev/null +++ b/problems/arrays/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# YAY, ET PIZZA ARRAY! + +Du greide å lage et array! + +I den neste oppgaven skal vi utforske filtrering av arrayer. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/for-loop/problem_nb-no.md b/problems/for-loop/problem_nb-no.md new file mode 100644 index 00000000..9f57d993 --- /dev/null +++ b/problems/for-loop/problem_nb-no.md @@ -0,0 +1,43 @@ +--- + +# FOR LØKKER + +For løkker ser slik ut: + +```js +for (var i = 0; i < 10; i++) { + // skriv ut nummerne fra 0 til 9 + console.log(i) +} +``` + +Variablen `i` brukes til å vite hvor mange ganger en løkke har kjørt. + +Uttrykket `i < 10;` indikerer grensen til en løkke. +Den vil fortsette i løkke så lenge `i` er mindre enn `10`. + +Resultatet av `i++` øker verdien til variablen `i` med 1 etter hver runde. + +## Oppgaven: + +Lag en fil som heter `for-loop.js`. + +Definer en variabel med navnet `total` i den filen og sett verdien til nummeret `0`. + +Definer en andre variabel med navnet `limit` og sett dens verdi til nummer `10`. + +Lag en for løkke med en variabel `i` som starter på 0 og økes med 1 hver runde gjennom løkken. Løkken skal kjøre så lenge `i` er mindre enn `limit`. + +I hver runde av løkken, legg til nummeret i variablen `i` til verdien i `total` variablen. Det kan gjøres på følgende måte: + +```js +total += i; +``` + +Etter for løkken, bruk `console.log()` til å skrive ut verdien av `total` variablen til skjermen. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify for-loop.js` + +--- diff --git a/problems/for-loop/solution_nb-no.md b/problems/for-loop/solution_nb-no.md new file mode 100644 index 00000000..3d9b2a23 --- /dev/null +++ b/problems/for-loop/solution_nb-no.md @@ -0,0 +1,12 @@ +--- + +# TOTALEN ER 45 + +Det var en introduksjon til for løkker, som er veldig behjelpelig i mange situasjoner. +Spesielt i kombinasjon med andre data typer som strenger og arrayer. + +I den neste oppgaven skal vi starte og jobbe med **arrayer**. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/function-arguments/problem_nb-no.md b/problems/function-arguments/problem_nb-no.md new file mode 100644 index 00000000..16cf13aa --- /dev/null +++ b/problems/function-arguments/problem_nb-no.md @@ -0,0 +1,39 @@ +--- + +# FUNKSJONSARGUMENTER + +En funksjon kan deklareres til å ta imot så mange argumenter som nødvendig. Argumentene kan være av alle slags typer; en string, et nummer, et array, et objekt og tilogmed en annen funksjon. + +Her er et eksempel: + +```js +function eksempel (argNr1, argNr2) { + console.log(argNr1, argNr2); +} +``` + +Vi kan **kalle** den funksjonen med to argumenter på denne måten: + +```js +eksempel('hello', 'world'); +``` + +Eksemplet over vil skrive ut `hello world` til skjermen. + +## Oppgaven: + +Lag en fil som heter `function-arguments.js`. + +Definer en funksjon med navnet `math` i den filen, som tar imot tre argumenter. Det er viktig at du forstår at argumentenes navn kun brukes til å referere de. + +Gi argumentene hvilke navn som helst. + +Funksjonen `math` skal multiplisere det andre argumentet med det tredje, deretter legge til det første argumentet til resultatet av multiplikasjonen. + +Tilslutt, inni parantesene til `console.log`, kaller du `match` funksjonen med nummeret `53` som første argument, nummeret `61` som andre argument og tilslutt nummeret `67` som tredje argument. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify function-arguments.js` + +--- diff --git a/problems/function-arguments/solution_nb-no.md b/problems/function-arguments/solution_nb-no.md new file mode 100644 index 00000000..b22d1822 --- /dev/null +++ b/problems/function-arguments/solution_nb-no.md @@ -0,0 +1,9 @@ +--- + +# DU HAR KONTROLL PÅ ARGUMENTENE DINE! + +Bra jobba med å fullføre oppgaven. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/function-return-values/problem_nb-no.md b/problems/function-return-values/problem_nb-no.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_nb-no.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_nb-no.md b/problems/function-return-values/solution_nb-no.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_nb-no.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_nb-no.md b/problems/functions/problem_nb-no.md new file mode 100644 index 00000000..f213d047 --- /dev/null +++ b/problems/functions/problem_nb-no.md @@ -0,0 +1,42 @@ +--- + +# FUNKSJONER + +En funksjon er en samling kode som tar imot data, prosesserer den dataen og lager et resultat. + + +Her er et eksempel: + +```js +function eksempel (x) { + return x * 2; +} +``` + +Vi kan **kalle** denne funksjonen slik som dette for å få nummeret 10: + +```js +eksempel(5) +``` + +Eksemplet over antar at `eksempel` funksjonen tar et nummer som et argument og returner et tall som multipliseres med 2. + +## Oppgaven: + +Lag en fil som heter `functions.js`. + +Definer en funksjon med navnet `eat` i den filen som tar i mot argumentet med navn `food` som forventes å være en string. + +På innsiden av den funksjonen skal du returnere `food` argumentet slik som dette: + +```js +return food + ' tasted really good.'; +``` + +Inni parantesene til `console.log()`, kall `eat()` funksjonen med stringen `bananas` som argument. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify functions.js` + +--- diff --git a/problems/functions/solution_nb-no.md b/problems/functions/solution_nb-no.md new file mode 100644 index 00000000..f7e3f257 --- /dev/null +++ b/problems/functions/solution_nb-no.md @@ -0,0 +1,9 @@ +--- + +# ÅÅÅÅHÅÅI BANANAS + +Du greide det! Du lagde en funksjon som tar data, prosesserer dataen og lager et resultat. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/if-statement/problem_nb-no.md b/problems/if-statement/problem_nb-no.md new file mode 100644 index 00000000..40882744 --- /dev/null +++ b/problems/if-statement/problem_nb-no.md @@ -0,0 +1,36 @@ +--- + +# IF UTTRYKK + +En beslutning brukes for å endre kontrollflyten til et program, basert på en valgt betingelse. + +En beslutning ser slik ut: + +```js +if (n > 1) { + console.log('variablen n er større enn 1.'); +} else { + console.log('variablen n er mindre eller lik 1.'); +} +``` + +På innsiden av parantesene må du skrive et logisk uttrykk, det vil si et resultat av et uttrykk som enten er sant eller galt. + +else delen av en beslutning er valgfritt og inneholder den koden som vil kjøres dersom uttrykket er galt. + +## Oppgaven: + +Lag en fil som heter `if-statement.js`. + +Definer en variabel med navnet `fruit` i den filen. + +Lag `fruit` variablen slik at den referer verdien **orange** av typen **String**. + +Bruk deretter `console.log()` til å skrive ut "**The fruit name has more than five characters.**" om lengden av verdien til `fruit` er større enn 5. +Hvis ikke, skriv ut "**The fruit name has five characters or less.**" til skjermen. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify if-statement.js` + +--- diff --git a/problems/if-statement/solution_nb-no.md b/problems/if-statement/solution_nb-no.md new file mode 100644 index 00000000..5cc510d4 --- /dev/null +++ b/problems/if-statement/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# BESLUTNINGSMESTERN + +Det fikk du til! Stringen `orange` har mer enn 5 bokstaver. + +Gjør deg klar til prøve **for løkken** i neste oppgave! + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/introduction/problem_nb-no.md b/problems/introduction/problem_nb-no.md new file mode 100644 index 00000000..e35cc86c --- /dev/null +++ b/problems/introduction/problem_nb-no.md @@ -0,0 +1,33 @@ +--- +# INTRODUKSJON + +For å holde ting organisert kan vi lage en ny katalog for denne workshopen. + +Kjør denne kommandoen for å lage en katalog som heter `javascripting` (eller noe annet om du ønsker): + +`mkdir javascripting` + +Bytt til `javascripting` katalogen: + +`cd javascripting` + +Lag en fil som heter `introduction.js`: + +`touch introduction.js` eller hvis du bruker Windows, `type NUL > introduction.js` (`type` er en del av kommandoen!) + +Åpne filen i din favoritt editor og legg til følgende tekst: + +```js +console.log('hello'); +``` + +Lagre filen, deretter sjekker du om programmet er korrekt ved å kjøre følgende kommando: + +`javascripting verify introduction.js` + +--- + + + +> **Trenger du hjelp?** Se README-filen for denne workshopen: http://github.com/sethvincent/javascripting + diff --git a/problems/introduction/solution_nb-no.md b/problems/introduction/solution_nb-no.md new file mode 100644 index 00000000..9b42ac2b --- /dev/null +++ b/problems/introduction/solution_nb-no.md @@ -0,0 +1,21 @@ +--- + +# DU GREIDE DET! + +Alt mellom parantesene i `console.log()` skrives ut til skjermen. + +Det vil si: + +```js +console.log('hello'); +``` + +skriver ut `hello` til skjermen. + +For øyeblikket skriver vi ut en **string** av bokstaver til skjermen: `hello`. + +I den neste oppgaven skal vi lære om **variabler**. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/looping-through-arrays/problem_nb-no.md b/problems/looping-through-arrays/problem_nb-no.md new file mode 100644 index 00000000..0682dd85 --- /dev/null +++ b/problems/looping-through-arrays/problem_nb-no.md @@ -0,0 +1,49 @@ +--- + +# ITERERE GJENNOM ARRAYER + +I denne oppgaven skal vi bruke en **for løkke** til å lese og endre en liste av verdier i et array. + +Å lese verdier fra et array kan gjøres med et heltall. + +Hvert innslag i et array identifiseres med et nummer, fra og med `0`. + +Så i denne arrayet er `hei` identifisert ved nummeret `1`: + +```js +var hilsinger = ['hallo', 'hei', 'god morgen']; +``` + +Verdien kan nås slik som dette: + +```js +hilsinger[1]; +``` + +Så på innsiden av en **for løkke** ville vi brukt `i` varibelen inni hakeparantesen istedenfor å bruke et tall. + +## Oppgaven: + +Lag en fil som heter `looping-through-arrays.js`. + +Definer en variabel `pets` som refererer til denne arrayet: + +```js +['cat', 'dog', 'rat']; +``` + +Lag en for løkke som endrer hver eneste string i det arrayet til flertall. + +Du vil måtte bruke et uttrykk som dette på inni for løkken: + +```js +pets[i] = pets[i] + 's'; +``` + +Etter den for løkken, bruk `console.log()` for å skrive ut `pets` arrayet til skjermen. + +Se om programmet ditt er riktig ved å kjøre denne kommandoen: + +`javascripting verify looping-through-arrays.js` + +--- diff --git a/problems/looping-through-arrays/solution_nb-no.md b/problems/looping-through-arrays/solution_nb-no.md new file mode 100644 index 00000000..e4566851 --- /dev/null +++ b/problems/looping-through-arrays/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# FLOTT! MANGE KJÆLEDYR! + +Nå er alle innslagene i `pets` arrayet i flertall! + +I den neste oppgaven går vi fra arrayer til å jobbe med **objekter**. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/number-to-string/problem_nb-no.md b/problems/number-to-string/problem_nb-no.md new file mode 100644 index 00000000..83ca158c --- /dev/null +++ b/problems/number-to-string/problem_nb-no.md @@ -0,0 +1,28 @@ +--- + +# NUMMER TIL STRING + +Noen ganger må du gjøre om et nummer til en string. + +I de tilfelle må du bruke `.toString()` metoden. Eksempel: + +```js +var nummer = 256; +nummer = nummer.toString(); +``` + +## Oppgaven: + +Lag en fil som heter `number-to-string.js`. + +Definer en variabel med navnet `n` som referer nummeret `128` i den filen. + +Kall `.toString()` metoden på den `n` variabelen. + +Bruk `console.log()` for å skrive ut resultatet av `.toString()` metoden til skjermen. + +Se om programmet ditt er riktig ved å kjøre denne kommandoen: + +`javascripting verify number-to-string.js` + +--- diff --git a/problems/number-to-string/solution_nb-no.md b/problems/number-to-string/solution_nb-no.md new file mode 100644 index 00000000..bd78be15 --- /dev/null +++ b/problems/number-to-string/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# NUMMERET ER NÅ EN STRING! + +Fantastisk. Godt jobba med å konvertere et nummer til en string. + +I den neste oppgaven skal vi ta en titt på **if-setninger**. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/numbers/problem_nb-no.md b/problems/numbers/problem_nb-no.md new file mode 100644 index 00000000..e695c3dd --- /dev/null +++ b/problems/numbers/problem_nb-no.md @@ -0,0 +1,20 @@ +--- + +# NUMMER + +Nummer kan være heltall, som `2`, `14` eller `4353`, eller de kan være desimaltall +også kjent som flyttall slik som `3.14`, `1.5` eller `100.7893423`. + +## Oppgaven: + +Lag en fil som heter `numbers.js`. + +Definer en variabel `example` som referer heltallet `123456789` i den filen. + +Brukt `console.log()` for å skrive nummeret til skjermen. + +Se om programmet ditt er riktig ved å kjøre denne kommandoen: + +`javascripting verify numbers.js` + +--- diff --git a/problems/numbers/solution_nb-no.md b/problems/numbers/solution_nb-no.md new file mode 100644 index 00000000..32d3d8ed --- /dev/null +++ b/problems/numbers/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# SE DER JA! NUMMER! + +Kult, du fikk til å definere en variabel med nummeret `123456789`. + +I den neste oppgaven skal vi endre nummer. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/object-keys/problem_nb-no.md b/problems/object-keys/problem_nb-no.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_nb-no.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_nb-no.md b/problems/object-keys/solution_nb-no.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_nb-no.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-properties/problem_nb-no.md b/problems/object-properties/problem_nb-no.md new file mode 100644 index 00000000..dfcd5000 --- /dev/null +++ b/problems/object-properties/problem_nb-no.md @@ -0,0 +1,47 @@ +--- + +# OBJEKTEGENSKAPER + +Du kan bruke og endre objektegenskaper –– nøklene og verdiene et objekt inneholder –– svært likt som arrayer. + +Her er et eksempel som bruker **hakeparantes**: + +```js +var eksempel = { + pizza: 'yummy' +}; + +console.log(eksempel['pizza']); +``` + +Koden over skriver ut stringen `'yummy'` til skjermen. + +Alternativt kan du bruke **punktum notasjon** for samme resultat: + +```js +eksempel.pizza; + +eksempel['pizza']; +``` + +De to linjene over returnerer `yummy` begge to. + +## Oppgaven: + +Lag en fil som heter `object-properties.js`. + +Definer en variabel med navnet `food` i den filen: + +```js +var food = { + types: 'only pizza' +}; +``` + +Bruk `console.log()` til å skrive ut `types` egenskapen av `food` objektet til skjermen. + +Se om programmet ditt er riktig ved å kjøre denne kommandoen: + +`javascripting verify object-properties.js` + +--- diff --git a/problems/object-properties/solution_nb-no.md b/problems/object-properties/solution_nb-no.md new file mode 100644 index 00000000..f53c7b78 --- /dev/null +++ b/problems/object-properties/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# RIKTIG. PIZZA ER DEN ENESTE MATEN. + +Bra jobba med å bruke den egenskapen. + +Den neste oppgaven handler om **funksjoner**. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/objects/problem_nb-no.md b/problems/objects/problem_nb-no.md new file mode 100644 index 00000000..b52408ad --- /dev/null +++ b/problems/objects/problem_nb-no.md @@ -0,0 +1,37 @@ +--- + +# OBJEKTER + +Objekter er en samling verdier som arrayer, bortsett ifra at verdiene er identifisert med nøkler istedefor tall. + +Her er et eksempel: + +```js +var favorittMat = { + pizza: 'nam', + salat: 'fysjameg' +} +``` + +## Oppgaven: + +Lag en fil som heter `objects.js`. + +Definer en variabel `pizza` i den filen: + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} +``` + +Bruk `console.log()` for å skrive ut `pizza` objektet til skjermen. + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify objects.js` + + +--- diff --git a/problems/objects/solution_nb-no.md b/problems/objects/solution_nb-no.md new file mode 100644 index 00000000..41b7b9ac --- /dev/null +++ b/problems/objects/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# PIZZA OBJEKTET ER I ORDEN. + +Du greide å lage et objekt! + +I den neste oppgaven vil vi fokusere på å bruke objektets egenskaper. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/revising-strings/problem_nb-no.md b/problems/revising-strings/problem_nb-no.md new file mode 100644 index 00000000..58453a9c --- /dev/null +++ b/problems/revising-strings/problem_nb-no.md @@ -0,0 +1,33 @@ +--- + +# EN RUNDE TIL MED STRINGS + +Du trenger ofte å endre innholdet av en string. + +Stringer har innebygd funksjonalitet som lar de manipulere og se på innholdet. + +Her er et eksempel som bruker `.replace()` metoden: + +```js +var example = 'dette eksemplet er kjedelig'; +example = example.replace('kjedelig', 'kult'); +console.log(example); +``` + +Merk deg at for å endre verdien variabelen `example` refererer til så bruker vi likhetstegnet. Denne gangen med `example.replace()` metoden på høyre siden av likhetstegnet. + +## Oppgaven: + +Lag en fil med navnet `revising-strings.js`. + +Deklarer en variabel, `pizza`, som refererer til strengen: `pizza is alright` + +Benytt `.replace()` metoden for å endre `alright` til `wonderful`. + +Bruk `console.log()` for å skrive ut resultatet av `.replace()` metoden til skjermen. + +Kontroller programmet ditt for å se om det er riktig ved å kjøre denne kommandoen: + +`javascripting verify revising-strings.js` + +--- diff --git a/problems/revising-strings/solution_nb-no.md b/problems/revising-strings/solution_nb-no.md new file mode 100644 index 00000000..3211ea68 --- /dev/null +++ b/problems/revising-strings/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# JA, PIZZA _ER_ HERLIG! + +Bra jobbet med å bruke `.replace()` metoden! + +I neste oppgave skal vi utforske **tall**. + +Kjør `javascripting` for å velge neste oppgave + +--- diff --git a/problems/rounding-numbers/problem_nb-no.md b/problems/rounding-numbers/problem_nb-no.md new file mode 100644 index 00000000..742d7390 --- /dev/null +++ b/problems/rounding-numbers/problem_nb-no.md @@ -0,0 +1,34 @@ +--- + +# AVRUNDE NUMMER + +Vi kan gjøre enkle regnestykker med operatører som `+`, `-`, `*`, `/`, og `%`. + +For mer avanserte regnestykker, kan vi bruke `Math` objektet. + +I denne oppgaven skal vi bruke `Math` objektet for å avrunde nummer. + +## Oppgaven: + +Lag en fil som heter `rounding-numbers.js`. + +Definer en variabel med navnet `roundUp` i den filen som referer flyttallet `1.5`. + +Vi vil bruke `Math.round()` metoden for å runde opp til nærmeste heltall. + +Et eksempel på bruk av `Math.round()`: + +```js +Math.round(0.5); +``` + +Definer en andre variabel med navnet `rounded` som referer resultat av `Math.round()` methoden, +gitt `roundUp` variabelen som argument. + +Bruk `console.log()` for å skrive det nummeret til skjermen. + +Se om programmet ditt er riktig ved å kjøre denne: + +`javascripting verify rounding-numbers.js` + +--- diff --git a/problems/rounding-numbers/solution_nb-no.md b/problems/rounding-numbers/solution_nb-no.md new file mode 100644 index 00000000..55d64be6 --- /dev/null +++ b/problems/rounding-numbers/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# NUMMERET ER AVRUNDET + +Jepp, du avrundet nummeret `1.5` til `2`. Bra jobba! + +I den neste oppgaven vil vi gjøre om et nummer til en string. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/scope/problem_nb-no.md b/problems/scope/problem_nb-no.md new file mode 100644 index 00000000..7bcbfc8d --- /dev/null +++ b/problems/scope/problem_nb-no.md @@ -0,0 +1,74 @@ +--- + +# SCOPE + +`Scope` er de variablene, objektene og funksjonene du har tilgang til. + +JavaScript har to scope: `global` og `lokal`. En variabel som er deklarert utenfor en funksjon er en `global` variabel. Dens verdi er tilgjengelig og kan endres gjennom hele programmet ditt. En variabel som er deklarert inni en funksjon er `lokal`. Den lages og fjernes hver gang funksjonen kjøres og variabelen kan ikke nås av kode som er utenfor funksjonen. + +Funksjoner som er definert inni andre funksjoner, kjent som nøstede funksjoner, har tilgang til scopet til den ytre funksjonen den er deklarert i. + +Følg nøye med på kommentarene i koden under: + +```js +var a = 4; // a er en global variabel, den kan nås av funksjonene under + +function foo() { + var b = a * 3; // b kan ikke nås utenfor foo funksjonen, men kan nås av funksjoner + // definert inni foo + + function bar(c) { + var b = 2; // enda en `b` variabel blir lagd i bar funksjonens scope + // endringer på den nye `b` variabelen endrer ikke den ytre `b` variabelen + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +IIFE, Immediately Invoked Function Expression, er et pattern for å lage lokale scope +eksempel: +```js + (function(){ // funksjonsuttrykket omgis av paranteser + // variabler defineres her + // kan ikke nås utenfor denne funksjonen + })(); // funksjonen kjøres med engang +``` +## Oppgaven: + +Lag en fil som heter `scope.js`. + +Kopier inn følgende kode i den filen: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Bruk din kunnskap om variablenes `scope` og sett inn følgende kode i en av funksjonene som finnes i 'scope.js' slik at det skrives ut `a: 1, b: 8, c: 6` på skjermen: +```js +console.log("a: "+a+", b: "+b+", c: "+c); +``` + +Se om programmet ditt er riktig ved å kjøre kommandoen: + +`javascripting verify scope.js` + +--- diff --git a/problems/scope/solution_nb-no.md b/problems/scope/solution_nb-no.md new file mode 100644 index 00000000..903400cd --- /dev/null +++ b/problems/scope/solution_nb-no.md @@ -0,0 +1,9 @@ +--- + +# UTMERKET! + +Du skjønte det! Den andre funksjonen har det scopet vi lette etter. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/string-length/problem_nb-no.md b/problems/string-length/problem_nb-no.md new file mode 100644 index 00000000..6567397c --- /dev/null +++ b/problems/string-length/problem_nb-no.md @@ -0,0 +1,35 @@ +--- + +# LENGDEN AV EN STRENG + +Du har ofte behov for å vite hvor mange tegn det er i en streng. + +For å finne ut det kan du bruke `.length` egenskapen. Slik som dette: + +```js +var example = 'eksempel streng'; +example.length +``` + +#OBS + +Pass på at du har et punktum mellom `example` og `length`. + +Koden ovenfor vil returnere et **tall** som er totalt antall tegn for i denne strengen. + + +## Oppgaven: + +Lag en fil som heter `string-length.js`. + +I filen skal du lage en variabel med navn `example`. + +**Tildel strengen `'example string'` til variabelen `example`.** + +Til å skrive ut lengden på strengen til skjermen kan du bruke `console.log`. + +**Se om programmet ditt er riktig ved å kjøre denne:** + +`javascripting verify string-length.js` + +--- diff --git a/problems/string-length/solution_nb-no.md b/problems/string-length/solution_nb-no.md new file mode 100644 index 00000000..075fe53c --- /dev/null +++ b/problems/string-length/solution_nb-no.md @@ -0,0 +1,9 @@ +--- + +# RIKTIG: 14 TEGN + +Jippi, du fikk det til! Strengen `example string` har 14 tegn. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md new file mode 100644 index 00000000..bceb1fda --- /dev/null +++ b/problems/strings/problem_nb-no.md @@ -0,0 +1,32 @@ +--- + +# STRINGS + +En **string** er en verdi omgitt av anførselsteng eller apostrof: + +```js +'dette er en string' + +"dette er også en string" +``` +#OBS + +Det lønner seg å være konsekvent på om du bruker anførselstegn eller apostrof. I denne oppgaven skal vi bare bruke apostrof. + +## Utfordringen: + +I denne oppgaven, lage en fil med navnet `strings.js`. + +Lage en variabel `someString`, slik som dette: + +```js +var someString = 'this is a string'; +``` + +For å skrive variabelen **someString** til skjermen kan du bruke `console.log`. + +Se om programmet ditt er riktig ved å kjøre denne kommandoen: + +`javascripting verify strings.js` + +--- diff --git a/problems/strings/solution_nb-no.md b/problems/strings/solution_nb-no.md new file mode 100644 index 00000000..74e01cda --- /dev/null +++ b/problems/strings/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# BESTÅTT! + +Du begynner å få taket på dette med strings! + +I den neste oppgaven skal vi se på å manipulere på stringer. + +Kjør `javascripting` i terminalen for å velge neste oppgave. + +--- diff --git a/problems/variables/problem_nb-no.md b/problems/variables/problem_nb-no.md new file mode 100644 index 00000000..cf83f0bf --- /dev/null +++ b/problems/variables/problem_nb-no.md @@ -0,0 +1,39 @@ +--- + +# VARIABLER + +En variabel er et navn som kan peke til en spesifikk verdi. Variables deklareres ved å bruke `var` etterfulgt av variablens navn. + +Her er et eksempel: + +```js +var example; +``` + +Variabelen over er **deklarert**, men den er ikke definert (den peker ikke til en spesifikk verdi ennå). + +Her er et eksempel som definerer en variabel, ved å peke til en spesifikk verdi: + +```js +var example = 'some string'; +``` + +# OBS + +En variabel blir **deklarert** ved bruk av `var` og erlikhetstegn til å **definere** verdien den peker til. Dette kalles som oftes å "sette verdien til en variabel". + +## Oppgaven: + +Lag en fil som heter `variables.js`. + +I den filen skal det deklareres en variabel med navnet `example`. + +**Sett verdien `'some string'` inn i variabelen `example`.** + +For å skrive ut verdien til `example` til skjermen bruk `console.log()`. + +Se om programmet ditt er riktig ved å kjøre denne kommandoen: + +`javascripting verify variables.js` + +--- diff --git a/problems/variables/solution_nb-no.md b/problems/variables/solution_nb-no.md new file mode 100644 index 00000000..e95b90f8 --- /dev/null +++ b/problems/variables/solution_nb-no.md @@ -0,0 +1,11 @@ +--- + +# DU LAGDE EN VARIABEL! + +Bra jobbet. + +I den neste oppgaven skal vi se mer på stringer. + +Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. + +--- From dc090835c1228df049a1940d89c484ef7943dc3e Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Sun, 11 Oct 2015 22:37:59 +0300 Subject: [PATCH 141/346] Start of Ukrainian translating. --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index cac62678..1bb0e00d 100755 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ var adventure = require('workshopper-adventure/adventure'); var jsing = adventure({ name: 'javascripting' , appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no', 'uk'] }); var problems = require('./menu.json'); From 6dd0c0668d79251672022df7b7d2286b1493870e Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Sun, 11 Oct 2015 22:48:58 +0300 Subject: [PATCH 142/346] Add i18n/uk.json. --- i18n/uk.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 i18n/uk.json diff --git a/i18n/uk.json b/i18n/uk.json new file mode 100644 index 00000000..40d480ff --- /dev/null +++ b/i18n/uk.json @@ -0,0 +1,23 @@ +{ + "exercise": { + "INTRODUCTION": "ВСТУП" + , "VARIABLES": "ЗМІННІ" + , "STRINGS": "РЯДКИ" + , "STRING LENGTH": "ДОВЖИНА РЯДКА" + , "REVISING STRINGS": "МОДИФІКАЦІЯ РЯДКІВ" + , "NUMBERS": "ЧИСЛА" + , "ROUNDING NUMBERS": "ОКРУГЛЕННЯ ЧИСЕС" + , "NUMBER TO STRING": "ЧИСЛА В РЯДКИ" + , "IF STATEMENT": "УМОВНИЙ ОПЕРАТОР" + , "FOR LOOP": "ЦИКЛ FOR" + , "ARRAYS": "МАСИВИ" + , "ARRAY FILTERING": "ФІЛЬТРАЦІЯ МАСИВІВ" + , "ACCESSING ARRAY VALUES": "ДОСТУП ДО ЗНАЧЕНЬ МАСИВІВ" + , "LOOPING THROUGH ARRAYS": "ПРОХІД ПО МАСИВАХ" + , "OBJECTS": "ОБ'ЄКТИ" + , "OBJECT PROPERTIES": "ВЛАСТИВОСТІ ОБ'ЄКТІВ" + , "FUNCTIONS": "ФУНКЦІЇ" + , "FUNCTION ARGUMENTS": "АРГУМЕНТИ ФУНКЦІЙ" + , "SCOPE": "ОБЛАСТЬ ВИДИМОСТІ" + } +} From 6f7bc2610ec203d1eafe9aaccb189e8581ca30cd Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Sun, 11 Oct 2015 23:02:20 +0300 Subject: [PATCH 143/346] Add i18n/troubleshooting_uk.md. --- i18n/troubleshooting_uk.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 i18n/troubleshooting_uk.md diff --git a/i18n/troubleshooting_uk.md b/i18n/troubleshooting_uk.md new file mode 100644 index 00000000..6285f345 --- /dev/null +++ b/i18n/troubleshooting_uk.md @@ -0,0 +1,28 @@ +--- +# О-ох, щось не працює. +# Тільки без паніки! +--- + +## Перевірте ваш розв’язок: + +'Розв’язок +===================' + +%solution% + +'Ваша спроба +===================' + +%attempt% + +'Відмінність +===================' + +%diff% + +## Вирішення проблем: +* Чи ввели ви ім’я файлу коректно? Ви можете перевірити це запустивши ls '%filename%', якщо ви отримаєте ls: cannot access '%filename%': No such file or directory тоді вам слід створити новий файл, перейменувати чинну директорію або змінити поточну директорію на ту, яка містить потрібний файл +* Переконайтесь, що ви не забули про дужки () — через це можуть виникнути проблеми з компілятором +* Переконайтесь, що ви не допустили жодних помилок у введених рядках + +> **Потрібна допомога?** Запитайте на: github.com/nodeschool/discussions/issues From 8304aaf3dfd06bf2fa2da5309a4a8138ba98d5ff Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Sun, 11 Oct 2015 23:18:19 +0300 Subject: [PATCH 144/346] ACCESSING ARRAY VALUES has been translated. --- problems/accessing-array-values/problem_uk.md | 49 +++++++++++++++++++ .../accessing-array-values/solution_uk.md | 11 +++++ 2 files changed, 60 insertions(+) create mode 100644 problems/accessing-array-values/problem_uk.md create mode 100644 problems/accessing-array-values/solution_uk.md diff --git a/problems/accessing-array-values/problem_uk.md b/problems/accessing-array-values/problem_uk.md new file mode 100644 index 00000000..d6347ba2 --- /dev/null +++ b/problems/accessing-array-values/problem_uk.md @@ -0,0 +1,49 @@ +--- + +# ДОСТУП ДО ЗНАЧЕНЬ МАСИВІВ + +Доступ до елементів масиву можна отримати з допомогою індексу. + +Індексом може бути число від 0 до розміру масиву, зменшеного на одиницю (n-1). + +Приклад: + +'''js +var pets = ['cat', 'dog', 'rat']; + +console.log(pets[0]); +''' + +Код вище виведе перший елемент масиву 'pets' - рядок 'cat'. + +Доступ до елементів масиву можна отримати лише з допомогою квадратних дужок []. + +Доступ з допомогою крапки є неправильний. + +Правильний запис: + +'''js +console.log(pets[0]); +''' + +Неправильний запис: +''' +console.log(pets.1); +''' + +## Завдання: + +Створити файл 'accessing-array-values.js'. + +У цьому файлі створити масив 'food' : +'''js +var food = ['apple', 'pizza', 'pear']; +''' + +Використайте 'console.log()', щоб надрукувати 'другий' елемент масиву в терміналі. + +Перевірте вашу відповідь запустивши команду: + +'javascripting verify accessing-array-values.js' + +--- diff --git a/problems/accessing-array-values/solution_uk.md b/problems/accessing-array-values/solution_uk.md new file mode 100644 index 00000000..34a0203b --- /dev/null +++ b/problems/accessing-array-values/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# ДРУГИЙ ЕЛЕМЕНТ МАСИВУ ВИВЕДЕНО! + +Гарна робота! + +В наступному завданні ми розглянемо приклад проходження по елементах масиву. + +Запустіть `javascripting` в консолі, щоб обрати наступне завдання. + +--- From b7469d376ea63ae551656cb4f6eb7a1b65585af6 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Sun, 11 Oct 2015 23:30:30 +0300 Subject: [PATCH 145/346] ARRAY FILTERING has been translated. --- problems/array-filtering/problem_uk.md | 49 +++++++++++++++++++++++++ problems/array-filtering/solution_uk.md | 11 ++++++ 2 files changed, 60 insertions(+) create mode 100644 problems/array-filtering/problem_uk.md create mode 100644 problems/array-filtering/solution_uk.md diff --git a/problems/array-filtering/problem_uk.md b/problems/array-filtering/problem_uk.md new file mode 100644 index 00000000..892be999 --- /dev/null +++ b/problems/array-filtering/problem_uk.md @@ -0,0 +1,49 @@ +--- + +# ФІЛЬТРАЦІЯ МАСИВІВ + +Є багато способів маніпуляції масивами. + +Часто постає потреба відфільтрувати масиви за певною умовою. + +Для цього ми можемо використати метод '.filter()'. + +Приклад: + +'''js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { +return (pet !== 'elephant'); +}); +''' + +Змінна 'filtered' буде містили лише елементи 'cat' та 'dog'. + +## Завдання: + +Створити файл 'array-filtering.js'. + +У цьому файлі, створіть змінну 'numbers', що міститиме такий масив: + +'''js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +''' + +Як у прикладі вище, оголосіть змінну 'filtered', що міститиме результат виконання 'numbers.filter()'. + +Функція, яку ви маєте передати у метод '.filter()' буде виглядати приблизно так: + +'''js +function evenNumbers (number) { +return number % 2 === 0; +} +''' + +Скористайтесь 'console.log()', щоб вивести масив 'filtered' в термінал. + +Перевірте вашу відповідь запустивши команду: + +'javascripting verify array-filtering.js' + +--- diff --git a/problems/array-filtering/solution_uk.md b/problems/array-filtering/solution_uk.md new file mode 100644 index 00000000..2461c0d8 --- /dev/null +++ b/problems/array-filtering/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# Відфільтровано! + +Добре зроблено! + +В наступному завданні ми розглянемо як отримати доступ до елементів масиву. + +Запустіть `javascripting` в консолі, щоб обрати наступне завдання. + +--- From 94f8ba1add6a271866649ab9770551f212c9d605 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Sun, 11 Oct 2015 23:36:35 +0300 Subject: [PATCH 146/346] ARRAYS has been translated. --- problems/arrays/problem_uk.md | 23 +++++++++++++++++++++++ problems/arrays/solution_uk.md | 11 +++++++++++ 2 files changed, 34 insertions(+) create mode 100644 problems/arrays/problem_uk.md create mode 100644 problems/arrays/solution_uk.md diff --git a/problems/arrays/problem_uk.md b/problems/arrays/problem_uk.md new file mode 100644 index 00000000..8164eb82 --- /dev/null +++ b/problems/arrays/problem_uk.md @@ -0,0 +1,23 @@ +--- + +# МАСИВИ + +Масивами називають значень. Наприклад: + +'''js +var pets = ['cat', 'dog', 'rat']; +''' + +### Завдання: + +Створіть файл 'arrays.js'. + +У цьому файлі оголосіть змінну 'pizzaToppings', що міститиме масив, який має складатись із трьох елементів в такому порядку: 'tomato sauce, cheese, pepperoni'. + +Скористайтесь 'console.log()', щоб вивести масив 'pizzaToppings' в терміналі. + +Перевірте вашу відповідь запустивши команду: + +'javascripting verify arrays.js' + +--- diff --git a/problems/arrays/solution_uk.md b/problems/arrays/solution_uk.md new file mode 100644 index 00000000..9110f6d5 --- /dev/null +++ b/problems/arrays/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# УРА, ПІЦА! + +Ви успішно створили масив! + +В наступному завданні ми дослідимо фільтрацію масивів. + +Запустіть `javascripting` в консолі, щоб обрати наступне завдання. + +--- From 087cd1bb6273329f4819fd04a02fbbbd39a1cbf3 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Mon, 12 Oct 2015 00:18:35 +0300 Subject: [PATCH 147/346] FOR LOOP has been translated. --- problems/for-loop/problem_uk.md | 43 ++++++++++++++++++++++++++++++++ problems/for-loop/solution_uk.md | 11 ++++++++ 2 files changed, 54 insertions(+) create mode 100644 problems/for-loop/problem_uk.md create mode 100644 problems/for-loop/solution_uk.md diff --git a/problems/for-loop/problem_uk.md b/problems/for-loop/problem_uk.md new file mode 100644 index 00000000..787a87ad --- /dev/null +++ b/problems/for-loop/problem_uk.md @@ -0,0 +1,43 @@ +--- + +# ЦИКЛ FOR + +Цикл for виглядає ось так: + +```js +for (var i = 0; i < 10; i++) { + // log the numbers 0 through 9 + console.log(i) +} +``` + +Змінну `i` використовують для того, щоб бачити скільки разів цикл спрацював. + +Вираз `i < 10;` позначає межу циклу. +Він продовжуватиме виконуватись, до тих пір, поки `i` буде менше за `10`. + +Вираз `i++` збільшує змінну `i` на 1 після кожного виконання циклу. + +## Завдання: + +Створити файл `for-loop.js`. + +У цьому файлі визначити змінну `total` та присвоїти їй значення `0`. + +Визначити іншу змінну з назвою `limit` та встановити їй значення `10`. + +Написати цикл for зі змінною `i`, що стартуватиме зі значення 0 та збільшуватиметься на 1 при кожній ітерації циклу. Цикл має виконуватись допоки значення `i` буде менший за `limit`. + +На кожній ітерації циклу додавайте `i` до змінної `total`. Щоб зробити це, скористайтесь виразом: + +```js +total += i; +``` + +Після циклу for, скористайтесь `console.log()`, щоб вивести значення `total` в термінал. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify for-loop.js` + +--- diff --git a/problems/for-loop/solution_uk.md b/problems/for-loop/solution_uk.md new file mode 100644 index 00000000..a71b321f --- /dev/null +++ b/problems/for-loop/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# TOTAL = 45 + +Це простий вступ до циклу for, який стає в ряді випадків, особливо поєднанні з іншими типами даних, як от рядки чи масиви. + +В наступному завданні ми почнемо працювати з **масивами**. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From e27756fdba4e7cab764835c6c56937f16b7f5c97 Mon Sep 17 00:00:00 2001 From: Tom Willmot Date: Mon, 12 Oct 2015 18:09:14 +0100 Subject: [PATCH 148/346] Schrodinger's sentence structure The sentence "you can name give the file you work with any name you like" is trying to both be > you can give the file you work with any name you like And > you can name the file you work with anything you like While both are valid in theory, in-reality we do need to actually pick one. I went with the former. --- problems/introduction/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/introduction/problem.md b/problems/introduction/problem.md index c8789b9a..0c9296ab 100644 --- a/problems/introduction/problem.md +++ b/problems/introduction/problem.md @@ -25,7 +25,7 @@ Save the file, then check to see if your program is correct by running this comm `javascripting verify introduction.js` -By the way, throughout this tutorial, you can name give the file you work with any name you like, so if you want to use something like `catsAreAwesome.js` file for every exercise, you can do that. Just make sure to run: +By the way, throughout this tutorial, you can give the file you work with any name you like, so if you want to use something like `catsAreAwesome.js` file for every exercise, you can do that. Just make sure to run: `javascripting verify catsAreAwesome.js` From 7c24d101e447297b0ac8f851527f7f8ee649328d Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Mon, 12 Oct 2015 21:39:39 +0300 Subject: [PATCH 149/346] FUNCTION ARGUMENTS has been translated. --- problems/function-arguments/problem_uk.md | 40 ++++++++++++++++++++++ problems/function-arguments/solution_uk.md | 9 +++++ 2 files changed, 49 insertions(+) create mode 100644 problems/function-arguments/problem_uk.md create mode 100644 problems/function-arguments/solution_uk.md diff --git a/problems/function-arguments/problem_uk.md b/problems/function-arguments/problem_uk.md new file mode 100644 index 00000000..e52b8009 --- /dev/null +++ b/problems/function-arguments/problem_uk.md @@ -0,0 +1,40 @@ +--- + +# АРГУМЕНТИ ФУНКЦІЙ + +Функція може отримувати будь-яке число аргументів. Аргументами можуть бути будь-якого типу. Аргументом може бути рядок, число, масив, об’єкт або навіть інша функція. + +Приклад: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +Ми можемо **викликати** цю функцію з двома аргументами таким чином: + +```js +example('hello', 'world'); +``` + +Приклад вище виведе в термінал `hello world`. + +## Завдання: + +Створити файл `function-arguments.js`. + +В цьому файлі оголосити функцію під назвою `math`, яка прийматиме три аргументи. Важливо розуміти, що назви аргументів використовуються лише для звертання до їх значення. + +Назвіть аргументи за власним бажанням. + +В середині функції `math`, поверніть значення, отримане шляхом множення другого та третього аргументів і додаванням результату до першого аргументу. + +Після цього, всередині круглих дужок в `console.log()`, викличіть функцію `math()` з числом `53` в якості першого аргументу, числом `61` в якості другого аргументу та числом `67` в якості третього аргументу. + + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify function-arguments.js` + +--- diff --git a/problems/function-arguments/solution_uk.md b/problems/function-arguments/solution_uk.md new file mode 100644 index 00000000..90bc7bc0 --- /dev/null +++ b/problems/function-arguments/solution_uk.md @@ -0,0 +1,9 @@ +--- + +# ВИ КОНТРОЛЮЄТЕ ВАШІ АРГУМЕНТИ! + +Відмінна робота. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 4236e9bc4c5fb692c7b3ce42089ea263ff337a43 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Mon, 12 Oct 2015 21:46:49 +0300 Subject: [PATCH 150/346] FUNCTION RETURN VALUES has been created. --- problems/function-return-values/problem_uk.md | 5 +++++ problems/function-return-values/solution_uk.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 problems/function-return-values/problem_uk.md create mode 100644 problems/function-return-values/solution_uk.md diff --git a/problems/function-return-values/problem_uk.md b/problems/function-return-values/problem_uk.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_uk.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_uk.md b/problems/function-return-values/solution_uk.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_uk.md @@ -0,0 +1,5 @@ +--- + +# + +--- From 46ce83c03be68982e9a497b2589522dc2b6024ca Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 13:10:21 +0300 Subject: [PATCH 151/346] FUNCTIONS has been translated. --- problems/functions/problem_uk.md | 41 +++++++++++++++++++++++++++++++ problems/functions/solution_uk.md | 9 +++++++ 2 files changed, 50 insertions(+) create mode 100644 problems/functions/problem_uk.md create mode 100644 problems/functions/solution_uk.md diff --git a/problems/functions/problem_uk.md b/problems/functions/problem_uk.md new file mode 100644 index 00000000..dd148d4d --- /dev/null +++ b/problems/functions/problem_uk.md @@ -0,0 +1,41 @@ +--- + +# ФУНКЦІЇ + +Функція — це блок коду, що приймає деякі аргументи, оперує цими аргументами та повертає результат. + +Приклад: + +```js +function example (x) { + return x * 2; +} +``` + +Ми можемо **викликати** цю функцію таким чином, щоб отримати число 10: + +```js +example(5) +``` + +Приклад вище ілюструє, що функція `example` буде приймати число в якості аргументу — як вхід — та буде повертати це число помножене на 2. + +## Завдання: + +Створити файл `functions.js`. + +У цьому файлі оголосити функцію `eat`, що приймає аргумент під назвою `food`, який має бути рядком. + +Всередині функції повернуть аргумент `food` ось так: + +```js +return food + ' tasted really good.'; +``` + +Всередині круглих дужок в `console.log()`, викличіть функцію `eat()` з рядком `bananas` в якості аргументу. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify functions.js` + +--- diff --git a/problems/functions/solution_uk.md b/problems/functions/solution_uk.md new file mode 100644 index 00000000..55677e9f --- /dev/null +++ b/problems/functions/solution_uk.md @@ -0,0 +1,9 @@ +--- + +# ВАУУУ БАНАНИ! + +Ви зробили це! Ви створили функцію, що приймає данні, обробляє їх та повертає результат. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From e1052364022a506d8aceacac89690b1f4a0d5a30 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 13:22:40 +0300 Subject: [PATCH 152/346] IF STATEMENT has been translated. --- i18n/uk.json | 2 +- problems/if-statement/problem_uk.md | 36 ++++++++++++++++++++++++++++ problems/if-statement/solution_uk.md | 11 +++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 problems/if-statement/problem_uk.md create mode 100644 problems/if-statement/solution_uk.md diff --git a/i18n/uk.json b/i18n/uk.json index 40d480ff..435b4e3c 100644 --- a/i18n/uk.json +++ b/i18n/uk.json @@ -8,7 +8,7 @@ , "NUMBERS": "ЧИСЛА" , "ROUNDING NUMBERS": "ОКРУГЛЕННЯ ЧИСЕС" , "NUMBER TO STRING": "ЧИСЛА В РЯДКИ" - , "IF STATEMENT": "УМОВНИЙ ОПЕРАТОР" + , "IF STATEMENT": "ОПЕРАТОР IF" , "FOR LOOP": "ЦИКЛ FOR" , "ARRAYS": "МАСИВИ" , "ARRAY FILTERING": "ФІЛЬТРАЦІЯ МАСИВІВ" diff --git a/problems/if-statement/problem_uk.md b/problems/if-statement/problem_uk.md new file mode 100644 index 00000000..2bdc61e9 --- /dev/null +++ b/problems/if-statement/problem_uk.md @@ -0,0 +1,36 @@ +--- + +# ОПЕРАТОР IF + +Умовні оператори викоритовують для контролю ходу виконання програми, в залежності від спеціальних булевих виразів (умов). + +Умовні оператори виглядають якось так: + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +Всередині круглих дужок має бути логічний вираз (умова). Це означає, що результат виразу має бути істиним (true) або хибним (false). + +Блок else є опціональним і містить код, що буде виконаний, якщо логічний вираз (умова) буде хибною (false). + +## Завдання: + +Створити файл `if-statement.js`. + +У цьому файлі оголосити змінну `fruit`. + +Зробити змінну `fruit` рівною значенню **orange** з типом **String (Рядок)**. + +Тоді використайте `console.log()`, щоб вивести "**The fruit name has more than five characters."**, якщо довжина значення `fruit` є більшою за 5. +В іншому випадку, виведіть "**The fruit name has five characters or less.**" + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify if-statement.js` + +--- diff --git a/problems/if-statement/solution_uk.md b/problems/if-statement/solution_uk.md new file mode 100644 index 00000000..620ca482 --- /dev/null +++ b/problems/if-statement/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# МАЙСТЕР УМОВНИХ ОПЕРАТОРІВ + +Вам вдалось! Рядок `orange` місти більш ніж 5 символів. + +Пригодуйтесь до **циклу for**! + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 15ab64c870b9d937a4076428570f2da2c5aaf15a Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 16:58:08 +0300 Subject: [PATCH 153/346] INTRODUCTION has been translated. --- problems/introduction/problem_uk.md | 35 ++++++++++++++++++++++++++++ problems/introduction/solution_uk.md | 21 +++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 problems/introduction/problem_uk.md create mode 100644 problems/introduction/solution_uk.md diff --git a/problems/introduction/problem_uk.md b/problems/introduction/problem_uk.md new file mode 100644 index 00000000..5319e5b7 --- /dev/null +++ b/problems/introduction/problem_uk.md @@ -0,0 +1,35 @@ +--- +# ВСТУП + +Давайте створемо окрему директорію для цього воркшопу, щоб зберігати чистоту в наших файлах. + +Запустіть цю команду, щоб створити директорію, яка називатиметься `javascripting` (або будь-як інакше): + +`mkdir javascripting` + +Перейдіть в директорію `javascripting` командою: + +`cd javascripting` + +Створіть файл `introduction.js`: + +`touch introduction.js` або якщо ви на Windows, `type NUL > introduction.js` (`type` це частина команди!) + +Відкрийте файл у вашому улюбленому текстовому редакторі та додайте цей текст: + +```js +console.log('hello'); +``` +Збережіть файл, а потім перевірте вашу програму запустивши команду: + +`javascripting verify introduction.js` + +До речі, на процязі цього курсу ви можете можете називати файли так, як вам подобається. Якщо ви хочете назвати файл ім’ям `catsAreAwesome.js` для кожної вправи, то зробіть це. Лише не забудьте потім перевірити його: + +`javascripting verify catsAreAwesome.js` + +--- + + + +> **Потрібна допомога?** Перегляньте README цього воркшопу: http://github.com/sethvincent/javascripting diff --git a/problems/introduction/solution_uk.md b/problems/introduction/solution_uk.md new file mode 100644 index 00000000..16c293ac --- /dev/null +++ b/problems/introduction/solution_uk.md @@ -0,0 +1,21 @@ +--- + +# Ви зробили це! + +Будь-що між круглими дужками `console.log()` буде виведено до терміналу. + +Тому це: + +```js +console.log('hello'); +``` + +виведе `hello` до терміналу. + +Зараз ми виводимо **рядок (string)** символів (characters) до терміналу: `hello`. + +В наступному завданні ми сфокусуємось на вивченні **змінних**. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From a056bc625fe45ecc8ae4ca3cfcdf57a0f0e6aeda Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 17:37:32 +0300 Subject: [PATCH 154/346] LOOPING THROUGH ARRAYS has been translated. --- problems/looping-through-arrays/problem_uk.md | 49 +++++++++++++++++++ .../looping-through-arrays/solution_uk.md | 11 +++++ 2 files changed, 60 insertions(+) create mode 100644 problems/looping-through-arrays/problem_uk.md create mode 100644 problems/looping-through-arrays/solution_uk.md diff --git a/problems/looping-through-arrays/problem_uk.md b/problems/looping-through-arrays/problem_uk.md new file mode 100644 index 00000000..59e08d1b --- /dev/null +++ b/problems/looping-through-arrays/problem_uk.md @@ -0,0 +1,49 @@ +--- + +# ПРОХІД ПО МАСИВАХ + +Для цього завдання ми використаємо **цикл for** для доступу та маніпуляції списку значень в масиві. + +Доступ до значень масиву можна здійснити з допомогою цілих чисел. + +Кожен елемент в масиві ідентифікується з допомогою числа, починаючи з '0'. + +Тому в цьому масиві 'hi' ідентифікується числом '1': + +'''js +var greetings = ['hello', 'hi', 'good morning']; +''' + +Доступ до нього можна отримати так: + +'''js +greetings[1]; +''' + +Всередині **циклу for** ми можемо використати змінну 'i' всередині квадратних дужок, замість звичайного цілого числа. + +## Завдання: + +Створити файл 'looping-through-arrays.js'. + +У цьому файлі задати змінну під назвою 'pets', що вказуватиме на масив: + +'''js +['cat', 'dog', 'rat']; +''' + +Створити цикл for loop, що змінює кожен рядок масиву так, щоб слова в однині стали словами в множині (в англійській мові множина утворюється додаванням закінчення '-s' ). + +Ви можете використати такий вираз всередині циклу for: + +'''js +pets[i] = pets[i] + 's'; +''' + +Після циклу, використайте 'console.log()', щоб вивести масив 'pets' до термінала. + +Перевірте вашу відповідь запустивши команду: + +'javascripting verify looping-through-arrays.js' + +--- diff --git a/problems/looping-through-arrays/solution_uk.md b/problems/looping-through-arrays/solution_uk.md new file mode 100644 index 00000000..fc78d514 --- /dev/null +++ b/problems/looping-through-arrays/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# УСПІХ! БАГАТО ТВАРИНОК! + +Тепер всі елементи в масиві `pets` у множині! + +В наступному завданні ми перейдемо від масивів до роботи з **об’єктами**. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 588da4c369ba84288a7c50fd76aaf057ec660558 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 17:59:22 +0300 Subject: [PATCH 155/346] NUMBER TO STRING has been translated. --- problems/number-to-string/problem_uk.md | 28 ++++++++++++++++++++++++ problems/number-to-string/solution_uk.md | 11 ++++++++++ 2 files changed, 39 insertions(+) create mode 100644 problems/number-to-string/problem_uk.md create mode 100644 problems/number-to-string/solution_uk.md diff --git a/problems/number-to-string/problem_uk.md b/problems/number-to-string/problem_uk.md new file mode 100644 index 00000000..a7eb9c23 --- /dev/null +++ b/problems/number-to-string/problem_uk.md @@ -0,0 +1,28 @@ +--- + +# ЧИСЛА В РЯДКИ + +Часом нам потрібно перетворити числа в рядки. + +В таких випадках ви можете використати метод `.toString()`. Ось приклад: + +```js +var n = 256; +n = n.toString(); +``` + +## Завдання: + +Створіть файл `number-to-string.js`. + +У цьому файлі оголосіть змінну під назвою `n`, що буде містити число `128`; + +Викличіть метод `.toString()` змінної `n`. + +Використайте `console.log()` для виведення результату роботи методу `.toString()` до терміналу. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify number-to-string.js` + +--- diff --git a/problems/number-to-string/solution_uk.md b/problems/number-to-string/solution_uk.md new file mode 100644 index 00000000..d98de65b --- /dev/null +++ b/problems/number-to-string/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# ЦЕ ЧИСЛО СТАЛО РЯДКОМ! + +Відмінно. Ви добре впорались з перетворенням числа в рядок. + +В наступному завданні ми подивимось на **оператор if**. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 4dbe8bcd253eca541fc881494aa61666258ecf16 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 18:14:43 +0300 Subject: [PATCH 156/346] NUMBERS has been translated. --- problems/numbers/problem_uk.md | 20 ++++++++++++++++++++ problems/numbers/solution_uk.md | 11 +++++++++++ 2 files changed, 31 insertions(+) create mode 100644 problems/numbers/problem_uk.md create mode 100644 problems/numbers/solution_uk.md diff --git a/problems/numbers/problem_uk.md b/problems/numbers/problem_uk.md new file mode 100644 index 00000000..6d549372 --- /dev/null +++ b/problems/numbers/problem_uk.md @@ -0,0 +1,20 @@ +--- + +# ЧИСЛА + +Числа (Numbers) можуть бути цілими, як от `2`, `14`, або `4353`. Також вони можуть бути дійсними, також відомі як «числа з плаваючою крапкою», як от `3.14`, `1.5`, або `100.7893423`. +На відміну від рядків (Strings), числа (Numbers) не потрібно огортати лапками. + +## Завдання: + +Створити файл `numbers.js`. + +У цьому файлі задати змінну під назвою `example`, що буде містити ціле число `123456789`. + +Використайте `console.log()`, щоб вивести це число до терміналу. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify numbers.js` + +--- diff --git a/problems/numbers/solution_uk.md b/problems/numbers/solution_uk.md new file mode 100644 index 00000000..aedf8a51 --- /dev/null +++ b/problems/numbers/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# ТАААК! ЧИСЛА! + +Круто, ви успішно оголомили змінну з числом `123456789`. + +В наступному завданні ми подивимось як оперувати числами.s. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From ffe290f8c92db6d42492eafcb04ef5f045e90295 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 18:16:11 +0300 Subject: [PATCH 157/346] OBJECT KEYS has been created. --- problems/object-keys/problem_uk.md | 5 +++++ problems/object-keys/solution_uk.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 problems/object-keys/problem_uk.md create mode 100644 problems/object-keys/solution_uk.md diff --git a/problems/object-keys/problem_uk.md b/problems/object-keys/problem_uk.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_uk.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_uk.md b/problems/object-keys/solution_uk.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_uk.md @@ -0,0 +1,5 @@ +--- + +# + +--- From e672367f75bcd78470ecfa5cb6b8bdf2ef6aa215 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 20:33:30 +0300 Subject: [PATCH 158/346] OBJECT PROPERTIES has been translated. --- problems/object-properties/problem_uk.md | 47 +++++++++++++++++++++++ problems/object-properties/solution_uk.md | 11 ++++++ 2 files changed, 58 insertions(+) create mode 100644 problems/object-properties/problem_uk.md create mode 100644 problems/object-properties/solution_uk.md diff --git a/problems/object-properties/problem_uk.md b/problems/object-properties/problem_uk.md new file mode 100644 index 00000000..bd33faf0 --- /dev/null +++ b/problems/object-properties/problem_uk.md @@ -0,0 +1,47 @@ +--- + +# ВЛАСТИВОСТІ ОБ'ЄКТІВ + +Ви можете отримувати значення та маніпулювати властивостями об’єктів –– ключами та значеннями, які містить об’єкт –– схожим методом, як і у масивів. + +Це приклад з **квадратними дужками**: + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +Код вище виведе рядок `'yummy'` до терміналу. + +Окрім того, ви можете використати **крапковий запис (dot notation)**, щоб отримати ідентичний результат: + +```js +example.pizza; + +example['pizza']; +``` + +Обидва рядки коду повернуть `yummy`. + +## Завдання: + +Створити файл `object-properties.js`. + +У цьому файлі оголосити змінну під назвою `food` ось так: + +```js +var food = { + types: 'only pizza' +}; +``` + +Використайте `console.log()`, щоб вивести властивість `types` об’єкту `food` до терміналу. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify object-properties.js` + +--- diff --git a/problems/object-properties/solution_uk.md b/problems/object-properties/solution_uk.md new file mode 100644 index 00000000..08cc2ca0 --- /dev/null +++ b/problems/object-properties/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# ВІРНО. ТІЛЬКИ ПІЦА Є ЇЖЕЮ. + +Гарна робота з доступом до властивостей. + +Наступне завдання буде виключно про **функції**. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From b2197e8fad6015233f44167a03f9f5f106961634 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 23:03:56 +0300 Subject: [PATCH 159/346] OBJECTS has been translated. --- problems/objects/problem_uk.md | 36 +++++++++++++++++++++++++++++++++ problems/objects/solution_uk.md | 11 ++++++++++ 2 files changed, 47 insertions(+) create mode 100644 problems/objects/problem_uk.md create mode 100644 problems/objects/solution_uk.md diff --git a/problems/objects/problem_uk.md b/problems/objects/problem_uk.md new file mode 100644 index 00000000..a432e2b9 --- /dev/null +++ b/problems/objects/problem_uk.md @@ -0,0 +1,36 @@ +--- + +# ОБ'ЄКТИ + +Об’єкти (Objects) — це списки значень, схожі на масиви, за винятком того, що значення ідентифікуються з допомогою ключових слів (keys) замість цілих чисел. + +Приклад: + +'''js +var foodPreferences = { +pizza: 'yum', +salad: 'gross' +}; +''' + +## Завдання: + +Створити файл 'objects.js'. + +У цьому файлі, оголосіть змінну 'pizza' ось так: + +'''js +var pizza = { +toppings: ['cheese', 'sauce', 'pepperoni'], +crust: 'deep dish', +serves: 2 +}; +''' + +Використайте 'console.log()', щоб вивести об’єкт 'pizza' до терміналу. + +Перевірте вашу відповідь запустивши команду: + +'javascripting verify objects.js' + +--- diff --git a/problems/objects/solution_uk.md b/problems/objects/solution_uk.md new file mode 100644 index 00000000..2faf3224 --- /dev/null +++ b/problems/objects/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# PIZZA-ОБ'ЄКТ ВЖЕ ТУТ. + +Ви успішно створили об’єкт! + +В наступному завданні ми сфокусуємось на отриманні властивостей об’єкту. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 210b0752b534c3ee2f89116845a292d552ff0797 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 23:21:28 +0300 Subject: [PATCH 160/346] REVISING STRINGS has been translated. --- problems/revising-strings/problem_uk.md | 33 ++++++++++++++++++++++++ problems/revising-strings/solution_uk.md | 11 ++++++++ 2 files changed, 44 insertions(+) create mode 100644 problems/revising-strings/problem_uk.md create mode 100644 problems/revising-strings/solution_uk.md diff --git a/problems/revising-strings/problem_uk.md b/problems/revising-strings/problem_uk.md new file mode 100644 index 00000000..97d77f78 --- /dev/null +++ b/problems/revising-strings/problem_uk.md @@ -0,0 +1,33 @@ +--- + +# МОДИФІКАЦІЯ РЯДКІВ + +Часто необхідно буде змінювати вміст рядка. + +Рядки мають вбудований функціонал, що дозволяє вам переглядати та маніпулювати їх вмістом. + +Ось приклад використання методу `.replace()`: + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +Зверніть увагу, що для зміни значення змінної `example` ми повинні використати оператор присвоєння знову, цього разу з методом `example.replace()` праворуч від операторa присвоєння. + +## Завдання: + +Створити файл `revising-strings.js`. + +Оголосити змінну `pizza`, що вказуватиме на рядок: `'pizza is alright'` + +Використайте метод `.replace()`, щоб змінити `alright` на `wonderful`. + +Скористайтесь `console.log()`, щоб вивести результат роботи методу `.replace()` до терміналу. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify revising-strings.js` + +--- diff --git a/problems/revising-strings/solution_uk.md b/problems/revising-strings/solution_uk.md new file mode 100644 index 00000000..d813f27f --- /dev/null +++ b/problems/revising-strings/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# ТАК, ПІЦА _ЧУДОВА_. + +Прекрасно впорались з методом `.replace()`! + +Далі ми дослідимо **числа**. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 64e489e6003f25b43f1fdae4580b03c2ce189d38 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Tue, 13 Oct 2015 23:56:43 +0300 Subject: [PATCH 161/346] ROUNDING NUMBERS has been translated. --- i18n/uk.json | 2 +- problems/rounding-numbers/problem_uk.md | 33 ++++++++++++++++++++++++ problems/rounding-numbers/solution_uk.md | 11 ++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 problems/rounding-numbers/problem_uk.md create mode 100644 problems/rounding-numbers/solution_uk.md diff --git a/i18n/uk.json b/i18n/uk.json index 435b4e3c..598e0915 100644 --- a/i18n/uk.json +++ b/i18n/uk.json @@ -6,7 +6,7 @@ , "STRING LENGTH": "ДОВЖИНА РЯДКА" , "REVISING STRINGS": "МОДИФІКАЦІЯ РЯДКІВ" , "NUMBERS": "ЧИСЛА" - , "ROUNDING NUMBERS": "ОКРУГЛЕННЯ ЧИСЕС" + , "ROUNDING NUMBERS": "ОКРУГЛЕННЯ ЧИСЕЛ" , "NUMBER TO STRING": "ЧИСЛА В РЯДКИ" , "IF STATEMENT": "ОПЕРАТОР IF" , "FOR LOOP": "ЦИКЛ FOR" diff --git a/problems/rounding-numbers/problem_uk.md b/problems/rounding-numbers/problem_uk.md new file mode 100644 index 00000000..6b7ae839 --- /dev/null +++ b/problems/rounding-numbers/problem_uk.md @@ -0,0 +1,33 @@ +--- + +# ОКРУГЛЕННЯ ЧИСЕЛ + +Ми можемо виконувати прості математичні дії використовуючи звичайні оператори, як от `+`, `-`, `*`, `/`, та `%`. + +Для більш складних операцій ми можемо використовувати об’єкт `Math`. + +У цьому завданні ми використаємо об’єкт `Math` для округлення чисел. + +## Завдання: + +Створити файл `rounding-numbers.js`. + +У цьому файлі оголосити змінну `roundUp`, що міститиме дійсне число `1.5`. + +Для скруглення числа ми використаємо метод `Math.round()`. Цей метод округлює до найближчого до найближчого більшого, або меншого цілого числа. + +Приклад використання `Math.round()`: + +```js +Math.round(0.5); +``` + +Оголосіть ще одну змінну `rounded`, що посилатиметься на результат методу `Math.round()`, який прийматиме змінну `roundUp` в якості аргументу. + +Використайте `console.log()`, щоб вивести число до терміналу. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify rounding-numbers.js` + +--- diff --git a/problems/rounding-numbers/solution_uk.md b/problems/rounding-numbers/solution_uk.md new file mode 100644 index 00000000..b9756de5 --- /dev/null +++ b/problems/rounding-numbers/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# ЦІ ЧИСЛА СКРУГЛЕНІ + +Ага, ви просто округлили `1.5` до `2`. Круто. + +В наступному завданні ми перетворимо число в рядок. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 97632ce52565ddd475228fc6a968898902082bbd Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Wed, 14 Oct 2015 00:46:26 +0300 Subject: [PATCH 162/346] SCOPE has been translated. --- problems/scope/problem_uk.md | 73 +++++++++++++++++++++++++++++++++++ problems/scope/solution_uk.md | 9 +++++ 2 files changed, 82 insertions(+) create mode 100644 problems/scope/problem_uk.md create mode 100644 problems/scope/solution_uk.md diff --git a/problems/scope/problem_uk.md b/problems/scope/problem_uk.md new file mode 100644 index 00000000..afd8ee47 --- /dev/null +++ b/problems/scope/problem_uk.md @@ -0,0 +1,73 @@ +--- + +# ОБЛАСТЬ ВИДИМОСТІ + +`Область видимості (Scope)` — це множина змінних, об’єктів та функцій до яких ви маєте доступ. + +JavaScript має дві області видимості: `глобальну` та `локальну`. Змінні, що оголошені поза визначенням функції є `глобальною` змінною, тож її значення буде доступне для читання та модифікації у всій вашій програмі. Змінну, яка оголошена всередині визначення функції, називають `локальною`. Вона створюється та знищується кожного разу коли функція виконується і її значення не можна отримати поза цієї функції. + +Функції, які визначені всередині інших функцій, також відомі як вкладені (nested) функції, мають доступ до області видимості їх батьківських функцій. + +Зверніть увагу на коментарі у цьому прикладі: + +```js +var a = 4; // a є глобальною змінною, її значення можна отримати з функцій нижче + +function foo() { + var b = a * 3; // b не можу бути доступною поза функцією foo, але доступна у + // функціях, оголошених всередині foo + function bar(c) { + var b = 2; // інша змінна `b` створена всередині функції bar зміна значення + // цієї змінної `b` не вплине на попередню змінну `b` + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +Функції миттєвого (негайного) виклику, або «самовикликаючі» функцій (IIFE, Immediately Invoked Function Expression) є загальною практикою для створення локальних областей видимості +Приклад: +```js + (function(){ // вираз функції оточений круглими дужками + // змінні оголошені тут + // не будуть доступними ззовні + })(); // функція відразу ж викликається +``` +## Завдання: + +Створити файл `scope.js`. + +До цього файлу скопіювати такий код: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Використайте ваші знання про `область видимості` змінних та помістіть код нижче в таку функцію зі 'scope.js', щоб результат був рядок `a: 1, b: 8,c: 6`: +```js +console.log("a: "+a+", b: "+b+", c: "+c); +``` + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify scope.js` + +--- diff --git a/problems/scope/solution_uk.md b/problems/scope/solution_uk.md new file mode 100644 index 00000000..8597bbf8 --- /dev/null +++ b/problems/scope/solution_uk.md @@ -0,0 +1,9 @@ +--- + +# ЧУДОВО! + +Ви зробили це! Друга функція має саме таку область видимості, яку ми шукали. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 9c3b172697af73514fc3698405d8a3fdf8a9fc6c Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Wed, 14 Oct 2015 23:24:06 +0300 Subject: [PATCH 163/346] STRING LENGTH has been translated. --- problems/string-length/problem_uk.md | 35 +++++++++++++++++++++++++++ problems/string-length/solution_uk.md | 9 +++++++ 2 files changed, 44 insertions(+) create mode 100644 problems/string-length/problem_uk.md create mode 100644 problems/string-length/solution_uk.md diff --git a/problems/string-length/problem_uk.md b/problems/string-length/problem_uk.md new file mode 100644 index 00000000..1eebeeaf --- /dev/null +++ b/problems/string-length/problem_uk.md @@ -0,0 +1,35 @@ +--- + +# ДОВЖИНА РЯДКА + +Часто вам мотрібно буде дізнатись довжину рядка. + +Для цього ви можете використати властивість `.length`. Ось приклад: + +```js +var example = 'example string'; +example.length +``` + +# ЗАУВАЖЕННЯ + +Впевніться, що між `example` та `length` стоїть крапка. + +Код вище поверне **число (Number)**, яке становитиме кількість символів у рядку. + + +## Завдання: + +Створити файл `string-length.js`. + +У цьому файлі створити змінну `example`. + +**Присвоїти рядок `'example string'` змінній `example`.** + +Використайте `console.log`, щоб вивести **довжину** цього рядка до терміналу. + +**Перевірте вашу відповідь запустивши команду:** + +`javascripting verify string-length.js` + +--- diff --git a/problems/string-length/solution_uk.md b/problems/string-length/solution_uk.md new file mode 100644 index 00000000..163adef5 --- /dev/null +++ b/problems/string-length/solution_uk.md @@ -0,0 +1,9 @@ +--- + +# ЦЕ ПЕРЕМОГА: 14 СИМВОЛІВ + +Вам вдалось! Рядок `example string` містить 14 символів. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From e8f465fad6fa822da5ffb310aa1d050066419491 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Wed, 14 Oct 2015 23:34:58 +0300 Subject: [PATCH 164/346] STRINGS has been translated. --- problems/strings/problem_uk.md | 34 +++++++++++++++++++++++++++++++++ problems/strings/solution_uk.md | 11 +++++++++++ 2 files changed, 45 insertions(+) create mode 100644 problems/strings/problem_uk.md create mode 100644 problems/strings/solution_uk.md diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md new file mode 100644 index 00000000..e95bfb5e --- /dev/null +++ b/problems/strings/problem_uk.md @@ -0,0 +1,34 @@ +--- + +# РЯДКИ + +**Рядком (String)** є будь-яке значення огорнуте в лапки. + +Це можуть бути або одинарні, або подвійні дужки: + +```js +'this is a string' + +"this is also a string" +``` +# ЗАУВАЖЕННЯ + +Спробуйте залишаться послідовними. У цьому воркшопі ми будемо використовувати лише одинарні лапки. + +## Завдання: + +Для цього завдання створіть файл `strings.js`. + +У цьому файлі створіть змінну `someString` ось так: + +```js +var someString = 'this is a string'; +``` + +Використайте `console.log`, щоб вивести змінну **someString** до терміналу. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify strings.js` + +--- diff --git a/problems/strings/solution_uk.md b/problems/strings/solution_uk.md new file mode 100644 index 00000000..8c11ecd5 --- /dev/null +++ b/problems/strings/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# УСПІХ. + +Ви починаєте використовувати рядки! + +У наступному завданні ми розглянемо як маніпулювати рядками. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From e60297acb9cdf339b72929e3528b5ca1ee03d667 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Wed, 14 Oct 2015 23:35:47 +0300 Subject: [PATCH 165/346] THIS has been created. --- problems/this/problem_uk.md | 5 +++++ problems/this/solution_uk.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 problems/this/problem_uk.md create mode 100644 problems/this/solution_uk.md diff --git a/problems/this/problem_uk.md b/problems/this/problem_uk.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_uk.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_uk.md b/problems/this/solution_uk.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_uk.md @@ -0,0 +1,5 @@ +--- + +# + +--- From a5e30359f75b1e5e54b1e39d95151cc6a8052622 Mon Sep 17 00:00:00 2001 From: Denys Dovhan Date: Fri, 16 Oct 2015 16:23:35 +0300 Subject: [PATCH 166/346] VARIABLES has been translated. --- problems/variables/problem_uk.md | 38 +++++++++++++++++++++++++++++++ problems/variables/solution_uk.md | 11 +++++++++ 2 files changed, 49 insertions(+) create mode 100644 problems/variables/problem_uk.md create mode 100644 problems/variables/solution_uk.md diff --git a/problems/variables/problem_uk.md b/problems/variables/problem_uk.md new file mode 100644 index 00000000..bc250f29 --- /dev/null +++ b/problems/variables/problem_uk.md @@ -0,0 +1,38 @@ +--- + +# ЗМІННІ + +Змінною називають ім’я, яке посилається на певне значення. Змінні оголошуються з допомогою ключового слова `var`, за яким слідує ім’я змінної. + +Приклад оголошення змінної: + +```js +var example; +``` + +У прикладі вище, змінна **оголошена (declared)**, проте не була визначеною (defined) (тобто вона поки не посилається на конкретне значення). + +Ось приклад визначення змінних, посилання на певне значення: + +```js +var example = 'some string'; +``` + +# ЗАУВАЖЕННЯ + +Змінна **оголошена** з допомогою `var` та якій **присвоєно** посилання на значення з допомогою оператора присвоєння, буде посилатись на це значення. Також це називають «Присвоєнням змінній значення». + +## Завдання: + +Створити файл `variables.js`. + +У цьому файлі оголосити змінну `example`. + +**Присвойте змінній `example` значення `'some string'`.** + +Використайте `console.log()`, щоб вивести змінну `example` до консолі. + +Перевірте вашу відповідь запустивши команду: + +`javascripting verify variables.js` +--- diff --git a/problems/variables/solution_uk.md b/problems/variables/solution_uk.md new file mode 100644 index 00000000..e2b00a93 --- /dev/null +++ b/problems/variables/solution_uk.md @@ -0,0 +1,11 @@ +--- + +# ВИ СТВОРИЛИ ЗМІННУ! + +Добре впорались. + +У наступному завданні ми ближче познайомимось з рядками. + +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. + +--- From 232852a84d30006765fea8e302a734d31c4f15d3 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Wed, 21 Oct 2015 23:10:59 +0900 Subject: [PATCH 167/346] Changed layout to look similar to new workshopper-adventure-4 layouts --- bin/javascripting | 3 ++ i18n/footer/en.md | 1 + i18n/footer/es.md | 1 + i18n/footer/ja.md | 1 + i18n/footer/ko.md | 1 + i18n/footer/nb-no.md | 1 + i18n/footer/pt-br.md | 1 + i18n/footer/uk.md | 1 + i18n/footer/zh-cn.md | 1 + i18n/troubleshooting.md | 1 - index.js | 30 +++++++------- lib/footer.js | 7 ++++ lib/get-file.js | 2 +- lib/problem.js | 15 ++++--- package.json | 7 ++-- problems/accessing-array-values/problem.md | 18 ++++----- problems/accessing-array-values/problem_es.md | 18 ++++----- problems/accessing-array-values/problem_ja.md | 10 ++--- problems/accessing-array-values/problem_ko.md | 18 ++++----- .../accessing-array-values/problem_nb-no.md | 18 ++++----- .../accessing-array-values/problem_pt-br.md | 18 ++++----- problems/accessing-array-values/problem_uk.md | 32 +++++++-------- .../accessing-array-values/problem_zh-cn.md | 19 ++++----- problems/array-filtering/problem.md | 10 ++--- problems/array-filtering/problem_es.md | 6 +-- problems/array-filtering/problem_ja.md | 10 ++--- problems/array-filtering/problem_ko.md | 10 ++--- problems/array-filtering/problem_nb-no.md | 10 ++--- problems/array-filtering/problem_pt-br.md | 10 ++--- problems/array-filtering/problem_uk.md | 32 +++++++-------- problems/array-filtering/problem_zh-cn.md | 10 ++--- problems/arrays/problem.md | 10 ++--- problems/arrays/problem_es.md | 9 ++--- problems/arrays/problem_ja.md | 9 ++--- problems/arrays/problem_ko.md | 9 ++--- problems/arrays/problem_nb-no.md | 10 ++--- problems/arrays/problem_pt-br.md | 10 ++--- problems/arrays/problem_uk.md | 20 ++++------ problems/arrays/problem_zh-cn.md | 10 ++--- problems/for-loop/problem.md | 10 ++--- problems/for-loop/problem_es.md | 10 ++--- problems/for-loop/problem_ja.md | 10 ++--- problems/for-loop/problem_ko.md | 10 ++--- problems/for-loop/problem_nb-no.md | 10 ++--- problems/for-loop/problem_pt-br.md | 10 ++--- problems/for-loop/problem_uk.md | 10 ++--- problems/for-loop/problem_zh-cn.md | 10 ++--- problems/function-arguments/problem.md | 10 ++--- problems/function-arguments/problem_es.md | 10 ++--- problems/function-arguments/problem_ja.md | 10 ++--- problems/function-arguments/problem_ko.md | 10 ++--- problems/function-arguments/problem_nb-no.md | 10 ++--- problems/function-arguments/problem_pt-br.md | 10 ++--- problems/function-arguments/problem_uk.md | 10 ++--- problems/function-arguments/problem_zh-cn.md | 10 ++--- problems/functions/problem.md | 10 ++--- problems/functions/problem_es.md | 10 ++--- problems/functions/problem_ja.md | 10 ++--- problems/functions/problem_ko.md | 10 ++--- problems/functions/problem_nb-no.md | 10 ++--- problems/functions/problem_pt-br.md | 10 ++--- problems/functions/problem_uk.md | 10 ++--- problems/functions/problem_zh-cn.md | 10 ++--- problems/if-statement/problem.md | 10 ++--- problems/if-statement/problem_es.md | 10 ++--- problems/if-statement/problem_ja.md | 10 ++--- problems/if-statement/problem_ko.md | 10 ++--- problems/if-statement/problem_nb-no.md | 10 ++--- problems/if-statement/problem_pt-br.md | 10 ++--- problems/if-statement/problem_uk.md | 10 ++--- problems/if-statement/problem_zh-cn.md | 10 ++--- problems/introduction/problem.md | 35 +++++++++------- problems/introduction/problem_es.md | 28 ++++++++----- problems/introduction/problem_ja.md | 25 ++++++------ problems/introduction/problem_ko.md | 15 +++---- problems/introduction/problem_nb-no.md | 32 ++++++++------- problems/introduction/problem_pt-br.md | 29 ++++++++------ problems/introduction/problem_uk.md | 35 +++++++++------- problems/introduction/problem_zh-cn.md | 22 +++++----- problems/introduction/solution.md | 2 - problems/introduction/solution_es.md | 2 - problems/introduction/solution_ja.md | 2 - problems/introduction/solution_ko.md | 2 - problems/introduction/solution_nb-no.md | 2 - problems/introduction/solution_pt-br.md | 2 - problems/introduction/solution_uk.md | 2 - problems/introduction/solution_zh-cn.md | 2 - problems/looping-through-arrays/problem.md | 10 ++--- problems/looping-through-arrays/problem_es.md | 10 ++--- problems/looping-through-arrays/problem_ja.md | 10 ++--- problems/looping-through-arrays/problem_ko.md | 10 ++--- .../looping-through-arrays/problem_nb-no.md | 10 ++--- .../looping-through-arrays/problem_pt-br.md | 10 ++--- problems/looping-through-arrays/problem_uk.md | 40 +++++++++---------- .../looping-through-arrays/problem_zh-cn.md | 10 ++--- problems/number-to-string/problem.md | 10 ++--- problems/number-to-string/problem_es.md | 10 ++--- problems/number-to-string/problem_ja.md | 10 ++--- problems/number-to-string/problem_ko.md | 10 ++--- problems/number-to-string/problem_nb-no.md | 10 ++--- problems/number-to-string/problem_pt-br.md | 10 ++--- problems/number-to-string/problem_uk.md | 10 ++--- problems/number-to-string/problem_zh-cn.md | 10 ++--- problems/numbers/problem.md | 6 --- problems/numbers/problem_es.md | 6 --- problems/numbers/problem_ja.md | 6 --- problems/numbers/problem_ko.md | 6 --- problems/numbers/problem_nb-no.md | 6 --- problems/numbers/problem_pt-br.md | 6 --- problems/numbers/problem_uk.md | 6 --- problems/numbers/problem_zh-cn.md | 6 --- problems/object-properties/problem.md | 10 ++--- problems/object-properties/problem_es.md | 10 ++--- problems/object-properties/problem_ja.md | 10 ++--- problems/object-properties/problem_ko.md | 10 ++--- problems/object-properties/problem_nb-no.md | 10 ++--- problems/object-properties/problem_pt-br.md | 10 ++--- problems/object-properties/problem_uk.md | 10 ++--- problems/object-properties/problem_zh-cn.md | 10 ++--- problems/objects/problem.md | 11 ++--- problems/objects/problem_es.md | 11 ++--- problems/objects/problem_ja.md | 10 ++--- problems/objects/problem_ko.md | 11 ++--- problems/objects/problem_nb-no.md | 11 ++--- problems/objects/problem_pt-br.md | 11 ++--- problems/objects/problem_uk.md | 24 +++++------ problems/objects/problem_zh-cn.md | 11 ++--- problems/revising-strings/problem.md | 6 --- problems/revising-strings/problem_es.md | 6 --- problems/revising-strings/problem_ja.md | 6 --- problems/revising-strings/problem_ko.md | 6 --- problems/revising-strings/problem_nb-no.md | 6 --- problems/revising-strings/problem_pt-br.md | 6 --- problems/revising-strings/problem_uk.md | 6 --- problems/revising-strings/problem_zh-cn.md | 6 --- problems/rounding-numbers/problem.md | 10 ++--- problems/rounding-numbers/problem_es.md | 10 ++--- problems/rounding-numbers/problem_ja.md | 10 ++--- problems/rounding-numbers/problem_ko.md | 10 ++--- problems/rounding-numbers/problem_nb-no.md | 10 ++--- problems/rounding-numbers/problem_pt-br.md | 10 ++--- problems/rounding-numbers/problem_uk.md | 10 ++--- problems/rounding-numbers/problem_zh-cn.md | 10 ++--- problems/scope/problem.md | 12 ++---- problems/scope/problem_es.md | 6 +-- problems/scope/problem_ja.md | 5 --- problems/scope/problem_ko.md | 10 ++--- problems/scope/problem_nb-no.md | 10 ++--- problems/scope/problem_pt-br.md | 10 ++--- problems/scope/problem_uk.md | 10 ++--- problems/scope/problem_zh-cn.md | 5 --- problems/string-length/problem.md | 8 +--- problems/string-length/problem_es.md | 8 +--- problems/string-length/problem_ja.md | 6 --- problems/string-length/problem_ko.md | 9 +---- problems/string-length/problem_nb-no.md | 8 +--- problems/string-length/problem_pt-br.md | 8 +--- problems/string-length/problem_uk.md | 8 +--- problems/string-length/problem_zh-cn.md | 8 +--- problems/strings/problem.md | 9 +---- problems/strings/problem_es.md | 6 --- problems/strings/problem_ja.md | 6 --- problems/strings/problem_ko.md | 6 --- problems/strings/problem_nb-no.md | 6 --- problems/strings/problem_pt-br.md | 6 --- problems/strings/problem_uk.md | 6 --- problems/strings/problem_zh-cn.md | 6 --- problems/variables/problem.md | 5 --- problems/variables/problem_es.md | 5 --- problems/variables/problem_ja.md | 6 --- problems/variables/problem_ko.md | 5 --- problems/variables/problem_nb-no.md | 6 --- problems/variables/problem_pt-br.md | 5 --- problems/variables/problem_uk.md | 5 --- problems/variables/problem_zh-cn.md | 5 --- 175 files changed, 556 insertions(+), 1180 deletions(-) create mode 100755 bin/javascripting create mode 100644 i18n/footer/en.md create mode 100644 i18n/footer/es.md create mode 100644 i18n/footer/ja.md create mode 100644 i18n/footer/ko.md create mode 100644 i18n/footer/nb-no.md create mode 100644 i18n/footer/pt-br.md create mode 100644 i18n/footer/uk.md create mode 100644 i18n/footer/zh-cn.md mode change 100755 => 100644 index.js create mode 100644 lib/footer.js diff --git a/bin/javascripting b/bin/javascripting new file mode 100755 index 00000000..6a9d2075 --- /dev/null +++ b/bin/javascripting @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +require('../index').execute(process.argv.slice(2)) \ No newline at end of file diff --git a/i18n/footer/en.md b/i18n/footer/en.md new file mode 100644 index 00000000..f0ea9a82 --- /dev/null +++ b/i18n/footer/en.md @@ -0,0 +1 @@ +__Need help?__ View the README for this workshop: http://github.com/sethvincent/javascripting diff --git a/i18n/footer/es.md b/i18n/footer/es.md new file mode 100644 index 00000000..d38c8abd --- /dev/null +++ b/i18n/footer/es.md @@ -0,0 +1 @@ +__Necesitas ayuda?__ Vista el README de este workshop: github.com/sethvincent/javascripting diff --git a/i18n/footer/ja.md b/i18n/footer/ja.md new file mode 100644 index 00000000..0053e7b7 --- /dev/null +++ b/i18n/footer/ja.md @@ -0,0 +1 @@ +__ヘルプが必要ですか??__ このワークショップのREADMEを読んでください。 : http://github.com/ledsun/javascripting diff --git a/i18n/footer/ko.md b/i18n/footer/ko.md new file mode 100644 index 00000000..b994fc54 --- /dev/null +++ b/i18n/footer/ko.md @@ -0,0 +1 @@ +__도움이 필요하신가요?__ 이 워크숍의 README를 확인하세요. http://github.com/sethvincent/javascripting diff --git a/i18n/footer/nb-no.md b/i18n/footer/nb-no.md new file mode 100644 index 00000000..9cd86bf4 --- /dev/null +++ b/i18n/footer/nb-no.md @@ -0,0 +1 @@ +__Trenger du hjelp?__ Se README-filen for denne workshopen: http://github.com/sethvincent/javascripting diff --git a/i18n/footer/pt-br.md b/i18n/footer/pt-br.md new file mode 100644 index 00000000..2ce32fa4 --- /dev/null +++ b/i18n/footer/pt-br.md @@ -0,0 +1 @@ +__Precisa de ajuda?__ Leia o README deste workshop: http://github.com/sethvincent/javascripting diff --git a/i18n/footer/uk.md b/i18n/footer/uk.md new file mode 100644 index 00000000..a0ab4d9e --- /dev/null +++ b/i18n/footer/uk.md @@ -0,0 +1 @@ +__Потрібна допомога?__ Перегляньте README цього воркшопу: http://github.com/sethvincent/javascripting diff --git a/i18n/footer/zh-cn.md b/i18n/footer/zh-cn.md new file mode 100644 index 00000000..1b1f1fce --- /dev/null +++ b/i18n/footer/zh-cn.md @@ -0,0 +1 @@ +__需要帮助?__ 查看本教程的 README 文件:http://github.com/sethvincent/javascripting diff --git a/i18n/troubleshooting.md b/i18n/troubleshooting.md index 79232691..7520e155 100644 --- a/i18n/troubleshooting.md +++ b/i18n/troubleshooting.md @@ -25,4 +25,3 @@ * Make sure you didn't omit parens, since otherwise compiler would not be able to parse it * Make sure you didn't do any typos in the string itself -> **Need help?** Ask a question at: github.com/nodeschool/discussions/issues diff --git a/index.js b/index.js old mode 100755 new mode 100644 index 1bb0e00d..cb0a82a9 --- a/index.js +++ b/index.js @@ -1,19 +1,19 @@ -#!/usr/bin/env node - -var path = require('path'); -var adventure = require('workshopper-adventure/adventure'); -var jsing = adventure({ - name: 'javascripting' - , appDir: __dirname +var jsing = require('workshopper-adventure')({ + appDir: __dirname , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no', 'uk'] + , header: require('workshopper-adventure/default/header') + , footer: require('./lib/footer.js') }); -var problems = require('./menu.json'); - -problems.forEach(function (problem) { - var p = problem.toLowerCase().replace(/\s/g, '-'); - var dir = path.join(__dirname, 'problems', p); - jsing.add(problem, function () { return require(dir); }); -}); +jsing.addAll(require('./menu.json').map(function (problem) { + return { + name: problem, + fn: function () { + var p = problem.toLowerCase().replace(/\s/g, '-'); + var dir = require('path').join(__dirname, 'problems', p); + return require(dir); + } + } +})) -jsing.execute(process.argv.slice(2)); +module.exports = jsing; diff --git a/lib/footer.js b/lib/footer.js new file mode 100644 index 00000000..88b55ff3 --- /dev/null +++ b/lib/footer.js @@ -0,0 +1,7 @@ +var path = require('path') +module.exports = [ + {text: '---', type: 'md'} + , {file: path.join(__dirname, '..', 'i18n', 'footer', '{lang}.md')} + , {text: '', type: 'md'} + , require('workshopper-adventure/default/footer') +] \ No newline at end of file diff --git a/lib/get-file.js b/lib/get-file.js index 91d77a8a..84a8a786 100644 --- a/lib/get-file.js +++ b/lib/get-file.js @@ -3,7 +3,7 @@ var path = require('path'); var md = require('cli-md'); module.exports = function (filepath) { - return md(fs.readFileSync(filepath, 'utf8')) + return fs.readFileSync(filepath, 'utf8') .replace(/'/g, "'") .replace(/"/g, '"') .replace(/</g, '<') diff --git a/lib/problem.js b/lib/problem.js index f4f4803e..5ae65e12 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -9,11 +9,11 @@ module.exports = function createProblem(dirname) { problemName = problemName[problemName.length-1]; exports.init = function (workshopper) { - var postfix = workshopper.lang === 'en' ? '' : '_' + workshopper.lang; - this.problem = getFile(path.join(dirname, 'problem' + postfix + '.md')); - this.solution = getFile(path.join(dirname, 'solution' + postfix + '.md')); - this.solutionPath = path.resolve(dirname, "../../solutions", problemName, "index.js"); - this.troubleshootingPath = path.join(dirname, '../../i18n/troubleshooting' + postfix + '.md'); + var postfix = workshopper.i18n.lang() === 'en' ? '' : '_' + workshopper.i18n.lang(); + this.problem = {file: path.join(dirname, 'problem' + postfix + '.md')}; + this.solution = {file: path.join(dirname, 'solution' + postfix + '.md')}; + this.solutionPath = path.resolve(__dirname, '..', 'solutions', problemName, "index.js"); + this.troubleshootingPath = path.join(__dirname, '..', 'i18n', 'troubleshooting' + postfix + '.md'); } exports.verify = function (args, cb) { @@ -37,7 +37,10 @@ module.exports = function createProblem(dirname) { message = message.replace(/%diff%/g, obj.diff); message = message.replace(/%filename%/g, args[0]); - exports.fail = message; + exports.fail = [ + {text: message, type: 'md' }, + require('./lib/footer.js') + ] cb(false); diff --git a/package.json b/package.json index b8f81e2b..e0235bbc 100644 --- a/package.json +++ b/package.json @@ -3,18 +3,19 @@ "description": "Learn JavaScript by adventuring around in the terminal.", "version": "2.1.0", "repository": { - "url": "git://github.com/sethvincent/javascripting.git" + "url": "https://github.com/sethvincent/javascripting.git" }, "author": "sethvincent", "bin": { - "javascripting": "index.js" + "javascripting": "./bin/javascripting" }, + "main": "./index.js", "preferGlobal": true, "dependencies": { "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1", - "workshopper-adventure": "^3.4.5" + "workshopper-adventure": "^4.0.4" }, "license": "MIT" } diff --git a/problems/accessing-array-values/problem.md b/problems/accessing-array-values/problem.md index 70a8e84e..206d7915 100644 --- a/problems/accessing-array-values/problem.md +++ b/problems/accessing-array-values/problem.md @@ -1,7 +1,3 @@ ---- - -# ACCESSING ARRAY VALUES - Array elements can be accessed through index number. Index number starts from zero to array's property length minus one. @@ -10,9 +6,9 @@ Here is an example: ```js - var pets = ['cat', 'dog', 'rat']; +var pets = ['cat', 'dog', 'rat']; - console.log(pets[0]); +console.log(pets[0]); ``` The above code will print the first element of `pets` array - string `cat`. @@ -24,12 +20,12 @@ Dot notation is invalid. Valid notation: ```js - console.log(pets[0]); +console.log(pets[0]); ``` Invalid notation: ``` - console.log(pets.1); +console.log(pets.1); ``` ## The challenge: @@ -46,6 +42,6 @@ Use `console.log()` to print the `second` value of array to the terminal. Check to see if your program is correct by running this command: -`javascripting verify accessing-array-values.js` - ---- +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/problem_es.md b/problems/accessing-array-values/problem_es.md index dac29a81..47d57d67 100644 --- a/problems/accessing-array-values/problem_es.md +++ b/problems/accessing-array-values/problem_es.md @@ -1,7 +1,3 @@ ---- - -# ACCEDIENDO A LOS VALORES DE UN ARRAY - Se puede tener acceso a los elementos de un Array a través del número de índice. El número de índice comienza en cero y finaliza en el valor de la propiedad longitud (length) del array, restándole uno. @@ -9,9 +5,9 @@ El número de índice comienza en cero y finaliza en el valor de la propiedad lo A continuación, un ejemplo: ```js - var pets = ['cat', 'dog', 'rat']; +var pets = ['cat', 'dog', 'rat']; - console.log(pets[0]); +console.log(pets[0]); ``` El código de arriba, imprime el primer elemento del array de `pets` - string `cat` @@ -23,12 +19,12 @@ Notación de punto es inválida. Notación válida: ```js - console.log(pets[0]); +console.log(pets[0]); ``` Notación inválida: ``` - console.log(pets.1); +console.log(pets.1); ``` ## El ejercicio: @@ -44,6 +40,6 @@ Usa `console.log()` para imprimir el `segundo` valor del array en la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify accediendo-valores-array.js` - ---- +```bash +javascripting verify accediendo-valores-array.js +``` diff --git a/problems/accessing-array-values/problem_ja.md b/problems/accessing-array-values/problem_ja.md index ed8867fa..58f96b10 100644 --- a/problems/accessing-array-values/problem_ja.md +++ b/problems/accessing-array-values/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 配列の値にアクセスする - 配列の要素には添え字を使ってアクセスできます。 添え字は `0` から `配列の長さ - 1` までの数です。 @@ -46,6 +42,6 @@ var food = ['apple', 'pizza', 'pear']; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify accessing-array-values.js` - ---- +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/problem_ko.md b/problems/accessing-array-values/problem_ko.md index 1545ed86..fb1d5e47 100644 --- a/problems/accessing-array-values/problem_ko.md +++ b/problems/accessing-array-values/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 배열 값에 접근하기 - 배열 요소는 인덱스 숫자로 접근 할 수 있습니다. 인덱스 숫자는 0에서 시작해 "배열의 프로퍼티 길이 - 1"까지 입니다. @@ -10,9 +6,9 @@ ```js - var pets = ['cat', 'dog', 'rat']; +var pets = ['cat', 'dog', 'rat']; - console.log(pets[0]); +console.log(pets[0]); ``` 위의 코드는 `pet`의 첫 번째 요소인 `cat` 문자열을 출력할 것입니다. @@ -24,12 +20,12 @@ 유효한 표기법 ```js - console.log(pets[0]); +console.log(pets[0]); ``` 유효하지 않은 표기법 ``` - console.log(pets.1); +console.log(pets.1); ``` ## 도전 과제 @@ -46,6 +42,6 @@ var food = ['apple', 'pizza', 'pear']; 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify accessing-array-values.js` - ---- +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/problem_nb-no.md b/problems/accessing-array-values/problem_nb-no.md index d60ba5e7..8ea11e25 100644 --- a/problems/accessing-array-values/problem_nb-no.md +++ b/problems/accessing-array-values/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# BRUKE ARRAY VERDIER - Verdiene i et array kan nås ved å bruke et indeksnummer. Indeksnummeret starter fra null opp til antallet verdier i arrayet, minus en. @@ -9,9 +5,9 @@ Indeksnummeret starter fra null opp til antallet verdier i arrayet, minus en. Her er et eksempel: ```js - var dyr = ['katt', 'hund', 'rotte']; +var dyr = ['katt', 'hund', 'rotte']; - console.log(dyr[0]); +console.log(dyr[0]); ``` Koden over skriver ut den første verdien i `dyr` arrayet - strengen `katt`. @@ -23,12 +19,12 @@ Punktum notasjon er ikke gyldig. Gyldig: ```js - console.log(dyr[0]); +console.log(dyr[0]); ``` Ugyldig: ``` - console.log(dyr.1); +console.log(dyr.1); ``` ## Oppgaven: @@ -44,6 +40,6 @@ Bruk `console.log()` til å skrive ut den `andre` verdien av det arrayet til skj Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify accessing-array-values.js` - ---- +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/problem_pt-br.md b/problems/accessing-array-values/problem_pt-br.md index 555f6be8..5b0fe9c5 100644 --- a/problems/accessing-array-values/problem_pt-br.md +++ b/problems/accessing-array-values/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# ACESSANDO VALORES DE UM ARRAY - Podemos acessar elementos de um array através de um número que representa sua posição, conhecido como índice. O valor do índice inicia com 0 e vai até o valor que representa o tamanho do array menos 1. @@ -10,9 +6,9 @@ Aqui está um exemplo: ```js - var pets = ['cat', 'dog', 'rat']; +var pets = ['cat', 'dog', 'rat']; - console.log(pets[0]); +console.log(pets[0]); ``` O código acima imprime o primeiro elemento do array `pets` - a string `cat`. @@ -24,12 +20,12 @@ Utilizar ponto para acessar o elemento não é válido. Uso válido: ```js - console.log(pets[0]); +console.log(pets[0]); ``` Uso invalido: ``` - console.log(pets.1); +console.log(pets.1); ``` ## Desafio: @@ -46,6 +42,6 @@ Use o `console.log()` para imprimir o segundo valor do array no terminal. Verifique se o seu programa está correto executando este comando: -`javascripting verify accessing-array-values.js` - ---- +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/problem_uk.md b/problems/accessing-array-values/problem_uk.md index d6347ba2..e20c9f4a 100644 --- a/problems/accessing-array-values/problem_uk.md +++ b/problems/accessing-array-values/problem_uk.md @@ -1,20 +1,16 @@ ---- - -# ДОСТУП ДО ЗНАЧЕНЬ МАСИВІВ - Доступ до елементів масиву можна отримати з допомогою індексу. Індексом може бути число від 0 до розміру масиву, зменшеного на одиницю (n-1). Приклад: -'''js +```js var pets = ['cat', 'dog', 'rat']; console.log(pets[0]); -''' +``` -Код вище виведе перший елемент масиву 'pets' - рядок 'cat'. +Код вище виведе перший елемент масиву `pets` - рядок `cat`. Доступ до елементів масиву можна отримати лише з допомогою квадратних дужок []. @@ -22,28 +18,28 @@ console.log(pets[0]); Правильний запис: -'''js +```js console.log(pets[0]); -''' +``` Неправильний запис: -''' +```js console.log(pets.1); -''' +``` ## Завдання: -Створити файл 'accessing-array-values.js'. +Створити файл `accessing-array-values.js`. У цьому файлі створити масив 'food' : -'''js +```js var food = ['apple', 'pizza', 'pear']; -''' +``` -Використайте 'console.log()', щоб надрукувати 'другий' елемент масиву в терміналі. +Використайте `console.log()`, щоб надрукувати 'другий' елемент масиву в терміналі. Перевірте вашу відповідь запустивши команду: -'javascripting verify accessing-array-values.js' - ---- +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/problem_zh-cn.md b/problems/accessing-array-values/problem_zh-cn.md index 9118fb03..4eedc133 100644 --- a/problems/accessing-array-values/problem_zh-cn.md +++ b/problems/accessing-array-values/problem_zh-cn.md @@ -1,18 +1,13 @@ ---- - -# 访问数组中的值 - 数组中的元素可以通过一个索引值来访问。 索引值就是一个整数,从 0 开始一直到数组的长度减一。 下面是一个例子: - ```js - var pets = ['cat', 'dog', 'rat']; +var pets = ['cat', 'dog', 'rat']; - console.log(pets[0]); +console.log(pets[0]); ``` 上面的代码将打印出 `pets` 数组的第一个元素,也就是字符串 `cat`。 @@ -24,12 +19,12 @@ 这是一个正确的例子: ```js - console.log(pets[0]); +console.log(pets[0]); ``` 下面的用法是错误的: ``` - console.log(pets.1); +console.log(pets.1); ``` ## 挑战: @@ -45,6 +40,6 @@ var food = ['apple', 'pizza', 'pear']; 运行下面的命令来检查你的程序是否正确: -`javascripting verify accessing-array-values.js` - ---- +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/array-filtering/problem.md b/problems/array-filtering/problem.md index 18da0a87..e849d54c 100644 --- a/problems/array-filtering/problem.md +++ b/problems/array-filtering/problem.md @@ -1,7 +1,3 @@ ---- - -# ARRAY FILTERING - There are many ways to manipulate arrays. One common task is filtering arrays to only contain certain values. @@ -44,6 +40,6 @@ Use `console.log()` to print the `filtered` array to the terminal. Check to see if your program is correct by running this command: -`javascripting verify array-filtering.js` - ---- +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/problem_es.md b/problems/array-filtering/problem_es.md index cbfab094..efdb0760 100644 --- a/problems/array-filtering/problem_es.md +++ b/problems/array-filtering/problem_es.md @@ -46,6 +46,6 @@ Utiliza `console.log()` para imprimir el array filtrado a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify filtrado-de-arrays.js` - ---- +``` +javascripting verify filtrado-de-arrays.js +``` diff --git a/problems/array-filtering/problem_ja.md b/problems/array-filtering/problem_ja.md index db3cd4c0..3471d455 100644 --- a/problems/array-filtering/problem_ja.md +++ b/problems/array-filtering/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 配列のフィルター - 配列にはいろいろな操作方法があります。 よくやる処理に、配列にフィルターをかけて、特定の値を取り出す。というものがあります。 @@ -45,6 +41,6 @@ function evenNumbers (number) { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify array-filtering.js` - ---- +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/problem_ko.md b/problems/array-filtering/problem_ko.md index 83655399..1213eb74 100644 --- a/problems/array-filtering/problem_ko.md +++ b/problems/array-filtering/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 배열 필터 - 배열을 조작하는 방법은 여러가지가 있습니다. 대표적인 사용법으로 특정 값만 가진 배열로 필터링하는 것이 있습니다. @@ -44,6 +40,6 @@ function evenNumbers (number) { 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify array-filtering.js` - ---- +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/problem_nb-no.md b/problems/array-filtering/problem_nb-no.md index b086615f..4a92f13b 100644 --- a/problems/array-filtering/problem_nb-no.md +++ b/problems/array-filtering/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# FILTERING AV ARRAYER - Det finnes mange måter å manipulere arrayer på. Noe man ofte gjør er å filtrere et array til å kun inneholde noen ønskede verdier. @@ -43,6 +39,6 @@ Bruk `console.log()` til å skrive ut `filtered` arrayet til skjermen. Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify array-filtering.js` - ---- +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/problem_pt-br.md b/problems/array-filtering/problem_pt-br.md index a350399c..4504d5c0 100644 --- a/problems/array-filtering/problem_pt-br.md +++ b/problems/array-filtering/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# FILTRANDO ARRAYS - Existem muitas formas de manipular arrays. Uma tarefa comum é filtrar um array para que ele tenha somente alguns valores. @@ -44,6 +40,6 @@ Use o `console.log()` para imprimir o array `filtered` no terminal. Verifique se o seu programa está correto executando este comando: -`javascripting verify array-filtering.js` - ---- +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/problem_uk.md b/problems/array-filtering/problem_uk.md index 892be999..4b7ab3f3 100644 --- a/problems/array-filtering/problem_uk.md +++ b/problems/array-filtering/problem_uk.md @@ -1,24 +1,20 @@ ---- - -# ФІЛЬТРАЦІЯ МАСИВІВ - Є багато способів маніпуляції масивами. Часто постає потреба відфільтрувати масиви за певною умовою. -Для цього ми можемо використати метод '.filter()'. +Для цього ми можемо використати метод `.filter()`. Приклад: -'''js +```js var pets = ['cat', 'dog', 'elephant']; var filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); -''' +``` -Змінна 'filtered' буде містили лише елементи 'cat' та 'dog'. +Змінна `filtered` буде містили лише елементи `cat` та `dog`. ## Завдання: @@ -26,24 +22,24 @@ return (pet !== 'elephant'); У цьому файлі, створіть змінну 'numbers', що міститиме такий масив: -'''js +```js [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; -''' +``` -Як у прикладі вище, оголосіть змінну 'filtered', що міститиме результат виконання 'numbers.filter()'. +Як у прикладі вище, оголосіть змінну `filtered`, що міститиме результат виконання `numbers.filter()`. -Функція, яку ви маєте передати у метод '.filter()' буде виглядати приблизно так: +Функція, яку ви маєте передати у метод `.filter()` буде виглядати приблизно так: -'''js +```js function evenNumbers (number) { return number % 2 === 0; } -''' +``` -Скористайтесь 'console.log()', щоб вивести масив 'filtered' в термінал. +Скористайтесь `console.log()`, щоб вивести масив `filtered` в термінал. Перевірте вашу відповідь запустивши команду: -'javascripting verify array-filtering.js' - ---- +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/problem_zh-cn.md b/problems/array-filtering/problem_zh-cn.md index 0b5eab4d..4a78fbf7 100644 --- a/problems/array-filtering/problem_zh-cn.md +++ b/problems/array-filtering/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 数组过滤 - 有许多种方法可以对数组进行操作。 一个常见的任务是过滤一个数组使之仅包含特定的值。 @@ -44,6 +40,6 @@ function evenNumbers (number) { 运行下面的命令来检查你的程序是否正确: -`javascripting verify array-filtering.js` - ---- +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/arrays/problem.md b/problems/arrays/problem.md index 5d81cec8..9e0935be 100644 --- a/problems/arrays/problem.md +++ b/problems/arrays/problem.md @@ -1,7 +1,3 @@ ---- - -# ARRAYS - An array is a list of values. Here's an example: ```js @@ -18,6 +14,6 @@ Use `console.log()` to print the `pizzaToppings` array to the terminal. Check to see if your program is correct by running this command: -`javascripting verify arrays.js` - ---- +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/problem_es.md b/problems/arrays/problem_es.md index 38433ec1..74af7acc 100644 --- a/problems/arrays/problem_es.md +++ b/problems/arrays/problem_es.md @@ -1,7 +1,3 @@ ---- - -# ARRAYS - Un array es una lista ordenada de elementos. Por ejemplo: ```js @@ -18,6 +14,7 @@ Utiliza `console.log()` para imprimir la variable `pizzaToppings` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente commando: -`javascripting verify arrays.js` +```bash +javascripting verify arrays.js +``` ---- diff --git a/problems/arrays/problem_ja.md b/problems/arrays/problem_ja.md index edf932e9..c528cc61 100644 --- a/problems/arrays/problem_ja.md +++ b/problems/arrays/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 配列 - 配列は、値のリストです。たとえば、こう... ```js @@ -21,6 +17,7 @@ var pets = ['cat', 'dog', 'rat']; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify arrays.js` +```bash +javascripting verify arrays.js +``` ---- diff --git a/problems/arrays/problem_ko.md b/problems/arrays/problem_ko.md index f6ac1820..0781cae8 100644 --- a/problems/arrays/problem_ko.md +++ b/problems/arrays/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 배열 - 배열은 값의 목록입니다. 예를 들면 다음과 같습니다. ```js @@ -18,6 +14,7 @@ var pets = ['cat', 'dog', 'rat']; 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify arrays.js` +```bash +javascripting verify arrays.js +``` ---- diff --git a/problems/arrays/problem_nb-no.md b/problems/arrays/problem_nb-no.md index 63b4f0eb..02ff4e75 100644 --- a/problems/arrays/problem_nb-no.md +++ b/problems/arrays/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# ARRAYER - Et array er en liste av verdier. Her er et eksempel: ```js @@ -18,6 +14,6 @@ Bruk `console.log()` til å skrive ut `pizzaToppings` arrayet til skjermen. Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify arrays.js` - ---- +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/problem_pt-br.md b/problems/arrays/problem_pt-br.md index 18d336cc..e1f37986 100644 --- a/problems/arrays/problem_pt-br.md +++ b/problems/arrays/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# ARRAYS - Um array é uma lista de valores. Aqui está um exemplo: ```js @@ -18,6 +14,6 @@ Use o `console.log()` para imprimir o array `pizzaToppings` no terminal. Verifique se o seu programa está correto executando este comando: -`javascripting verify arrays.js` - ---- +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/problem_uk.md b/problems/arrays/problem_uk.md index 8164eb82..42130d43 100644 --- a/problems/arrays/problem_uk.md +++ b/problems/arrays/problem_uk.md @@ -1,23 +1,19 @@ ---- - -# МАСИВИ - Масивами називають значень. Наприклад: -'''js +```js var pets = ['cat', 'dog', 'rat']; -''' +``` ### Завдання: -Створіть файл 'arrays.js'. +Створіть файл `arrays.js`. -У цьому файлі оголосіть змінну 'pizzaToppings', що міститиме масив, який має складатись із трьох елементів в такому порядку: 'tomato sauce, cheese, pepperoni'. +У цьому файлі оголосіть змінну `pizzaToppings`, що міститиме масив, який має складатись із трьох елементів в такому порядку: 'tomato sauce, cheese, pepperoni'. -Скористайтесь 'console.log()', щоб вивести масив 'pizzaToppings' в терміналі. +Скористайтесь `console.log()`, щоб вивести масив `pizzaToppings` в терміналі. Перевірте вашу відповідь запустивши команду: -'javascripting verify arrays.js' - ---- +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/problem_zh-cn.md b/problems/arrays/problem_zh-cn.md index f49be3ef..0faf05af 100644 --- a/problems/arrays/problem_zh-cn.md +++ b/problems/arrays/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 数组 - 数组就是由一组值构成的列表。下面是一个例子: ```js @@ -18,6 +14,6 @@ var pets = ['cat', 'dog', 'rat']; 运行下面的命令检查你的程序是否正确: -`javascripting verify arrays.js` - ---- +```bash +javascripting verify arrays.js +``` diff --git a/problems/for-loop/problem.md b/problems/for-loop/problem.md index 6ad4991c..6d2b4b37 100644 --- a/problems/for-loop/problem.md +++ b/problems/for-loop/problem.md @@ -1,7 +1,3 @@ ---- - -# FOR LOOPS - For loops look like this: ```js @@ -38,6 +34,6 @@ After the for loop, use `console.log()` to print the `total` variable to the ter Check to see if your program is correct by running this command: -`javascripting verify for-loop.js` - ---- +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/problem_es.md b/problems/for-loop/problem_es.md index b4ace994..5a5c9db7 100644 --- a/problems/for-loop/problem_es.md +++ b/problems/for-loop/problem_es.md @@ -1,7 +1,3 @@ ---- - -# FOR (BUCLES) - Un bucle for es como lo siguiente: ```js @@ -37,6 +33,6 @@ Luego del for, utiliza `console.log()` para imprimir la variable `total` a la te Comprueba si tu programa es correcto utilizando el siguiente comando: -`javascripting verify for.js` - ---- +```bash +javascripting verify for.js +``` diff --git a/problems/for-loop/problem_ja.md b/problems/for-loop/problem_ja.md index b618bd32..432692fa 100644 --- a/problems/for-loop/problem_ja.md +++ b/problems/for-loop/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# for ループ - for ループの例です... ```js @@ -39,6 +35,6 @@ total += i; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify for-loop.js` - ---- +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/problem_ko.md b/problems/for-loop/problem_ko.md index b25af174..9b07a5a3 100644 --- a/problems/for-loop/problem_ko.md +++ b/problems/for-loop/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# FOR 반복문 - for 반복문은 이렇게 생겼습니다. ```js @@ -38,6 +34,6 @@ for 반복문 다음에, `console.log()`를 사용해 `total` 변수를 터미 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify for-loop.js` - ---- +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/problem_nb-no.md b/problems/for-loop/problem_nb-no.md index 9f57d993..ad354e48 100644 --- a/problems/for-loop/problem_nb-no.md +++ b/problems/for-loop/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# FOR LØKKER - For løkker ser slik ut: ```js @@ -38,6 +34,6 @@ Etter for løkken, bruk `console.log()` til å skrive ut verdien av `total` vari Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify for-loop.js` - ---- +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/problem_pt-br.md b/problems/for-loop/problem_pt-br.md index b4b4ee81..d3cc7c3d 100644 --- a/problems/for-loop/problem_pt-br.md +++ b/problems/for-loop/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# FAZENDO LOOP COM FOR - Loops com *for* são dessa forma: ```js @@ -38,6 +34,6 @@ Após o loop, use o `console.log()` para imprimir a variável `total` ao termina Verifique se o seu programa está correto executando este comando: -`javascripting verify for-loop.js` - ---- +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/problem_uk.md b/problems/for-loop/problem_uk.md index 787a87ad..2586c66b 100644 --- a/problems/for-loop/problem_uk.md +++ b/problems/for-loop/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ЦИКЛ FOR - Цикл for виглядає ось так: ```js @@ -38,6 +34,6 @@ total += i; Перевірте вашу відповідь запустивши команду: -`javascripting verify for-loop.js` - ---- +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/problem_zh-cn.md b/problems/for-loop/problem_zh-cn.md index a9b11ea6..79198b19 100644 --- a/problems/for-loop/problem_zh-cn.md +++ b/problems/for-loop/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# FOR 循环 - For 循环看起来是这样的: ```js @@ -38,6 +34,6 @@ For 循环结束后,使用 `console.log()` 打印 `total` 变量到终端。 运行下面的命令来检查你的程序是否正确: -`javascripting verify for-loop.js` - ---- +```bash +javascripting verify for-loop.js +``` diff --git a/problems/function-arguments/problem.md b/problems/function-arguments/problem.md index 19555c82..a1bfc404 100644 --- a/problems/function-arguments/problem.md +++ b/problems/function-arguments/problem.md @@ -1,7 +1,3 @@ ---- - -# FUNCTION ARGUMENTS - A function can be declared to receive any number of arguments. Arguments can be from any type. An argument could be a string, a number, an array, an object and even another function. Here is an example: @@ -34,6 +30,6 @@ After that, inside the parentheses of `console.log()`, call the `math()` functio Check to see if your program is correct by running this command: -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/problem_es.md b/problems/function-arguments/problem_es.md index 943edc63..8a65f6f8 100644 --- a/problems/function-arguments/problem_es.md +++ b/problems/function-arguments/problem_es.md @@ -1,7 +1,3 @@ ---- - -# ARGUMENTOS DE FUNCIÓN - Una función puede ser declarada para recibir cualquier número de argumentos. Los argumentos pueden ser de cualquier tipo. Por ejemplo, un argumento a una función podría ser una string, un número, un array, un objeto e incluso otra función. Un ejemplo: @@ -36,6 +32,6 @@ Luego de eso, dentro de los paréntesis de `console.log()`, llamá la función ` Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/problem_ja.md b/problems/function-arguments/problem_ja.md index 03e21b65..24bf304b 100644 --- a/problems/function-arguments/problem_ja.md +++ b/problems/function-arguments/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 関数の引数 - 関数の引数はいくつでも宣言できます。引数はどんな型でも大丈夫です。文字列、数値、配列、オブジェクト、関数さえも引数になり得ます。 たとえば... @@ -35,6 +31,6 @@ example('hello', 'world'); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/problem_ko.md b/problems/function-arguments/problem_ko.md index fd0db0f4..2dee20ec 100644 --- a/problems/function-arguments/problem_ko.md +++ b/problems/function-arguments/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 함수 인자 - 함수는 몇 개의 인자도 받도록 선언할 수 있습니다. 인자는 어떤 타입도 사용 가능합니다. 인자는 문자열, 숫자, 배열, 객체이거나 심지어 다른 함수일 수도 있습니다. 여기 예제가 있습니다. @@ -35,6 +31,6 @@ example('hello', 'world'); 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/problem_nb-no.md b/problems/function-arguments/problem_nb-no.md index 16cf13aa..5ce73444 100644 --- a/problems/function-arguments/problem_nb-no.md +++ b/problems/function-arguments/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# FUNKSJONSARGUMENTER - En funksjon kan deklareres til å ta imot så mange argumenter som nødvendig. Argumentene kan være av alle slags typer; en string, et nummer, et array, et objekt og tilogmed en annen funksjon. Her er et eksempel: @@ -34,6 +30,6 @@ Tilslutt, inni parantesene til `console.log`, kaller du `match` funksjonen med n Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/problem_pt-br.md b/problems/function-arguments/problem_pt-br.md index 528c8780..cd6fdfed 100644 --- a/problems/function-arguments/problem_pt-br.md +++ b/problems/function-arguments/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# ARGUMENTOS DE FUNÇÕES - Podemos declarar uma função que recebe qualquer quantidade de argumentos. Os argumentos podem ser de qualquer tipo. Um argumento poderia ser uma string, um número, um array, um objeto e até mesmo outra função. Aqui está um exemplo: @@ -34,6 +30,6 @@ Depois disso, dentro dos parênteses do `console.log()`, chame a função `math( Verifique se o seu programa está correto executando esse comando: -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/problem_uk.md b/problems/function-arguments/problem_uk.md index e52b8009..83d24578 100644 --- a/problems/function-arguments/problem_uk.md +++ b/problems/function-arguments/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# АРГУМЕНТИ ФУНКЦІЙ - Функція може отримувати будь-яке число аргументів. Аргументами можуть бути будь-якого типу. Аргументом може бути рядок, число, масив, об’єкт або навіть інша функція. Приклад: @@ -35,6 +31,6 @@ example('hello', 'world'); Перевірте вашу відповідь запустивши команду: -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/problem_zh-cn.md b/problems/function-arguments/problem_zh-cn.md index a8ae4c1c..3797e0ae 100644 --- a/problems/function-arguments/problem_zh-cn.md +++ b/problems/function-arguments/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 函数的参数 - 一个函数可以被声明为接受任意数量的参数。参数可以是任意的类型,例如字符串,数字,数组,对象,甚至另一个函数。 例子: @@ -34,6 +30,6 @@ example('hello', 'world'); 运行下面的命令检查你的程序是否正确: -`javascripting verify function-arguments.js` - ---- +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/functions/problem.md b/problems/functions/problem.md index feca7c1f..da165503 100644 --- a/problems/functions/problem.md +++ b/problems/functions/problem.md @@ -1,7 +1,3 @@ ---- - -# FUNCTIONS - A function is a block of code that takes input, processes that input, and then produces output. Here is an example: @@ -37,6 +33,6 @@ Inside of the parentheses of `console.log()`, call the `eat()` function with the Check to see if your program is correct by running this command: -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/problem_es.md b/problems/functions/problem_es.md index efd66577..daa2107c 100644 --- a/problems/functions/problem_es.md +++ b/problems/functions/problem_es.md @@ -1,7 +1,3 @@ ---- - -# FUNCIONES - Una función es un bloque de código que puede recibir un input y devolver un output. Vamos a utilizar la palabra reservada `return` para especificar lo que devuelve una función. @@ -38,6 +34,6 @@ Dentro de los paréntesis de `console.log()`, llama a la función `eat()` con la Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/problem_ja.md b/problems/functions/problem_ja.md index c4ba9216..723bb5fa 100644 --- a/problems/functions/problem_ja.md +++ b/problems/functions/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 関数 - 関数はコードのまとまりです。入力を受け取ります。受け取った入力を処理し、結果を返します。 たとえば... @@ -40,6 +36,6 @@ return food + ' tasted really good.'; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/problem_ko.md b/problems/functions/problem_ko.md index 560853ed..f856f3d1 100644 --- a/problems/functions/problem_ko.md +++ b/problems/functions/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 함수 - 함수는 입력을 받는 코드의 블록입니다. 그 입력을 처리해서 출력을 만듭니다. 여기에 예제가 있습니다. @@ -36,6 +32,6 @@ return food + ' tasted really good.'; 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/problem_nb-no.md b/problems/functions/problem_nb-no.md index f213d047..2d69d02d 100644 --- a/problems/functions/problem_nb-no.md +++ b/problems/functions/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# FUNKSJONER - En funksjon er en samling kode som tar imot data, prosesserer den dataen og lager et resultat. @@ -37,6 +33,6 @@ Inni parantesene til `console.log()`, kall `eat()` funksjonen med stringen `bana Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/problem_pt-br.md b/problems/functions/problem_pt-br.md index 1c257313..31026fb5 100644 --- a/problems/functions/problem_pt-br.md +++ b/problems/functions/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# FUNÇÕES - Uma função basicamente recebe uma entrada, processa a entrada, e então produz uma saída. Aqui está um exemplo: @@ -37,6 +33,6 @@ Dentro do parênteses do `console.log()`, chame a função `eat()` com a string Verifique se o seu programa está correto executando este comando: -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/problem_uk.md b/problems/functions/problem_uk.md index dd148d4d..576f3b58 100644 --- a/problems/functions/problem_uk.md +++ b/problems/functions/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ФУНКЦІЇ - Функція — це блок коду, що приймає деякі аргументи, оперує цими аргументами та повертає результат. Приклад: @@ -36,6 +32,6 @@ return food + ' tasted really good.'; Перевірте вашу відповідь запустивши команду: -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/problem_zh-cn.md b/problems/functions/problem_zh-cn.md index 521f5d92..f19588a4 100644 --- a/problems/functions/problem_zh-cn.md +++ b/problems/functions/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 函数 - 函数就是一大段代码,这段代码将输入处理,然后产生输出。 例子: @@ -36,6 +32,6 @@ return food + ' tasted really good.'; 运行下面的命令检查你的程序是否正确: -`javascripting verify functions.js` - ---- +```bash +javascripting verify functions.js +``` diff --git a/problems/if-statement/problem.md b/problems/if-statement/problem.md index 1e1eb4c5..7c0d4670 100644 --- a/problems/if-statement/problem.md +++ b/problems/if-statement/problem.md @@ -1,7 +1,3 @@ ---- - -# IF STATEMENT - Conditional statements are used to alter the control flow of a program, based on a specified boolean condition. A conditional statement looks like this: @@ -31,6 +27,6 @@ Otherwise, print "**The fruit name has five characters or less.**" Check to see if your program is correct by running this command: -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/problem_es.md b/problems/if-statement/problem_es.md index ddabc10f..c90927c0 100644 --- a/problems/if-statement/problem_es.md +++ b/problems/if-statement/problem_es.md @@ -1,7 +1,3 @@ ---- - -# BLOQUE CONDICIONAL - Los bloques condicionales son utilizados, partiendo de una condición booleana específica, alterar el control de flujo de un programa. Un bloque condicional se parece a lo siguiente: @@ -31,6 +27,6 @@ Imprime "**The fruit name has five characters or less.**" de lo contrario. Comprueba si tu programa funciona correctamente ejecutando el siguiente comando: -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/problem_ja.md b/problems/if-statement/problem_ja.md index 6c80a21e..763196fc 100644 --- a/problems/if-statement/problem_ja.md +++ b/problems/if-statement/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# if 文 - 条件文を使って、次に実行する文を変更します。プログラムの流れを変更できます。条件は真理値で指定します。 たとえば... @@ -31,6 +27,6 @@ if (n > 1) { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/problem_ko.md b/problems/if-statement/problem_ko.md index ee9fd968..bcd375d4 100644 --- a/problems/if-statement/problem_ko.md +++ b/problems/if-statement/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# IF 구문 - 지정된 조건을 기반으로, 조건문은 프로그램의 흐름 제어에 사용됩니다. 조건문은 이렇습니다. @@ -30,6 +26,6 @@ else 블록은 생략 가능하며 구문이 false일 경우 실행될 코드가 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/problem_nb-no.md b/problems/if-statement/problem_nb-no.md index 40882744..5b947abe 100644 --- a/problems/if-statement/problem_nb-no.md +++ b/problems/if-statement/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# IF UTTRYKK - En beslutning brukes for å endre kontrollflyten til et program, basert på en valgt betingelse. En beslutning ser slik ut: @@ -31,6 +27,6 @@ Hvis ikke, skriv ut "**The fruit name has five characters or less.**" til skjerm Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/problem_pt-br.md b/problems/if-statement/problem_pt-br.md index 3c5e3b75..ed35298c 100644 --- a/problems/if-statement/problem_pt-br.md +++ b/problems/if-statement/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# CONDICIONAL COM IF - Instruções condicionais são usadas para alterar o controle de fluxo de um programa, baseado em uma condição de verdadeiro ou falso. Uma instrução condicional é mais ou menos assim: @@ -31,6 +27,6 @@ Caso contrário, imprima "**The fruit name has five characters or less.**" Verifique se o seu programa está correto executando o comando: -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/problem_uk.md b/problems/if-statement/problem_uk.md index 2bdc61e9..dc6f3c58 100644 --- a/problems/if-statement/problem_uk.md +++ b/problems/if-statement/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ОПЕРАТОР IF - Умовні оператори викоритовують для контролю ходу виконання програми, в залежності від спеціальних булевих виразів (умов). Умовні оператори виглядають якось так: @@ -31,6 +27,6 @@ if (n > 1) { Перевірте вашу відповідь запустивши команду: -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/problem_zh-cn.md b/problems/if-statement/problem_zh-cn.md index cc6dc242..2e6ce15a 100644 --- a/problems/if-statement/problem_zh-cn.md +++ b/problems/if-statement/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# IF 语句 - 条件语句基于一个特定的布尔值(即要么为真要么为假的值)来改变程序的控制流。 条件语句长得像下面这样: @@ -30,6 +26,6 @@ if (n > 1) { 运行下面的命令检查你的程序是否正确: -`javascripting verify if-statement.js` - ---- +```bash +javascripting verify if-statement.js +``` diff --git a/problems/introduction/problem.md b/problems/introduction/problem.md index 0c9296ab..7266bfb7 100644 --- a/problems/introduction/problem.md +++ b/problems/introduction/problem.md @@ -1,19 +1,28 @@ ---- -# INTRODUCTION - To keep things organized, let's create a folder for this workshop. Run this command to make a directory called `javascripting` (or something else if you like): -`mkdir javascripting` +```bash +mkdir javascripting +``` Change directory into the `javascripting` folder: -`cd javascripting` +```bash +cd javascripting +``` Create a file named `introduction.js`: -`touch introduction.js` or if you're on windows, `type NUL > introduction.js` (`type` is part of the command!) +```bash +touch introduction.js +``` + +or if you're on windows, +```bash +type NUL > introduction.js +``` +(`type` is part of the command!) Open the file in your favorite editor, and add this text: @@ -23,15 +32,13 @@ console.log('hello'); Save the file, then check to see if your program is correct by running this command: -`javascripting verify introduction.js` +```bash +javascripting verify introduction.js +``` By the way, throughout this tutorial, you can give the file you work with any name you like, so if you want to use something like `catsAreAwesome.js` file for every exercise, you can do that. Just make sure to run: -`javascripting verify catsAreAwesome.js` - ---- - - - -> **Need help?** View the README for this workshop: http://github.com/sethvincent/javascripting +```bash +javascripting verify catsAreAwesome.js +``` diff --git a/problems/introduction/problem_es.md b/problems/introduction/problem_es.md index f6ac95e1..148df75b 100644 --- a/problems/introduction/problem_es.md +++ b/problems/introduction/problem_es.md @@ -1,18 +1,26 @@ ---- -# INTRODUCCIÓN - Para mantener el orden, procederemos a crear una carpeta para este workshop. Ejecuta el siguiente comando, cambiando el nombre de la carpeta o colocando el path que necesites: -`mkdir javascripting` +```bash +mkdir javascripting +``` Cambia de directorio a la carpeta que acabas de crear: -`cd javascripting` +```bash +cd javascripting +``` Crea un archivo llamado `introduction.js` utilizando: -`touch introduction.js`, o si utilizas Windows `type NUL > introduction.js` (`type` es parte del comando!) +```bash +touch introduction.js +``` +, o si utilizas Windows +```bash +type NUL > introduction.js +``` +(`type` es parte del comando!) Agrega el siguiente texto al archivo: @@ -22,10 +30,8 @@ console.log('hello'); Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify introduction.js` - ---- - +```bash +javascripting verify introduction.js +``` -> **Necesitas ayuda?** Vista el README de este workshop: github.com/sethvincent/javascripting diff --git a/problems/introduction/problem_ja.md b/problems/introduction/problem_ja.md index 04ed515a..886bb61d 100644 --- a/problems/introduction/problem_ja.md +++ b/problems/introduction/problem_ja.md @@ -1,19 +1,23 @@ ---- -# INTRODUCTION - このワークショップで使うディレクトリを作りましょう。 次のコマンドを実行して、`javascripting` ディレクトリを作ります。 -`mkdir javascripting` +```bash +mkdir javascripting +``` `javascripting` ディレクトリに移動しましょう。 -`cd javascripting` +```bash +cd javascripting +``` 次のコマンドで `introduction.js` ファイルを作成します。 -`touch introduction.js` (Windowsを使っているのであれば `type NUL > introduction.js`) +```bash +touch introduction.js +``` + (Windowsを使っているのであれば `type NUL > introduction.js`) お好みのエディタでファイルを開きます。次の文を書き足しましょう。 @@ -23,10 +27,7 @@ console.log('hello'); ファイルを保存します。次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify introduction.js` - ---- - - +```bash +javascripting verify introduction.js +``` -> **ヘルプが必要ですか??** このワークショップのREADMEを読んでください。 : http://github.com/ledsun/javascripting diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md index 914041d6..0b74821e 100644 --- a/problems/introduction/problem_ko.md +++ b/problems/introduction/problem_ko.md @@ -1,6 +1,3 @@ ---- -# 소개 - 정돈을 위해 이 워크숍을 위한 폴더를 만듭시다. `mkdir javascripting` 명령어를 실행해 `javascripting`이라는 디렉터리(다른 이름이어도 됩니다)를 만드세요. @@ -18,14 +15,14 @@ console.log('hello'); 파일을 저장하고 프로그램이 올바른지 다음 명령어를 실행해 확인하세요. -`javascripting verify introduction.js` +```bash +javascripting verify introduction.js +``` 하지만 튜토리얼 내내 편한 이름을 사용하셔도 됩니다. 모든 연습 문제에 `catsAreAwesome.js` 같은 이름을 사용하시고 싶다면, 그럴 수 있습니다. 그냥 다음 명령어를 실행해 확인하세요. -`javascripting verify catsAreAwesome.js` - ---- - +```bash +javascripting verify catsAreAwesome.js +``` -> **도움이 필요하신가요?** 이 워크숍의 README를 확인하세요. http://github.com/sethvincent/javascripting diff --git a/problems/introduction/problem_nb-no.md b/problems/introduction/problem_nb-no.md index e35cc86c..cc41b4e6 100644 --- a/problems/introduction/problem_nb-no.md +++ b/problems/introduction/problem_nb-no.md @@ -1,19 +1,28 @@ ---- -# INTRODUKSJON - For å holde ting organisert kan vi lage en ny katalog for denne workshopen. Kjør denne kommandoen for å lage en katalog som heter `javascripting` (eller noe annet om du ønsker): -`mkdir javascripting` +```bash +mkdir javascripting +``` Bytt til `javascripting` katalogen: -`cd javascripting` +```bash +cd javascripting +``` Lag en fil som heter `introduction.js`: -`touch introduction.js` eller hvis du bruker Windows, `type NUL > introduction.js` (`type` er en del av kommandoen!) +```bash +touch introduction.js +``` + eller hvis du bruker Windows, + +```bash +type NUL > introduction.js +``` +(`type` er en del av kommandoen!) Åpne filen i din favoritt editor og legg til følgende tekst: @@ -23,11 +32,6 @@ console.log('hello'); Lagre filen, deretter sjekker du om programmet er korrekt ved å kjøre følgende kommando: -`javascripting verify introduction.js` - ---- - - - -> **Trenger du hjelp?** Se README-filen for denne workshopen: http://github.com/sethvincent/javascripting - +```bash +javascripting verify introduction.js +``` diff --git a/problems/introduction/problem_pt-br.md b/problems/introduction/problem_pt-br.md index 04b3eb5c..caa98b83 100644 --- a/problems/introduction/problem_pt-br.md +++ b/problems/introduction/problem_pt-br.md @@ -1,19 +1,27 @@ ---- -# INTRODUÇÃO - Para manter uma boa organização, vamos criar uma pasta para este workshop. Execute este comando para criar um diretório chamado `javascripting`: -`mkdir javascripting` +```bash +mkdir javascripting +``` Mude o diretório do console para a pasta que você acabou de criar: -`cd javascripting` +```bash +cd javascripting +``` Crie um arquivo chamado `introduction.js`: -`touch introduction.js` ou se você estiver no Windows execute o comando: `type NUL > introduction.js` +```bash +touch introduction.js +``` + ou se você estiver no Windows execute o comando: + +```bash +type NUL > introduction.js +``` Abra o arquivo no seu editor favorito, e adicione este texto: @@ -23,11 +31,8 @@ console.log('hello'); Salve o arquivo, e então verifique se o seu programa está correto executando este comando: -`javascripting verify introduction.js` - ---- - - +```bash +javascripting verify introduction.js +``` -> **Precisa de ajuda?** Leia o README deste workshop: http://github.com/sethvincent/javascripting diff --git a/problems/introduction/problem_uk.md b/problems/introduction/problem_uk.md index 5319e5b7..c0e11c26 100644 --- a/problems/introduction/problem_uk.md +++ b/problems/introduction/problem_uk.md @@ -1,19 +1,28 @@ ---- -# ВСТУП - Давайте створемо окрему директорію для цього воркшопу, щоб зберігати чистоту в наших файлах. Запустіть цю команду, щоб створити директорію, яка називатиметься `javascripting` (або будь-як інакше): -`mkdir javascripting` +```bash +mkdir javascripting +``` Перейдіть в директорію `javascripting` командою: -`cd javascripting` +```bash +cd javascripting +``` Створіть файл `introduction.js`: -`touch introduction.js` або якщо ви на Windows, `type NUL > introduction.js` (`type` це частина команди!) +```bash +touch introduction.js +``` + або якщо ви на Windows, + +```bash +type NUL > introduction.js +``` + (`type` це частина команди!) Відкрийте файл у вашому улюбленому текстовому редакторі та додайте цей текст: @@ -22,14 +31,12 @@ console.log('hello'); ``` Збережіть файл, а потім перевірте вашу програму запустивши команду: -`javascripting verify introduction.js` +```bash +javascripting verify introduction.js +``` До речі, на процязі цього курсу ви можете можете називати файли так, як вам подобається. Якщо ви хочете назвати файл ім’ям `catsAreAwesome.js` для кожної вправи, то зробіть це. Лише не забудьте потім перевірити його: -`javascripting verify catsAreAwesome.js` - ---- - - - -> **Потрібна допомога?** Перегляньте README цього воркшопу: http://github.com/sethvincent/javascripting +```bash +javascripting verify catsAreAwesome.js +``` diff --git a/problems/introduction/problem_zh-cn.md b/problems/introduction/problem_zh-cn.md index 38eb51c9..3a533696 100644 --- a/problems/introduction/problem_zh-cn.md +++ b/problems/introduction/problem_zh-cn.md @@ -1,15 +1,16 @@ ---- -# 入门 - 为了让工作环境整洁有序,我们首先来创建一个文件夹。 运行下面的这段命令来创建一个名为 `javascripting` 的文件夹(你也可以使用你喜欢的其它名字): -`mkdir javascripting` +```bash +mkdir javascripting +``` 进入 `javascripting` 文件夹: -`cd javascripting` +```bash +cd javascripting +``` 创建一个名为 `introduction.js` 的文件: @@ -23,11 +24,6 @@ console.log('hello'); 保存文件,运行下面的命令来检查你的程序是否正确: -`javascripting verify introduction.js` - ---- - - - -> **需要帮助?** 查看本教程的 README 文件:http://github.com/sethvincent/javascripting - +```bash +javascripting verify introduction.js +``` diff --git a/problems/introduction/solution.md b/problems/introduction/solution.md index d91cba55..d531cb82 100644 --- a/problems/introduction/solution.md +++ b/problems/introduction/solution.md @@ -17,5 +17,3 @@ Currently we are printing a **string** of characters to the terminal: `hello`. In the next challenge we focus on learning about **variables**. Run `javascripting` in the console to choose the next challenge. - ---- diff --git a/problems/introduction/solution_es.md b/problems/introduction/solution_es.md index df824fb6..ff1c9d26 100644 --- a/problems/introduction/solution_es.md +++ b/problems/introduction/solution_es.md @@ -17,5 +17,3 @@ En particular, estamos imprimiendo una **string** o cadena de caracteres a la te En el siguiente ejercicio nos concentramos en aprender más acerca de **strings**. Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. - ---- diff --git a/problems/introduction/solution_ja.md b/problems/introduction/solution_ja.md index 2901e9d8..fa697b7b 100644 --- a/problems/introduction/solution_ja.md +++ b/problems/introduction/solution_ja.md @@ -17,5 +17,3 @@ console.log('hello'); 次の課題では**変数**を学びます。 コンソールで `javascripting` コマンドを実行します。次の課題を選択しましょう。 - ---- diff --git a/problems/introduction/solution_ko.md b/problems/introduction/solution_ko.md index affae2d3..a53d9724 100644 --- a/problems/introduction/solution_ko.md +++ b/problems/introduction/solution_ko.md @@ -17,5 +17,3 @@ console.log('hello'); 다음 과제에서는 **변수**를 배우는 데 초점을 맞추겠습니다. 다음 과제로 가시려면 콘솔에서 `javascripting`을 실행하세요. - ---- diff --git a/problems/introduction/solution_nb-no.md b/problems/introduction/solution_nb-no.md index 9b42ac2b..07235f6f 100644 --- a/problems/introduction/solution_nb-no.md +++ b/problems/introduction/solution_nb-no.md @@ -17,5 +17,3 @@ For øyeblikket skriver vi ut en **string** av bokstaver til skjermen: `hello`. I den neste oppgaven skal vi lære om **variabler**. Kjør kommandoen `javascripting` i terminalen for å velge neste oppgave. - ---- diff --git a/problems/introduction/solution_pt-br.md b/problems/introduction/solution_pt-br.md index 54da0f66..401919d4 100644 --- a/problems/introduction/solution_pt-br.md +++ b/problems/introduction/solution_pt-br.md @@ -17,5 +17,3 @@ Atualmente estamos imprimindo uma **string** de caracteres para o terminal: `hel No próximo desafio vamos nos focar em aprender sobre **variáveis**. Execute `javascripting` no console para escolher o próximo desafio. - ---- diff --git a/problems/introduction/solution_uk.md b/problems/introduction/solution_uk.md index 16c293ac..f4e72ef7 100644 --- a/problems/introduction/solution_uk.md +++ b/problems/introduction/solution_uk.md @@ -17,5 +17,3 @@ console.log('hello'); В наступному завданні ми сфокусуємось на вивченні **змінних**. Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. - ---- diff --git a/problems/introduction/solution_zh-cn.md b/problems/introduction/solution_zh-cn.md index 5965d7c3..e1f4dd7f 100644 --- a/problems/introduction/solution_zh-cn.md +++ b/problems/introduction/solution_zh-cn.md @@ -17,5 +17,3 @@ console.log('hello'); 接下来的挑战里我们将学习到 **variables**,也就是**变量**。 运行 `javascripting` 并选择下一个挑战。 - ---- diff --git a/problems/looping-through-arrays/problem.md b/problems/looping-through-arrays/problem.md index 6389c2ec..da41e6ff 100644 --- a/problems/looping-through-arrays/problem.md +++ b/problems/looping-through-arrays/problem.md @@ -1,7 +1,3 @@ ---- - -# LOOPING THROUGH ARRAYS - For this challenge we will use a **for loop** to access and manipulate a list of values in an array. Accessing array values can be done using an integer. @@ -44,6 +40,6 @@ After the for loop, use `console.log()` to print the `pets` array to the termina Check to see if your program is correct by running this command: -`javascripting verify looping-through-arrays.js` - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/problem_es.md b/problems/looping-through-arrays/problem_es.md index 61d298b3..ab5f5fd0 100644 --- a/problems/looping-through-arrays/problem_es.md +++ b/problems/looping-through-arrays/problem_es.md @@ -1,7 +1,3 @@ ---- - -# RECORRIENDO ARRAYS - Para este ejercicio usaremos un bucle **for** para acceder y manipular una lista de valores en un array. Se puede acceder a los valores de un array utilizando un contador. @@ -45,6 +41,6 @@ Utiliza `console.log()` para imprimir el array `pets` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify looping-through-arrays.js` - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/problem_ja.md b/problems/looping-through-arrays/problem_ja.md index 7e715702..fa9514e8 100644 --- a/problems/looping-through-arrays/problem_ja.md +++ b/problems/looping-through-arrays/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 配列をループする - この課題では、**forループ**を使用して、配列の中の値を取得したり変更したりします。 配列の値にアクセスするには、整数を使用します。 @@ -45,6 +41,6 @@ forループが終わったら、 `console.log()` を使って配列 `pets` を 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify looping-through-arrays.js` - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/problem_ko.md b/problems/looping-through-arrays/problem_ko.md index f951a2e3..f941f32e 100644 --- a/problems/looping-through-arrays/problem_ko.md +++ b/problems/looping-through-arrays/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 배열을 루프하기 - 이 도전 과제에서는 **for 반복문**을 사용해 배열에 있는 값의 목록에 접근하고 조작하겠습니다. 배열 값에 접근하는 것은 정수를 사용해 할 수 있습니다. @@ -44,6 +40,6 @@ pets[i] = pets[i] + 's'; 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify looping-through-arrays.js` - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/problem_nb-no.md b/problems/looping-through-arrays/problem_nb-no.md index 0682dd85..ff93a7c9 100644 --- a/problems/looping-through-arrays/problem_nb-no.md +++ b/problems/looping-through-arrays/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# ITERERE GJENNOM ARRAYER - I denne oppgaven skal vi bruke en **for løkke** til å lese og endre en liste av verdier i et array. Å lese verdier fra et array kan gjøres med et heltall. @@ -44,6 +40,6 @@ Etter den for løkken, bruk `console.log()` for å skrive ut `pets` arrayet til Se om programmet ditt er riktig ved å kjøre denne kommandoen: -`javascripting verify looping-through-arrays.js` - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/problem_pt-br.md b/problems/looping-through-arrays/problem_pt-br.md index 50731eff..121d0108 100644 --- a/problems/looping-through-arrays/problem_pt-br.md +++ b/problems/looping-through-arrays/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# VARRENDO ARRAYS COM LOOP - Para este desafio usaremos um **loop for** para acessar e manipular uma lista de valores em um array. Podemos acessar os valores de um array usando um contador. @@ -44,6 +40,6 @@ Depois do loop, use o `console.log()` para imprimir o array `pets` no terminal. Verifique se o seu programa está correto usando o comando: -`javascripting verify looping-through-arrays.js` - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/problem_uk.md b/problems/looping-through-arrays/problem_uk.md index 59e08d1b..faa3d1fd 100644 --- a/problems/looping-through-arrays/problem_uk.md +++ b/problems/looping-through-arrays/problem_uk.md @@ -1,49 +1,45 @@ ---- - -# ПРОХІД ПО МАСИВАХ - Для цього завдання ми використаємо **цикл for** для доступу та маніпуляції списку значень в масиві. Доступ до значень масиву можна здійснити з допомогою цілих чисел. -Кожен елемент в масиві ідентифікується з допомогою числа, починаючи з '0'. +Кожен елемент в масиві ідентифікується з допомогою числа, починаючи з `0`. -Тому в цьому масиві 'hi' ідентифікується числом '1': +Тому в цьому масиві `hi` ідентифікується числом `1`: -'''js +```js var greetings = ['hello', 'hi', 'good morning']; -''' +``` Доступ до нього можна отримати так: -'''js +```js greetings[1]; -''' +``` -Всередині **циклу for** ми можемо використати змінну 'i' всередині квадратних дужок, замість звичайного цілого числа. +Всередині **циклу for** ми можемо використати змінну `i` всередині квадратних дужок, замість звичайного цілого числа. ## Завдання: -Створити файл 'looping-through-arrays.js'. +Створити файл `looping-through-arrays.js`. -У цьому файлі задати змінну під назвою 'pets', що вказуватиме на масив: +У цьому файлі задати змінну під назвою `pets`, що вказуватиме на масив: -'''js +```js ['cat', 'dog', 'rat']; -''' +``` -Створити цикл for loop, що змінює кожен рядок масиву так, щоб слова в однині стали словами в множині (в англійській мові множина утворюється додаванням закінчення '-s' ). +Створити цикл for loop, що змінює кожен рядок масиву так, щоб слова в однині стали словами в множині (в англійській мові множина утворюється додаванням закінчення `-s` ). Ви можете використати такий вираз всередині циклу for: -'''js +```js pets[i] = pets[i] + 's'; -''' +``` -Після циклу, використайте 'console.log()', щоб вивести масив 'pets' до термінала. +Після циклу, використайте `console.log()`, щоб вивести масив `pets` до термінала. Перевірте вашу відповідь запустивши команду: -'javascripting verify looping-through-arrays.js' - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/problem_zh-cn.md b/problems/looping-through-arrays/problem_zh-cn.md index 059a4675..80af8335 100644 --- a/problems/looping-through-arrays/problem_zh-cn.md +++ b/problems/looping-through-arrays/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 依次访问数组中的值 - 本次挑战中,我们将使用一个 **for 循环**来访问并操作数组中的值。 访问数组可以使用一个整数轻易办到。 @@ -44,6 +40,6 @@ pets[i] = pets[i] + 's'; 运行下面的命令检查你的程序是否正确: -`javascripting verify looping-through-arrays.js` - ---- +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/number-to-string/problem.md b/problems/number-to-string/problem.md index 1c648f8d..32af56d7 100644 --- a/problems/number-to-string/problem.md +++ b/problems/number-to-string/problem.md @@ -1,7 +1,3 @@ ---- - -# NUMBER TO STRING - Sometimes you will need to turn a number into a string. In those instances you will use the `.toString()` method. Here's an example: @@ -23,6 +19,6 @@ Use `console.log()` to print the results of the `.toString()` method to the term Check to see if your program is correct by running this command: -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/problem_es.md b/problems/number-to-string/problem_es.md index c1d3c4ce..f452b03f 100644 --- a/problems/number-to-string/problem_es.md +++ b/problems/number-to-string/problem_es.md @@ -1,7 +1,3 @@ ---- - -# NÚMERO A STRING - A veces necesitarás convertir un número a una string. En esos casos, usarás el método `.toString()`. A continuación un ejemplo: @@ -23,6 +19,6 @@ Utiliza `console.log()` para imprimir los resultados de `.toString()` a la termi Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/problem_ja.md b/problems/number-to-string/problem_ja.md index 80d8ae2c..ce609f95 100644 --- a/problems/number-to-string/problem_ja.md +++ b/problems/number-to-string/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 数値を文字列に - 数値を文字列に変換したいことがあります。 そういう時は `toString()` メソッドを使います。たとえば... @@ -23,6 +19,6 @@ n = n.toString(); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/problem_ko.md b/problems/number-to-string/problem_ko.md index 17eaeac3..53eaa997 100644 --- a/problems/number-to-string/problem_ko.md +++ b/problems/number-to-string/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 숫자에서 문자열으로 - 가끔 숫자를 문자열로 변경해야 할 때가 있습니다. 그런 경우에 `.toString()` 메소드를 사용하면 됩니다. 예제를 보세요. @@ -23,6 +19,6 @@ n = n.toString(); 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/problem_nb-no.md b/problems/number-to-string/problem_nb-no.md index 83ca158c..2d876fcc 100644 --- a/problems/number-to-string/problem_nb-no.md +++ b/problems/number-to-string/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# NUMMER TIL STRING - Noen ganger må du gjøre om et nummer til en string. I de tilfelle må du bruke `.toString()` metoden. Eksempel: @@ -23,6 +19,6 @@ Bruk `console.log()` for å skrive ut resultatet av `.toString()` metoden til sk Se om programmet ditt er riktig ved å kjøre denne kommandoen: -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/problem_pt-br.md b/problems/number-to-string/problem_pt-br.md index bf86e1fa..0926c8ac 100644 --- a/problems/number-to-string/problem_pt-br.md +++ b/problems/number-to-string/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# CONVERTENDO NÚMERO PARA STRING - Ás vezes você precisará converter um número para uma string. Nestas situações você usará o método `.toString()`. Veja um exemplo de como usá-lo: @@ -23,6 +19,6 @@ Use o `console.log()`para imprimir o resultado do método `.toString()` no termi Verifique se o seu programa está correto executando o comando: -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/problem_uk.md b/problems/number-to-string/problem_uk.md index a7eb9c23..9fa7c451 100644 --- a/problems/number-to-string/problem_uk.md +++ b/problems/number-to-string/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ЧИСЛА В РЯДКИ - Часом нам потрібно перетворити числа в рядки. В таких випадках ви можете використати метод `.toString()`. Ось приклад: @@ -23,6 +19,6 @@ n = n.toString(); Перевірте вашу відповідь запустивши команду: -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/problem_zh-cn.md b/problems/number-to-string/problem_zh-cn.md index 8768c546..58a2fe57 100644 --- a/problems/number-to-string/problem_zh-cn.md +++ b/problems/number-to-string/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 数字转字符串 - 有时候我们需要把一个数字转换成字符串。 这时,你可以使用 `.toString()` 方法。例如: @@ -23,6 +19,6 @@ n = n.toString(); 运行下面的命令来检查你的程序是否正确: -`javascripting verify number-to-string.js` - ---- +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/numbers/problem.md b/problems/numbers/problem.md index ee369b50..d85bd6c9 100644 --- a/problems/numbers/problem.md +++ b/problems/numbers/problem.md @@ -1,7 +1,3 @@ ---- - -# NUMBERS - Numbers can be integers, like `2`, `14`, or `4353`, or they can be decimals, also known as floats, like `3.14`, `1.5`, or `100.7893423`. Unlike Strings, Numbers do not need to quotes. @@ -17,5 +13,3 @@ Use `console.log()` to print that number to the terminal. Check to see if your program is correct by running this command: `javascripting verify numbers.js` - ---- diff --git a/problems/numbers/problem_es.md b/problems/numbers/problem_es.md index 7858e760..c5733613 100644 --- a/problems/numbers/problem_es.md +++ b/problems/numbers/problem_es.md @@ -1,7 +1,3 @@ ---- - -# NÚMEROS - Los números pueden ser enteros, cómo `3`, `5` o `3337`, o pueden ser decimales, cómo `3.14`, `1.5` o `100.7893423`. @@ -16,5 +12,3 @@ Utiliza `console.log()` para imprimir ese número a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: `javascripting verify numbers.js` - ---- diff --git a/problems/numbers/problem_ja.md b/problems/numbers/problem_ja.md index f1263c6e..2d842426 100644 --- a/problems/numbers/problem_ja.md +++ b/problems/numbers/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 数値 - JavaScriptの数値は `2` 、`14` 、`4353` のような整数と `3.14` 、 `1.5` 、 `100.7893423` のような小数のどちらともを表すことができます。 @@ -17,5 +13,3 @@ JavaScriptの数値は `2` 、`14` 、`4353` のような整数と 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 `javascripting verify numbers.js` - ---- diff --git a/problems/numbers/problem_ko.md b/problems/numbers/problem_ko.md index 025f4c00..7785f06f 100644 --- a/problems/numbers/problem_ko.md +++ b/problems/numbers/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 숫자 - 숫자는 `2`, `14`, `4353` 같은 정수이거나 십진수이거나 `3.14`, `1.5`, `100.7893423` 같은 실수일 수 있습니다. 문자열과 다르게 숫자는 따옴표로 감쌀 필요가 없습니다. @@ -16,5 +12,3 @@ 이 명령어를 실행해 프로그램이 올바른지 확인하세요. `javascripting verify numbers.js` - ---- diff --git a/problems/numbers/problem_nb-no.md b/problems/numbers/problem_nb-no.md index e695c3dd..7a6070fb 100644 --- a/problems/numbers/problem_nb-no.md +++ b/problems/numbers/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# NUMMER - Nummer kan være heltall, som `2`, `14` eller `4353`, eller de kan være desimaltall også kjent som flyttall slik som `3.14`, `1.5` eller `100.7893423`. @@ -16,5 +12,3 @@ Brukt `console.log()` for å skrive nummeret til skjermen. Se om programmet ditt er riktig ved å kjøre denne kommandoen: `javascripting verify numbers.js` - ---- diff --git a/problems/numbers/problem_pt-br.md b/problems/numbers/problem_pt-br.md index e16d9ff2..8db5421e 100644 --- a/problems/numbers/problem_pt-br.md +++ b/problems/numbers/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# NÚMEROS - O números podem ser inteiros como `2`, `14`, ou `4353`, ou podem ser decimais como `3.14`, `1.5`, ou `100.7893423`. @@ -16,5 +12,3 @@ Use o `console.log()` para imprimir o número no terminal. Verifique se o seu programa está correto executando o seguinte comando: `javascripting verify numbers.js` - ---- diff --git a/problems/numbers/problem_uk.md b/problems/numbers/problem_uk.md index 6d549372..b64f4707 100644 --- a/problems/numbers/problem_uk.md +++ b/problems/numbers/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ЧИСЛА - Числа (Numbers) можуть бути цілими, як от `2`, `14`, або `4353`. Також вони можуть бути дійсними, також відомі як «числа з плаваючою крапкою», як от `3.14`, `1.5`, або `100.7893423`. На відміну від рядків (Strings), числа (Numbers) не потрібно огортати лапками. @@ -16,5 +12,3 @@ Перевірте вашу відповідь запустивши команду: `javascripting verify numbers.js` - ---- diff --git a/problems/numbers/problem_zh-cn.md b/problems/numbers/problem_zh-cn.md index d3d28f71..0bf0ff39 100644 --- a/problems/numbers/problem_zh-cn.md +++ b/problems/numbers/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 数字 - 数字既可以是整数,像 `2`,`14`,或者 `4353`,也可以是小数,通常也被称为浮点数,比如 `3.14`,`1.5`,和 `100.7893423`。 ## 挑战: @@ -15,5 +11,3 @@ 运行下面的命令检查你的程序是否正确: `javascripting verify numbers.js` - ---- diff --git a/problems/object-properties/problem.md b/problems/object-properties/problem.md index f44ec2f6..25284a7c 100644 --- a/problems/object-properties/problem.md +++ b/problems/object-properties/problem.md @@ -1,7 +1,3 @@ ---- - -# OBJECT PROPERTIES - You can access and manipulate object properties –– the keys and values that an object contains –– using a method very similar to arrays. Here's an example using **square brackets**: @@ -42,6 +38,6 @@ Use `console.log()` to print the `types` property of the `food` object to the te Check to see if your program is correct by running this command: -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/problem_es.md b/problems/object-properties/problem_es.md index 16ff0a5b..f847ad3b 100644 --- a/problems/object-properties/problem_es.md +++ b/problems/object-properties/problem_es.md @@ -1,7 +1,3 @@ ---- - -# PROPIEDADES DE OBJETOS - Puedes acceder y manipular propiedades de objetos –– las **llaves** y **valores** que un objeto contiene –– utilizando una forma muy similar que con arrays. Un ejemplo usando **corchetes**: @@ -42,6 +38,6 @@ Utiliza `console.log()` para imprimir la propiedad `types` del objeto `food` a l Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/problem_ja.md b/problems/object-properties/problem_ja.md index 46e0ca8a..1b1a52f9 100644 --- a/problems/object-properties/problem_ja.md +++ b/problems/object-properties/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# オブジェクトのプロパティ - オブジェクトのプロパティの値を取得したり変更したりできます。 プロパティはオブジェクトに含まれるキーと値の組み合わせです。 オブジェクトのプロパティは配列とよく似た方法で操作します。 @@ -46,6 +42,6 @@ var food = { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/problem_ko.md b/problems/object-properties/problem_ko.md index 91c6f345..784ad895 100644 --- a/problems/object-properties/problem_ko.md +++ b/problems/object-properties/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 객체 속성 - 배열과 매우 비슷한 방법으로 객체의 속성(객체가 가지고 있는 키와 값)에 접근하고 그를 조작할 수 있습니다. **대괄호**를 사용하는 예제입니다. @@ -42,6 +38,6 @@ var food = { 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/problem_nb-no.md b/problems/object-properties/problem_nb-no.md index dfcd5000..eb223fd8 100644 --- a/problems/object-properties/problem_nb-no.md +++ b/problems/object-properties/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# OBJEKTEGENSKAPER - Du kan bruke og endre objektegenskaper –– nøklene og verdiene et objekt inneholder –– svært likt som arrayer. Her er et eksempel som bruker **hakeparantes**: @@ -42,6 +38,6 @@ Bruk `console.log()` til å skrive ut `types` egenskapen av `food` objektet til Se om programmet ditt er riktig ved å kjøre denne kommandoen: -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/problem_pt-br.md b/problems/object-properties/problem_pt-br.md index d70d0d67..b4001ea2 100644 --- a/problems/object-properties/problem_pt-br.md +++ b/problems/object-properties/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# PROPRIEDADES DE OBJETO - Você pode acessar e manipular propriedades de objetos –– as chaves e valores de um objeto –– de uma maneira bem similar como fazemos com arrays. Aqui está um exemplo usando **colchetes**: @@ -42,6 +38,6 @@ Use o `console.log()` para imprimir a propriedade `types` do objeto `food` no te Verifique se o seu programa está correto usando o comando: -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/problem_uk.md b/problems/object-properties/problem_uk.md index bd33faf0..cc4a4404 100644 --- a/problems/object-properties/problem_uk.md +++ b/problems/object-properties/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ВЛАСТИВОСТІ ОБ'ЄКТІВ - Ви можете отримувати значення та маніпулювати властивостями об’єктів –– ключами та значеннями, які містить об’єкт –– схожим методом, як і у масивів. Це приклад з **квадратними дужками**: @@ -42,6 +38,6 @@ var food = { Перевірте вашу відповідь запустивши команду: -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/problem_zh-cn.md b/problems/object-properties/problem_zh-cn.md index c01baf72..1c2cc576 100644 --- a/problems/object-properties/problem_zh-cn.md +++ b/problems/object-properties/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 对象的属性 - 你可以使用与访问和操作数组非常类似的方法来访问和操作对象的属性——属性就是对象所包含的键和值的对。 这里是一个使用**方括号**的例子: @@ -42,6 +38,6 @@ var food = { 运行下面的命令来检查你的程序是否正确: -`javascripting verify object-properties.js` - ---- +```bash +javascripting verify object-properties.js +``` diff --git a/problems/objects/problem.md b/problems/objects/problem.md index da3970fb..5cbc2a88 100644 --- a/problems/objects/problem.md +++ b/problems/objects/problem.md @@ -1,7 +1,3 @@ ---- - -# OBJECTS - Objects are lists of values similar to arrays, except values are identified by keys instead of integers. Here is an example: @@ -31,7 +27,6 @@ Use `console.log()` to print the `pizza` object to the terminal. Check to see if your program is correct by running this command: -`javascripting verify objects.js` - - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/problem_es.md b/problems/objects/problem_es.md index 7cc54585..a08287db 100644 --- a/problems/objects/problem_es.md +++ b/problems/objects/problem_es.md @@ -1,12 +1,7 @@ ---- - -# OBJETOS - Los objetos son en cierta forma contenedores y se los puede pensar cómo diccionarios. Tendrá ciertas **llaves** y cada una se verá referenciada a un **valor**. - Por ejemplo: ```js @@ -36,6 +31,6 @@ Utiliza `console.log()` para imprimir el objeto `pizza` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: -`javascripting verify objects.js` - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/problem_ja.md b/problems/objects/problem_ja.md index bcd64a24..466be02d 100644 --- a/problems/objects/problem_ja.md +++ b/problems/objects/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# オブジェクト - オブジェクトは、配列に似た値のリストです。配列と違い、各要素を整数ではなくキーで識別します。 たとえば... @@ -34,6 +30,6 @@ var pizza = { 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう... -`javascripting verify objects.js` - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/problem_ko.md b/problems/objects/problem_ko.md index 0ebcb76d..967955be 100644 --- a/problems/objects/problem_ko.md +++ b/problems/objects/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 객체 - 객체는 배열과 비슷한 값의 목록입니다. 배열과 다른 점은 정수 대신 키를 사용해 값을 확인하는 점입니다. 예제를 보세요. @@ -31,7 +27,6 @@ var pizza = { 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify objects.js` - - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/problem_nb-no.md b/problems/objects/problem_nb-no.md index b52408ad..ca74e2f3 100644 --- a/problems/objects/problem_nb-no.md +++ b/problems/objects/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# OBJEKTER - Objekter er en samling verdier som arrayer, bortsett ifra at verdiene er identifisert med nøkler istedefor tall. Her er et eksempel: @@ -31,7 +27,6 @@ Bruk `console.log()` for å skrive ut `pizza` objektet til skjermen. Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify objects.js` - - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/problem_pt-br.md b/problems/objects/problem_pt-br.md index 80df4ce1..43918b8f 100644 --- a/problems/objects/problem_pt-br.md +++ b/problems/objects/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# OBJETOS - Um objetos é uma lista de valores similar á um array, exceto que seus valores são identificados por chaves ao invés de inteiros. Aqui está um exemplo: @@ -31,7 +27,6 @@ Use o `console.log()` para imprimir o objeto `pizza` no terminal. Verifique se o seu programa está correto usando este comando: -`javascripting verify objects.js` - - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/problem_uk.md b/problems/objects/problem_uk.md index a432e2b9..cea45e57 100644 --- a/problems/objects/problem_uk.md +++ b/problems/objects/problem_uk.md @@ -1,36 +1,32 @@ ---- - -# ОБ'ЄКТИ - Об’єкти (Objects) — це списки значень, схожі на масиви, за винятком того, що значення ідентифікуються з допомогою ключових слів (keys) замість цілих чисел. Приклад: -'''js +```js var foodPreferences = { pizza: 'yum', salad: 'gross' }; -''' +``` ## Завдання: -Створити файл 'objects.js'. +Створити файл `objects.js`. -У цьому файлі, оголосіть змінну 'pizza' ось так: +У цьому файлі, оголосіть змінну `pizza` ось так: -'''js +```js var pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 }; -''' +``` -Використайте 'console.log()', щоб вивести об’єкт 'pizza' до терміналу. +Використайте `console.log()`, щоб вивести об’єкт `pizza` до терміналу. Перевірте вашу відповідь запустивши команду: -'javascripting verify objects.js' - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/problem_zh-cn.md b/problems/objects/problem_zh-cn.md index f7c19161..a6bf336b 100644 --- a/problems/objects/problem_zh-cn.md +++ b/problems/objects/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 对象 - 对象像数组一样,也是一组值的集合,所不同是,对象里的值被关键字所标识,而非整数。 例子: @@ -31,7 +27,6 @@ var pizza = { 运行下面的命令检查你的程序是否正确: -`javascripting verify objects.js` - - ---- +```bash +javascripting verify objects.js +``` diff --git a/problems/revising-strings/problem.md b/problems/revising-strings/problem.md index e7a9ce3a..94b023a1 100644 --- a/problems/revising-strings/problem.md +++ b/problems/revising-strings/problem.md @@ -1,7 +1,3 @@ ---- - -# REVISING STRINGS - You will often need to change the contents of a string. Strings have built-in functionality that allow you to inspect and manipulate their contents. @@ -31,5 +27,3 @@ Use `console.log()` to print the results of the `.replace()` method to the termi Check to see if your program is correct by running this command: `javascripting verify revising-strings.js` - ---- diff --git a/problems/revising-strings/problem_es.md b/problems/revising-strings/problem_es.md index 718aab05..5dbc4266 100644 --- a/problems/revising-strings/problem_es.md +++ b/problems/revising-strings/problem_es.md @@ -1,7 +1,3 @@ ---- - -# MODIFICANDO STRINGS - A menudo necesitarás cambiar el contenido de una string. Las strings tienen una funcionalidad por defecto que te permite reemplazar caracteres. @@ -31,5 +27,3 @@ Luego, utiliza `console.log()` para imprimir los resultados del método `.replac Comprueba si tu programa es correcto ejecutando el siguiente comando: `javascripting verify revising-strings.js` - ---- diff --git a/problems/revising-strings/problem_ja.md b/problems/revising-strings/problem_ja.md index 1212a8cd..2d99484d 100644 --- a/problems/revising-strings/problem_ja.md +++ b/problems/revising-strings/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 文字列を変更 - 文字列の中身を書き換えたいことがあります。 文字列には用意された機能があります。文字列の中身を調べたり、書き換えたりできます。 @@ -30,5 +26,3 @@ console.log(example); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 `javascripting verify revising-strings.js` - ---- diff --git a/problems/revising-strings/problem_ko.md b/problems/revising-strings/problem_ko.md index d2a3e386..c359eccf 100644 --- a/problems/revising-strings/problem_ko.md +++ b/problems/revising-strings/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 문자열 뒤집기 - 문자열의 내용을 바꿀 경우가 종종 생깁니다. 문자열은 내용을 조작하고 살펴보는 내장 기능을 가지고 있습니다. @@ -29,5 +25,3 @@ console.log(example); 이 명령어를 실행해 프로그램이 올바른지 확인하세요. `javascripting verify revising-strings.js` - ---- diff --git a/problems/revising-strings/problem_nb-no.md b/problems/revising-strings/problem_nb-no.md index 58453a9c..574f1621 100644 --- a/problems/revising-strings/problem_nb-no.md +++ b/problems/revising-strings/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# EN RUNDE TIL MED STRINGS - Du trenger ofte å endre innholdet av en string. Stringer har innebygd funksjonalitet som lar de manipulere og se på innholdet. @@ -29,5 +25,3 @@ Bruk `console.log()` for å skrive ut resultatet av `.replace()` metoden til skj Kontroller programmet ditt for å se om det er riktig ved å kjøre denne kommandoen: `javascripting verify revising-strings.js` - ---- diff --git a/problems/revising-strings/problem_pt-br.md b/problems/revising-strings/problem_pt-br.md index b43bc499..9bcaefc1 100644 --- a/problems/revising-strings/problem_pt-br.md +++ b/problems/revising-strings/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# MODIFICANDO STRINGS - Frequentemente você precisará mudar o conteúdo de uma string. As strings tem funcionalidades que te permitem inspecionar e manipular seus conteúdos. @@ -31,5 +27,3 @@ Use o `console.log()` para imprimir o resultado do método `.replace()` no termi Verifique se o seu programa está correto executando este comando: `javascripting verify revising-strings.js` - ---- diff --git a/problems/revising-strings/problem_uk.md b/problems/revising-strings/problem_uk.md index 97d77f78..26dad2a7 100644 --- a/problems/revising-strings/problem_uk.md +++ b/problems/revising-strings/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# МОДИФІКАЦІЯ РЯДКІВ - Часто необхідно буде змінювати вміст рядка. Рядки мають вбудований функціонал, що дозволяє вам переглядати та маніпулювати їх вмістом. @@ -29,5 +25,3 @@ console.log(example); Перевірте вашу відповідь запустивши команду: `javascripting verify revising-strings.js` - ---- diff --git a/problems/revising-strings/problem_zh-cn.md b/problems/revising-strings/problem_zh-cn.md index b36cdd81..93714c45 100644 --- a/problems/revising-strings/problem_zh-cn.md +++ b/problems/revising-strings/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 修改字符串 - 实际工作中可能经常需要修改一个字符串。 字符串中包含一些内建的功能允许你查看并修改它们的内容。 @@ -29,5 +25,3 @@ console.log(example); 运行下面的命令来检查你的程序是否正确: `javascripting verify revising-strings.js` - ---- diff --git a/problems/rounding-numbers/problem.md b/problems/rounding-numbers/problem.md index d043179a..336fa691 100644 --- a/problems/rounding-numbers/problem.md +++ b/problems/rounding-numbers/problem.md @@ -1,7 +1,3 @@ ---- - -# ROUNDING NUMBERS - We can do basic math using familiar operators like `+`, `-`, `*`, `/`, and `%`. For more complex math, we can use the `Math` object. @@ -28,6 +24,6 @@ Use `console.log()` to print that number to the terminal. Check to see if your program is correct by running this command: -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/problem_es.md b/problems/rounding-numbers/problem_es.md index 52983d65..83433a0d 100644 --- a/problems/rounding-numbers/problem_es.md +++ b/problems/rounding-numbers/problem_es.md @@ -1,7 +1,3 @@ ---- - -# REDONDEANDO NÚMEROS - Los operadores básicos son `+`, `-`, `*`, `/`, y `%`. Para operaciones más complejas, podemos usar el objeto `Math`. @@ -28,6 +24,6 @@ Utiliza `console.log()` para imprimir el número a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente commando: -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/problem_ja.md b/problems/rounding-numbers/problem_ja.md index cc664f52..74c6e843 100644 --- a/problems/rounding-numbers/problem_ja.md +++ b/problems/rounding-numbers/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 数値丸め - 基本的な数値処理には、`+`、 `-`、 `*`、 `/`、 `%` といった、おなじみの演算子を使います。 より複雑な数値処理をするときは、 `Math` オブジェクトを使います。 @@ -29,6 +25,6 @@ Math.round(0.5); 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` \ No newline at end of file diff --git a/problems/rounding-numbers/problem_ko.md b/problems/rounding-numbers/problem_ko.md index ac73587e..6321ca0e 100644 --- a/problems/rounding-numbers/problem_ko.md +++ b/problems/rounding-numbers/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 숫자 반올림 - `+`, `-`, `*`, `/`, `%` 같은 익숙한 연산자를 사용해 기본적인 연산을 할 수 있습니다. 더 복잡한 연산은 `Math` 객체를 사용해 할 수 있습니다. @@ -28,6 +24,6 @@ Math.round(0.5); 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/problem_nb-no.md b/problems/rounding-numbers/problem_nb-no.md index 742d7390..141d0506 100644 --- a/problems/rounding-numbers/problem_nb-no.md +++ b/problems/rounding-numbers/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# AVRUNDE NUMMER - Vi kan gjøre enkle regnestykker med operatører som `+`, `-`, `*`, `/`, og `%`. For mer avanserte regnestykker, kan vi bruke `Math` objektet. @@ -29,6 +25,6 @@ Bruk `console.log()` for å skrive det nummeret til skjermen. Se om programmet ditt er riktig ved å kjøre denne: -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` \ No newline at end of file diff --git a/problems/rounding-numbers/problem_pt-br.md b/problems/rounding-numbers/problem_pt-br.md index 97076e93..aa86c10a 100644 --- a/problems/rounding-numbers/problem_pt-br.md +++ b/problems/rounding-numbers/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# ARREDONDANDO NÚMEROS - Podemos fazer operações simples de matemática usando operadores como `+`, `-`, `*`, `/`, e `%`. Para cálculos complexos, usamos o objeto `Math`. @@ -28,6 +24,6 @@ Use o `console.log()` para imprimir o número no terminal. Verifique se o seu programa está correto executando o comando: -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/problem_uk.md b/problems/rounding-numbers/problem_uk.md index 6b7ae839..cd4f44cb 100644 --- a/problems/rounding-numbers/problem_uk.md +++ b/problems/rounding-numbers/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ОКРУГЛЕННЯ ЧИСЕЛ - Ми можемо виконувати прості математичні дії використовуючи звичайні оператори, як от `+`, `-`, `*`, `/`, та `%`. Для більш складних операцій ми можемо використовувати об’єкт `Math`. @@ -28,6 +24,6 @@ Math.round(0.5); Перевірте вашу відповідь запустивши команду: -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/problem_zh-cn.md b/problems/rounding-numbers/problem_zh-cn.md index 1ef7c09f..020a114c 100644 --- a/problems/rounding-numbers/problem_zh-cn.md +++ b/problems/rounding-numbers/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 数字取整 - 我们可以对数字进行一些基本的数学运算,比如 `+`,`-`,`*`,`/`,和 `%`。 对于更复杂的数学运算,我们需要使用 `Math` 对象。 @@ -28,6 +24,6 @@ Math.round(0.5); 运行下面的命令检查你的程序是否正确: -`javascripting verify rounding-numbers.js` - ---- +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 2bd03c1f..32aa0283 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -1,7 +1,3 @@ ---- - -# SCOPE - `Scope` is the set of variables, objects, and functions you have access to. JavaScript has two scopes: `global` and `local`. A variable that is declared outside a function definition is a `global` variable, and its value is accessible and modifiable throughout your program. A variable that is declared inside a function definition is `local`. It is created and destroyed every time the function is executed, and it cannot be accessed by any code outside the function. @@ -61,7 +57,7 @@ var a = 1, b = 2, c = 3; })(); ``` -Use your knowledge of the variables' `scope` and place the following code inside one of the functions in 'scope.js' +Use your knowledge of the variables' `scope` and place the following code inside one of the functions in `scope.js` so the output is `a: 1, b: 8,c: 6` ```js console.log("a: "+a+", b: "+b+", c: "+c); @@ -69,6 +65,6 @@ console.log("a: "+a+", b: "+b+", c: "+c); Check to see if your program is correct by running this command: -`javascripting verify scope.js` - ---- +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md index 46104de8..c00522a7 100644 --- a/problems/scope/problem_es.md +++ b/problems/scope/problem_es.md @@ -1,7 +1,3 @@ ---- - -# SCOPE ( AMBITO ) - El `scope` o ámbito es el conjunto de variables, objetos y funciones a las que tienes acceso. JavaScript tiene dos ámbitos: `global` y `local`. Una variable que es declarada fuera de la definición de una función es una variable `global`, y su valor es accesible y modificable a través de tu programa. Una variable que es declarada dentro de la definición de una función es una variable `local`. Se crea y se destruye cada vez que se ejecuta la función, y no se puede acceder a su valor ni modificarlo por ningún código fuera de la misma. @@ -66,4 +62,4 @@ en `scope.js` para que la salida sea `a: 1, b: 8, c: 6` ```js console.log("a: "+a+", b: "+b+", c: "+c); ``` ---- \ No newline at end of file + diff --git a/problems/scope/problem_ja.md b/problems/scope/problem_ja.md index c1740fd1..05086461 100644 --- a/problems/scope/problem_ja.md +++ b/problems/scope/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# スコープ - 「スコープ」は参照できる変数・オブジェクト・関数の集合です。 JavaScriptには、二つのスコープがあります。グローバルとローカルです。 @@ -73,4 +69,3 @@ var a = 1, b = 2, c = 3; ```js console.log("a: "+a+", b: "+b+", c: "+c); ``` ---- diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index 53c1f78b..2b125701 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 스코프 - `스코프`는 접근할 수 있는 변수, 객체, 함수의 집합입니다. @@ -69,6 +65,6 @@ console.log("a: "+a+", b: "+b+", c: "+c); 이 명령어를 실행해 프로그램이 올바른지 확인하세요. -`javascripting verify scope.js` - ---- +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/problem_nb-no.md b/problems/scope/problem_nb-no.md index 7bcbfc8d..cfc3590e 100644 --- a/problems/scope/problem_nb-no.md +++ b/problems/scope/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# SCOPE - `Scope` er de variablene, objektene og funksjonene du har tilgang til. JavaScript har to scope: `global` og `lokal`. En variabel som er deklarert utenfor en funksjon er en `global` variabel. Dens verdi er tilgjengelig og kan endres gjennom hele programmet ditt. En variabel som er deklarert inni en funksjon er `lokal`. Den lages og fjernes hver gang funksjonen kjøres og variabelen kan ikke nås av kode som er utenfor funksjonen. @@ -69,6 +65,6 @@ console.log("a: "+a+", b: "+b+", c: "+c); Se om programmet ditt er riktig ved å kjøre kommandoen: -`javascripting verify scope.js` - ---- +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/problem_pt-br.md b/problems/scope/problem_pt-br.md index df0b76e9..563e63e8 100644 --- a/problems/scope/problem_pt-br.md +++ b/problems/scope/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# ESCOPO - `Escopo` é o conjunto de variáveis, objetos, e funções dos quais temos acesso. O JavaScript tem dois escopos: `global` e `local`. Uma variável que é declarada fora da definição de uma função é uma variável `global`, e o seu valor pode ser acessado e modificado á partir de qualquer parte do seu programa. Uma variável que é declarada dentro da definição de uma função é `local`. Ela é criada e destruída toda vez que a função é executada, e não pode ser acessada por qualquer código fora da função. @@ -70,6 +66,6 @@ console.log("a: "+a+", b: "+b+", c: "+c); Verifique se o seu programa está correto executando o comando: -`javascripting verify scope.js` - ---- +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/problem_uk.md b/problems/scope/problem_uk.md index afd8ee47..a537a8a9 100644 --- a/problems/scope/problem_uk.md +++ b/problems/scope/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ОБЛАСТЬ ВИДИМОСТІ - `Область видимості (Scope)` — це множина змінних, об’єктів та функцій до яких ви маєте доступ. JavaScript має дві області видимості: `глобальну` та `локальну`. Змінні, що оголошені поза визначенням функції є `глобальною` змінною, тож її значення буде доступне для читання та модифікації у всій вашій програмі. Змінну, яка оголошена всередині визначення функції, називають `локальною`. Вона створюється та знищується кожного разу коли функція виконується і її значення не можна отримати поза цієї функції. @@ -68,6 +64,6 @@ console.log("a: "+a+", b: "+b+", c: "+c); Перевірте вашу відповідь запустивши команду: -`javascripting verify scope.js` - ---- +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/problem_zh-cn.md b/problems/scope/problem_zh-cn.md index 81a81f31..b55f7289 100644 --- a/problems/scope/problem_zh-cn.md +++ b/problems/scope/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 作用域 - `作用域` 就是你能访问到的变量、对象以及函数的集合。 JavaScript 有两种类型的作用域:`全局` 以及 `局部`。函数外声明的变量是一个 `全局` 变量,它的值可以在整个程序中被访问和修改。函数内声明的变量是 `局部` 的,它随着函数的调用而被创建,随着函数的结束而被销毁。它不能在函数外被访问。 @@ -65,4 +61,3 @@ var a = 1, b = 2, c = 3; ```js console.log("a: "+a+", b: "+b+", c: "+c); ``` ---- \ No newline at end of file diff --git a/problems/string-length/problem.md b/problems/string-length/problem.md index a00d101a..443015ba 100644 --- a/problems/string-length/problem.md +++ b/problems/string-length/problem.md @@ -1,7 +1,3 @@ ---- - -# STRING LENGTH - You will often need to know how many characters are in a string. For this you will use the `.length` property. Here's an example: @@ -11,7 +7,7 @@ var example = 'example string'; example.length ``` -#NOTE +## NOTE Make sure there is a period between `example` and `length`. @@ -31,5 +27,3 @@ Use `console.log` to print the **length** of the string to the terminal. **Check to see if your program is correct by running this command:** `javascripting verify string-length.js` - ---- diff --git a/problems/string-length/problem_es.md b/problems/string-length/problem_es.md index f280cce0..4240da47 100644 --- a/problems/string-length/problem_es.md +++ b/problems/string-length/problem_es.md @@ -1,7 +1,3 @@ ---- - -# LONGITUD DE STRINGS - Muy seguido necesitarás saber cuantos caracteres hay en una string. Para esto, usarás la propiedad `.length`. Por ejemplo: @@ -11,7 +7,7 @@ var example = 'example string'; example.length ``` -#NOTA +## NOTA Asegúrate de que hay un punto entre `example` y `length` @@ -31,5 +27,3 @@ Utiliza `console.log` para imprimir el **length** de la string a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: `javascripting verify string-length.js` - ---- diff --git a/problems/string-length/problem_ja.md b/problems/string-length/problem_ja.md index 948029f8..82571e5e 100644 --- a/problems/string-length/problem_ja.md +++ b/problems/string-length/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 文字列の長さ - ある文字列の文字数を知りたいことがあります。 そういう時は `.length` プロパティを使います。たとえば... @@ -28,5 +24,3 @@ example.length 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 `javascripting verify string-length.js` - ---- diff --git a/problems/string-length/problem_ko.md b/problems/string-length/problem_ko.md index 3995af09..5e396c97 100644 --- a/problems/string-length/problem_ko.md +++ b/problems/string-length/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 문자열 길이 - 문자열에 얼마나 많은 문자가 있는지 알아야 할 때가 자주 있을 겁니다. 이는 `.length` 속성을 이용하면 알 수 있습니다. 다음 예제를 보세요. @@ -11,13 +7,12 @@ var example = 'example string'; example.length ``` -# 주의 +## 주의 `example`과 `length` 사이에 마침표가 있는 것을 확인하세요. 위의 코드는 문자열 안에 있는 전체 문자의 **수**를 반환합니다. - ## 도전 과제 `string-length.js`라는 파일을 만듭니다. @@ -31,5 +26,3 @@ example.length **이 명령어를 실행해 프로그램이 올바른지 확인하세요.** `javascripting verify string-length.js` - ---- diff --git a/problems/string-length/problem_nb-no.md b/problems/string-length/problem_nb-no.md index 6567397c..e1aec40c 100644 --- a/problems/string-length/problem_nb-no.md +++ b/problems/string-length/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# LENGDEN AV EN STRENG - Du har ofte behov for å vite hvor mange tegn det er i en streng. For å finne ut det kan du bruke `.length` egenskapen. Slik som dette: @@ -11,7 +7,7 @@ var example = 'eksempel streng'; example.length ``` -#OBS +## OBS Pass på at du har et punktum mellom `example` og `length`. @@ -31,5 +27,3 @@ Til å skrive ut lengden på strengen til skjermen kan du bruke `console.log`. **Se om programmet ditt er riktig ved å kjøre denne:** `javascripting verify string-length.js` - ---- diff --git a/problems/string-length/problem_pt-br.md b/problems/string-length/problem_pt-br.md index 4cb3092a..1083625d 100644 --- a/problems/string-length/problem_pt-br.md +++ b/problems/string-length/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# TAMANHO DA STRING - Você irá frequentemente precisar saber quantos caracteres estão em uma string. Para isso você usará a propriedade `.length` da string. Aqui está um exemplo: @@ -11,7 +7,7 @@ var example = 'example string'; example.length; ``` -# OBSERVAÇÕES +## OBSERVAÇÕES Tenha certeza de que existe um ponto entre `example` e `length`. @@ -31,5 +27,3 @@ Use o `console.log` para imprimir o **length** (tamanho) da string no terminal. **Verifique se o seu projeto está correto executando o comando:** `javascripting verify string-length.js` - ---- diff --git a/problems/string-length/problem_uk.md b/problems/string-length/problem_uk.md index 1eebeeaf..07443097 100644 --- a/problems/string-length/problem_uk.md +++ b/problems/string-length/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ДОВЖИНА РЯДКА - Часто вам мотрібно буде дізнатись довжину рядка. Для цього ви можете використати властивість `.length`. Ось приклад: @@ -11,7 +7,7 @@ var example = 'example string'; example.length ``` -# ЗАУВАЖЕННЯ +## ЗАУВАЖЕННЯ Впевніться, що між `example` та `length` стоїть крапка. @@ -31,5 +27,3 @@ example.length **Перевірте вашу відповідь запустивши команду:** `javascripting verify string-length.js` - ---- diff --git a/problems/string-length/problem_zh-cn.md b/problems/string-length/problem_zh-cn.md index 9588a3b3..51efd2e3 100644 --- a/problems/string-length/problem_zh-cn.md +++ b/problems/string-length/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 字符串长度 - 在程序中我们经常需要知道一个字符串中到底包含了多少字符。 你可以使用 `.length` 来得到它。下面是一个例子: @@ -11,7 +7,7 @@ var example = 'example string'; example.length ``` -# 注 +## 注 不要忘记 `example` 和 `length` 之间的英文句号。 @@ -31,5 +27,3 @@ example.length **运行下面的命令来检查你的程序是否正确:** `javascripting verify string-length.js` - ---- diff --git a/problems/strings/problem.md b/problems/strings/problem.md index 3533b04b..a897f718 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -1,7 +1,3 @@ ---- - -# STRINGS - A **string** is any value surrounded by quotes. It can be single or double quotes: @@ -11,7 +7,8 @@ It can be single or double quotes: "this is also a string" ``` -#NOTE + +## NOTE Try to stay consistent. In this workshop we'll only use single quotes. @@ -30,5 +27,3 @@ Use `console.log` to print the variable **someString** to the terminal. Check to see if your program is correct by running this command: `javascripting verify strings.js` - ---- diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index e1b5d79e..7b1febd1 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -1,7 +1,3 @@ ---- - -# STRINGS - Una **string** representa una cadena de caracteres y se puede definir con comillas dobles o simples. Por ejemplo: @@ -30,5 +26,3 @@ Utiliza `console.log` para imprimir la variable `someString` a la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: `javascripting verify strings.js` - ---- diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index d6ef268d..fbc1ae5b 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 文字列 - **文字列**は引用符でくくった値です。 引用符は一重引用符と二重引用符のどちらも使えます。例えば... @@ -29,5 +25,3 @@ var someString = 'this is a string'; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 `javascripting verify strings.js` - ---- diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index fc077c99..e6df058d 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 문자열 - **문자열**은 따옴표로 감싸진 값입니다. 이는 작은따옴표도 될 수 있고 큰따옴표도 될 수 있습니다. @@ -30,5 +26,3 @@ var someString = 'this is a string'; 이 명령어를 실행해 프로그램이 올바른지 확인하세요. `javascripting verify strings.js` - ---- diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index bceb1fda..d7c15c69 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# STRINGS - En **string** er en verdi omgitt av anførselsteng eller apostrof: ```js @@ -28,5 +24,3 @@ For å skrive variabelen **someString** til skjermen kan du bruke `console.log`. Se om programmet ditt er riktig ved å kjøre denne kommandoen: `javascripting verify strings.js` - ---- diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index a5d8def7..ce265c88 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# STRINGS - Uma **string** pode ser qualquer valor cercado de aspas. Pode ser usado aspas simples ou aspas duplas: @@ -30,5 +26,3 @@ Use o `console.log` para imprimir a variável **someString** para o terminal. Verifique se o seu programa está correto executando este comando: `javascripting verify strings.js` - ---- diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index e95bfb5e..fbb332cc 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# РЯДКИ - **Рядком (String)** є будь-яке значення огорнуте в лапки. Це можуть бути або одинарні, або подвійні дужки: @@ -30,5 +26,3 @@ var someString = 'this is a string'; Перевірте вашу відповідь запустивши команду: `javascripting verify strings.js` - ---- diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index f61474b5..bf81f93b 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 字符串 - **字符串**就是被引号包裹起来的任意的值。 单引号或双引号效果是一样的: @@ -30,5 +26,3 @@ var someString = 'this is a string'; 运行下面的命令来检查你的程序是否正确: `javascripting verify strings.js` - ---- diff --git a/problems/variables/problem.md b/problems/variables/problem.md index afae55fd..b1474dbc 100644 --- a/problems/variables/problem.md +++ b/problems/variables/problem.md @@ -1,7 +1,3 @@ ---- - -# VARIABLES - A variable is a name that can reference a specific value. Variables are declared using `var` followed by the variable's name. Here's an example: @@ -35,4 +31,3 @@ Then use `console.log()` to print the `example` variable to the console. Check to see if your program is correct by running this command: `javascripting verify variables.js` ---- diff --git a/problems/variables/problem_es.md b/problems/variables/problem_es.md index 233cdd3d..cd1d322f 100644 --- a/problems/variables/problem_es.md +++ b/problems/variables/problem_es.md @@ -1,7 +1,3 @@ ---- - -# VARIABLES - Una variable es una referencia a un valor. Define una variable usando la palabra reservada `var`. Por ejemplo: @@ -32,4 +28,3 @@ Luego usa `console.log()` para imprimir la variable `example` a la consola. Comprueba si tu programa es correcto ejecutando el siguiente comando: `javascripting verify variables.js` ---- diff --git a/problems/variables/problem_ja.md b/problems/variables/problem_ja.md index 104ec183..6b0717f3 100644 --- a/problems/variables/problem_ja.md +++ b/problems/variables/problem_ja.md @@ -1,7 +1,3 @@ ---- - -# 変数 - 変数は特定の値を示す名前です。 `var` を使って変数を宣言します。 `var` につづけて変数の名前を書きます。 例... @@ -35,5 +31,3 @@ var example = 'some string'; 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 `javascripting verify variables.js` - ---- diff --git a/problems/variables/problem_ko.md b/problems/variables/problem_ko.md index a524eccc..bcd5df1f 100644 --- a/problems/variables/problem_ko.md +++ b/problems/variables/problem_ko.md @@ -1,7 +1,3 @@ ---- - -# 변수 - 변수는 특정 값을 참조하는 이름입니다. 변수는 `var`와 변수의 이름으로 선언합니다. 예제를 보세요. @@ -36,4 +32,3 @@ var example = 'some string'; 이 명령어를 실행해 프로그램이 올바른지 확인하세요. `javascripting verify variables.js` ---- diff --git a/problems/variables/problem_nb-no.md b/problems/variables/problem_nb-no.md index cf83f0bf..59b05d9d 100644 --- a/problems/variables/problem_nb-no.md +++ b/problems/variables/problem_nb-no.md @@ -1,7 +1,3 @@ ---- - -# VARIABLER - En variabel er et navn som kan peke til en spesifikk verdi. Variables deklareres ved å bruke `var` etterfulgt av variablens navn. Her er et eksempel: @@ -35,5 +31,3 @@ For å skrive ut verdien til `example` til skjermen bruk `console.log()`. Se om programmet ditt er riktig ved å kjøre denne kommandoen: `javascripting verify variables.js` - ---- diff --git a/problems/variables/problem_pt-br.md b/problems/variables/problem_pt-br.md index c5ddeffb..b15cafc7 100644 --- a/problems/variables/problem_pt-br.md +++ b/problems/variables/problem_pt-br.md @@ -1,7 +1,3 @@ ---- - -# VARIÁVEIS - Uma variável é o nome que pode fazer referência a um valor específico. Variáveis são declaradas usando a palavra `var` seguida do nome da variável. Aqui está um exemplo: @@ -37,4 +33,3 @@ Então use o `console.log()` para imprimir a variável `example` no console. Verifique se o seu programa está correto executando este comando: `javascripting verify variables.js` ---- diff --git a/problems/variables/problem_uk.md b/problems/variables/problem_uk.md index bc250f29..48360607 100644 --- a/problems/variables/problem_uk.md +++ b/problems/variables/problem_uk.md @@ -1,7 +1,3 @@ ---- - -# ЗМІННІ - Змінною називають ім’я, яке посилається на певне значення. Змінні оголошуються з допомогою ключового слова `var`, за яким слідує ім’я змінної. Приклад оголошення змінної: @@ -35,4 +31,3 @@ var example = 'some string'; Перевірте вашу відповідь запустивши команду: `javascripting verify variables.js` ---- diff --git a/problems/variables/problem_zh-cn.md b/problems/variables/problem_zh-cn.md index cbc3977a..447af923 100644 --- a/problems/variables/problem_zh-cn.md +++ b/problems/variables/problem_zh-cn.md @@ -1,7 +1,3 @@ ---- - -# 变量 - 变量就是一个可以引用具体值的名字。变量通过使用 `var` 及紧随其后的变量名来声明。 下面是一个例子: @@ -36,4 +32,3 @@ var example = 'some string'; 运行下面的命令来检查你的程序是否正确: `javascripting verify variables.js` ---- From d4a0ef5809fa3a6198fc8bc1b38b120e759e6ca1 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Wed, 21 Oct 2015 23:13:36 +0900 Subject: [PATCH 168/346] Forgot to remove dependency on cli-md --- lib/get-file.js | 1 - package.json | 1 - 2 files changed, 2 deletions(-) diff --git a/lib/get-file.js b/lib/get-file.js index 84a8a786..372da454 100644 --- a/lib/get-file.js +++ b/lib/get-file.js @@ -1,6 +1,5 @@ var fs = require('fs'); var path = require('path'); -var md = require('cli-md'); module.exports = function (filepath) { return fs.readFileSync(filepath, 'utf8') diff --git a/package.json b/package.json index e0235bbc..78d3fa5a 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,6 @@ "main": "./index.js", "preferGlobal": true, "dependencies": { - "cli-md": "^0.1.0", "colors": "^1.0.3", "diff": "^1.2.1", "workshopper-adventure": "^4.0.4" From 482c0f10e554bc0c8d39e4c39951b1d692099037 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Wed, 21 Oct 2015 23:17:29 +0900 Subject: [PATCH 169/346] Forgot that the text was copied into every troubleshooting translation --- i18n/troubleshooting_es.md | 2 -- i18n/troubleshooting_ja.md | 2 -- i18n/troubleshooting_ko.md | 2 -- i18n/troubleshooting_nb-no.md | 2 -- i18n/troubleshooting_pt-br.md | 2 -- i18n/troubleshooting_uk.md | 2 -- i18n/troubleshooting_zh-cn.md | 2 -- 7 files changed, 14 deletions(-) diff --git a/i18n/troubleshooting_es.md b/i18n/troubleshooting_es.md index 61527fb9..7a30b01f 100644 --- a/i18n/troubleshooting_es.md +++ b/i18n/troubleshooting_es.md @@ -24,5 +24,3 @@ * ¿Escribiste correctamente el nombre del archivo? Lo puedes comprobar ejecutanto ls `%filename%`, si ves: ls: cannot access `%filename%`: No such file or directory entonces deberias crear un nuevo archivo, renombrar el existente o cambiar de carpeta a la que contenga el archivo * Asegúrate de no omitir paréntesis, ya que de otra manera el compilador no sería capaz de parsearlo. * Asegúrate de no cometer ningún tipo de error ortográfico - -> **¿Necesita ayuda?** Has una pregunta en: github.com/nodeschool/discussions/issues \ No newline at end of file diff --git a/i18n/troubleshooting_ja.md b/i18n/troubleshooting_ja.md index 3b8ecd08..2fa5e2fc 100644 --- a/i18n/troubleshooting_ja.md +++ b/i18n/troubleshooting_ja.md @@ -24,5 +24,3 @@ * ファイル名をタイプミスしていませんか? ls `%filename%` を実行すれば確認できます。もし ls: cannot access `%filename%`: No such file or directory と表示されたら、新しいファイルを作るか、すでにあるファイルの名前を変えるか、ファイルがあるディレクトリを変更する必要があるかもしれません。 * カッコを省略していませんか?省略するとコンパイラはJavaScriptファイル正しく読むことができません。 * ファイルの中身にタイプミスはありませんか? - -> **助けが必要ですか?** github.com/nodeschool/discussions/issues で質問してください \ No newline at end of file diff --git a/i18n/troubleshooting_ko.md b/i18n/troubleshooting_ko.md index 17ace923..4fe0d6ee 100644 --- a/i18n/troubleshooting_ko.md +++ b/i18n/troubleshooting_ko.md @@ -24,5 +24,3 @@ * 파일 이름을 정확히 입력하셨나요? ls `%filename%`을 실행해 확인할 수 있습니다. ls: cannot access `%filename%`: No such file or directory가 나왔다면 새 파일을 만들거나, 이미 있는 파일이나 디렉터리의 이름을 바꾸면 됩니다. * 괄호를 빼먹지 않았는지 확인하세요. 그러면 컴파일러가 파싱할 수 없습니다. * 문자열 자체에 오타가 없는지 확인하세요. - -> **도움이 필요하세요?** 여기에서 질문하세요! github.com/nodeschool/discussions/issues diff --git a/i18n/troubleshooting_nb-no.md b/i18n/troubleshooting_nb-no.md index 954c42ab..f495853d 100644 --- a/i18n/troubleshooting_nb-no.md +++ b/i18n/troubleshooting_nb-no.md @@ -24,5 +24,3 @@ * Er du sikker på at du skrev filnavnet riktig? Du kan dobbeltsjekket ved å kjøre ls `%filename%`, hvis du ser: cannot access `%filename%`: No such file or directory burde du lage filen med det navnet / gi filen nytt navn eller bytte til katalogen hvor filen er lagret * Sjekk at du ikke ha glemt noen paranteser, det hindrer programmet å bli lest / kompileres * Sjekk at du ikke har skrivefeil i stringen som ble skrevet ut - -> **Trenger du hjelp?** Spør et spørsmål på: github.com/nodeschool/discussions/issues diff --git a/i18n/troubleshooting_pt-br.md b/i18n/troubleshooting_pt-br.md index d17c293a..871956c8 100644 --- a/i18n/troubleshooting_pt-br.md +++ b/i18n/troubleshooting_pt-br.md @@ -24,5 +24,3 @@ * Você digitou o nome do arquivo corretamente? Certifique-se de que o nome do arquivo é `%filename%`. * Verifique se você não se esqueceu dos parênteses, já que de outra maneira o compilador não iria conseguir ler o arquivo. * Certifique-se de não ter cometido erros ortográficos. - -> **Precisa de ajuda?** Faça uma pergunta: github.com/nodeschool/discussions/issues diff --git a/i18n/troubleshooting_uk.md b/i18n/troubleshooting_uk.md index 6285f345..5ba03d2c 100644 --- a/i18n/troubleshooting_uk.md +++ b/i18n/troubleshooting_uk.md @@ -24,5 +24,3 @@ * Чи ввели ви ім’я файлу коректно? Ви можете перевірити це запустивши ls '%filename%', якщо ви отримаєте ls: cannot access '%filename%': No such file or directory тоді вам слід створити новий файл, перейменувати чинну директорію або змінити поточну директорію на ту, яка містить потрібний файл * Переконайтесь, що ви не забули про дужки () — через це можуть виникнути проблеми з компілятором * Переконайтесь, що ви не допустили жодних помилок у введених рядках - -> **Потрібна допомога?** Запитайте на: github.com/nodeschool/discussions/issues diff --git a/i18n/troubleshooting_zh-cn.md b/i18n/troubleshooting_zh-cn.md index d2cf3a23..9be688fa 100644 --- a/i18n/troubleshooting_zh-cn.md +++ b/i18n/troubleshooting_zh-cn.md @@ -24,5 +24,3 @@ * 确保你的文件名是正确的 * 确保你没有省略必要的括号,否则编译器将无法理解它们 * 确保你在字符串中没有笔误(可能叫键盘误更好一些) - -> **需要帮助?** 在这里提出你的问题:github.com/nodeschool/discussions/issues From ba472474901643cee868aecc16075bf1c18ca8b9 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Fri, 23 Oct 2015 00:18:42 -0700 Subject: [PATCH 170/346] v2.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 78d3fa5a..2bb14f5c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.1.0", + "version": "2.2.0", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From 839d2960121537c9cdb54e9e9b37299b67f2346e Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Sat, 24 Oct 2015 08:16:26 +0900 Subject: [PATCH 171/346] Fixes #144 --- lib/problem.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/problem.js b/lib/problem.js index 5ae65e12..87d19902 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -39,7 +39,7 @@ module.exports = function createProblem(dirname) { exports.fail = [ {text: message, type: 'md' }, - require('./lib/footer.js') + require('./footer.js') ] cb(false); From 3e56aa52e88bb9ffba60f8e176a0065f85d3fb81 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Fri, 23 Oct 2015 16:19:00 -0700 Subject: [PATCH 172/346] v2.2.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2bb14f5c..0b69ad0c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.2.0", + "version": "2.2.1", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From 92e5c82d32dfa428c7fe8b9845436666af92d265 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Sat, 24 Oct 2015 08:39:38 +0900 Subject: [PATCH 173/346] 2.3.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0b69ad0c..944fe168 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.2.1", + "version": "2.3.0", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From bc0b059b3c9181c1ca270089055d44cb00325c85 Mon Sep 17 00:00:00 2001 From: Kriszta Matyi Date: Wed, 4 Nov 2015 16:40:19 +0000 Subject: [PATCH 174/346] adding missing word in problems/numbers/problem.md I've noticed this typo while doing the workshop, have added the word have to the sentence. --- problems/numbers/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/numbers/problem.md b/problems/numbers/problem.md index d85bd6c9..9b9655ce 100644 --- a/problems/numbers/problem.md +++ b/problems/numbers/problem.md @@ -1,6 +1,6 @@ Numbers can be integers, like `2`, `14`, or `4353`, or they can be decimals, also known as floats, like `3.14`, `1.5`, or `100.7893423`. -Unlike Strings, Numbers do not need to quotes. +Unlike Strings, Numbers do not need to have quotes. ## The challenge: From 1fd9c3de92716227d8aa914ef838b2c104e42ee5 Mon Sep 17 00:00:00 2001 From: Shim Won Date: Sat, 7 Nov 2015 14:33:42 +0900 Subject: [PATCH 175/346] Update Korean translations --- problems/introduction/problem_ko.md | 29 +++++++++++++++++++++++------ problems/scope/problem_ko.md | 2 +- problems/strings/problem_ko.md | 3 ++- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md index 0b74821e..a04d7c47 100644 --- a/problems/introduction/problem_ko.md +++ b/problems/introduction/problem_ko.md @@ -1,11 +1,30 @@ 정돈을 위해 이 워크숍을 위한 폴더를 만듭시다. -`mkdir javascripting` 명령어를 실행해 `javascripting`이라는 디렉터리(다른 이름이어도 됩니다)를 만드세요. +```bash +mkdir javascripting +``` + +위 명령어를 실행해 `javascripting`이라는 디렉터리(다른 이름이어도 됩니다)를 만드세요. + +```bash +cd javascripting +``` + +을 통해 `javascripting` 폴더 안으로 디렉터리를 변경하세요. + +```bash +touch introduction.js +``` + +를 입력해 `introduction.js`이라는 파일을 만드세요. + +윈도우라면 -`cd javascripting`을 통해 `javascripting` 폴더 안으로 디렉터리를 변경하세요. +```bash +type NUL > introduction.js +``` -`touch introduction.js`를 입력해 `introduction.js`이라는 파일을 만드세요. -윈도우라면 `type NUL > introduction.js`(`type`도 명령어의 일부입니다!)로 만들 수 있습니다. +(`type`도 명령어의 일부입니다!)로 만들 수 있습니다. 좋아하는 편집기에서 파일을 열고 다음 내용을 넣으세요. @@ -24,5 +43,3 @@ javascripting verify introduction.js ```bash javascripting verify catsAreAwesome.js ``` - - diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index 2b125701..b90b0d5b 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -58,7 +58,7 @@ var a = 1, b = 2, c = 3; })(); ``` -변수의 `스코프`에 관한 지식을 활용해 다음 코드를 'scope.js' 안의 함수 안에 넣어 `a: 1, b: 8,c: 6`를 출력하게 하세요. +변수의 `스코프`에 관한 지식을 활용해 다음 코드를 `scope.js` 안의 함수 안에 넣어 `a: 1, b: 8,c: 6`를 출력하게 하세요. ```js console.log("a: "+a+", b: "+b+", c: "+c); ``` diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index e6df058d..424caf7c 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -7,7 +7,8 @@ "this is also a string" ``` -# 주의 + +## 주의 일관성을 유지하도록 노력해보세요. 이 워크숍에서는 작은따옴표만 사용하도록 하겠습니다. From 37aac27122a430ee24673b063e79264da8a9dce5 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Fri, 20 Nov 2015 18:26:27 -0800 Subject: [PATCH 176/346] add note about needing node v5.1.0 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 555f6af0..a25ae22a 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ Make sure Node.js is installed on your computer. Install it from [nodejs.org/download](http://nodejs.org/download) +On Windows and using v4 or v5 of Node.js? Make sure you are using at least 5.1.0, which provides a fix for a bug on Windows where you can't choose items in the menu. + ### Install `javascripting` with `npm` Open your terminal and run this command: From e3c79714de2203abfc226741f83ac09f30036291 Mon Sep 17 00:00:00 2001 From: claudiopro Date: Sun, 13 Sep 2015 10:41:46 +0200 Subject: [PATCH 177/346] Adds Italian translation --- i18n/footer/it.md | 1 + i18n/it.json | 23 ++++++ i18n/troubleshooting_it.md | 26 +++++++ index.js | 2 +- problems/accessing-array-values/problem_it.md | 47 +++++++++++++ .../accessing-array-values/solution_it.md | 11 +++ problems/array-filtering/problem_it.md | 45 ++++++++++++ problems/array-filtering/solution_it.md | 11 +++ problems/arrays/problem_it.md | 19 +++++ problems/arrays/solution_it.md | 11 +++ problems/for-loop/problem_it.md | 39 +++++++++++ problems/for-loop/solution_it.md | 11 +++ problems/function-arguments/problem_it.md | 35 ++++++++++ problems/function-arguments/solution_it.md | 9 +++ problems/function-return-values/problem_it.md | 5 ++ .../function-return-values/solution_it.md | 5 ++ problems/functions/problem_it.md | 38 ++++++++++ problems/functions/solution_it.md | 9 +++ problems/if-statement/problem_it.md | 32 +++++++++ problems/if-statement/solution_it.md | 11 +++ problems/introduction/problem_it.md | 43 ++++++++++++ problems/introduction/solution_it.md | 19 +++++ problems/looping-through-arrays/problem_it.md | 45 ++++++++++++ .../looping-through-arrays/solution_it.md | 11 +++ problems/number-to-string/problem_it.md | 24 +++++++ problems/number-to-string/solution_it.md | 11 +++ problems/numbers/problem_it.md | 15 ++++ problems/numbers/solution_it.md | 11 +++ problems/object-keys/problem_it.md | 5 ++ problems/object-keys/solution_it.md | 5 ++ problems/object-properties/problem_it.md | 43 ++++++++++++ problems/object-properties/solution_it.md | 11 +++ problems/objects/problem_it.md | 32 +++++++++ problems/objects/solution_it.md | 11 +++ problems/revising-strings/problem_it.md | 29 ++++++++ problems/revising-strings/solution_it.md | 11 +++ problems/rounding-numbers/problem_it.md | 29 ++++++++ problems/rounding-numbers/solution_it.md | 11 +++ problems/scope/problem_it.md | 70 +++++++++++++++++++ problems/scope/solution_it.md | 9 +++ problems/string-length/problem_it.md | 29 ++++++++ problems/string-length/solution_it.md | 9 +++ problems/strings/problem_it.md | 29 ++++++++ problems/strings/solution_it.md | 11 +++ problems/this/problem_it.md | 5 ++ problems/this/solution_it.md | 5 ++ problems/variables/problem_it.md | 33 +++++++++ problems/variables/solution_it.md | 11 +++ 48 files changed, 966 insertions(+), 1 deletion(-) create mode 100644 i18n/footer/it.md create mode 100644 i18n/it.json create mode 100644 i18n/troubleshooting_it.md create mode 100644 problems/accessing-array-values/problem_it.md create mode 100644 problems/accessing-array-values/solution_it.md create mode 100644 problems/array-filtering/problem_it.md create mode 100644 problems/array-filtering/solution_it.md create mode 100644 problems/arrays/problem_it.md create mode 100644 problems/arrays/solution_it.md create mode 100644 problems/for-loop/problem_it.md create mode 100644 problems/for-loop/solution_it.md create mode 100644 problems/function-arguments/problem_it.md create mode 100644 problems/function-arguments/solution_it.md create mode 100644 problems/function-return-values/problem_it.md create mode 100644 problems/function-return-values/solution_it.md create mode 100644 problems/functions/problem_it.md create mode 100644 problems/functions/solution_it.md create mode 100644 problems/if-statement/problem_it.md create mode 100644 problems/if-statement/solution_it.md create mode 100644 problems/introduction/problem_it.md create mode 100644 problems/introduction/solution_it.md create mode 100644 problems/looping-through-arrays/problem_it.md create mode 100644 problems/looping-through-arrays/solution_it.md create mode 100644 problems/number-to-string/problem_it.md create mode 100644 problems/number-to-string/solution_it.md create mode 100644 problems/numbers/problem_it.md create mode 100644 problems/numbers/solution_it.md create mode 100644 problems/object-keys/problem_it.md create mode 100644 problems/object-keys/solution_it.md create mode 100644 problems/object-properties/problem_it.md create mode 100644 problems/object-properties/solution_it.md create mode 100644 problems/objects/problem_it.md create mode 100644 problems/objects/solution_it.md create mode 100644 problems/revising-strings/problem_it.md create mode 100644 problems/revising-strings/solution_it.md create mode 100644 problems/rounding-numbers/problem_it.md create mode 100644 problems/rounding-numbers/solution_it.md create mode 100644 problems/scope/problem_it.md create mode 100644 problems/scope/solution_it.md create mode 100644 problems/string-length/problem_it.md create mode 100644 problems/string-length/solution_it.md create mode 100644 problems/strings/problem_it.md create mode 100644 problems/strings/solution_it.md create mode 100644 problems/this/problem_it.md create mode 100644 problems/this/solution_it.md create mode 100644 problems/variables/problem_it.md create mode 100644 problems/variables/solution_it.md diff --git a/i18n/footer/it.md b/i18n/footer/it.md new file mode 100644 index 00000000..3387371b --- /dev/null +++ b/i18n/footer/it.md @@ -0,0 +1 @@ +__Serve aiuto?__ Leggi il README di questo workshop: http://github.com/sethvincent/javascripting diff --git a/i18n/it.json b/i18n/it.json new file mode 100644 index 00000000..724a730e --- /dev/null +++ b/i18n/it.json @@ -0,0 +1,23 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUZIONE" + , "VARIABLES": "LE VARIABILI" + , "STRINGS": "LE STRINGHE" + , "STRING LENGTH": "LUNGHEZZA DI UNA STRINGA" + , "REVISING STRINGS": "MODIFICARE UNA STRINGA" + , "NUMBERS": "I NUMERI" + , "ROUNDING NUMBERS": "ARROTONDARE UN NUMERO" + , "NUMBER TO STRING": "DA NUMERO A STRINGA" + , "IF STATEMENT": "BLOCCO CONDIZIONALE IF" + , "FOR LOOP": "CICLO FOR" + , "ARRAYS": "GLI ARRAY" + , "ARRAY FILTERING": "FILTRARE UN ARRAY" + , "ACCESSING ARRAY VALUES": "ACCEDERE AD UN ARRAY" + , "LOOPING THROUGH ARRAYS": "PERCORRERE UN ARRAY" + , "OBJECTS": "GLI OGGETTI" + , "OBJECT PROPERTIES": "PROPRIETÀ DI UN OGGETTO" + , "FUNCTIONS": "LE FUNZIONI" + , "FUNCTION ARGUMENTS": "ARGOMENTI DELLA FUNZIONE" + , "SCOPE": "LO SCOPE" + } +} diff --git a/i18n/troubleshooting_it.md b/i18n/troubleshooting_it.md new file mode 100644 index 00000000..8ee67017 --- /dev/null +++ b/i18n/troubleshooting_it.md @@ -0,0 +1,26 @@ +--- +# Uh-oh, qualcosa non ha funzionato. +# Niente panico! +--- + +## Verifica la tua soluzione: + +`Soluzione +===================` + +%solution% + +`Il tuo tentativo +===================` + +%attempt% + +`Differenza +===================` + +%diff% + +## Risoluzione dei problemi: + * Hai scritto correttamente il nome del file? Puoi verificare eseguendo il comando ls `%filename%`; se ti viene risposto ls: cannot access `%filename%`: No such file or directory allora devi creare un nuovo file o rinominare il file esistente, o cambiare la directory di lavoro con quella contenente il file. + * Assicurati di non aver omesso delle parentesi, altrimenti l'interprete potrebbe incontrare errori nell'eseguirlo + * Assicurati di non aver commesso errori nel comando stesso diff --git a/index.js b/index.js index cb0a82a9..cb4312e0 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ var jsing = require('workshopper-adventure')({ appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no', 'uk'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no', 'uk', 'it'] , header: require('workshopper-adventure/default/header') , footer: require('./lib/footer.js') }); diff --git a/problems/accessing-array-values/problem_it.md b/problems/accessing-array-values/problem_it.md new file mode 100644 index 00000000..ac5964a7 --- /dev/null +++ b/problems/accessing-array-values/problem_it.md @@ -0,0 +1,47 @@ +È possibile accedere agli elementi di un array tramite il loro indice numerico. + +L'indice numerico comincia da zero e arriva al valore della proprietà `length` dell'array meno uno. + +Ecco un esempio: + + +```js +var pets = ['cat', 'dog', 'rat']; + +console.log(pets[0]); +``` + +Il codice precedente stampa il primo elemento dell'array `pets` - la stringa `cat`. + +È necessario accedere agli elementi dell'array soltanto attraverso la notazione con parentesi quadre. + +La notazione puntata non è valida. + +Notazione valida: + +```js +console.log(pets[0]); +``` + +Notazione non valida: +``` +console.log(pets.1); +``` + +## La sfida: + +Crea un file dal nome `accessing-array-values.js`. + +In questo file, definisci l'array `food` : +```js +var food = ['apple', 'pizza', 'pear']; +``` + + +Usa `console.log()` per stampare il `secondo` valore dell'array sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/solution_it.md b/problems/accessing-array-values/solution_it.md new file mode 100644 index 00000000..a7d3d54b --- /dev/null +++ b/problems/accessing-array-values/solution_it.md @@ -0,0 +1,11 @@ +--- + +# HAI STAMPATO IL SECONDO ELEMENTO DELL'ARRAY! + +Ottimo lavoro nell'accedere all'elemento dell'array. + +Nella prossima sfida lavoreremo su un esempio di iterazione sugli elementi di un array. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/array-filtering/problem_it.md b/problems/array-filtering/problem_it.md new file mode 100644 index 00000000..b91c430a --- /dev/null +++ b/problems/array-filtering/problem_it.md @@ -0,0 +1,45 @@ +Esistono parecchie maniere di manipolare gli array. + +Un compito comune è filtrare gli array perché contengano soltanto i valori desiderati. + +Per fare ciò possiamo utilizzare il metodo `.filter()`. + +Ecco un esempio: + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +La variabile `filtered` conterrà soltanto `cat` e `dog`. + +## La sfida: + +Crea un file dal nome `array-filtering.js`. + +In questo file, definisci una variabile chiamata `numbers` che fa riferimento a questo array: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +Come sopra, definisci una variabile chiamata `filtered` che fa riferimento al risultato di `numbers.filter()`. + +La funzione che passerai al metodo `.filter()` dovrà apparire come segue: + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +Usa `console.log()` per stampare l'array `filtered` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/solution_it.md b/problems/array-filtering/solution_it.md new file mode 100644 index 00000000..e3ff93ca --- /dev/null +++ b/problems/array-filtering/solution_it.md @@ -0,0 +1,11 @@ +--- + +# FILTRATO! + +Ottimo lavoro nel filtrare l'array. + +Nella prossima sfida lavoreremo su un esempio di accesso ai valori di un array. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/arrays/problem_it.md b/problems/arrays/problem_it.md new file mode 100644 index 00000000..d8df4b7f --- /dev/null +++ b/problems/arrays/problem_it.md @@ -0,0 +1,19 @@ +Un array è una lista di valori. Ecco un esempio: + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +### La sfida: + +Crea un file dal nome `arrays.js`. + +In questo file, definisci una variabile dal nome `pizzaToppings` che fa riferimento ad un array contenente tre stringhe in quest'ordine: `tomato sauce, cheese, pepperoni`. + +Usa `console.log()` per stampare l'array `pizzaToppings` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/solution_it.md b/problems/arrays/solution_it.md new file mode 100644 index 00000000..c33e5e48 --- /dev/null +++ b/problems/arrays/solution_it.md @@ -0,0 +1,11 @@ +--- + +# EVVIVA, UN ARRAY DI PIZZA! + +Hai creato con successo un array! + +Nella prossima sfida esploreremo come filtrare gli array. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/for-loop/problem_it.md b/problems/for-loop/problem_it.md new file mode 100644 index 00000000..12fe56d8 --- /dev/null +++ b/problems/for-loop/problem_it.md @@ -0,0 +1,39 @@ +I cicli for si presentano come il seguente: + +```js +for (var i = 0; i < 10; i++) { + // scrive i numeri da 0 a 9 + console.log(i) +} +``` + +La variabile `i` viene usata per tenere il conto del numero di volte in cui il ciclo è stato eseguito. + +L'espressione `i < 10;` indica il limite del ciclo. +Il ciclo continuerà ad eseguire le istruzioni se `i` è minore di `10`. + +L'istruzione `i++` incrementa la variabile `i` di 1 ad ogni iterazione. + +## La sfida: + +Crea un file chiamato `for-loop.js`. + +In questo file definisci una variabile chiamata `total` e assegnale il numero `0`. + +Definisci una seconda variabile chiamata `limit` e assegnale il numero `10`. + +Crea un ciclo for con una variabile `i` che inizia da 0 e viene incrementata di 1 ad ogni iterazione del ciclo. Il ciclo deve essere eseguito finché `i` è minore di `limit`. + +Ad ogni iterazione del ciclo, aggiungi il valore di `i` alla variabile `total`. Per fare ciò, puoi usare quest'istruzione: + +```js +total += i; +``` + +Al termine del ciclo for, usa `console.log()` per stampare la variabile `total` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/solution_it.md b/problems/for-loop/solution_it.md new file mode 100644 index 00000000..df8545c3 --- /dev/null +++ b/problems/for-loop/solution_it.md @@ -0,0 +1,11 @@ +--- + +# IL TOTALE È 45 + +Questa era una introduzione basilare ai cicli for, che sono utili in una varietà di situazioni, in particolare in combinazione con altri tipi di dati come stringhe e array. + +Nella prossima sfida cominceremo a lavorare con gli **array**. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/function-arguments/problem_it.md b/problems/function-arguments/problem_it.md new file mode 100644 index 00000000..4e92b995 --- /dev/null +++ b/problems/function-arguments/problem_it.md @@ -0,0 +1,35 @@ +È possibile dichiarare una funzione perché riceva un numero qualsiasi di argomenti. Gli argomenti possono essere di qualunque tipo. Un argomento può essere una stringa, un numero, un array, un oggetto oppure un'altra funzione. + +Ecco un esempio: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +Possiamo **invocare** questa funzione con due argomenti come segue: + +```js +example('ciao', 'mondo'); +``` + +L'esempio precedente scriverà `ciao mondo` sul terminale. + +## La sfida: + +Crea un file dal nome `function-arguments.js`. + +In questo file, definisci una funzione dal nome `math` che riceve tre argomenti. È importante capire che i nomi degli argomenti sono usati soltanto per fare ad essi riferimento. + +Dài a ciascun argomento il nome che desideri. + +Nella funzione `math`, restituisci il valore ottenuto dalla moltiplicazione del secondo e terzo argomento, e sommando il risultato al primo argomento. + +Dopo di ciò, dentro le parentesi di `console.log()`, invoca la funzione `math()` con il numero `53` come primo argomento, il numero `61` come secondo argomento, e il numero `67` come terzo argomento. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/solution_it.md b/problems/function-arguments/solution_it.md new file mode 100644 index 00000000..4412f736 --- /dev/null +++ b/problems/function-arguments/solution_it.md @@ -0,0 +1,9 @@ +--- + +# HAI IL CONTROLLO DEI TUOI ARGOMENTI! + +Ottimo lavoro nel completare l'esercizio. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/function-return-values/problem_it.md b/problems/function-return-values/problem_it.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_it.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_it.md b/problems/function-return-values/solution_it.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_it.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_it.md b/problems/functions/problem_it.md new file mode 100644 index 00000000..4d0c3692 --- /dev/null +++ b/problems/functions/problem_it.md @@ -0,0 +1,38 @@ +Una funzione è un blocco di codice che riceve dati di input, li processa, e infine produce un output. + +Ecco un esempio: + +```js +function example (x) { + return x * 2; +} +``` + +Possiamo **invocare** questa funzione come segue per ottenere il numero 10: + +```js +example(5) +``` + +L'esempio precedente assume che la funzione `example` riceverà un numero come argomento –– ovvero input –– e restituirà quel numero moltiplicato per 2. + +## La sfida: + +Crea un file dal nome `functions.js`. + +In questo file, definisci una funzione dal nome `eat` che accetta un argomento di nome `food` +che ci si aspetta sia una stringa. + +All'interno della funzione restituisci l'argomento `food` come segue: + +```js +return food + ' tasted really good.'; +``` + +Dentro le parentesi di `console.log()`, invoca la funzione `eat()` con la stringa `bananas` come argomento. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/solution_it.md b/problems/functions/solution_it.md new file mode 100644 index 00000000..c1597b7b --- /dev/null +++ b/problems/functions/solution_it.md @@ -0,0 +1,9 @@ +--- + +# UAOO BANANE + +Ce l'hai fatta! Hai creato una funzione che accetta un input, lo processa, e fornisce un output. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/if-statement/problem_it.md b/problems/if-statement/problem_it.md new file mode 100644 index 00000000..cd99794b --- /dev/null +++ b/problems/if-statement/problem_it.md @@ -0,0 +1,32 @@ +Le istruzioni condizionali sono usate per alterare il flusso di controllo di un programma, in base ad una specifica condizione booleana. + +Un'istruzione condizionale appare come segue: + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +Dentro le parentesi devi includere un'istruzione logica, nel senso che il risultato dell'istruzione deve essere vero oppure falso. + +Il blocco `else` è opzionale e contiene del codice che sarà eseguito se la condizione è falsa. + +## La sfida: + +Crea un file dal nome `if-statement.js`. + +In questo file, dichiara una variabile chiamata `fruit`. + +Fa' in modo che la variabile `fruit` referenzi il valore **orange** con il tipo **String**. + +Quindi usa `console.log()` per stampare "**The fruit name has more than five characters."** se la lunghezza del valore di `fruit` è maggiore di cinque. +Altrimenti, stampa "**The fruit name has five characters or less.**" + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/solution_it.md b/problems/if-statement/solution_it.md new file mode 100644 index 00000000..63d16e2c --- /dev/null +++ b/problems/if-statement/solution_it.md @@ -0,0 +1,11 @@ +--- + +# ESPERTO DEI CONDIZIONALI + +Ce l'hai fatta! La stringa `orange` ha più di cinque caratteri. + +Preparati ad affrontare i **cicli for** nel prossimo esercizio! + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/introduction/problem_it.md b/problems/introduction/problem_it.md new file mode 100644 index 00000000..af70853a --- /dev/null +++ b/problems/introduction/problem_it.md @@ -0,0 +1,43 @@ +Per mantenere le cose organizzate, creiamo una cartella per questo workshop. + +Esegui questo comando per creare una directory chiamata `javascripting` (o qualcos'altro a tuo piacere): + +```bash +mkdir javascripting +``` + +Cambia la directory di lavoro con la directory `javascripting`: + +```bash +cd javascripting +``` + +Crea un file dal nome `introduction.js`: + +```bash +touch introduction.js +``` + +oppure, se ti trovi su Windows, +```bash +type NUL > introduction.js +``` +(`type` è parte del comando!) + +Apri il file nel tuo editor preferito, e aggiungi questo testo: + +```js +console.log('hello'); +``` + +Salva il file, quindi verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify introduction.js +``` + +Tra parentesi, lungo il corso di questa guida, puoi dare al file con cui stai lavorando il nome che desideri, quindi se vuoi usare un nome di file come `catsAreAwesome.js` per ciascun esercizio, puoi farlo tranquillamente. Assicurati tuttavia di eseguire il file giusto: + +```bash +javascripting verify catsAreAwesome.js +``` diff --git a/problems/introduction/solution_it.md b/problems/introduction/solution_it.md new file mode 100644 index 00000000..a47a1fc2 --- /dev/null +++ b/problems/introduction/solution_it.md @@ -0,0 +1,19 @@ +--- + +# CE L'HAI FATTA! + +Qualsiasi cosa contenuta tra le parentesi `console.log()` viene stampata sul terminale. + +Quindi questo: + +```js +console.log('hello'); +``` + +stampa `hello` sul terminal. + +Al momento stiamo stampando una **stringa** di caratteri sul terminale: `hello`. + +Nella prossima sfida ci occuperemo di apprendere sulle **variabili**. + +Esegui `javascripting` nella console per scegliere la prossima sfida. diff --git a/problems/looping-through-arrays/problem_it.md b/problems/looping-through-arrays/problem_it.md new file mode 100644 index 00000000..985d18af --- /dev/null +++ b/problems/looping-through-arrays/problem_it.md @@ -0,0 +1,45 @@ +Per questa sfida useremo un **ciclo for** per accedere e manipolare una lista di valori in un array. + +L'accesso ai valori di un array si effettua attraverso un numero intero. + +Ciascun elemento di un array è identificato da un numero, a iniziare dallo `0`. + +Quindi in questo array `hi` è identificato dal numero `1`: + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +E può essere acceduto come segue: + +```js +greetings[1]; +``` + +Quindi dentro un **ciclo for** useremmo la variabile `i` dentro le parentesi quadre anziché usare direttamente un intero. + +## La sfida: + +Crea un file dal nome `looping-through-arrays.js`. + +In questo file, definisci una variabile chiamata `pets` che referenzia questo array: + +```js +['cat', 'dog', 'rat']; +``` + +Crea un ciclo for che cambia ciascuna stringa dell'array nel suo plurale. + +Utilizzerai un'istruzione come questa all'interno del ciclo for: + +```js +pets[i] = pets[i] + 's'; +``` + +Al termine del ciclo for, usa `console.log()` per stampare l'array `pets` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/solution_it.md b/problems/looping-through-arrays/solution_it.md new file mode 100644 index 00000000..2fd5520f --- /dev/null +++ b/problems/looping-through-arrays/solution_it.md @@ -0,0 +1,11 @@ +--- + +# SUCCESS! LOTS OF PETS! + +Now all the items in that `pets` array are plural! + +In the next challenge we will move from arrays to working with **objects**. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/number-to-string/problem_it.md b/problems/number-to-string/problem_it.md new file mode 100644 index 00000000..03f1cbbd --- /dev/null +++ b/problems/number-to-string/problem_it.md @@ -0,0 +1,24 @@ +A volte è necessario trasformare un numero in una stringa. + +In quei casi, userai il metodo `.toString()`. Ecco un esempio: + +```js +var n = 256; +n = n.toString(); +``` + +## La sfida: + +Crea un file dal nome `number-to-string.js`. + +In questo file definisci una variabile chiamata `n` che referenzia il numero `128`; + +Invoca il metodo `.toString()` sulla variabile `n`. + +Usa `console.log()` per stampare i risultati del metodo `.toString()` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/solution_it.md b/problems/number-to-string/solution_it.md new file mode 100644 index 00000000..700a4d85 --- /dev/null +++ b/problems/number-to-string/solution_it.md @@ -0,0 +1,11 @@ +--- + +# THAT NUMBER IS NOW A STRING! + +Excellent. Good work converting that number into a string. + +In the next challenge we will take a look at **if statements**. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/numbers/problem_it.md b/problems/numbers/problem_it.md new file mode 100644 index 00000000..48e7b965 --- /dev/null +++ b/problems/numbers/problem_it.md @@ -0,0 +1,15 @@ +I numeri possono essere interi, come `2`, `14` o `4353`, o possono essere decimali, +conosciuti anche come `float`, com `3.14`, `1.5` o `100.7893423`. +Diversamente dalle stringhe, i numeri non hanno bisogno di apici. + +## La sfida: + +Crea un file dal nome `numbers.js`. + +In questo file definisci una variabile chiamata `example` che referenzia l'intero `123456789`. + +Usa `console.log()` per stampare il numero sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +`javascripting verify numbers.js` diff --git a/problems/numbers/solution_it.md b/problems/numbers/solution_it.md new file mode 100644 index 00000000..12432af5 --- /dev/null +++ b/problems/numbers/solution_it.md @@ -0,0 +1,11 @@ +--- + +# SÌ! NUMERI! + +Perfetto, hai definito con successo una variabile con il valore numerico `123456789`. + +Nella prossima sfida vedremo come manipolare i numeri. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/object-keys/problem_it.md b/problems/object-keys/problem_it.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_it.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_it.md b/problems/object-keys/solution_it.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_it.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-properties/problem_it.md b/problems/object-properties/problem_it.md new file mode 100644 index 00000000..a88c637e --- /dev/null +++ b/problems/object-properties/problem_it.md @@ -0,0 +1,43 @@ +Puoi accedere e manipolare proprietà degli oggetti –– le chiavi e i valori contenuti da un oggetto –– usando un metodo molto simile agli array. + +Ecco un esempio usando le **parentesi quadre**: + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +Il codice precedente stamperà la stringa `'yummy'` sul terminale. + +In alternativa, puoi usare la **notazione puntata** per ottenere un risultato identico: + +```js +example.pizza; + +example['pizza']; +``` + +Le due righe di codice precedenti restituiranno entrambe `yummy`. + +## La sfida: + +Crea un file dal nome `object-properties.js`. + +In questo file, definisci una variabile chiamata `food` come segue: + +```js +var food = { + types: 'only pizza' +}; +``` + +Usa `console.log()` per stampare la proprietà `types` dell'oggetto `food` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/solution_it.md b/problems/object-properties/solution_it.md new file mode 100644 index 00000000..a4a8c594 --- /dev/null +++ b/problems/object-properties/solution_it.md @@ -0,0 +1,11 @@ +--- + +# CORRETTO. LA PIZZA È IL SOLO CIBO. + +Ottimo lavoro nell'accedere a quella proprietà. + +La prossima sfida è interamente centrata sulle **funzioni**. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/objects/problem_it.md b/problems/objects/problem_it.md new file mode 100644 index 00000000..f305daad --- /dev/null +++ b/problems/objects/problem_it.md @@ -0,0 +1,32 @@ +Gli oggetti sono liste di valori simili agli array, con l'eccezione che i valori sono identificati tramite chiavi anziché numeri interi. + +Ecco un esempio + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +}; +``` + +## La sfida: + +Crea un file dal nome `objects.js`. + +In questo file, definisci una variabile chiamata `pizza` come segue: + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +}; +``` + +Usa `console.log()` per stampare l'oggetto `pizza` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/solution_it.md b/problems/objects/solution_it.md new file mode 100644 index 00000000..2542c811 --- /dev/null +++ b/problems/objects/solution_it.md @@ -0,0 +1,11 @@ +--- + +# L'OGGETTO PIZZA È ANDATO. + +Hai creato un oggetto con successo! + +Nella prossima sfida ci occuperemo su come accedere alle proprietà degli oggetti. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/revising-strings/problem_it.md b/problems/revising-strings/problem_it.md new file mode 100644 index 00000000..29d7f8db --- /dev/null +++ b/problems/revising-strings/problem_it.md @@ -0,0 +1,29 @@ +Dovrai spesso cambiare il contenuto di una stringa. + +Le stringhe possiedono funzionalità integrata che ti permette di ispezionarne e manipolarne il contenuto. + +Ecco un esempio che usa il metodo `.replace()`: + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +Nota che per cambiare il valore referenziato dalla variabile `example`, dobbiamo usare +nuovamente il segno uguale, questa volta con il metodo `example.replace()` alla destra +del segno di uguaglianza. + +## La sfida: + +Crea un file dal nome `revising-strings.js`. + +Definisci una variabile dal nome `pizza` che referenzia la stringa: `'pizza is alright'` + +Usa il metodo `.replace()` per cambiare `alright` in `wonderful`. + +Usa `console.log()` per stampare il risultato del metodo `.replace()` sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +`javascripting verify revising-strings.js` diff --git a/problems/revising-strings/solution_it.md b/problems/revising-strings/solution_it.md new file mode 100644 index 00000000..9f7c2fef --- /dev/null +++ b/problems/revising-strings/solution_it.md @@ -0,0 +1,11 @@ +--- + +# SÌ, LA PIZZA _È_ MERAVIGLIOSA. + +Ben fatto con quel metodo `.replace()`! + +Prossimamente esploreremo i **numeri**. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/rounding-numbers/problem_it.md b/problems/rounding-numbers/problem_it.md new file mode 100644 index 00000000..2b0f0b61 --- /dev/null +++ b/problems/rounding-numbers/problem_it.md @@ -0,0 +1,29 @@ +Possiamo effettuare dei calcoli matematici di base usando operatori familiari come `+`, `-`, `*`, `/` e `%`. + +Per matematica più complessa, possiamo usare l'oggetto `Math`. + +In questa sfida useremo l'oggetto `Math` per arrotondare i numeri. + +## La sfida: + +Crea un file dal nome `rounding-numbers.js`. + +In questo file definisci una variabile chiamata `roundUp` che referenzia il valore decimale `1.5`. + +Useremo il metodo `Math.round()` per arrotondare il numero per eccesso. Questo metodo arrotonda sia per eccesso che per difetto all'intero più vicino. + +Un esempio dell'uso di `Math.round()`: + +```js +Math.round(0.5); +``` + +Definisci una seconda variabile chiamata `rounded` che referenzia l'output del metodo `Math.round()`, passando la variabile `roundUp` come argomento. + +Usa `console.log()` per stampare il numero ottenuto sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/solution_it.md b/problems/rounding-numbers/solution_it.md new file mode 100644 index 00000000..c296e57c --- /dev/null +++ b/problems/rounding-numbers/solution_it.md @@ -0,0 +1,11 @@ +--- + +# IL NUMERO È STATO ARROTONDATO + +Perfetto, hai appena arrotondato il numero `1.5` a `2`. Ottimo lavoro. + +Nella prossima sfida trasformeremo un numero in una stringa. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/scope/problem_it.md b/problems/scope/problem_it.md new file mode 100644 index 00000000..dc90a2fe --- /dev/null +++ b/problems/scope/problem_it.md @@ -0,0 +1,70 @@ +Lo `scope` o ambito è l'insieme di variabili, oggetti e funzioni a cui hai accesso. + +JavaScript possiede due ambiti: `globale` e `locale`. Una variabile dichiarata fuori da qualsiasi definizione di funzione è una variabile `globale`, e il suo valore è accessibile e modificabile all'interno dell'intero programma. Una variabile dichiarata dentro una definizione di funzione è `locale`. Viene creata e distrutta ogni volta che la funzione viene eseguita, e non può essere acceduta da codice esterno alla funzione. + +Le funzioni definite all'interno di altre funzioni, note come funzioni annidate, hanno accesso all'ambito della propria funzione genitrice. + +Presta attenzione ai commenti nel codice seguente: + +```js +var a = 4; // a è una variabile globale, può essere acceduta dalle funzioni seguenti + +function foo() { + var b = a * 3; // b non può essere acceduta fuori dalla funzione foo, ma può essere acceduta dalle funzioni + // definite all'interno di foo + function bar(c) { + var b = 2; // un'altra variabile `b` è creata all'interno dell'ambito della funzione bar + // i cambiamenti a questa nuova variabile `b` non hanno effetto sulla variabile `b` precedente + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +IIFE, _Immediately Invoked Function Expression_ ovvero espressione di funzione invocata immediatamente, è un pattern comune per creare ambiti locali +esempio: +```js + (function(){ // l'espressione di funzione è circondata da parentesi + // le variabili definite qui + // non possono essere accedute dall'esterno + })(); // la funzione è invocata immediatamente +``` +## La sfida: + +Crea un file dal nome `scope.js`. + +In questo file, copia il codice seguente: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Usa la tua comprensione dell'`ambito` delle variabili e posiziona il codice seguente dentro una delle funzioni in `scope.js` +in maniera tale che il risultato sia `a: 1, b: 8,c: 6` +```js +console.log("a: "+a+", b: "+b+", c: "+c); +``` + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/solution_it.md b/problems/scope/solution_it.md new file mode 100644 index 00000000..b0fffd22 --- /dev/null +++ b/problems/scope/solution_it.md @@ -0,0 +1,9 @@ +--- + +#ECCELLENTE! + +Ce l'hai fatta! La seconda funzione possiede l'ambito che cercavamo. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/string-length/problem_it.md b/problems/string-length/problem_it.md new file mode 100644 index 00000000..3558c74a --- /dev/null +++ b/problems/string-length/problem_it.md @@ -0,0 +1,29 @@ +Avrai spesso bisogno di conoscere quanti caratteri vi siano in una stringa. + +A questo scopo userai la proprietà `.length`. Ecco un esempio: + +```js +var example = 'example string'; +example.length +``` + +## NOTA + +Assicurati che ci sia un punto tra `example` e `length`. + +Il codice precedente restituirà un **numero** che rappresenta il numero totale di caratteri nella stringa. + + +## La sfida: + +Crea un file dal nome `string-length.js`. + +In questo file, crea una variabile chiamata `example`. + +**Assegna la stringa `'example string'` alla variabile `example`.** + +Usa `console.log` per stampare la **lunghezza** della stringa sul terminale. + +**Verifica che il tuo programma sia corretto eseguendo questo comando:** + +`javascripting verify string-length.js` diff --git a/problems/string-length/solution_it.md b/problems/string-length/solution_it.md new file mode 100644 index 00000000..da32f717 --- /dev/null +++ b/problems/string-length/solution_it.md @@ -0,0 +1,9 @@ +--- + +# VITTORIA: 14 CARATTERI + +Ce l'hai fatta! La stringa `example string` contiene 14 caratteri. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/strings/problem_it.md b/problems/strings/problem_it.md new file mode 100644 index 00000000..e27c7221 --- /dev/null +++ b/problems/strings/problem_it.md @@ -0,0 +1,29 @@ +Una **stringa** è ciascun valore delimitato da apici. + +Sono ammessi sia apici singoli che doppi: + +```js +'questa è una stringa' + +"anche questa è una stringa" +``` + +## NOTA + +Prova a rimanere consistente. In questo workshop useremo soltanto apici singoli. + +## La sfida: + +Per risolvere questa sfida, crea un file dal nome `strings.js`. + +In questo file crea una variabile dal nome `someString` come segue: + +```js +var someString = 'this is a string'; +``` + +Usa `console.log` per stampare la variabile **someString** sul terminale. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +`javascripting verify strings.js` diff --git a/problems/strings/solution_it.md b/problems/strings/solution_it.md new file mode 100644 index 00000000..9547ea99 --- /dev/null +++ b/problems/strings/solution_it.md @@ -0,0 +1,11 @@ +--- + +# VITTORIA. + +Ti stai abituando a queste stringhe! + +Nelle prossime sfide ci occuperemo di come manipolare le stringhe. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- diff --git a/problems/this/problem_it.md b/problems/this/problem_it.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_it.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_it.md b/problems/this/solution_it.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_it.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/variables/problem_it.md b/problems/variables/problem_it.md new file mode 100644 index 00000000..78334096 --- /dev/null +++ b/problems/variables/problem_it.md @@ -0,0 +1,33 @@ +Una variabile è un nome che può fare riferimento a un valore specifico. Le variabili sono dichiarate usando `var` seguito dal nome della variabile. + +Ecco un esempio: + +```js +var example; +``` + +La variabile precedente è stata **dichiarata**, ma non è stata definita (non fa ancora riferimento a un valore specifico). + +Ecco un esempio di definizione di una variabile, che le fa assumere un valore specifico: + +```js +var example = 'some string'; +``` + +# NOTA + +Una variabile è **dichiarata** usando `var` e usa il segno uguale per **definire** il valore che rappresenta. Questa operazione è nota con l'espressione colloquiale "assegnare un valore a una variabile". + +## La sfida: + +Crea un file chiamato `variables.js`. + +In questo file dichiara una variabile chiamata `example`. + +**Assegua il valore `'some string'` alla variabile `example`.** + +Quindi usa `console.log()` per stampare la variabile `example` sulla console. + +Verifica che il tuo programma sia corretto eseguendo questo comando: + +`javascripting verify variables.js` diff --git a/problems/variables/solution_it.md b/problems/variables/solution_it.md new file mode 100644 index 00000000..9dd4ad3d --- /dev/null +++ b/problems/variables/solution_it.md @@ -0,0 +1,11 @@ +--- + +# HAI CREATO UNA VARIABILE! + +Ben fatto. + +Nella prossima sfida daremo uno sguardo approfondito alle stringhe. + +Esegui `javascripting` nella console per scegliere la prossima sfida. + +--- From ba5641cec7a40086ea63b2ec9e7c8fd8817b23b3 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 14 Dec 2015 10:45:50 -0800 Subject: [PATCH 178/346] v2.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 944fe168..85e80941 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.3.0", + "version": "2.4.0", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From 0b5fe1a187da29480867e5cd49aa2f765f554b0a Mon Sep 17 00:00:00 2001 From: jpdamon Date: Wed, 6 Jan 2016 13:22:17 -0500 Subject: [PATCH 179/346] Clarified what is going on inside a for-loop Response to #54 --- problems/for-loop/problem.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/problems/for-loop/problem.md b/problems/for-loop/problem.md index 6d2b4b37..f466f2b1 100644 --- a/problems/for-loop/problem.md +++ b/problems/for-loop/problem.md @@ -1,4 +1,4 @@ -For loops look like this: +For loops allow you to repeatedly run a block of code a certain number of times. This for loop logs to the console ten times: ```js for (var i = 0; i < 10; i++) { @@ -7,12 +7,11 @@ for (var i = 0; i < 10; i++) { } ``` -The variable `i` is used to track how many times the loop has run. +The first part, `var i = 0`, is run once at the beginning of the loop. The variable `i` is used to track how many times the loop has run. -The statement `i < 10;` indicates the limit of the loop. -It will continue to loop if `i` is less than `10`. +The second part, `i < 10`, is checked at the beginning of every loop iteration before running the code inside the loop. If the statement is true, the code inside the loop is executed. If it is false, then the loop is complete. The statement `i < 10;` indicates that the loop will continue as long as `i` is less than `10`. -The statement `i++` increases the variable `i` by 1 each loop. +The final part, `i++`, is executed at the end of every loop. This increases the variable `i` by 1 after each loop. Once `i` reaches `10`, the loop will exit. ## The challenge: From f1b735ecc003bdd16aa7cd574308270d29327dc2 Mon Sep 17 00:00:00 2001 From: ledsun Date: Tue, 19 Jan 2016 09:57:57 +0900 Subject: [PATCH 180/346] Add Japanese translations for #155 --- problems/for-loop/problem_ja.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/problems/for-loop/problem_ja.md b/problems/for-loop/problem_ja.md index 432692fa..0e6197b6 100644 --- a/problems/for-loop/problem_ja.md +++ b/problems/for-loop/problem_ja.md @@ -1,4 +1,5 @@ -for ループの例です... +for ループを使うと、コードの塊を何回も繰り返し実行できます。 +次のfor ループはコンソールにログを10回書きます... ```js for (var i = 0; i < 10; i++) { @@ -7,12 +8,17 @@ for (var i = 0; i < 10; i++) { } ``` -変数 `i` を使ってループを何回実行したか数えます。 +for ループでは、最初の部分 `var i = 0` をループの最初に一回だけ実行します。 +ループを実行した回数を数えるために、変数 `i` を使います。 -式 `i < 10` でループの終わりを示します。 -この条件では、 `i` が `10` 未満の間、ループします。 +第二の部分 `i < 10;` は、ループの繰り返し毎にチェックする条件式です。 +チェックした式が真の時、ループ内のコードを実行します。 +チェックした式が偽の時、ループを終了します。 +式 `i < 10;` の場合、 `i` が `10` 未満の間、ループを繰り返します。 -式 `i++` で、ループを一回まわるたびに、変数 `i` の値を増やします。 +最後の部分 `i++` を、ループが終わるたびに実行します。 +この式は、ループを一回まわるたびに、変数 `i` の値を `1` 増やします。 +`i` が `10` に達すると、ループを終了します。 ## やってみよう From b8360a2dca634596bcbede33f6e46255870f6ba7 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Wed, 10 Feb 2016 21:12:22 -0800 Subject: [PATCH 181/346] bump workshopper-adventure to v4.4.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 85e80941..7cebe816 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "dependencies": { "colors": "^1.0.3", "diff": "^1.2.1", - "workshopper-adventure": "^4.0.4" + "workshopper-adventure": "^4.4.6" }, "license": "MIT" } From 4e621c59e985d48dca2a4f0628d87da0bf1ee244 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Wed, 10 Feb 2016 21:15:31 -0800 Subject: [PATCH 182/346] v2.4.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7cebe816..c6fbd1e7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.4.0", + "version": "2.4.1", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From def16873e8519f8e3e8605784f68dca97832b08f Mon Sep 17 00:00:00 2001 From: Sam Saccone Date: Wed, 24 Feb 2016 21:06:18 -0800 Subject: [PATCH 183/346] Give a human error message when an invalid path. --- lib/compare-solution.js | 7 +++-- lib/problem.js | 9 ++++--- lib/run-solution.js | 57 +++++++++++++++++++++++++++++++++++++---- package.json | 1 + 4 files changed, 62 insertions(+), 12 deletions(-) diff --git a/lib/compare-solution.js b/lib/compare-solution.js index 34bca4ad..542d4bb4 100644 --- a/lib/compare-solution.js +++ b/lib/compare-solution.js @@ -4,16 +4,15 @@ var path = require("path"); var diff = require("diff"); var run = require(path.join(__dirname, "run-solution")); -module.exports = function(solution, attempt, cb) { - - run(solution, function(err, solutionResult) { +module.exports = function(solution, attempt, i18n, cb) { + run(solution, i18n, function(err, solutionResult) { if(err) { console.error(err); return cb(false); } - run(attempt, function(err, attemptResult) { + run(attempt, i18n, function(err, attemptResult) { if(err && err.code !== 8) { console.error(err); diff --git a/lib/problem.js b/lib/problem.js index 87d19902..daf49c36 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -6,10 +6,13 @@ module.exports = function createProblem(dirname) { var exports = {}; var problemName = dirname.split(path.sep); + var i18n; + problemName = problemName[problemName.length-1]; exports.init = function (workshopper) { - var postfix = workshopper.i18n.lang() === 'en' ? '' : '_' + workshopper.i18n.lang(); + i18n = workshopper.i18n; + var postfix = workshopper.i18n.lang() === 'en' ? '' : '_' + workshopper.i18n.lang(); this.problem = {file: path.join(dirname, 'problem' + postfix + '.md')}; this.solution = {file: path.join(dirname, 'solution' + postfix + '.md')}; this.solutionPath = path.resolve(__dirname, '..', 'solutions', problemName, "index.js"); @@ -19,7 +22,7 @@ module.exports = function createProblem(dirname) { exports.verify = function (args, cb) { var attemptPath = path.resolve(process.cwd(), args[0]); - compare(this.solutionPath, attemptPath, function(match, obj) { + compare(this.solutionPath, attemptPath, i18n, function(match, obj) { if(match) { return cb(true); @@ -52,4 +55,4 @@ module.exports = function createProblem(dirname) { }; return exports; -} \ No newline at end of file +} diff --git a/lib/run-solution.js b/lib/run-solution.js index 068bdc7e..64c99f2a 100644 --- a/lib/run-solution.js +++ b/lib/run-solution.js @@ -3,9 +3,56 @@ var path = require('path'); var docs = path.join(__dirname, 'docs'); var exec = require('child_process').exec; -module.exports = function (solution, cb) { - var child = exec('node "' + solution + '"', function (error, stdout, stderr) { - if (error) return cb(error); - else cb(null, stdout); +if (typeof Promise === 'undefined') { + var Promise = require('promise'); +} + +/** + * @param {!string} filePath + * @return {Promise} + */ +function exists(filePath) { + return new Promise(function(res, rej) { + fs.stat(filePath, function(err, d) { + if (err) { + res(false); + } + + res(true); + }); + }); +} + +/** + * @param {!string} filePath + * @return {Promise} + */ +function executeSolution(filePath) { + return new Promise(function(res, rej) { + exec('node "' + filePath + '"', function (err, stdout, stderr) { + if (err) { + return rej(err); + } + + return res(stdout); + }); }); -}; +} + + +/** + * @param {string} solutionPath + * @param {!{__: function(string, object)}} i18n + * @param {function} cb + */ +module.exports = function (solutionPath, i18n, cb) { + exists(solutionPath).then(function(solutionExists) { + if (!solutionExists) { + throw new Error(i18n.__('error.exercise.missing_file', {exerciseFile: solutionPath})); + } + + return executeSolution(solutionPath); + }).then(function(stdout) { + cb(null, stdout); + }).catch(cb); +} diff --git a/package.json b/package.json index c6fbd1e7..b4c9ebb0 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "preferGlobal": true, "dependencies": { "colors": "^1.0.3", + "promise": "^7.1.1", "diff": "^1.2.1", "workshopper-adventure": "^4.4.6" }, From 51f2b1f3a9c1aee778fbe7b4d37e62e43ca34a27 Mon Sep 17 00:00:00 2001 From: Jose Manuel Rosa Date: Thu, 25 Feb 2016 22:35:37 +0100 Subject: [PATCH 184/346] Transalation error String must not be translated beause test is based on 'example string' --- problems/string-length/solution_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/string-length/solution_es.md b/problems/string-length/solution_es.md index 42372bb4..5f048f7e 100644 --- a/problems/string-length/solution_es.md +++ b/problems/string-length/solution_es.md @@ -2,7 +2,7 @@ # WIN: 17 CARACTERES -Lo hiciste! La string `una string de ejemplo` tiene 17 caracteres. +Lo hiciste! La string `example string` tiene 14 caracteres. Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. From eb2bdaad3d323735595f49e402c39c7b301cb167 Mon Sep 17 00:00:00 2001 From: Jose Manuel Rosa Date: Thu, 25 Feb 2016 22:38:31 +0100 Subject: [PATCH 185/346] Num characters in title --- problems/string-length/solution_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/string-length/solution_es.md b/problems/string-length/solution_es.md index 5f048f7e..2f5eee43 100644 --- a/problems/string-length/solution_es.md +++ b/problems/string-length/solution_es.md @@ -1,6 +1,6 @@ --- -# WIN: 17 CARACTERES +# WIN: 14 CARACTERES Lo hiciste! La string `example string` tiene 14 caracteres. From d10f6ce92f36828b0bd8e8035f6a595746c34990 Mon Sep 17 00:00:00 2001 From: Jose Manuel Rosa Date: Thu, 25 Feb 2016 23:57:03 +0100 Subject: [PATCH 186/346] Do not use spanish translation for orange --- problems/if-statement/solution_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/if-statement/solution_es.md b/problems/if-statement/solution_es.md index fffa0e48..80982520 100644 --- a/problems/if-statement/solution_es.md +++ b/problems/if-statement/solution_es.md @@ -2,7 +2,7 @@ # MAESTRO CONDICIONAL -Lo haz hecho! La string `naranja` tiene más de cinco caracteres. +Lo haz hecho! El string `orange` tiene más de cinco caracteres. Preparate para practicar **for loops** en el próximo ejercicio! From cb60354803b60a3f30c8f2902878ffb4301891b5 Mon Sep 17 00:00:00 2001 From: Javier Olan Date: Thu, 3 Mar 2016 18:18:40 -0600 Subject: [PATCH 187/346] Wrong file name The final command its wrong --- problems/for-loop/problem_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/for-loop/problem_es.md b/problems/for-loop/problem_es.md index 5a5c9db7..17ee5e11 100644 --- a/problems/for-loop/problem_es.md +++ b/problems/for-loop/problem_es.md @@ -34,5 +34,5 @@ Luego del for, utiliza `console.log()` para imprimir la variable `total` a la te Comprueba si tu programa es correcto utilizando el siguiente comando: ```bash -javascripting verify for.js +javascripting verify for-loop.js ``` From 4d5e25fd08665102aa015a396f00c10e4b3a0340 Mon Sep 17 00:00:00 2001 From: Nerodenko Alexey Date: Fri, 26 Feb 2016 22:02:50 +0300 Subject: [PATCH 188/346] Add translation for function problems --- problems/function-arguments/problem_ru.md | 35 ++++++++++++++++++ problems/function-arguments/solution_ru.md | 9 +++++ problems/function-return-values/problem_ru.md | 5 +++ .../function-return-values/solution_ru.md | 5 +++ problems/functions/problem_ru.md | 37 +++++++++++++++++++ problems/functions/solution_ru.md | 9 +++++ 6 files changed, 100 insertions(+) create mode 100644 problems/function-arguments/problem_ru.md create mode 100644 problems/function-arguments/solution_ru.md create mode 100644 problems/function-return-values/problem_ru.md create mode 100644 problems/function-return-values/solution_ru.md create mode 100644 problems/functions/problem_ru.md create mode 100644 problems/functions/solution_ru.md diff --git a/problems/function-arguments/problem_ru.md b/problems/function-arguments/problem_ru.md new file mode 100644 index 00000000..1308aae8 --- /dev/null +++ b/problems/function-arguments/problem_ru.md @@ -0,0 +1,35 @@ +Функция может быть объявлена с любым количеством аргументов. В качестве аргумента может выступать любой тип данных. Это может быть строка, число, массив, объект или даже другая функция. + +Например: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +Вот так можно **вызвать** эту функцию с двумя аргументами: + +```js +example('hello', 'world'); +``` + +Указанный пример выведет на экран терминала `hello world`. + +## Условие задачи: + +Создайте файл `function-arguments.js`. + +В этом файле объявите функцию `math` которая принимает три аргумента. Важно понять, что названия аргументов используются только для того чтобы ссылаться на них. + +Назовите аргументы как вам нравится. + +В функции `math` перемножьте второй и третий аргументы, затем прибавьте к произведению первый аргумент и верните вычисленное значение. + +После этого, внутри скобок выражения `console.log()` вызовите функцию `math()` передав в качестве первого аргумента число `53`, в качестве второго аргумента число `61` и в качестве третьего аргумента число `67`. + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify function-arguments.js +``` \ No newline at end of file diff --git a/problems/function-arguments/solution_ru.md b/problems/function-arguments/solution_ru.md new file mode 100644 index 00000000..e8d1b089 --- /dev/null +++ b/problems/function-arguments/solution_ru.md @@ -0,0 +1,9 @@ +--- + +# ВЫ УПРАВЛЯЕТЕ АРГУМЕНТАМИ! + +Задание успешно выполнено. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- \ No newline at end of file diff --git a/problems/function-return-values/problem_ru.md b/problems/function-return-values/problem_ru.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_ru.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_ru.md b/problems/function-return-values/solution_ru.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_ru.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_ru.md b/problems/functions/problem_ru.md new file mode 100644 index 00000000..e808fb0a --- /dev/null +++ b/problems/functions/problem_ru.md @@ -0,0 +1,37 @@ +Функция это блок кода, который берет входные данные, обрабатывает их и затем возвращает результат. + +Например: + +```js +function example (x) { + return x * 2; +} +``` + +Вот так можно **вызвать** эту функцию чтобы получить число 10: + +```js +example(5) +``` + +Приведенный выше пример показывает что функция `example` возьмет в качестве аргумента число - входные данные - и вернет это число умноженным на 2. + +## Условие задачи: + +Создайте файл `functions.js`. + +В этом файле определите функцию `eat`, принимающую один аргумент под названием `food`, предполагается что это строка. + +Внутри функции используйте аргумент `food` и верните следующий результат: + +```js +return food + ' tasted really good.'; +``` + +Внутри скобок выражения `console.log()` вызовите функцию `eat()` указав в качестве аргумента строку `bananas`. + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify functions.js +``` \ No newline at end of file diff --git a/problems/functions/solution_ru.md b/problems/functions/solution_ru.md new file mode 100644 index 00000000..b66d3afe --- /dev/null +++ b/problems/functions/solution_ru.md @@ -0,0 +1,9 @@ +--- + +# УХ ТЫ, БАНАНЫ + +Вы сделали это! Вы создали функцию, которая берет входные данные, обрабатывает их и возвращает результат. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- \ No newline at end of file From a351f4d2ae829461fb34411b901775160271e304 Mon Sep 17 00:00:00 2001 From: Nerodenko Alexey Date: Sun, 28 Feb 2016 19:04:36 +0300 Subject: [PATCH 189/346] Add translation for numbers, number-to-string, object-keys, object-properties, objects problems --- problems/if-statement/problem_ru.md | 32 +++++++++++++ problems/if-statement/solution_ru.md | 11 +++++ problems/introduction/problem_ru.md | 43 ++++++++++++++++++ problems/introduction/solution_ru.md | 21 +++++++++ problems/looping-through-arrays/problem_ru.md | 45 +++++++++++++++++++ .../looping-through-arrays/solution_ru.md | 11 +++++ problems/number-to-string/problem_ru.md | 24 ++++++++++ problems/number-to-string/solution_ru.md | 11 +++++ problems/numbers/problem_ru.md | 16 +++++++ problems/numbers/solution_ru.md | 11 +++++ problems/object-keys/problem_ru.md | 5 +++ problems/object-keys/solution_ru.md | 5 +++ problems/object-properties/problem_ru.md | 43 ++++++++++++++++++ problems/object-properties/solution_ru.md | 11 +++++ problems/objects/problem_ru.md | 32 +++++++++++++ problems/objects/solution_ru.md | 11 +++++ 16 files changed, 332 insertions(+) create mode 100644 problems/if-statement/problem_ru.md create mode 100644 problems/if-statement/solution_ru.md create mode 100644 problems/introduction/problem_ru.md create mode 100644 problems/introduction/solution_ru.md create mode 100644 problems/looping-through-arrays/problem_ru.md create mode 100644 problems/looping-through-arrays/solution_ru.md create mode 100644 problems/number-to-string/problem_ru.md create mode 100644 problems/number-to-string/solution_ru.md create mode 100644 problems/numbers/problem_ru.md create mode 100644 problems/numbers/solution_ru.md create mode 100644 problems/object-keys/problem_ru.md create mode 100644 problems/object-keys/solution_ru.md create mode 100644 problems/object-properties/problem_ru.md create mode 100644 problems/object-properties/solution_ru.md create mode 100644 problems/objects/problem_ru.md create mode 100644 problems/objects/solution_ru.md diff --git a/problems/if-statement/problem_ru.md b/problems/if-statement/problem_ru.md new file mode 100644 index 00000000..1a581d29 --- /dev/null +++ b/problems/if-statement/problem_ru.md @@ -0,0 +1,32 @@ +Условные выражения используются для управления потоком выполнения программы, основываясь на определенном логическом условии. + +Условное выражение выглядит следующим образом: + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +Внутри скобок должно быть логическое утверждение, результатом которого является либо истина либо ложь. + +Блок else является необязательным и содержит код, который выполнится если результатом логического утверждения будет ложь. + +## Условие задачи: + +Создайте файл `if-statement.js`. + +В этом файле объявите переменную `fruit`. + +Присвойте переменной `fruit` значение **orange**, которое принадлежит к типу данных **String**. + +Затем используйте выражение `console.log()` чтобы вывести в терминал "**The fruit name has more than five characters.**" если длина строки в переменной `fruit` больше пяти. +В ином случае выведите в терминал "**The fruit name has five characters or less.**" + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify if-statement.js +``` \ No newline at end of file diff --git a/problems/if-statement/solution_ru.md b/problems/if-statement/solution_ru.md new file mode 100644 index 00000000..17f0ec63 --- /dev/null +++ b/problems/if-statement/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# МАСТЕР УСЛОВНЫХ ВЫРАЖЕНИЙ + +Точно! В строке `orange` больше пяти символов. + +Далее приготовьтесь к **циклам for**! + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- \ No newline at end of file diff --git a/problems/introduction/problem_ru.md b/problems/introduction/problem_ru.md new file mode 100644 index 00000000..7103a19e --- /dev/null +++ b/problems/introduction/problem_ru.md @@ -0,0 +1,43 @@ +Для поддержания порядка давайте создадим для этого воркшопа отдельную папку. + +Выполните в терминале эту команду чтобы создать папку под названием `javascripting` (можете использовать другое название если хотите): + +```bash +mkdir javascripting +``` + +Перейдите в папку `javascripting`: + +```bash +cd javascripting +``` + +Создайте файл `introduction.js`: + +```bash +touch introduction.js +``` + +или если у вас Windows, +```bash +type NUL > introduction.js +``` +(`type` это тоже часть команды!) + +Откройте этот файл в вашем любимом редакторе и добавьте следующий текст: + +```js +console.log('hello'); +``` + +Сохраните файл, и чтобы проверить что ваша программа работает правильно запустите в терминале следующую команду: + +```bash +javascripting verify introduction.js +``` + +Кстати, работая с практическими заданиями, можете называть файлы как вам нравится, если например для каждого упражнения вы хотите использовать файл с именем `catsAreAwesome.js`, делайте это. Просто удостоверьтесь, что вы запускаете в терминале: + +```bash +javascripting verify catsAreAwesome.js +``` \ No newline at end of file diff --git a/problems/introduction/solution_ru.md b/problems/introduction/solution_ru.md new file mode 100644 index 00000000..0de1a2ba --- /dev/null +++ b/problems/introduction/solution_ru.md @@ -0,0 +1,21 @@ +--- + +# ВЫ СДЕЛАЛИ ЭТО! + +Все что находится внутри скобок выражения `console.log()` выводится в терминал. + +Поэтому вот это выражение: + +```js +console.log('hello'); +``` + +выведет в терминал `hello`. + +Т.е. мы печатаем в терминале **строку** символов: `hello`. + +В следующем задании мы сосредоточимся на изучении **переменных**. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- \ No newline at end of file diff --git a/problems/looping-through-arrays/problem_ru.md b/problems/looping-through-arrays/problem_ru.md new file mode 100644 index 00000000..ff4991d7 --- /dev/null +++ b/problems/looping-through-arrays/problem_ru.md @@ -0,0 +1,45 @@ +В этом задании мы будем использовать **цикл for** чтобы получить доступ и оперировать элементами в массиве. + +Осуществить доступ к значениям массива можно с использованием целочисленной переменной. + +Каждый элемент в массиве имеет соответствующий номер, начиная с `0`. + +Например в этом массиве элементу `hi` соответствует номер `1`: + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +Получить доступ к нему можно вот так: + +```js +greetings[1]; +``` + +Следовательно, внутри **цикла for** в квадратных скобках мы укажем переменную `i`, вместо непосредственного использования чисел. + +## Условие задачи: + +Создайте файл `looping-through-arrays.js`. + +В этом файле объявите переменную `pets` которая ссылается на следующий массив: + +```js +['cat', 'dog', 'rat']; +``` + +Создайте цикл for, который меняет каждую строчку в массиве, так чтобы слова были в форме множественного числа. + +Используйте внутри цикла for следующее выражение: + +```js +pets[i] = pets[i] + 's'; +``` + +После цикла воспользуйтесь `console.log()` и выведите в терминал массив `pets`. + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/solution_ru.md b/problems/looping-through-arrays/solution_ru.md new file mode 100644 index 00000000..84572a6b --- /dev/null +++ b/problems/looping-through-arrays/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ПОБЕДА! КУЧА ДОМАШНИХ ЖИВОТНЫХ! + +Теперь все элементы массива `pets` находятся в форме множественного числа. + +В следующем упражнении мы перейдем от массивов к **объектам**. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- \ No newline at end of file diff --git a/problems/number-to-string/problem_ru.md b/problems/number-to-string/problem_ru.md new file mode 100644 index 00000000..311e97d7 --- /dev/null +++ b/problems/number-to-string/problem_ru.md @@ -0,0 +1,24 @@ +Иногда необходимо представить число в виде строки. + +В этом случае используйте метод `.toString()`. Например: + +```js +var n = 256; +n = n.toString(); +``` + +## Условие задачи: + +Создайте файл `number-to-string.js`. + +В этом файле объявите переменную `n`, которая ссылается на число `128`. + +Вызовите у переменной `n` метод `.toString()`. + +Используйте `console.log()` и выведите в терминал результат работы метода `.toString()`. + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/solution_ru.md b/problems/number-to-string/solution_ru.md new file mode 100644 index 00000000..d4f0201e --- /dev/null +++ b/problems/number-to-string/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ТЕПЕРЬ ЭТО ЧИСЛО СТРОКА! + +Превосходно! Отличная работа по представлению числа в виде строки. + +В следующем упражнении мы посмотрим на **оператор if**. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- \ No newline at end of file diff --git a/problems/numbers/problem_ru.md b/problems/numbers/problem_ru.md new file mode 100644 index 00000000..f3f18a9c --- /dev/null +++ b/problems/numbers/problem_ru.md @@ -0,0 +1,16 @@ +Числа могут быть как целые, например `2`, `14`, так и десятичные, также известные как числа с плавающей точкой, например `3.14`, `1.5`, или `100.7893423`. +В отличие от строк, числам не нужны кавычки. + +## Условие задачи: + +Создайте файл `numbers.js`. + +В этом файле объявите переменную `example`, которая ссылается на целое число `123456789`. + +Используйте `console.log()` чтобы вывести это число в терминал. + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify numbers.js +``` \ No newline at end of file diff --git a/problems/numbers/solution_ru.md b/problems/numbers/solution_ru.md new file mode 100644 index 00000000..a7d1124c --- /dev/null +++ b/problems/numbers/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ДА! ЧИСЛА! + +Клево, вы успешно объявили переменную с числом `123456789`. + +В следующем упражнении мы посмотрим как обращаться с числами. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- \ No newline at end of file diff --git a/problems/object-keys/problem_ru.md b/problems/object-keys/problem_ru.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_ru.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_ru.md b/problems/object-keys/solution_ru.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_ru.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-properties/problem_ru.md b/problems/object-properties/problem_ru.md new file mode 100644 index 00000000..f2be6830 --- /dev/null +++ b/problems/object-properties/problem_ru.md @@ -0,0 +1,43 @@ +Вы можете получить доступ и оперировать свойствами объектов -- ключами и значениями которые содержит объект -- используя синтаксис очень похожий на работу с массивами. + +Вот пример использования **квадратных скобок**: + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +Код приведенный выше выведет в терминал строку `'yummy'`. + +В качестве альтернативы, вы можете использовать **запись с точкой** и получить идентичные результаты: + +```js +example.pizza; + +example['pizza']; +``` + +Обе строки кода приведенные выше вернут одинаковое значение `yummy`. + +## Условие задачи: + +Создайте файл `object-properties.js`. + +В этом файле объявите следующим образом переменную `food`: + +```js +var food = { + types: 'only pizza' +}; +``` + +Используйте `console.log()` и выведите в терминал свойство `types` объекта `food`. + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/solution_ru.md b/problems/object-properties/solution_ru.md new file mode 100644 index 00000000..a30d8350 --- /dev/null +++ b/problems/object-properties/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ВЕРНО. ТОЛЬКО ПИЦЦА ЭТО ЕДА. + +Отличная работа по доступу к свойству объекта. + +В следующем упражнении все о **функциях**. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/objects/problem_ru.md b/problems/objects/problem_ru.md new file mode 100644 index 00000000..a1bff782 --- /dev/null +++ b/problems/objects/problem_ru.md @@ -0,0 +1,32 @@ +Объекты - это списки значений почти как в массивах, за исключением того что значениям соответствуют ключи, а не числа. + +Например: + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +}; +``` + +## Условие задачи: + +Создайте файл `objects.js`. + +В этом файле объявите следующим образом переменную `pizza`: + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +}; +``` + +Используйте `console.log()` и введите в терминал объект `pizza`. + +Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: + +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/solution_ru.md b/problems/objects/solution_ru.md new file mode 100644 index 00000000..6694161b --- /dev/null +++ b/problems/objects/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ОБЪЕКТ ПИЦЦА УДАЛСЯ! + +Вы успешно создали объект! + +В следующем упражнении мы сосредоточимся на доступе к свойствам объекта. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- From 741505d0c9717c122d4926bf822ff55de560786a Mon Sep 17 00:00:00 2001 From: Igor Pelekhan Date: Fri, 20 Nov 2015 01:52:46 +0300 Subject: [PATCH 190/346] Add initial language translations and settings Add accessing-arrays-values translation Add array-filtering translation Add arrays translation Add for-loop translation Add revising-strings translation Add rounding-numbers translation Add variables translation Add scope translation Add string-length translation Add strings translation Add this translation --- i18n/footer/ru.md | 1 + i18n/ru.json | 23 ++++++ i18n/troubleshooting_ru.md | 26 +++++++ index.js | 2 +- problems/accessing-array-values/problem_ru.md | 47 ++++++++++++ .../accessing-array-values/solution_ru.md | 11 +++ problems/array-filtering/problem_ru.md | 45 +++++++++++ problems/array-filtering/solution_ru.md | 11 +++ problems/arrays/problem_ru.md | 19 +++++ problems/arrays/solution_ru.md | 11 +++ problems/for-loop/problem_ru.md | 39 ++++++++++ problems/for-loop/solution_ru.md | 11 +++ problems/revising-strings/problem_ru.md | 29 +++++++ problems/revising-strings/solution_ru.md | 11 +++ problems/rounding-numbers/problem_ru.md | 29 +++++++ problems/rounding-numbers/solution_ru.md | 11 +++ problems/scope/problem.md | 6 +- problems/scope/problem_ru.md | 76 +++++++++++++++++++ problems/scope/solution_ru.md | 9 +++ problems/string-length/problem_ru.md | 31 ++++++++ problems/string-length/solution_ru.md | 9 +++ problems/strings/problem_ru.md | 31 ++++++++ problems/strings/solution_ru.md | 11 +++ problems/this/problem_ru.md | 5 ++ problems/this/solution_ru.md | 5 ++ problems/variables/problem_ru.md | 35 +++++++++ problems/variables/solution_ru.md | 11 +++ 27 files changed, 551 insertions(+), 4 deletions(-) create mode 100644 i18n/footer/ru.md create mode 100644 i18n/ru.json create mode 100644 i18n/troubleshooting_ru.md create mode 100644 problems/accessing-array-values/problem_ru.md create mode 100644 problems/accessing-array-values/solution_ru.md create mode 100644 problems/array-filtering/problem_ru.md create mode 100644 problems/array-filtering/solution_ru.md create mode 100644 problems/arrays/problem_ru.md create mode 100644 problems/arrays/solution_ru.md create mode 100644 problems/for-loop/problem_ru.md create mode 100644 problems/for-loop/solution_ru.md create mode 100644 problems/revising-strings/problem_ru.md create mode 100644 problems/revising-strings/solution_ru.md create mode 100644 problems/rounding-numbers/problem_ru.md create mode 100644 problems/rounding-numbers/solution_ru.md create mode 100644 problems/scope/problem_ru.md create mode 100644 problems/scope/solution_ru.md create mode 100644 problems/string-length/problem_ru.md create mode 100644 problems/string-length/solution_ru.md create mode 100644 problems/strings/problem_ru.md create mode 100644 problems/strings/solution_ru.md create mode 100644 problems/this/problem_ru.md create mode 100644 problems/this/solution_ru.md create mode 100644 problems/variables/problem_ru.md create mode 100644 problems/variables/solution_ru.md diff --git a/i18n/footer/ru.md b/i18n/footer/ru.md new file mode 100644 index 00000000..7b3e6d11 --- /dev/null +++ b/i18n/footer/ru.md @@ -0,0 +1 @@ +__Требуется помощь?__ Перечитайте README данного воркшопа: http://github.com/sethvincent/javascripting diff --git a/i18n/ru.json b/i18n/ru.json new file mode 100644 index 00000000..8f0f8a8e --- /dev/null +++ b/i18n/ru.json @@ -0,0 +1,23 @@ +{ + "exercise": { + "INTRODUCTION": "ВВЕДЕНИЕ" + , "VARIABLES": "ПЕРЕМЕННЫЕ" + , "STRINGS": "СТРОКИ" + , "STRING LENGTH": "ДЛИНА СТРОКИ" + , "REVISING STRINGS": "МОДИФИКАЦИЯ СТРОКИ" + , "NUMBERS": "ЧИСЛА" + , "ROUNDING NUMBERS": "ОКРУГЛЕНИЕ ЧИСЕЛ" + , "NUMBER TO STRING": "ЧИСЛО В СТРОКУ" + , "IF STATEMENT": "ОПЕРАТОР IF" + , "FOR LOOP": "ЦИКЛ FOR" + , "ARRAYS": "МАССИВЫ" + , "ARRAY FILTERING": "ФИЛЬТРАЦИЯ МАССИВОВ" + , "ACCESSING ARRAY VALUES": "ПОЛУЧЕНИЕ ЭЛЕМЕНТОВ МАССИВА" + , "LOOPING THROUGH ARRAYS": "ОБХОД МАССИВА В ЦИКЛЕ" + , "OBJECTS": "ОБЪЕКТЫ" + , "OBJECT PROPERTIES": "СВОЙСТВА ОБЪЕКТОВ" + , "FUNCTIONS": "ФУНКЦИИ" + , "FUNCTION ARGUMENTS": "АРГУМЕНТЫ ФУНКЦИЙ" + , "SCOPE": "ОБЛАСТЬ ВИДИМОСТИ" + } +} diff --git a/i18n/troubleshooting_ru.md b/i18n/troubleshooting_ru.md new file mode 100644 index 00000000..95697f3c --- /dev/null +++ b/i18n/troubleshooting_ru.md @@ -0,0 +1,26 @@ +--- +# Кажется что-то пошло не так... +# Но не стоит паниковать! +--- + +## Проверьте своё решение: + +`Ожидаемый результат +===================` + +%solution% + +`Ваш результат +===================` + +%attempt% + +`Различия +===================` + +%diff% + +## Что ещё можно проверить: + * Правильно ли набрано имя файла? Это можно проверить с помощью команды ls `%filename%`, если в ответ появилось ls: нет доступа к `%filename%`: Файл или директория не существует, тогда вам нужно создать новый / переименовать существующий файл или перейти в директорию с нужным файлом + * Удостоверьтесь, что вы не пропустил круглые скобки, так как в ином случае интерпретатор не сможет разобрать код + * Удостоверьтесь, что вы не сделали опечаток или не допустили ошибок diff --git a/index.js b/index.js index cb4312e0..88dcc935 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ var jsing = require('workshopper-adventure')({ appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no', 'uk', 'it'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no', 'uk', 'it', 'ru'] , header: require('workshopper-adventure/default/header') , footer: require('./lib/footer.js') }); diff --git a/problems/accessing-array-values/problem_ru.md b/problems/accessing-array-values/problem_ru.md new file mode 100644 index 00000000..0ea32a7b --- /dev/null +++ b/problems/accessing-array-values/problem_ru.md @@ -0,0 +1,47 @@ +Доступ к элементам массива может быть осуществлён с помощью индекса. + +Индекс массива может принимать значения от нуля до размера массива минус один. + +Например: + + +```js + var pets = ['cat', 'dog', 'rat']; + + console.log(pets[0]); +``` + +Приведённый выше код должен вывести первый элемент массива `pets` -- строку `cat`. + +Доступ к элементам массива может осуществляться только с помощью литерала массива (квадратные скобки). + +Обращение через точку является неверным. + +Правильная нотация: + +```js + console.log(pets[0]); +``` + +Неправильная нотация: +``` + console.log(pets.1); +``` + +## Условие задачи: + +Создайте файл с названием `accessing-array-values.js`. + +В этом файле требуется объявить массив `food` : +```js +var food = ['apple', 'pizza', 'pear']; +``` + + +Воспользуйтесь командой `console.log()`, чтобы вывести значение `второго` элемента массива в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/solution_ru.md b/problems/accessing-array-values/solution_ru.md new file mode 100644 index 00000000..27422d87 --- /dev/null +++ b/problems/accessing-array-values/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ОТОБРАЖЕН ВТОРОЙ ЭЛЕМЕНТ МАССИВА! + +Отличная работа, вам удалось получить эллемент массива. + +В следующей задаче мы будем работать с примером обхода массива в цикле. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/array-filtering/problem_ru.md b/problems/array-filtering/problem_ru.md new file mode 100644 index 00000000..a3cce5d7 --- /dev/null +++ b/problems/array-filtering/problem_ru.md @@ -0,0 +1,45 @@ +Существует множество способов манипуляции массивами. + +Одной из распростарннёных задач является фильтрация массива, позволяющая получить массив с заданными значениями. + +Для этого мы будем использовать метод `.filter()`. + +Например: + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +Перменная `filtered` теперь будет содержать массив с элементами `cat` и `dog`. + +## Условие задачи: + +Создайте файл `array-filtering.js`. + +В этом файле требуется объявить переменную `numbers` которая должен быть присвоен следующий массив: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +Как было показано выше, объявите переменную `filtered` которой будет присвоен результат выполнения `numbers.filter()`. + +Функция, которая должна быть передана в виде аргумента методу `.filter()`, будет выглядеть следующим образом: + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +Воспользуйтесь командой `console.log()`, чтобы вывести массив `filtered` в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/solution_ru.md b/problems/array-filtering/solution_ru.md new file mode 100644 index 00000000..9590ccb7 --- /dev/null +++ b/problems/array-filtering/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ОТФИЛЬТРОВАНО! + +Отличная работа, вам удалось отфильтровать данный массив. + +В следующей задаче мы познакомимся с примером обращения к элементу массива. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/arrays/problem_ru.md b/problems/arrays/problem_ru.md new file mode 100644 index 00000000..7a57efcc --- /dev/null +++ b/problems/arrays/problem_ru.md @@ -0,0 +1,19 @@ +Массив -- это набор значений. Например: + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +### Условие задачи: + +Создайте файл `arrays.js`. + +В этом файле требуется объявить переменную `pizzaToppings`, которой должен быть присвоен массив, состоящий из строк в таком порядке: `tomato sauce, cheese, pepperoni`. + +Воспользуйтесь командой `console.log()`, чтобы вывести массив `pizzaToppings` в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/solution_ru.md b/problems/arrays/solution_ru.md new file mode 100644 index 00000000..1894ff91 --- /dev/null +++ b/problems/arrays/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# УРА! ПИЦЦА-МАССИВ! + +Вам удалось создать массив! + +В следующей задаче мы разберёмся с фильтрацией массивов. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/for-loop/problem_ru.md b/problems/for-loop/problem_ru.md new file mode 100644 index 00000000..afd6779b --- /dev/null +++ b/problems/for-loop/problem_ru.md @@ -0,0 +1,39 @@ +Цикл for позволяет выполнить заданный блок кода определённое количество раз. +Этот цикл for выводит значение переменной в консоль десять раз: + +```js +for (var i = 0; i < 10; i++) { + // выводим в консоль числа от 0 до 9 + console.log(i) +} +``` + +Первая часть конструкции цикла for, `var i = 0`, выполняется один раз в начале работы цикла. При этом переменная `i` в данном примере использутеся для хранения количества итераций цикла. + +Условие `i < 10;` проверяется в начале каждой итерации перед выполнением блока кода, заданного внутри цикла. Если условие является верным, то блок кода внутри цикла будет выполнен. В противном случае выполнение цикла завершается. Выражение `i < 10;` задаёт предел выполнения цикла. Цикл будет выполняться до тех пор, пока `i` будет строго меньше `10`. + +Последняя часть конструкции цикла for, выражение `i++`, выполняется в конце каждой итерации цикла, увеличивая переменную `i` на 1. Как только `i` достигнет `10`, выполнение цикла прекратится. + +## Условие задачи: + +Создайте файл `for-loop.js`. + +В этом файле объявите переменную `total` и присвойте ей значение `0`. + +Объявите вторую переменную -- `limit` и присвойте ей значение `10`. + +Создайте цикл for с переменной `i`, начальное значение которой 0. За каждый проход цикла переменная `i` должна увеличиваться на 1. Цикл должен работать до тех пор, пока значение `i` остаётся меньше значения перменной `limit`. + +Прибавляйте `i` к переменной `total` на каждую итерацию цикла. Чтобы сделать это, воспользуйтесь следующим выражением: + +```js +total += i; +``` + +Воспользуйтесь методом `console.log()`, чтобы вывести значение `total` в терминал после завершения работы цикла. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/solution_ru.md b/problems/for-loop/solution_ru.md new file mode 100644 index 00000000..db0ef1a3 --- /dev/null +++ b/problems/for-loop/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ПЕРЕМЕННАЯ TOTAL РАВНА 45 + +Мы ознакомились с основами использования циклов for, которые находят широкое применение при работе с различными типами данных, в особенности с такими как строки и массивы. + +В следующей задаче мы начнём работать с **массивами**. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/revising-strings/problem_ru.md b/problems/revising-strings/problem_ru.md new file mode 100644 index 00000000..f8ecbe4f --- /dev/null +++ b/problems/revising-strings/problem_ru.md @@ -0,0 +1,29 @@ +Типовой задачей является изменение содержимого строки. + +Строки обладают встроенным функционалом для осмотра и манипуляции их содержимым. + +Рассмотрим пример использования метода `.replace()`: + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +Обратите внимание что для того, чтобы изменить значение перменной `example`  нам нужно восользоваться знаком _равно_ ещё раз, в этот раз вместе с вызовом метода `example.replace()` справа от знака _равно_. + +## Условие задачи: + +Создайте файл `revising-strings.js`. + +Объявите в нём перменную `pizza`, которой присвоено значение: `'pizza is alright'` + +Ипользуя метод `.replace()` замените `alright` на `wonderful`. + +Воспользуйтесь командой `console.log()`, чтобы вывести результат работы метода `.replace()` в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify revising-strings.js +``` diff --git a/problems/revising-strings/solution_ru.md b/problems/revising-strings/solution_ru.md new file mode 100644 index 00000000..b3833489 --- /dev/null +++ b/problems/revising-strings/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# О ДА, ПИЦЦА _ТЕПЕРЬ_ ВЕЛИКОЛЕПНА. + +Отлично, вы справились с методом `.replace()`! + +Дальше мы познакомися с **числами**. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/rounding-numbers/problem_ru.md b/problems/rounding-numbers/problem_ru.md new file mode 100644 index 00000000..0ffb934f --- /dev/null +++ b/problems/rounding-numbers/problem_ru.md @@ -0,0 +1,29 @@ +Мы можем производить вычесления использую знакомые всем математические операторы, такие как `+`, `-`, `/`, и `%`. + +Для более сложных вычислений мы може воспользоваться объектом `Math`. + +В этом испытании мы будем использовать объект `Math` для округления чисел. + +## Условие задачи: + +Создайте файл под названием `rounding-numbers.js`. + +Объявите в нём переменную `roundUp` и задайте ей дробное значение `1.5`. + +Мы будем использовать метод `Math.round()` для округления этого числа. Этот метод округляет как в большую, так и в меньшую сторону, к ближайшему целому значению. + +Пример использования `Math.round()`: + +```js +Math.round(0.5); +``` + +Объявите вторую переменную `rounded`, которая ссылается на результат работы метода `Math.round()`, аргументом которой является переменная `roundUp`. + +Воспользуйтесь командой `console.log()`, чтобы вывести результат в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/solution_ru.md b/problems/rounding-numbers/solution_ru.md new file mode 100644 index 00000000..04028c1c --- /dev/null +++ b/problems/rounding-numbers/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ЧИСЛО ОКРУГЛЕНО + +Так точно, вы только что округлили число `1.5` до `2`. Хорошая работа! + +В следующей задаче мы будем превращать числов строку. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 32aa0283..eac5ce15 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -2,7 +2,7 @@ JavaScript has two scopes: `global` and `local`. A variable that is declared outside a function definition is a `global` variable, and its value is accessible and modifiable throughout your program. A variable that is declared inside a function definition is `local`. It is created and destroyed every time the function is executed, and it cannot be accessed by any code outside the function. -Functions defined inside other functions, known as nested functions, have access to their parent function's scope. +Functions defined inside other functions, known as nested functions, have access to their parent function's scope. Pay attention to the comments in the code below: @@ -44,7 +44,7 @@ var a = 1, b = 2, c = 3; (function secondFunction(){ var b = 8; - + (function thirdFunction(){ var a = 7, c = 9; @@ -58,7 +58,7 @@ var a = 1, b = 2, c = 3; ``` Use your knowledge of the variables' `scope` and place the following code inside one of the functions in `scope.js` -so the output is `a: 1, b: 8,c: 6` +so the output is `a: 1, b: 8, c: 6` ```js console.log("a: "+a+", b: "+b+", c: "+c); ``` diff --git a/problems/scope/problem_ru.md b/problems/scope/problem_ru.md new file mode 100644 index 00000000..5e53d646 --- /dev/null +++ b/problems/scope/problem_ru.md @@ -0,0 +1,76 @@ +`Область видимости` описывает множество переменных, объектов, а также функций к которым есть непосредственный доступ. + +JavaScript обладает двумя областями видимости: `глобальной` и `локальной`. Переменная, объявленная снаружи функции, является `глобальной` переменной. Она доступна и модифицируема из любого места вашей программы. При объявлении переменной внутри функции мы получаем `локальную` переменную. Она создаётся и удаляется каждый раз при вызове функции. К такой переменной нельзя получить доступ снаружи функции. + +Функции, объявленные внутри других функций, известные также как вложенные (дочерние) функции, имеют доступ к области видимости родительской функции. + +Обратите внимание на комментарии к приведённому ниже коду: + +```js +var a = 4; // это глобальная переменная, она доступна для функций ниже + +function foo() { + var b = a * 3; // к переменной `b` нет доступа снаружи функции `foo`, но к + // этой переменной имеют доступ функции, объявленные внутри `foo` + function bar(c) { + var b = 2; // ещё одна переменная `b` создана внутри области видимости + // функции `bar`, модификации этой новой переменной `b` никак не + // отразятся на объявленной выше переменной `b` + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` + +Непосредственно выполняемая функция-выражение -- распространённый паттерн создания локальной области видимости. + +Например: + +```js +(function() { // объявление функции окружено круглыми скобками + // переменные, объявленные здесь + // не будут доступны снаружи +})(); // функция сразу же вызывается +``` + +## Условия задачи + +Создайте файл `scope.js`. + +Скопируйте в него слейдующий код: + +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Используя полученные знания об `областях видимости`, разместите приведённый ниже код внутри одной из функций, объявленных в `scope.js`, так, чтобы на выходе получилось `a: 1, b: 8, c: 6`. + +```js +console.log("a: "+a+", b: "+b+", c: "+c); +``` + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/solution_ru.md b/problems/scope/solution_ru.md new file mode 100644 index 00000000..e8fdd9ae --- /dev/null +++ b/problems/scope/solution_ru.md @@ -0,0 +1,9 @@ +--- + +# НЕВЕРОЯТНО! + +У вас получилось! Именно вторая функция обладает нужной нам областью видимости. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/string-length/problem_ru.md b/problems/string-length/problem_ru.md new file mode 100644 index 00000000..ea0a9c68 --- /dev/null +++ b/problems/string-length/problem_ru.md @@ -0,0 +1,31 @@ +Очень часто нужно узнать количество символов, содержащихся в заданной строке. + +Для этого мы будем использовать свойство `.length`. Например: + +```js +var example = 'example string'; +example.length; +``` + +## НА ЗАМЕТКУ + +Удостовертесь, что между `example` и `length` присутствует _точка_. + +Код выше должен вернуть **число** символов в заданной строке. + + +## Условие задачи: + +Создайте файл `string-length.js`. + +В этом файле объявите переменную `example`. + +**Присвойте переменной `example` строку `'example string'`.** + +Воспользуйтесь командой `console.log()`, чтобы вывести **длину** строки в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify string-length.js +``` diff --git a/problems/string-length/solution_ru.md b/problems/string-length/solution_ru.md new file mode 100644 index 00000000..2b322b38 --- /dev/null +++ b/problems/string-length/solution_ru.md @@ -0,0 +1,9 @@ +--- + +# ПОБЕДА: 14 СИМВОЛОВ + +У вас получилось! В строке `example string` 14 символов. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md new file mode 100644 index 00000000..150954af --- /dev/null +++ b/problems/strings/problem_ru.md @@ -0,0 +1,31 @@ +Любое значение, окруженное кавычками является **строкой**. + +Для этого могут быть использованы как одинарные, так и двойные кавычки: + +```js +'this is a string' + +"this is also a string" +``` + +## НА ЗАМЕТКУ + +Старайтесь быть последовательны и используйте один тип кавычек. В этом воркшопе мы будет использовать только одинарные кавычки. + +## Условие задачи: + +Для решения данной задачи создайте файл `strings.js`. + +В этом файле объявите переменную `someString` таким образом: + +```js +var someString = 'this is a string'; +``` + +Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной **someString** в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify strings.js +``` diff --git a/problems/strings/solution_ru.md b/problems/strings/solution_ru.md new file mode 100644 index 00000000..ff83ddbb --- /dev/null +++ b/problems/strings/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# УСПЕХ. + +Вы начали пользоваться строками! + +В следующей задаче мы рассмотрим как можно изменять строки. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- diff --git a/problems/this/problem_ru.md b/problems/this/problem_ru.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_ru.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_ru.md b/problems/this/solution_ru.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_ru.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/variables/problem_ru.md b/problems/variables/problem_ru.md new file mode 100644 index 00000000..3e11f249 --- /dev/null +++ b/problems/variables/problem_ru.md @@ -0,0 +1,35 @@ +Переменная -- это имя, с которым связано определённое значение. Переменные объявляются с помощью ключевого слова `var`, после которого записывается название переменной. + +Например: + +```js +var example; +``` + +Перменная выше **объявлена**, но не задана (ей не присвоено какое-либо конкретное значение). + +Ниже дан пример объявления переменной с заданным значением: + +```js +var example = 'some string'; +``` + +## НА ЗАМЕТКУ + +Ключевое слово `var` используется чтобы **объявить** переменную, а знак _равно_ используется для того, чтобы **присвоить** значение этой переменной. + +## Условие задачи: + +Создайте файл под названием `variables.js`. + +Объявите переменную под названием `example` в этом файле. + +**Присвойте значение `'some string'` переменной `examplpe`.** + +Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной `example` в консоль. + +Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: + +```bash +javascripting verify variables.js +``` diff --git a/problems/variables/solution_ru.md b/problems/variables/solution_ru.md new file mode 100644 index 00000000..ce304e89 --- /dev/null +++ b/problems/variables/solution_ru.md @@ -0,0 +1,11 @@ +--- + +# ВЫ СОЗДАЛИ ПЕРМЕННУЮ! + +Отличная работа. + +В следующей задаче мы более подробно разберём работу со строками. + +Запустите `javascripting` в консоли и выберите следующую задачу. + +--- From 24389403e1a0abc0ecf1a60c2d67622808f5f1d4 Mon Sep 17 00:00:00 2001 From: Igor Pelekhan Date: Fri, 4 Mar 2016 19:19:52 +0300 Subject: [PATCH 191/346] Fix typos and errors --- i18n/troubleshooting_ru.md | 2 +- problems/accessing-array-values/problem_ru.md | 10 +++++----- problems/accessing-array-values/solution_ru.md | 2 +- problems/array-filtering/problem_ru.md | 8 ++++---- problems/array-filtering/solution_ru.md | 2 +- problems/for-loop/problem_ru.md | 6 +++--- problems/functions/problem_ru.md | 10 +++++----- problems/if-statement/problem_ru.md | 6 +++--- problems/introduction/problem_ru.md | 10 +++++----- problems/introduction/solution_ru.md | 6 +++--- problems/looping-through-arrays/problem_ru.md | 2 +- problems/number-to-string/solution_ru.md | 4 ++-- problems/object-properties/problem_ru.md | 6 +++--- problems/object-properties/solution_ru.md | 2 +- problems/objects/problem_ru.md | 2 +- problems/revising-strings/problem_ru.md | 8 ++++---- problems/revising-strings/solution_ru.md | 2 +- problems/rounding-numbers/problem_ru.md | 6 +++--- problems/rounding-numbers/solution_ru.md | 2 +- problems/scope/problem_ru.md | 12 ++++++------ problems/strings/problem_ru.md | 6 +++--- problems/strings/solution_ru.md | 2 +- problems/variables/problem_ru.md | 4 ++-- problems/variables/solution_ru.md | 2 +- 24 files changed, 61 insertions(+), 61 deletions(-) diff --git a/i18n/troubleshooting_ru.md b/i18n/troubleshooting_ru.md index 95697f3c..2e8d4693 100644 --- a/i18n/troubleshooting_ru.md +++ b/i18n/troubleshooting_ru.md @@ -22,5 +22,5 @@ ## Что ещё можно проверить: * Правильно ли набрано имя файла? Это можно проверить с помощью команды ls `%filename%`, если в ответ появилось ls: нет доступа к `%filename%`: Файл или директория не существует, тогда вам нужно создать новый / переименовать существующий файл или перейти в директорию с нужным файлом - * Удостоверьтесь, что вы не пропустил круглые скобки, так как в ином случае интерпретатор не сможет разобрать код + * Удостоверьтесь, что вы не пропустили круглые скобки, так как в ином случае интерпретатор не сможет разобрать код * Удостоверьтесь, что вы не сделали опечаток или не допустили ошибок diff --git a/problems/accessing-array-values/problem_ru.md b/problems/accessing-array-values/problem_ru.md index 0ea32a7b..ae2f0894 100644 --- a/problems/accessing-array-values/problem_ru.md +++ b/problems/accessing-array-values/problem_ru.md @@ -1,6 +1,6 @@ -Доступ к элементам массива может быть осуществлён с помощью индекса. +Элементы массива могут быть получены при помощи числового индекса. -Индекс массива может принимать значения от нуля до размера массива минус один. +Индекс может иметь значение от нуля до величины свойства `length` массива, минус единица. Например: @@ -17,13 +17,13 @@ Обращение через точку является неверным. -Правильная нотация: +Правильная запись: ```js console.log(pets[0]); ``` -Неправильная нотация: +Неправильная запись: ``` console.log(pets.1); ``` @@ -32,7 +32,7 @@ Создайте файл с названием `accessing-array-values.js`. -В этом файле требуется объявить массив `food` : +В этом файле объявите массив `food` : ```js var food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/solution_ru.md b/problems/accessing-array-values/solution_ru.md index 27422d87..50997a32 100644 --- a/problems/accessing-array-values/solution_ru.md +++ b/problems/accessing-array-values/solution_ru.md @@ -2,7 +2,7 @@ # ОТОБРАЖЕН ВТОРОЙ ЭЛЕМЕНТ МАССИВА! -Отличная работа, вам удалось получить эллемент массива. +Отличная работа, вам удалось получить элемент массива. В следующей задаче мы будем работать с примером обхода массива в цикле. diff --git a/problems/array-filtering/problem_ru.md b/problems/array-filtering/problem_ru.md index a3cce5d7..586f9690 100644 --- a/problems/array-filtering/problem_ru.md +++ b/problems/array-filtering/problem_ru.md @@ -1,6 +1,6 @@ Существует множество способов манипуляции массивами. -Одной из распростарннёных задач является фильтрация массива, позволяющая получить массив с заданными значениями. +Одной из распространённых задач является фильтрация массива, позволяющая получить массив с определёнными значениями. Для этого мы будем использовать метод `.filter()`. @@ -14,19 +14,19 @@ var filtered = pets.filter(function (pet) { }); ``` -Перменная `filtered` теперь будет содержать массив с элементами `cat` и `dog`. +Переменная `filtered` теперь будет содержать массив с элементами `cat` и `dog`. ## Условие задачи: Создайте файл `array-filtering.js`. -В этом файле требуется объявить переменную `numbers` которая должен быть присвоен следующий массив: +В этом файле требуется объявить переменную `numbers`, которой должен быть присвоен следующий массив: ```js [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; ``` -Как было показано выше, объявите переменную `filtered` которой будет присвоен результат выполнения `numbers.filter()`. +Как было показано выше, объявите переменную `filtered` и присвойте ей результат выполнения `numbers.filter()`. Функция, которая должна быть передана в виде аргумента методу `.filter()`, будет выглядеть следующим образом: diff --git a/problems/array-filtering/solution_ru.md b/problems/array-filtering/solution_ru.md index 9590ccb7..fcf1afce 100644 --- a/problems/array-filtering/solution_ru.md +++ b/problems/array-filtering/solution_ru.md @@ -2,7 +2,7 @@ # ОТФИЛЬТРОВАНО! -Отличная работа, вам удалось отфильтровать данный массив. +Отличная работа, вам удалось отфильтровать массив. В следующей задаче мы познакомимся с примером обращения к элементу массива. diff --git a/problems/for-loop/problem_ru.md b/problems/for-loop/problem_ru.md index afd6779b..dfc57bc0 100644 --- a/problems/for-loop/problem_ru.md +++ b/problems/for-loop/problem_ru.md @@ -8,7 +8,7 @@ for (var i = 0; i < 10; i++) { } ``` -Первая часть конструкции цикла for, `var i = 0`, выполняется один раз в начале работы цикла. При этом переменная `i` в данном примере использутеся для хранения количества итераций цикла. +Первая часть конструкции цикла for, `var i = 0`, выполняется один раз в начале работы цикла. При этом переменная `i` в данном примере используется для хранения количества итераций цикла. Условие `i < 10;` проверяется в начале каждой итерации перед выполнением блока кода, заданного внутри цикла. Если условие является верным, то блок кода внутри цикла будет выполнен. В противном случае выполнение цикла завершается. Выражение `i < 10;` задаёт предел выполнения цикла. Цикл будет выполняться до тех пор, пока `i` будет строго меньше `10`. @@ -22,9 +22,9 @@ for (var i = 0; i < 10; i++) { Объявите вторую переменную -- `limit` и присвойте ей значение `10`. -Создайте цикл for с переменной `i`, начальное значение которой 0. За каждый проход цикла переменная `i` должна увеличиваться на 1. Цикл должен работать до тех пор, пока значение `i` остаётся меньше значения перменной `limit`. +Создайте цикл for с переменной `i`, начальное значение которой 0. За каждый проход цикла переменная `i` должна увеличиваться на 1. Цикл должен работать до тех пор, пока значение `i` остаётся меньше значения переменной `limit`. -Прибавляйте `i` к переменной `total` на каждую итерацию цикла. Чтобы сделать это, воспользуйтесь следующим выражением: +Прибавляйте `i` к переменной `total` в каждой итерации цикла. Чтобы сделать это, воспользуйтесь следующим выражением: ```js total += i; diff --git a/problems/functions/problem_ru.md b/problems/functions/problem_ru.md index e808fb0a..4b836515 100644 --- a/problems/functions/problem_ru.md +++ b/problems/functions/problem_ru.md @@ -8,19 +8,19 @@ function example (x) { } ``` -Вот так можно **вызвать** эту функцию чтобы получить число 10: +Вот так можно **вызвать** эту функцию, чтобы получить число 10: ```js example(5) ``` -Приведенный выше пример показывает что функция `example` возьмет в качестве аргумента число - входные данные - и вернет это число умноженным на 2. +Приведенный выше пример показывает, что функция `example` возьмет в качестве аргумента число - входные данные - и вернет это число умноженным на 2. ## Условие задачи: Создайте файл `functions.js`. -В этом файле определите функцию `eat`, принимающую один аргумент под названием `food`, предполагается что это строка. +В этом файле определите функцию `eat`, принимающую один строковый аргумент под названием `food`. Внутри функции используйте аргумент `food` и верните следующий результат: @@ -28,10 +28,10 @@ example(5) return food + ' tasted really good.'; ``` -Внутри скобок выражения `console.log()` вызовите функцию `eat()` указав в качестве аргумента строку `bananas`. +Внутри скобок выражения `console.log()` вызовите функцию `eat()`, указав в качестве аргумента строку `bananas`. Чтобы удостовериться в правильности решения задачи, запустите в терминале следующую команду: ```bash javascripting verify functions.js -``` \ No newline at end of file +``` diff --git a/problems/if-statement/problem_ru.md b/problems/if-statement/problem_ru.md index 1a581d29..d2a78abb 100644 --- a/problems/if-statement/problem_ru.md +++ b/problems/if-statement/problem_ru.md @@ -10,9 +10,9 @@ if (n > 1) { } ``` -Внутри скобок должно быть логическое утверждение, результатом которого является либо истина либо ложь. +Внутри скобок должно быть логическое утверждение, результатом которого является либо истина, либо ложь. -Блок else является необязательным и содержит код, который выполнится если результатом логического утверждения будет ложь. +Блок else является необязательным и содержит код, который выполнится, если результатом логического утверждения будет ложь. ## Условие задачи: @@ -29,4 +29,4 @@ if (n > 1) { ```bash javascripting verify if-statement.js -``` \ No newline at end of file +``` diff --git a/problems/introduction/problem_ru.md b/problems/introduction/problem_ru.md index 7103a19e..67d25100 100644 --- a/problems/introduction/problem_ru.md +++ b/problems/introduction/problem_ru.md @@ -1,6 +1,6 @@ Для поддержания порядка давайте создадим для этого воркшопа отдельную папку. -Выполните в терминале эту команду чтобы создать папку под названием `javascripting` (можете использовать другое название если хотите): +Выполните в терминале эту команду, чтобы создать папку под названием `javascripting` (можете использовать другое название, если хотите): ```bash mkdir javascripting @@ -18,7 +18,7 @@ cd javascripting touch introduction.js ``` -или если у вас Windows, +или, если у вас Windows, ```bash type NUL > introduction.js ``` @@ -30,14 +30,14 @@ type NUL > introduction.js console.log('hello'); ``` -Сохраните файл, и чтобы проверить что ваша программа работает правильно запустите в терминале следующую команду: +Сохраните файл, и, чтобы проверить что ваша программа работает правильно, запустите в терминале следующую команду: ```bash javascripting verify introduction.js ``` -Кстати, работая с практическими заданиями, можете называть файлы как вам нравится, если например для каждого упражнения вы хотите использовать файл с именем `catsAreAwesome.js`, делайте это. Просто удостоверьтесь, что вы запускаете в терминале: +Кстати, работая с практическими заданиями, можете называть файлы как вам нравится, если например для каждого упражнения вы хотите использовать файл с именем `catsAreAwesome.js`, полный вперёд! Просто удостоверьтесь, что вы запускаете в терминале: ```bash javascripting verify catsAreAwesome.js -``` \ No newline at end of file +``` diff --git a/problems/introduction/solution_ru.md b/problems/introduction/solution_ru.md index 0de1a2ba..d89aa22f 100644 --- a/problems/introduction/solution_ru.md +++ b/problems/introduction/solution_ru.md @@ -2,9 +2,9 @@ # ВЫ СДЕЛАЛИ ЭТО! -Все что находится внутри скобок выражения `console.log()` выводится в терминал. +Все, что находится внутри скобок выражения `console.log()`, выводится в терминал. -Поэтому вот это выражение: +Поэтому вот это выражение: ```js console.log('hello'); @@ -18,4 +18,4 @@ console.log('hello'); Запустите `javascripting` в консоли и выберите следующую задачу. ---- \ No newline at end of file +--- diff --git a/problems/looping-through-arrays/problem_ru.md b/problems/looping-through-arrays/problem_ru.md index ff4991d7..a66161f1 100644 --- a/problems/looping-through-arrays/problem_ru.md +++ b/problems/looping-through-arrays/problem_ru.md @@ -28,7 +28,7 @@ greetings[1]; ['cat', 'dog', 'rat']; ``` -Создайте цикл for, который меняет каждую строчку в массиве, так чтобы слова были в форме множественного числа. +Создайте цикл for, который меняет каждую строчку в массиве так, чтобы слова были в форме множественного числа. Используйте внутри цикла for следующее выражение: diff --git a/problems/number-to-string/solution_ru.md b/problems/number-to-string/solution_ru.md index d4f0201e..d1d27cc2 100644 --- a/problems/number-to-string/solution_ru.md +++ b/problems/number-to-string/solution_ru.md @@ -1,6 +1,6 @@ --- -# ТЕПЕРЬ ЭТО ЧИСЛО СТРОКА! +# ТЕПЕРЬ ЭТО ЧИСЛО -- СТРОКА! Превосходно! Отличная работа по представлению числа в виде строки. @@ -8,4 +8,4 @@ Запустите `javascripting` в консоли и выберите следующую задачу. ---- \ No newline at end of file +--- diff --git a/problems/object-properties/problem_ru.md b/problems/object-properties/problem_ru.md index f2be6830..75474453 100644 --- a/problems/object-properties/problem_ru.md +++ b/problems/object-properties/problem_ru.md @@ -1,4 +1,4 @@ -Вы можете получить доступ и оперировать свойствами объектов -- ключами и значениями которые содержит объект -- используя синтаксис очень похожий на работу с массивами. +Вы можете получить доступ и оперировать свойствами объектов -- ключами и значениями, которые содержит объект -- используя синтаксис, очень похожий на работу с массивами. Вот пример использования **квадратных скобок**: @@ -12,7 +12,7 @@ console.log(example['pizza']); Код приведенный выше выведет в терминал строку `'yummy'`. -В качестве альтернативы, вы можете использовать **запись с точкой** и получить идентичные результаты: +В качестве альтернативы, вы можете использовать **запись с точкой** и получить идентичный результат: ```js example.pizza; @@ -20,7 +20,7 @@ example.pizza; example['pizza']; ``` -Обе строки кода приведенные выше вернут одинаковое значение `yummy`. +Обе строки кода, приведенные выше, вернут одинаковое значение `yummy`. ## Условие задачи: diff --git a/problems/object-properties/solution_ru.md b/problems/object-properties/solution_ru.md index a30d8350..541a0149 100644 --- a/problems/object-properties/solution_ru.md +++ b/problems/object-properties/solution_ru.md @@ -4,7 +4,7 @@ Отличная работа по доступу к свойству объекта. -В следующем упражнении все о **функциях**. +В следующем упражнении всё о **функциях**. Запустите `javascripting` в консоли и выберите следующую задачу. diff --git a/problems/objects/problem_ru.md b/problems/objects/problem_ru.md index a1bff782..e1b9c729 100644 --- a/problems/objects/problem_ru.md +++ b/problems/objects/problem_ru.md @@ -1,4 +1,4 @@ -Объекты - это списки значений почти как в массивах, за исключением того что значениям соответствуют ключи, а не числа. +Объекты - это списки значений, почти как в массивах, за исключением того, что значениям соответствуют ключи, а не числа. Например: diff --git a/problems/revising-strings/problem_ru.md b/problems/revising-strings/problem_ru.md index f8ecbe4f..d093f526 100644 --- a/problems/revising-strings/problem_ru.md +++ b/problems/revising-strings/problem_ru.md @@ -1,6 +1,6 @@ Типовой задачей является изменение содержимого строки. -Строки обладают встроенным функционалом для осмотра и манипуляции их содержимым. +Строки обладают встроенным функционалом для проверки и манипуляции их содержимым. Рассмотрим пример использования метода `.replace()`: @@ -10,15 +10,15 @@ example = example.replace('exists', 'is awesome'); console.log(example); ``` -Обратите внимание что для того, чтобы изменить значение перменной `example`  нам нужно восользоваться знаком _равно_ ещё раз, в этот раз вместе с вызовом метода `example.replace()` справа от знака _равно_. +Обратите внимание: чтобы изменить значение переменной `example` нам нужно воспользоваться знаком _равно_ ещё раз, в этот раз вместе с вызовом метода `example.replace()` справа от знака _равно_. ## Условие задачи: Создайте файл `revising-strings.js`. -Объявите в нём перменную `pizza`, которой присвоено значение: `'pizza is alright'` +Объявите в нём переменную `pizza`, которой присвоено значение `'pizza is alright'`. -Ипользуя метод `.replace()` замените `alright` на `wonderful`. +Ипользуя метод `.replace()`, замените `alright` на `wonderful`. Воспользуйтесь командой `console.log()`, чтобы вывести результат работы метода `.replace()` в консоль. diff --git a/problems/revising-strings/solution_ru.md b/problems/revising-strings/solution_ru.md index b3833489..625ffc2f 100644 --- a/problems/revising-strings/solution_ru.md +++ b/problems/revising-strings/solution_ru.md @@ -4,7 +4,7 @@ Отлично, вы справились с методом `.replace()`! -Дальше мы познакомися с **числами**. +Дальше мы познакомимся с **числами**. Запустите `javascripting` в консоли и выберите следующую задачу. diff --git a/problems/rounding-numbers/problem_ru.md b/problems/rounding-numbers/problem_ru.md index 0ffb934f..97f4d109 100644 --- a/problems/rounding-numbers/problem_ru.md +++ b/problems/rounding-numbers/problem_ru.md @@ -1,8 +1,8 @@ -Мы можем производить вычесления использую знакомые всем математические операторы, такие как `+`, `-`, `/`, и `%`. +Мы можем производить вычисления, использую знакомые всем математические операторы, такие как `+`, `-`, `/` и `%`. -Для более сложных вычислений мы може воспользоваться объектом `Math`. +Для более сложных вычислений мы можем воспользоваться объектом `Math`. -В этом испытании мы будем использовать объект `Math` для округления чисел. +В этой задаче мы будем использовать объект `Math` для округления чисел. ## Условие задачи: diff --git a/problems/rounding-numbers/solution_ru.md b/problems/rounding-numbers/solution_ru.md index 04028c1c..1ac72323 100644 --- a/problems/rounding-numbers/solution_ru.md +++ b/problems/rounding-numbers/solution_ru.md @@ -4,7 +4,7 @@ Так точно, вы только что округлили число `1.5` до `2`. Хорошая работа! -В следующей задаче мы будем превращать числов строку. +В следующей задаче мы будем превращать число в строку. Запустите `javascripting` в консоли и выберите следующую задачу. diff --git a/problems/scope/problem_ru.md b/problems/scope/problem_ru.md index 5e53d646..c9f7b172 100644 --- a/problems/scope/problem_ru.md +++ b/problems/scope/problem_ru.md @@ -1,6 +1,6 @@ -`Область видимости` описывает множество переменных, объектов, а также функций к которым есть непосредственный доступ. +`Область видимости` описывает множество переменных, объектов, а также функций, к которым есть непосредственный доступ. -JavaScript обладает двумя областями видимости: `глобальной` и `локальной`. Переменная, объявленная снаружи функции, является `глобальной` переменной. Она доступна и модифицируема из любого места вашей программы. При объявлении переменной внутри функции мы получаем `локальную` переменную. Она создаётся и удаляется каждый раз при вызове функции. К такой переменной нельзя получить доступ снаружи функции. +JavaScript обладает двумя областями видимости: `глобальной` и `локальной`. Переменная, объявленная снаружи функции, является `глобальной` переменной. Она доступна и изменяема из любого места вашей программы. При объявлении переменной внутри функции мы получаем `локальную` переменную. Она создаётся и удаляется каждый раз при вызове функции. К такой переменной нельзя получить доступ извне функции. Функции, объявленные внутри других функций, известные также как вложенные (дочерние) функции, имеют доступ к области видимости родительской функции. @@ -25,13 +25,13 @@ function foo() { foo(); // 4, 2, 48 ``` -Непосредственно выполняемая функция-выражение -- распространённый паттерн создания локальной области видимости. +Непосредственно выполняемая функция-выражение (IIFE) -- распространённый паттерн создания локальной области видимости. Например: ```js (function() { // объявление функции окружено круглыми скобками - // переменные, объявленные здесь + // переменные, объявленные здесь, // не будут доступны снаружи })(); // функция сразу же вызывается ``` @@ -40,7 +40,7 @@ foo(); // 4, 2, 48 Создайте файл `scope.js`. -Скопируйте в него слейдующий код: +Скопируйте в него следующий код: ```js var a = 1, b = 2, c = 3; @@ -63,7 +63,7 @@ var a = 1, b = 2, c = 3; })(); ``` -Используя полученные знания об `областях видимости`, разместите приведённый ниже код внутри одной из функций, объявленных в `scope.js`, так, чтобы на выходе получилось `a: 1, b: 8, c: 6`. +Используя полученные знания об `областях видимости`, разместите приведённый ниже код внутри одной из функций, объявленных в `scope.js` так, чтобы на выходе получилось `a: 1, b: 8, c: 6`. ```js console.log("a: "+a+", b: "+b+", c: "+c); diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md index 150954af..c32131c5 100644 --- a/problems/strings/problem_ru.md +++ b/problems/strings/problem_ru.md @@ -1,6 +1,6 @@ -Любое значение, окруженное кавычками является **строкой**. +Любое значение, окруженное кавычками, является **строкой**. -Для этого могут быть использованы как одинарные, так и двойные кавычки: +Для этого можно использовать как одинарные, так и двойные кавычки: ```js 'this is a string' @@ -10,7 +10,7 @@ ## НА ЗАМЕТКУ -Старайтесь быть последовательны и используйте один тип кавычек. В этом воркшопе мы будет использовать только одинарные кавычки. +Старайтесь быть последовательны и используйте один тип кавычек. В этом воркшопе мы будем использовать только одинарные кавычки. ## Условие задачи: diff --git a/problems/strings/solution_ru.md b/problems/strings/solution_ru.md index ff83ddbb..2bc3c0fd 100644 --- a/problems/strings/solution_ru.md +++ b/problems/strings/solution_ru.md @@ -4,7 +4,7 @@ Вы начали пользоваться строками! -В следующей задаче мы рассмотрим как можно изменять строки. +В следующей задаче мы рассмотрим, как можно изменять строки. Запустите `javascripting` в консоли и выберите следующую задачу. diff --git a/problems/variables/problem_ru.md b/problems/variables/problem_ru.md index 3e11f249..0b27e09c 100644 --- a/problems/variables/problem_ru.md +++ b/problems/variables/problem_ru.md @@ -6,7 +6,7 @@ var example; ``` -Перменная выше **объявлена**, но не задана (ей не присвоено какое-либо конкретное значение). +Переменная выше **объявлена**, но не задана (ей не присвоено какое-либо конкретное значение). Ниже дан пример объявления переменной с заданным значением: @@ -24,7 +24,7 @@ var example = 'some string'; Объявите переменную под названием `example` в этом файле. -**Присвойте значение `'some string'` переменной `examplpe`.** +**Присвойте значение `'some string'` переменной `example`.** Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной `example` в консоль. diff --git a/problems/variables/solution_ru.md b/problems/variables/solution_ru.md index ce304e89..84f97359 100644 --- a/problems/variables/solution_ru.md +++ b/problems/variables/solution_ru.md @@ -1,6 +1,6 @@ --- -# ВЫ СОЗДАЛИ ПЕРМЕННУЮ! +# ВЫ СОЗДАЛИ ПЕРЕМЕННУЮ! Отличная работа. From 5cb64ee17465cfe3f448d16e95f5e79f628e52df Mon Sep 17 00:00:00 2001 From: sethvincent Date: Mon, 14 Mar 2016 22:51:53 -0600 Subject: [PATCH 192/346] v2.5.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b4c9ebb0..98b203f6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.4.1", + "version": "2.5.0", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From 855a907891e3d73f1b93c49416fc3daa97d4a7f3 Mon Sep 17 00:00:00 2001 From: CodinCat Date: Fri, 8 Apr 2016 13:22:08 +0800 Subject: [PATCH 193/346] add language zh-tw (Traditional Chinese) (#164) * add language zh-tw (Traditional Chinese) * improve translation to zh-tw * make the translation of zh-tw more consistent --- i18n/footer/zh-tw.md | 1 + i18n/troubleshooting_zh-tw.md | 26 ++++++++ i18n/zh-tw.json | 23 +++++++ index.js | 2 +- .../accessing-array-values/problem_zh-tw.md | 45 +++++++++++++ .../accessing-array-values/solution_zh-tw.md | 11 ++++ problems/array-filtering/problem_zh-tw.md | 45 +++++++++++++ problems/array-filtering/solution_zh-tw.md | 11 ++++ problems/arrays/problem_zh-tw.md | 19 ++++++ problems/arrays/solution_zh-tw.md | 11 ++++ problems/for-loop/problem_zh-tw.md | 39 ++++++++++++ problems/for-loop/solution_zh-tw.md | 11 ++++ problems/function-arguments/problem_zh-tw.md | 35 +++++++++++ problems/function-arguments/solution_zh-tw.md | 9 +++ .../function-return-values/problem_zh-tw.md | 5 ++ .../function-return-values/solution_zh-tw.md | 5 ++ problems/functions/problem_zh-tw.md | 37 +++++++++++ problems/functions/solution_zh-tw.md | 9 +++ problems/if-statement/problem_zh-tw.md | 31 +++++++++ problems/if-statement/solution_zh-tw.md | 11 ++++ problems/introduction/problem_zh-tw.md | 29 +++++++++ problems/introduction/solution_zh-tw.md | 19 ++++++ .../looping-through-arrays/problem_zh-tw.md | 45 +++++++++++++ .../looping-through-arrays/solution_zh-tw.md | 11 ++++ problems/number-to-string/problem_zh-tw.md | 24 +++++++ problems/number-to-string/solution_zh-tw.md | 11 ++++ problems/numbers/problem_zh-tw.md | 13 ++++ problems/numbers/solution_zh-tw.md | 11 ++++ problems/object-keys/problem_zh-tw.md | 5 ++ problems/object-keys/solution_zh-tw.md | 5 ++ problems/object-properties/problem_zh-tw.md | 43 +++++++++++++ problems/object-properties/solution_zh-tw.md | 11 ++++ problems/objects/problem_zh-tw.md | 32 ++++++++++ problems/objects/solution_zh-tw.md | 11 ++++ problems/revising-strings/problem_zh-tw.md | 27 ++++++++ problems/revising-strings/solution_zh-tw.md | 11 ++++ problems/rounding-numbers/problem_zh-tw.md | 29 +++++++++ problems/rounding-numbers/solution_zh-tw.md | 11 ++++ problems/scope/problem_zh-tw.md | 63 +++++++++++++++++++ problems/scope/solution_zh-tw.md | 9 +++ problems/string-length/problem_zh-tw.md | 29 +++++++++ problems/string-length/solution_zh-tw.md | 9 +++ problems/strings/problem_zh-tw.md | 28 +++++++++ problems/strings/solution_zh-tw.md | 11 ++++ problems/this/problem_zh-tw.md | 5 ++ problems/this/solution_zh-tw.md | 5 ++ problems/variables/problem_zh-tw.md | 34 ++++++++++ problems/variables/solution_zh-tw.md | 11 ++++ 48 files changed, 937 insertions(+), 1 deletion(-) create mode 100644 i18n/footer/zh-tw.md create mode 100644 i18n/troubleshooting_zh-tw.md create mode 100644 i18n/zh-tw.json create mode 100644 problems/accessing-array-values/problem_zh-tw.md create mode 100644 problems/accessing-array-values/solution_zh-tw.md create mode 100644 problems/array-filtering/problem_zh-tw.md create mode 100644 problems/array-filtering/solution_zh-tw.md create mode 100644 problems/arrays/problem_zh-tw.md create mode 100644 problems/arrays/solution_zh-tw.md create mode 100644 problems/for-loop/problem_zh-tw.md create mode 100644 problems/for-loop/solution_zh-tw.md create mode 100644 problems/function-arguments/problem_zh-tw.md create mode 100644 problems/function-arguments/solution_zh-tw.md create mode 100644 problems/function-return-values/problem_zh-tw.md create mode 100644 problems/function-return-values/solution_zh-tw.md create mode 100644 problems/functions/problem_zh-tw.md create mode 100644 problems/functions/solution_zh-tw.md create mode 100644 problems/if-statement/problem_zh-tw.md create mode 100644 problems/if-statement/solution_zh-tw.md create mode 100644 problems/introduction/problem_zh-tw.md create mode 100644 problems/introduction/solution_zh-tw.md create mode 100644 problems/looping-through-arrays/problem_zh-tw.md create mode 100644 problems/looping-through-arrays/solution_zh-tw.md create mode 100644 problems/number-to-string/problem_zh-tw.md create mode 100644 problems/number-to-string/solution_zh-tw.md create mode 100644 problems/numbers/problem_zh-tw.md create mode 100644 problems/numbers/solution_zh-tw.md create mode 100644 problems/object-keys/problem_zh-tw.md create mode 100644 problems/object-keys/solution_zh-tw.md create mode 100644 problems/object-properties/problem_zh-tw.md create mode 100644 problems/object-properties/solution_zh-tw.md create mode 100644 problems/objects/problem_zh-tw.md create mode 100644 problems/objects/solution_zh-tw.md create mode 100644 problems/revising-strings/problem_zh-tw.md create mode 100644 problems/revising-strings/solution_zh-tw.md create mode 100644 problems/rounding-numbers/problem_zh-tw.md create mode 100644 problems/rounding-numbers/solution_zh-tw.md create mode 100644 problems/scope/problem_zh-tw.md create mode 100644 problems/scope/solution_zh-tw.md create mode 100644 problems/string-length/problem_zh-tw.md create mode 100644 problems/string-length/solution_zh-tw.md create mode 100644 problems/strings/problem_zh-tw.md create mode 100644 problems/strings/solution_zh-tw.md create mode 100644 problems/this/problem_zh-tw.md create mode 100644 problems/this/solution_zh-tw.md create mode 100644 problems/variables/problem_zh-tw.md create mode 100644 problems/variables/solution_zh-tw.md diff --git a/i18n/footer/zh-tw.md b/i18n/footer/zh-tw.md new file mode 100644 index 00000000..6290ad9a --- /dev/null +++ b/i18n/footer/zh-tw.md @@ -0,0 +1 @@ +__需要幫助?__ 查看本教學的 README 文件:http://github.com/sethvincent/javascripting diff --git a/i18n/troubleshooting_zh-tw.md b/i18n/troubleshooting_zh-tw.md new file mode 100644 index 00000000..3f3d8f7d --- /dev/null +++ b/i18n/troubleshooting_zh-tw.md @@ -0,0 +1,26 @@ +--- +# 啊,出錯了…… +# 但是別著急! +--- + +## 檢查你的程式碼: + +`正確答案 +===================` + +%solution% + +`你的答案 +===================` + +%attempt% + +`它們之間的不同 +===================` + +%diff% + +## 遇到了奇怪的錯誤? + * 確定你的檔名是正確的 + * 確定你沒有省略必要的括號,否則編譯器將無法理解它們 + * 確定你在字串中沒有筆誤(可能叫鍵盤誤更好一些) diff --git a/i18n/zh-tw.json b/i18n/zh-tw.json new file mode 100644 index 00000000..26d244b7 --- /dev/null +++ b/i18n/zh-tw.json @@ -0,0 +1,23 @@ +{ + "exercise": { + "INTRODUCTION": "入門" + , "VARIABLES": "變數" + , "STRINGS": "字串" + , "STRING LENGTH": "字串長度" + , "REVISING STRINGS": "修改字串" + , "NUMBERS": "數字" + , "ROUNDING NUMBERS": "數字取整數" + , "NUMBER TO STRING": "數字轉字串" + , "IF STATEMENT": "IF 條件式" + , "FOR LOOP": "FOR 迴圈" + , "ARRAYS": "陣列" + , "ARRAY FILTERING": "陣列過濾" + , "ACCESSING ARRAY VALUES": "存取陣列中的值" + , "LOOPING THROUGH ARRAYS": "以迴圈存取陣列中的值" + , "OBJECTS": "物件" + , "OBJECT PROPERTIES": "物件的屬性" + , "FUNCTIONS": "函式" + , "FUNCTION ARGUMENTS": "函式的參數" + , "SCOPE": "作用域" + } +} diff --git a/index.js b/index.js index 88dcc935..c32b3da4 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ var jsing = require('workshopper-adventure')({ appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'pt-br', 'nb-no', 'uk', 'it', 'ru'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru'] , header: require('workshopper-adventure/default/header') , footer: require('./lib/footer.js') }); diff --git a/problems/accessing-array-values/problem_zh-tw.md b/problems/accessing-array-values/problem_zh-tw.md new file mode 100644 index 00000000..adb818f5 --- /dev/null +++ b/problems/accessing-array-values/problem_zh-tw.md @@ -0,0 +1,45 @@ +陣列中的元素可以通過一個索引值來訪問。 + +索引值就是一個整數,從 0 開始一直到陣列的長度減一。 + +下面是一個例子: + +```js +var pets = ['cat', 'dog', 'rat']; + +console.log(pets[0]); +``` + +上面的程式碼將印出 `pets` 陣列的第一個元素,也就是字串 `cat`。 + +陣列元素必須通過中括號來訪問。 + +英文句號的方式將會導致錯誤。 + +這是一個正確的例子: + +```js +console.log(pets[0]); +``` + +下面的用法是錯誤的: +``` +console.log(pets.1); +``` + +## 挑戰: + +建立一個名為 `accessing-array-values.js` 的檔案。 + +在該檔案中定義一個陣列 `food`: +```js +var food = ['apple', 'pizza', 'pear']; +``` + +使用 `console.log()` 印出陣列中的 `第二個` 值。 + +執行下面的命令來檢查你的程式是否正確: + +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/solution_zh-tw.md b/problems/accessing-array-values/solution_zh-tw.md new file mode 100644 index 00000000..27cc4bb5 --- /dev/null +++ b/problems/accessing-array-values/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 陣列的第二個值已經被印出來了! + +做得好!你已經學會如何存取陣列中的值。 + +下一個挑戰中我們將看到如何用迴圈依次存取陣列中的值。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/array-filtering/problem_zh-tw.md b/problems/array-filtering/problem_zh-tw.md new file mode 100644 index 00000000..a22c2fbd --- /dev/null +++ b/problems/array-filtering/problem_zh-tw.md @@ -0,0 +1,45 @@ +有許多種方法可以對陣列進行操作。 + +一個常見的任務是過濾一個陣列使之僅包含特定的值。 + +使用 `.filter()` 方法可以達到這個目的。 + +下面是一個例子: + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +變數 `filtered` 現在僅包含 `cat` 和 `dog`。 + +## 挑戰: + +建立一個名為 `array-filtering.js` 的檔案。 + +在該檔案中,定義一個名為 `numbers` 的變數,並賦予下面的值: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +像上面的例子那樣,定義一個 `filtered` 變數,使它引用 `numbers.filter()` 的結果。 + +傳遞給 `.filter()` 方法的函式應該像下面這樣: + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +使用 `console.log()` 印出變數 `filtered` 陣列到終端機上。 + +執行下面的命令來檢查你撰寫的程式是否正確: + +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/solution_zh-tw.md b/problems/array-filtering/solution_zh-tw.md new file mode 100644 index 00000000..b6ada6cb --- /dev/null +++ b/problems/array-filtering/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 陣列已經被過濾了! + +做得好。 + +下一個挑戰中我們將學習如何存取陣列中的值。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/arrays/problem_zh-tw.md b/problems/arrays/problem_zh-tw.md new file mode 100644 index 00000000..fccd1b5b --- /dev/null +++ b/problems/arrays/problem_zh-tw.md @@ -0,0 +1,19 @@ +陣列就是由一組值構成的列表。下面是一個例子: + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +### 挑戰: + +建立一個名為 `arrays.js` 的檔案。 + +在該檔案中定義一個名為 `pizzaToppings` 的變數,其值依照順序為包含了 `tomato sauce, cheese, pepperoni` 這三個字串的陣列。 + +使用 `console.log()` 將 `pizzaToppings` 陣列印出來。 + +執行下面的命令來檢查你撰寫的程式是否正確: + +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/solution_zh-tw.md b/problems/arrays/solution_zh-tw.md new file mode 100644 index 00000000..a30a0c5c --- /dev/null +++ b/problems/arrays/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# YAY,一個披薩陣列! + +你成功地建立了一個陣列。 + +下一個挑戰裡我們將探索的是陣列過濾。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/for-loop/problem_zh-tw.md b/problems/for-loop/problem_zh-tw.md new file mode 100644 index 00000000..7c688e8b --- /dev/null +++ b/problems/for-loop/problem_zh-tw.md @@ -0,0 +1,39 @@ +For 迴圈看起來是這樣的: + +```js +for (var i = 0; i < 10; i++) { + // log the numbers 0 through 9 + console.log(i) +} +``` + +變數 `i` 被用來記錄迴圈已經運行了多少次。 + +條件式 `i < 10;` 指明了迴圈的上限。 +如果 `i` 小於 `10`,迴圈將繼續進行。 + +語句 `i++` 代表每次迴圈後將變數 `i` 的值加一。 + +## 挑戰: + +建立一個名為 `for-loop.js` 的檔案。 + +在該檔案中定義一個名為 `total` 的變數,讓它等於 `0`。 + +再定義第二個名為 `limit` 的變數,讓它等於 `10`。 + +建立一個 for 迴圈。使用變數 `i`,初始值為 0,每次迴圈將其值加一。只要 `i` 小於 `limit`,迴圈就應該一直運行。 + +每次迴圈中,將 `i` 加到 `total` 上。你可以這樣做: + +```js +total += i; +``` + +For 迴圈結束後,使用 `console.log()` 印出 `total` 變數的值到終端機上。 + +執行下面的命令來檢查你撰寫的程式是否正確: + +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/solution_zh-tw.md b/problems/for-loop/solution_zh-tw.md new file mode 100644 index 00000000..766a7ce4 --- /dev/null +++ b/problems/for-loop/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# TOTAL 的值是 45 + +這是 for 迴圈的一個基本示例。For 迴圈在很多情況下十分有用,特別是在與像字串和陣列這樣的資料形態結合使用時。 + +下一個挑戰我們將開始學習 **arrays**,也就是**陣列**。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/function-arguments/problem_zh-tw.md b/problems/function-arguments/problem_zh-tw.md new file mode 100644 index 00000000..9e807917 --- /dev/null +++ b/problems/function-arguments/problem_zh-tw.md @@ -0,0 +1,35 @@ +一個函式可以被宣告為接受任意數量的參數。參數可以是任意的型別,例如字串、數字、陣列、物件,甚至是另一個函式。 + +範例: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +我們可以**呼叫**這個函式,並給它兩個參數: + +```js +example('hello', 'world'); +``` + +上面的程式碼將印出 `hello world` 到終端機上。 + +## 挑戰: + +建立一個名為 `function-arguments.js` 的檔案。 + +在該檔案中,定義一個名為 `math` 的函式,它接受三個參數。你需要知道的是,參數的名字僅僅是用來引用它們的而已。 + +所以你可以給它們起任何你喜歡的名字。 + +`math` 所做的工作是,將第二個和第三個參數相乘,然後加上第一個參數,再將最後的結果回傳。 + +之後,使用 `console.log()` 呼叫並印出函式的執行結果。呼叫時,函式的第一個參數是 `53`,第二個參數是 `61`,第三個參數是 `67`。 + +執行下面的命令來檢查你撰寫的程式是否正確: + +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/solution_zh-tw.md b/problems/function-arguments/solution_zh-tw.md new file mode 100644 index 00000000..34c6a1e0 --- /dev/null +++ b/problems/function-arguments/solution_zh-tw.md @@ -0,0 +1,9 @@ +--- + +# 你現在完全掌控了參數! + +幹得漂亮。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/function-return-values/problem_zh-tw.md b/problems/function-return-values/problem_zh-tw.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_zh-tw.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_zh-tw.md b/problems/function-return-values/solution_zh-tw.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_zh-tw.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_zh-tw.md b/problems/functions/problem_zh-tw.md new file mode 100644 index 00000000..e73a78a2 --- /dev/null +++ b/problems/functions/problem_zh-tw.md @@ -0,0 +1,37 @@ +函式就是一段程式碼,這段程式碼將輸入處理,然後產生輸出。 + +範例: + +```js +function example (x) { + return x * 2; +} +``` + +我們可以像下面這樣**呼叫**這個函式,得到數字 10: + +```js +example(5) +``` + +上面的這段程式碼裡,`example` 函式將一個數字作為參數——也就是輸入——然後返回那個數字乘以 2 的結果。 + +## 挑戰: + +建立一個名為 `functions.js` 的檔案。 + +在該檔案中,定義一個名為 `eat` 的函式,其參數名為 `food`,型別為 `string`。 + +在函式中將 `food` 參數處理後像下面這樣返回: + +```js +return food + ' tasted really good.'; +``` + +在 `console.log()` 的括號中,呼叫 `eat()` 函式,並把字串 `bananas` 當做參數傳遞給它。 + +執行下面的命令檢查你撰寫的程式是否正確: + +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/solution_zh-tw.md b/problems/functions/solution_zh-tw.md new file mode 100644 index 00000000..4ced7182 --- /dev/null +++ b/problems/functions/solution_zh-tw.md @@ -0,0 +1,9 @@ +--- + +# 好吃的香蕉 + +你成功了!你建立了一個能將輸入進行處理並輸出的函式。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/if-statement/problem_zh-tw.md b/problems/if-statement/problem_zh-tw.md new file mode 100644 index 00000000..687ae7c4 --- /dev/null +++ b/problems/if-statement/problem_zh-tw.md @@ -0,0 +1,31 @@ +條件語句基於一個特定的布林(Boolean)值來改變程序的流程。 + +條件語句長得像下面這樣: + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +在括號中你必須輸入一個邏輯判斷語句,這個邏輯判斷語句的結果不是true(真)就是false(假)。 + +`else` 語句區塊是可選的,包含了一旦邏輯語句結果為false時需要被執行的程式碼。 + +## 挑戰: + +建立一個名為 `if-statement.js` 的檔案。 + +在該檔案中,宣告一個名為 `fruit` 的變數。 + +給 `fruit` 變數賦予 **字串** 型別的值 **orange**。 + +接下來要使用 `console.log()`。如果 `fruit` 值的長度大於五,印出 "**The fruit name has more than five characters.**";否則就印出 "**The fruit name has five characters or less.**" + +執行下面的命令檢查你撰寫的程式是否正確: + +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/solution_zh-tw.md b/problems/if-statement/solution_zh-tw.md new file mode 100644 index 00000000..830e5cf2 --- /dev/null +++ b/problems/if-statement/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 真是一個條件式大師 + +結果正確!字串 `orange` 的長度多於五個字元。 + +準備好了嗎?讓我們繼續學習 **for 迴圈** 吧! + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/introduction/problem_zh-tw.md b/problems/introduction/problem_zh-tw.md new file mode 100644 index 00000000..3b827d84 --- /dev/null +++ b/problems/introduction/problem_zh-tw.md @@ -0,0 +1,29 @@ +為了讓工作環境井然有序,我們首先來建立一個新資料夾。 + +執行下面的這段命令來建立一個名為 `javascripting` 的資料夾(當然你也可以使用其他你喜歡的名字): + +```bash +mkdir javascripting +``` + +進入 `javascripting` 資料夾: + +```bash +cd javascripting +``` + +建立一個名為 `introduction.js` 的檔案: + +非 Windows 用戶,請執行 `touch introduction.js`;Windows 用戶,請執行 `type NUL > introduction.js`(注意,`type` 也是這個命令的一部分!) + +使用你最喜歡的編輯器,打開這個檔案,然後將下面這行程式碼加入到檔案中: + +```js +console.log('hello'); +``` + +儲存檔案,執行下面的命令來檢查你的程式是否正確: + +```bash +javascripting verify introduction.js +``` diff --git a/problems/introduction/solution_zh-tw.md b/problems/introduction/solution_zh-tw.md new file mode 100644 index 00000000..bac6b64e --- /dev/null +++ b/problems/introduction/solution_zh-tw.md @@ -0,0 +1,19 @@ +--- + +# 完成! + +任何於 `console.log()` 括號中的東西都將會被輸出到你的終端機(Terminal,於Windows下即命令提示字元)上。 + +所以: + +```js +console.log('hello'); +``` + +會印出 `hello` 到你的終端機。 + +此刻,我們輸出的是一個 **string**,中文名為**字串**。 + +接下來的挑戰裡我們將學習到 **variables**,也就是**變數**。 + +運行 `javascripting` 並選擇下一個挑戰。 diff --git a/problems/looping-through-arrays/problem_zh-tw.md b/problems/looping-through-arrays/problem_zh-tw.md new file mode 100644 index 00000000..6491b0e5 --- /dev/null +++ b/problems/looping-through-arrays/problem_zh-tw.md @@ -0,0 +1,45 @@ +本次挑戰中,我們將使用一個 **for 迴圈**來存取並操作陣列中的值。 + +存取陣列可以使用一個整數輕易辦到。 + +陣列中的每項元素都有一個唯一的索引值,是一個由 `0` 開始的整數。 + +所以下面的陣列中,數字 `1` 標識了 `hi`: + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +於是,`hi` 就可以像這樣被存取: + +```js +greetings[1]; +``` + +在 **for 迴圈**中,我們可以在中括號中使用變數 `i`,而不是直接地使用數字。 + +## 挑戰: + +建立一個名為 `looping-through-arrays.js` 的檔案。 + +在該檔案中定義一個名為 `pets` 的變數,使它引用下面的陣列: + +```js +['cat', 'dog', 'rat']; +``` + +建立一個 for 迴圈,把陣列裡的每一個字串都變成複數單字(尾端加上s)。 + +在 for 迴圈裡,你可以使用下面的語句: + +```js +pets[i] = pets[i] + 's'; +``` + +最後,使用 `console.log()` 輸出 `pets` 陣列到終端機上。 + +執行下面的命令檢查你撰寫的程式是否正確: + +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/solution_zh-tw.md b/problems/looping-through-arrays/solution_zh-tw.md new file mode 100644 index 00000000..e438c99e --- /dev/null +++ b/problems/looping-through-arrays/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 成功!現在你有了很多貓貓狗狗! + +現在 `pets` 陣列中的所有元素都變成了複數。 + +下一個挑戰裡,我們將學習 **objects**,也就是 **物件**。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/number-to-string/problem_zh-tw.md b/problems/number-to-string/problem_zh-tw.md new file mode 100644 index 00000000..92901a5c --- /dev/null +++ b/problems/number-to-string/problem_zh-tw.md @@ -0,0 +1,24 @@ +有時候我們需要把一個數字轉換成字串。 + +這時,你可以使用 `.toString()` 方法。例如: + +```js +var n = 256; +n = n.toString(); +``` + +## 挑戰: + +建立一個名為 `number-to-string.js` 的檔案。 + +在該檔案中定義一個名為 `n` 的變數,並賦值 `128`; + +在變數 `n` 上呼叫 `.toString()` 方法。 + +使用 `console.log()` 將 `.toString()` 方法的結果輸出到終端機上。 + +執行下面的命令來檢查你撰寫的程式是否正確: + +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/solution_zh-tw.md b/problems/number-to-string/solution_zh-tw.md new file mode 100644 index 00000000..ea659697 --- /dev/null +++ b/problems/number-to-string/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 那個數字已經變成了字串! + +完美。你已經學會了如何將一個數字轉換為字串。 + +接下來的挑戰裡我們將學習的是 **if 條件式**。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/numbers/problem_zh-tw.md b/problems/numbers/problem_zh-tw.md new file mode 100644 index 00000000..5db7dd81 --- /dev/null +++ b/problems/numbers/problem_zh-tw.md @@ -0,0 +1,13 @@ +數字既可以是整數,像 `2`,`14`,或者 `4353`,也可以是小數,通常也被稱為浮點數,比如 `3.14`,`1.5`,和 `100.7893423`。 + +## 挑戰: + +建立一個名為 `numbers.js` 的檔案。 + +在該檔案中定義一個名為 `example` 的變數並賦予它整數 `123456789`。 + +使用 `console.log()` 印出這個數字到終端機上。 + +執行下面的命令檢查你的程序是否正確: + +`javascripting verify numbers.js` diff --git a/problems/numbers/solution_zh-tw.md b/problems/numbers/solution_zh-tw.md new file mode 100644 index 00000000..d4cb5c45 --- /dev/null +++ b/problems/numbers/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# YEAH!奇妙的數字! + +你成功地定義了一個變數並給它賦了值 `123456789`。 + +下一個挑戰中我們將學習如何對數字進行操作。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/object-keys/problem_zh-tw.md b/problems/object-keys/problem_zh-tw.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_zh-tw.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_zh-tw.md b/problems/object-keys/solution_zh-tw.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_zh-tw.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-properties/problem_zh-tw.md b/problems/object-properties/problem_zh-tw.md new file mode 100644 index 00000000..5468f5ba --- /dev/null +++ b/problems/object-properties/problem_zh-tw.md @@ -0,0 +1,43 @@ +你可以使用與存取和操作陣列非常類似的方法來存取和操作物件的屬性——屬性就是物件所包含的鍵和值的對。 + +這裡是一個使用**中括號**的例子: + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +上面的例子將印出 `'yummy'` 到終端機上。 + +你也可以使用**點**來得到相同的結果: + +```js +example.pizza; + +example['pizza']; +``` + +上面的兩行程式碼都會返回 `yummy`。 + +## 挑戰: + +建立一個名為 `object-properties.js` 的檔案。 + +在該檔案中,像這樣定義一個名為 `food` 的變數: + +```js +var food = { + types: 'only pizza' +}; +``` + +使用 `console.log()` 印出 `food` 物件的 `types` 屬性到終端機上。 + +執行下面的命令來檢查你寫的程式是否正確: + +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/solution_zh-tw.md b/problems/object-properties/solution_zh-tw.md new file mode 100644 index 00000000..d767ece1 --- /dev/null +++ b/problems/object-properties/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 正確,PIZZA 是目前唯一的食物。 + +你已經學會如何存取屬性了。 + +下一個挑戰是關於 **functions**,也就是**函式**。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/objects/problem_zh-tw.md b/problems/objects/problem_zh-tw.md new file mode 100644 index 00000000..5614d325 --- /dev/null +++ b/problems/objects/problem_zh-tw.md @@ -0,0 +1,32 @@ +物件像陣列一樣,也是一組值的集合,但不同的是,物件裡的值被鍵(Key)所標識,而非整數。 + +範例: + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +} +``` + +## 挑戰: + +建立一個名為 `objects.js` 的檔案。 + +在該檔案裡,像這樣定義一個變數 `pizza`: + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} +``` + +使用 `console.log()` 印出 `pizza` 物件到終端機上。 + +執行下面的命令檢查你寫的程式是否正確: + +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/solution_zh-tw.md b/problems/objects/solution_zh-tw.md new file mode 100644 index 00000000..ad9fcefd --- /dev/null +++ b/problems/objects/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 看到 PIZZA 物件了嗎? + +你成功地建立了一個物件! + +下一個挑戰我們將看到物件的屬性。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/revising-strings/problem_zh-tw.md b/problems/revising-strings/problem_zh-tw.md new file mode 100644 index 00000000..17cd72c3 --- /dev/null +++ b/problems/revising-strings/problem_zh-tw.md @@ -0,0 +1,27 @@ +實際工作中可能經常需要修改一個字串。 + +字串中包含一些內建的功能允許你查看並修改它們的內容。 + +這裡是一個使用 `.replace()` 方法的例子: + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +為了改變 `example` 變數引用的值,我們需要再一次使用等號。這一次出現在等號右邊的是 `example.replace()` 方法。 + +## 挑戰: + +建立一個名為 `revising-strings.js` 的檔案。 + +定義一個名為 `pizza` 的變數,並且賦予它字串 `'pizza is alright'`。 + +使用 `.replace()` 方法將 `alright` 替換為 `wonderful`。 + +用 `console.log()` 將 `.replace()` 方法的結果輸出到終端機上。 + +執行下面的命令來檢查你寫的程式是否正確: + +`javascripting verify revising-strings.js` diff --git a/problems/revising-strings/solution_zh-tw.md b/problems/revising-strings/solution_zh-tw.md new file mode 100644 index 00000000..29819e02 --- /dev/null +++ b/problems/revising-strings/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 是的, PIZZA _IS_ WONDERFUL。 + +幹得漂亮,你已經學會了如何使用 `.replace()` 方法! + +接下來我們將探索 **numbers**,也就是**數字**。 + +運行 `javascripting` 命令並選擇下一個挑戰。 + +--- diff --git a/problems/rounding-numbers/problem_zh-tw.md b/problems/rounding-numbers/problem_zh-tw.md new file mode 100644 index 00000000..ff9c26e3 --- /dev/null +++ b/problems/rounding-numbers/problem_zh-tw.md @@ -0,0 +1,29 @@ +我們可以對數字進行一些基本的數學運算,比如 `+`,`-`,`*`,`/`,和 `%`。 + +對於更複雜的數學運算,我們需要使用 `Math` 物件。 + +這個挑戰中我們將要使用 `Math` 物件來對數字進行取整。 + +## 挑戰: + +建立一個名為 `rounding-numbers.js` 的檔案。 + +在該檔案中定義一個名為 `roundUp` 的變數,並賦值浮點數 `1.5`。 + +下面就要使用 `Math.round()` 方法來對這個數進行向上取整。 + +`Math.round()` 的例子: + +```js +Math.round(0.5); +``` + +再定義一個名為 `rounded` 的變數,讓它引用 `Math.round()` 的結果。將 `roundUp` 作為參數傳遞。 + +使用 `console.log()` 印出結果到終端機上。 + +執行下面的命令檢查你寫的程式是否正確: + +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/solution_zh-tw.md b/problems/rounding-numbers/solution_zh-tw.md new file mode 100644 index 00000000..8a626338 --- /dev/null +++ b/problems/rounding-numbers/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 很好,得到了取整的結果。 + +剛剛你已經把數 `1.5` 向上取整到了 `2`。 + +下一個挑戰裡我們將把一個數字轉變成一個字串。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/scope/problem_zh-tw.md b/problems/scope/problem_zh-tw.md new file mode 100644 index 00000000..d516bc91 --- /dev/null +++ b/problems/scope/problem_zh-tw.md @@ -0,0 +1,63 @@ +`作用域` 就是你能訪問到的變數、物件以及函式的集合。 + +JavaScript 有兩種類型的作用域:`全域` 以及 `區域`。函式外宣告的變數是一個 `全域` 變數,它的值可以在整個程式中被存取和修改。函式內宣告的變數是 `區域` 的,它隨著函式的呼叫而被建立,再隨著函式的結束而被銷毀。它不能在函式以外被存取。 + +在函式中定義的函式,也叫巢狀函式,可以存取到外層函式的作用域。 + +注意下面的程式碼: + +```js +var a = 4; // a 是一個全域變數,它可以被下面的函式存取 + +function foo() { + var b = a * 3; // b 不能夠在 foo 函式以外被存取,但是可以被定義於 foo 內部的其他函式存取 + + function bar(c) { + var b = 2; // 另一個新的 `b` 變數被建立在 bar 函式的作用域內 + // 對這個新的 `b` 變數的改變並不會影響到舊的 `b` 變數 + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +立即函式(IIFE, Immediately Invoked Function Expression)是用來建立區域作用域的常用方法。 +範例: +```js + (function(){ // 這個函式語法被一組小括號括起來 + // 在這裡定義的變數 + // 不能夠在這個函式外被存取 + })(); // 這個函式立即被執行 +``` +## 挑戰: + +建立一個名為 `scope.js` 的檔案。 + +在該檔案中複製貼上以下的程式碼: +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +依你對 `作用域` 的理解,將下面這段程式碼插入上述程式碼裡,使得程式碼的輸出為 `a: 1, b: 8,c: 6`。 +```js +console.log("a: "+a+", b: "+b+", c: "+c); +``` diff --git a/problems/scope/solution_zh-tw.md b/problems/scope/solution_zh-tw.md new file mode 100644 index 00000000..dfc80fc3 --- /dev/null +++ b/problems/scope/solution_zh-tw.md @@ -0,0 +1,9 @@ +--- + +# 真棒! + +第二個函式的作用域就是我們要找的。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/string-length/problem_zh-tw.md b/problems/string-length/problem_zh-tw.md new file mode 100644 index 00000000..e279c05e --- /dev/null +++ b/problems/string-length/problem_zh-tw.md @@ -0,0 +1,29 @@ +在程式中我們經常需要知道一個字串中到底包含了多少字元。 + +你可以使用 `.length` 來得到它。下面是一個例子: + +```js +var example = 'example string'; +example.length +``` + +## 注 + +不要忘記 `example` 和 `length` 之間的點(英文句號)。 + +上面這段程式碼將返回一個 **number**,也就是**數字**,指明字串中的字元個數。 + + +## 挑戰: + +建立一個名為 `string-length.js` 的檔案。 + +在該檔案中,建立一個名為 `example` 的變數。 + +**將字串 `'example string'` 賦給變數 `example`。** + +使用 `console.log` 印出這個字串的**length**,也就是**長度**到終端機上。 + +**執行下面的命令來檢查你寫的程式是否正確:** + +`javascripting verify string-length.js` diff --git a/problems/string-length/solution_zh-tw.md b/problems/string-length/solution_zh-tw.md new file mode 100644 index 00000000..69622a89 --- /dev/null +++ b/problems/string-length/solution_zh-tw.md @@ -0,0 +1,9 @@ +--- + +# 正確:14 個字元 + +你得到了正確的答案。字串 `example string` 含有 14 個字元。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md new file mode 100644 index 00000000..b94a5d73 --- /dev/null +++ b/problems/strings/problem_zh-tw.md @@ -0,0 +1,28 @@ +**字串**就是被引號包裹起來的任意的值。 + +單引號或雙引號效果是一樣的: + +```js +'this is a string' + +"this is also a string" +``` +# 注 + +為了保持一致的風格,本教學中我們將只使用單引號。 + +## 挑戰: + +建立一個名為 `strings.js` 的檔案。 + +在該檔案中像這樣建立一個名為 `someString` 的變數: + +```js +var someString = 'this is a string'; +``` + +使用 `console.log` 印出變數 **someString** 到終端機上。 + +執行下面的命令來檢查你寫的程式是否正確: + +`javascripting verify strings.js` diff --git a/problems/strings/solution_zh-tw.md b/problems/strings/solution_zh-tw.md new file mode 100644 index 00000000..258a5afa --- /dev/null +++ b/problems/strings/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 成功。 + +你已經對字串的使用得心應手了! + +下一個挑戰裡,我們將看到如何對字串進行操作。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- diff --git a/problems/this/problem_zh-tw.md b/problems/this/problem_zh-tw.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_zh-tw.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_zh-tw.md b/problems/this/solution_zh-tw.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_zh-tw.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/variables/problem_zh-tw.md b/problems/variables/problem_zh-tw.md new file mode 100644 index 00000000..58f907ea --- /dev/null +++ b/problems/variables/problem_zh-tw.md @@ -0,0 +1,34 @@ +變數就是一個可以引用具體值的名字。變數通過使用 `var` 及緊隨其後的變數名來宣告。 + +下面是一個例子: + +```js +var example; +``` + +這個例子裡的變數被**宣告**,但是沒有被定義(也就是說,它目前還沒有引用一個值)。 + +下面是一個定義變數的例子,這樣變數將會有一個值: + + +```js +var example = 'some string'; +``` + +# 注 + +變數通過 `var` 來**宣告**,並通過等號來**定義**它的值。這也就是經常提到的「讓一個變數等於一個值」。 + +## 挑戰: + +建立一個名為 `variables.js` 的檔案。 + +在該檔案中宣告一個名為 `example` 的變數。 + +**讓變數 `example` 等於值 `'some string'`。** + +然後使用 `console.log()` 印出 `example` 變數到終端機上。 + +執行下面的命令來檢查你寫的程式是否正確: + +`javascripting verify variables.js` diff --git a/problems/variables/solution_zh-tw.md b/problems/variables/solution_zh-tw.md new file mode 100644 index 00000000..c604fd6f --- /dev/null +++ b/problems/variables/solution_zh-tw.md @@ -0,0 +1,11 @@ +--- + +# 你建立了一個變數! + +幹得漂亮。 + +下一個挑戰中我們將進一步地探究字串。 + +運行 `javascripting` 並選擇下一個挑戰。 + +--- From f7aab31aec00af9bf5f9e775d75bf3bd05e46c7b Mon Sep 17 00:00:00 2001 From: matthieu kern Date: Wed, 13 Apr 2016 16:39:30 +0200 Subject: [PATCH 194/346] add language fr (French) --- i18n/footer/fr.md | 1 + i18n/fr.json | 23 ++++++ i18n/troubleshooting_fr.md | 26 +++++++ index.js | 2 +- problems/accessing-array-values/problem_fr.md | 47 +++++++++++++ .../accessing-array-values/solution_fr.md | 11 +++ problems/array-filtering/problem_fr.md | 45 ++++++++++++ problems/array-filtering/solution_fr.md | 11 +++ problems/arrays/problem_fr.md | 19 +++++ problems/arrays/solution_fr.md | 11 +++ problems/for-loop/problem_fr.md | 38 ++++++++++ problems/for-loop/solution_fr.md | 11 +++ problems/function-arguments/problem_fr.md | 35 ++++++++++ problems/function-arguments/solution_fr.md | 9 +++ problems/function-return-values/problem_fr.md | 5 ++ .../function-return-values/solution_fr.md | 5 ++ problems/functions/problem_fr.md | 37 ++++++++++ problems/functions/solution_fr.md | 9 +++ problems/if-statement/problem_fr.md | 32 +++++++++ problems/if-statement/solution_fr.md | 11 +++ problems/introduction/problem_fr.md | 44 ++++++++++++ problems/introduction/solution_fr.md | 19 +++++ problems/looping-through-arrays/problem_fr.md | 45 ++++++++++++ .../looping-through-arrays/solution_fr.md | 11 +++ problems/number-to-string/problem_fr.md | 24 +++++++ problems/number-to-string/solution_fr.md | 11 +++ problems/numbers/problem_fr.md | 14 ++++ problems/numbers/solution_fr.md | 11 +++ problems/object-keys/problem_fr.md | 5 ++ problems/object-keys/solution_fr.md | 5 ++ problems/objects/problem_fr.md | 32 +++++++++ problems/objects/solution_fr.md | 11 +++ problems/revising-strings/problem_fr.md | 27 +++++++ problems/revising-strings/solution_fr.md | 11 +++ problems/rounding-numbers/problem_fr.md | 29 ++++++++ problems/rounding-numbers/solution_fr.md | 11 +++ problems/scope/problem_fr.md | 70 +++++++++++++++++++ problems/scope/solution_fr.md | 9 +++ problems/string-length/problem_fr.md | 29 ++++++++ problems/string-length/solution_fr.md | 9 +++ problems/strings/problem_fr.md | 29 ++++++++ problems/strings/solution_fr.md | 11 +++ problems/this/problem_fr.md | 5 ++ problems/this/solution_fr.md | 5 ++ problems/variables/problem_fr.md | 33 +++++++++ problems/variables/solution_fr.md | 11 +++ 46 files changed, 908 insertions(+), 1 deletion(-) create mode 100644 i18n/footer/fr.md create mode 100644 i18n/fr.json create mode 100644 i18n/troubleshooting_fr.md create mode 100644 problems/accessing-array-values/problem_fr.md create mode 100644 problems/accessing-array-values/solution_fr.md create mode 100644 problems/array-filtering/problem_fr.md create mode 100644 problems/array-filtering/solution_fr.md create mode 100644 problems/arrays/problem_fr.md create mode 100644 problems/arrays/solution_fr.md create mode 100644 problems/for-loop/problem_fr.md create mode 100644 problems/for-loop/solution_fr.md create mode 100644 problems/function-arguments/problem_fr.md create mode 100644 problems/function-arguments/solution_fr.md create mode 100644 problems/function-return-values/problem_fr.md create mode 100644 problems/function-return-values/solution_fr.md create mode 100644 problems/functions/problem_fr.md create mode 100644 problems/functions/solution_fr.md create mode 100644 problems/if-statement/problem_fr.md create mode 100644 problems/if-statement/solution_fr.md create mode 100644 problems/introduction/problem_fr.md create mode 100644 problems/introduction/solution_fr.md create mode 100644 problems/looping-through-arrays/problem_fr.md create mode 100644 problems/looping-through-arrays/solution_fr.md create mode 100644 problems/number-to-string/problem_fr.md create mode 100644 problems/number-to-string/solution_fr.md create mode 100644 problems/numbers/problem_fr.md create mode 100644 problems/numbers/solution_fr.md create mode 100644 problems/object-keys/problem_fr.md create mode 100644 problems/object-keys/solution_fr.md create mode 100644 problems/objects/problem_fr.md create mode 100644 problems/objects/solution_fr.md create mode 100644 problems/revising-strings/problem_fr.md create mode 100644 problems/revising-strings/solution_fr.md create mode 100644 problems/rounding-numbers/problem_fr.md create mode 100644 problems/rounding-numbers/solution_fr.md create mode 100644 problems/scope/problem_fr.md create mode 100644 problems/scope/solution_fr.md create mode 100644 problems/string-length/problem_fr.md create mode 100644 problems/string-length/solution_fr.md create mode 100644 problems/strings/problem_fr.md create mode 100644 problems/strings/solution_fr.md create mode 100644 problems/this/problem_fr.md create mode 100644 problems/this/solution_fr.md create mode 100644 problems/variables/problem_fr.md create mode 100644 problems/variables/solution_fr.md diff --git a/i18n/footer/fr.md b/i18n/footer/fr.md new file mode 100644 index 00000000..a141ba48 --- /dev/null +++ b/i18n/footer/fr.md @@ -0,0 +1 @@ +__Besoin d'aide ?__ Voir le README pour cet atelier : http://github.com/sethvincent/javascripting diff --git a/i18n/fr.json b/i18n/fr.json new file mode 100644 index 00000000..39d84462 --- /dev/null +++ b/i18n/fr.json @@ -0,0 +1,23 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUCTION" + , "VARIABLES": "VARIABLES" + , "STRINGS": "CHAINES DE CARACTERES" + , "STRING LENGTH": "LONGUEUR DE CHAINES LE CARACTERES" + , "REVISING STRINGS": "INVERSER UNE CHAINE DE CARACTERES" + , "NUMBERS": "NOMBRES" + , "ROUNDING NUMBERS": "ARRONDIS" + , "NUMBER TO STRING": "NOMBRES EN CHAINES DE CARACTERES" + , "IF STATEMENT": "OPERATEUR IF" + , "FOR LOOP": "BOUCLE FOR" + , "ARRAYS": "TABLEAUX" + , "ARRAY FILTERING": "FILTRAGE DE TABLEAUX" + , "ACCESSING ARRAY VALUES": "ACCEDER AUX VALEURS D'UN TABLEAU" + , "LOOPING THROUGH ARRAYS": "ITERER SUR UN TABLEAU" + , "OBJECTS": "OBJETS" + , "OBJECT PROPERTIES": "PROPRIETES D'OBJETS" + , "FUNCTIONS": "FONCTIONS" + , "FUNCTION ARGUMENTS": "ARGUMENTS DE FONCTIONS" + , "SCOPE": "SCOPE" + } +} diff --git a/i18n/troubleshooting_fr.md b/i18n/troubleshooting_fr.md new file mode 100644 index 00000000..a68fa3fc --- /dev/null +++ b/i18n/troubleshooting_fr.md @@ -0,0 +1,26 @@ +--- +# O-oh, quelque chose ne fonctionne pas. +# Mais ne paniquez pas ! +--- + +## Vérifiez votre solution : + +`Solution +===================` + +%solution% + +`Votre essai +===================` + +%attempt% + +`Difference +===================` + +%diff% + +## Autres solutions : + * Avez-vous nommé correctement le fichier ? Vous pouvez vérifier en exécutant ls `%filename%`, si vous voyez ls: cannot access `%filename%`: No such file or directory c'est que vous devriez créer un nouveau fichier / le renommer ou aller dans le dossier contenant le fichier + * Assurez-vous que vous n'avez pas oublié de parenthèse, sinon le compilateur ne sera pas capable de l'analyser + * Assurez-vous de ne pas avoir de faute de frappe dans la chaine de caractère diff --git a/index.js b/index.js index c32b3da4..50332d19 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ var jsing = require('workshopper-adventure')({ appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru'] + , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru', 'fr'] , header: require('workshopper-adventure/default/header') , footer: require('./lib/footer.js') }); diff --git a/problems/accessing-array-values/problem_fr.md b/problems/accessing-array-values/problem_fr.md new file mode 100644 index 00000000..ac23bf3c --- /dev/null +++ b/problems/accessing-array-values/problem_fr.md @@ -0,0 +1,47 @@ +Les cases du tableau peuvent être accédées via leur index. + +Les indexes doivent être des nombres allant de zero à la longuer du tableaux moins un. + +Voici un exemple : + + +```js +var pets = ['cat', 'dog', 'rat']; + +console.log(pets[0]); +``` + +Le code ci-dessus affichera le premier élément du tableau `pets` - la chaine de caracteres `cat`. + +Les éléments de tableaux doivent uniquement être accedées au travers de la notation des crochets. + +La notation en point est invalide. + +Notation valide : + +```js +console.log(pets[0]); +``` + +Notation invalide : +``` +console.log(pets.1); +``` + +## Le défi : + +Créez un fichier nommé `acces-valeurs-tableau.js` + +Dans ce fichier, définissez un tableau `food` : +```js +var food = ['apple', 'pizza', 'pear']; +``` + + +Utilisez `console.log()` pour afficher la `deuxième` valeur du tableau dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify acces-valeurs-tableau.js +``` diff --git a/problems/accessing-array-values/solution_fr.md b/problems/accessing-array-values/solution_fr.md new file mode 100644 index 00000000..71a4a25c --- /dev/null +++ b/problems/accessing-array-values/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# DEUXIEME ELEMENT DU TABLEAU AFFICHE ! + +Vous avez réussi à accéder au second élément du tableau. + +Dans le défi suivant nous allons travailler sur un exemple de boucle de parcours de tableaux. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- \ No newline at end of file diff --git a/problems/array-filtering/problem_fr.md b/problems/array-filtering/problem_fr.md new file mode 100644 index 00000000..3943d0bf --- /dev/null +++ b/problems/array-filtering/problem_fr.md @@ -0,0 +1,45 @@ +Il y a beaucoup de manières pour manipuler les tableaux. + +Une tache commune est de filtrer les tableaux pour ne garder que certaines valeurs. + +Pour cela nous pouvons utiliser la méthode `.filter()`. + +Voici un exemple : + +```js +var pets = ['cat', 'dog', 'elephant']; + +var filtered = pets.filter(function (pet) { + return (pet !== 'elephant'); +}); +``` + +La variable `filtered` ne va contenir que `cat` et `dog`. + +## Le défi : + +Créer un fichier nommé `filtrage-de-tableau.js`. + +Dans ce fichier, définissez une variable nommée `numbers` qui contient ce tableau : + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +``` + +Comme ci-dessus, définissez une variable nommée `filtered` qui fait contient le résultat de `numbers.filter()`. + +La fonction que vous passez la méthode `.filter()` va ressembler à ça : + +```js +function evenNumbers (number) { + return number % 2 === 0; +} +``` + +Utilisez `console.log()` pour afficher le tableau `filtered` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify filtrage-de-tableau.js +``` diff --git a/problems/array-filtering/solution_fr.md b/problems/array-filtering/solution_fr.md new file mode 100644 index 00000000..beda74fc --- /dev/null +++ b/problems/array-filtering/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# FILTRÉ ! + +Vous avez réussi à filtrer le tableau. + +Dans le défi suivant nous allons travailler sur un exemple d'accès aux valeurs d'un tableau. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/arrays/problem_fr.md b/problems/arrays/problem_fr.md new file mode 100644 index 00000000..5043d3ce --- /dev/null +++ b/problems/arrays/problem_fr.md @@ -0,0 +1,19 @@ +Un tableau est une liste de valeurs. Voici un exemple : + +```js +var pets = ['cat', 'dog', 'rat']; +``` + +### Le défi : + +Créer un fichier nommé `tableaux.js`. + +Dans ce fichier, définissez une variable nommée `pizzaToppings` qui contient un tableau composé de trois chaines de caractères dans cet ordre : `tomato sauce, cheese, pepperoni`. + +Utilisez `console.log()` pour afficher le tableau `pizzaToppings` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify tableaux.js +``` diff --git a/problems/arrays/solution_fr.md b/problems/arrays/solution_fr.md new file mode 100644 index 00000000..bdf72d6d --- /dev/null +++ b/problems/arrays/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# YAY, UN TABLEAU DE PIZZAS ! + +Vous avez réussi à créer un tableau ! + +Dans le défi suivant, nous allons explorer le filtrage de tableaux. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/for-loop/problem_fr.md b/problems/for-loop/problem_fr.md new file mode 100644 index 00000000..7e195373 --- /dev/null +++ b/problems/for-loop/problem_fr.md @@ -0,0 +1,38 @@ +Les boucles for vous permettent de répéter l'exécution d'un bloc de code un certain nombre de fois. Cette boucle for affiche dans la console dix fois : + +```js +for (var i = 0; i < 10; i++) { + // affiche les nombres de 0 a 9 + console.log(i) +} +``` + +La première partie, `var i = 0`, n'est exécutée qu'une fois au début de la boucle. La variable `i` est utilisée pour compter le nombre d'exécutions de la boucle. + +La seconde partie, `i < 10`, est vérifiée au début de chaque itération de la boucle avant que le code contenu ne s'exécute. Si la condition est valide, le code contenu dans la boucle est exécuté. Sinon, la boucle est terminée. La condition `i < 10;` indique que la boucle va continuer de s'exécuter aussi longtemps que `i` est inférieur à `10`. + +La partie finale, `i++`, est exécutée à la fin de chaque boucle. Elle incrémente la variable `i` par 1 après chaque itération. Dès que `i` atteint `10`, la boucle est terminée. + +## Le défi : + +Créer un fichier nommé `boucle-for.js`. + +Dans ce fichier, définissez une variable nommée `total` et assignez lui la valeur `0`. + +Créez une seconde variabel nommée `limit` et assignez lui la valeur `10`. + +Créez une boucle for avec une variable `i` commençant à 0 et s'incrémentant de 1 à chaque itération de la boucle. La boucle doit s'exécuter aussi longtemps que `i` est inférieur à `limit`. + +À chaque itération de la boucle, ajoutez le nombre `i` à la variable `total`. Pour faire cela, vous pouvez utiliser l'instruction suivante : + +```js +total += i; +``` + +Après la boucle, utilisez `console.log()` pour afficher la variable `total` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify boucle-for.js +``` diff --git a/problems/for-loop/solution_fr.md b/problems/for-loop/solution_fr.md new file mode 100644 index 00000000..badc413e --- /dev/null +++ b/problems/for-loop/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# LE TOTAL EST 45 + +Vous avez réalisé une introduction basique aux boucles, qui sont utiles dans un grand nombre de situations, particulièrement dans des combinaisons avec d'autres types de données comme les chaînes de caractères et les tableaux. + +Dans le prochain défi, nous allons travailler sur les **tableaux**. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/function-arguments/problem_fr.md b/problems/function-arguments/problem_fr.md new file mode 100644 index 00000000..aa796867 --- /dev/null +++ b/problems/function-arguments/problem_fr.md @@ -0,0 +1,35 @@ +Une fonction peut être déclarée pour recevoir n'importe quel nombre d'arguments. Les arguments peuvent être de n'importe quel type. Un argument peut être une chaîne de caractères, un nombre, un tableau, un objet et même une autre fonction. + +Voici un exemple : + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg); +} +``` + +Nous pouvons **appeler** cette fonction avec deux arguments comme cela : + +```js +example('hello', 'world'); +``` + +L'exemple ci-dessus va afficher dans le terminal `hello world`. + +## Le défi: + +Créer un fichier nommé `arguments-de-fonction.js`. + +Dans ce fichier, définissez une fonction nommée `math` qui prend trois arguments. Il est important que vous compreniez que les noms d'arguments ne sont seulement utilisés pour leur faire référence. + +Nommez chaque argument comme vous le souhaitez. + +Dans la fonction `math`, renvoyez la valeur obtenue de la multiplication du second argument avec le troisième et en ajoutant le premier argument au résultat. + +Après cela, dans les parenthèses de `console.log()`, appelez la fonction `math()` avec le nombre `53` comme premier argument, le nombre `61` comme second et le nombre `67` en troisième argument. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify arguments-de-fonction.js +``` diff --git a/problems/function-arguments/solution_fr.md b/problems/function-arguments/solution_fr.md new file mode 100644 index 00000000..a418dbf1 --- /dev/null +++ b/problems/function-arguments/solution_fr.md @@ -0,0 +1,9 @@ +--- + +# VOUS CONTRÔLEZ VOS ARGUMENTS ! + +Vous avez bien réussi l'exercice. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/function-return-values/problem_fr.md b/problems/function-return-values/problem_fr.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_fr.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_fr.md b/problems/function-return-values/solution_fr.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_fr.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_fr.md b/problems/functions/problem_fr.md new file mode 100644 index 00000000..2564437f --- /dev/null +++ b/problems/functions/problem_fr.md @@ -0,0 +1,37 @@ +Une fonction est un bloc de code qui prend des entrées, qui traite ces entrées, et produit une sortie. + +Voici un exemple : + +```js +function example (x) { + return x * 2; +} +``` + +Nous pouvons **appeler** cette fonction comme cela pour récupérer le nombre 10 : + +```js +example(5) +``` + +L'exemple ci-dessus part du principe que la fonction `example` prend en argument -- en entrée -- un nombre et va renvoyer ce nombre multiplié par 2. + +## Le défi : + +Créer un fichier nommé `fonctions.js`. + +Dans ce fichier, définissez une fonction nommée `eat` qui prend un argument nommé `food` qui est considéré comme étant une chaîne de caractères. + +Dans cette fonction, retournez l'argument `food` comme celà : + +```js +return food + ' tasted really good.'; +``` + +Dans les parenthèses de `console.log()`, appelez la fonction `eat()` avec la chaine de caractères `bananas` comme argument. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify fonctions.js +``` diff --git a/problems/functions/solution_fr.md b/problems/functions/solution_fr.md new file mode 100644 index 00000000..186ca32c --- /dev/null +++ b/problems/functions/solution_fr.md @@ -0,0 +1,9 @@ +--- + +# OOOOOH DES BANANES + +Vous l'avez fait ! Vous avez créé une fonction qui prend une entrée, la traite et renvoit une sortie. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/if-statement/problem_fr.md b/problems/if-statement/problem_fr.md new file mode 100644 index 00000000..160d7adb --- /dev/null +++ b/problems/if-statement/problem_fr.md @@ -0,0 +1,32 @@ +Les instructions conditionnelles sont utilisées pour changer le flux d'exécution d'un programme, basée sur des conditions booléennes spécifiques. + +Une instruction conditionnelle ressemble à ça : + +```js +if (n > 1) { + console.log('the variable n is greater than 1.'); +} else { + console.log('the variable n is less than or equal to 1.'); +} +``` + +Dans les parenthèses vous devez entrer une instruction logique, ce qui veut dire que le résultat de l'instruction est soit vrai (`true`) soit faux (`false`). + +Le bloc `else` est optionnel et contient le code qui sera exécuté si l'instruction conditionnelle est fausse. + +## Le défi : + +Créer un fichier nommé `instruction-conditionnelle.js`. + +Dans ce fichier, déclarez une variable `fruit`. + +Assignez à la variable `fruit` la valeur **orange** du type **String**. + +Utilisez ensuite `console.log()` pour afficher "**The fruit name has more than five characters."** si la longueur du contenu de la variable `fruit` est supérieur à cinq. +Sinon, affichez "**The fruit name has five characters or less.**" + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify instruction-conditionnelle.js +``` diff --git a/problems/if-statement/solution_fr.md b/problems/if-statement/solution_fr.md new file mode 100644 index 00000000..74ef201b --- /dev/null +++ b/problems/if-statement/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# MAITRE DES CONDITIONS + +Vous l'avez fait ! La chaîne de caractères `orange` a plus de cinq caractères. + +Préparez vous pour les **boucles for** qui arrivent ensuite ! + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/introduction/problem_fr.md b/problems/introduction/problem_fr.md new file mode 100644 index 00000000..d141971c --- /dev/null +++ b/problems/introduction/problem_fr.md @@ -0,0 +1,44 @@ +Pour rester organisé, créons un dossier pour ce TP. + +Exécutez cette commande pour créer un dossier nommé `javascripting` (ou quelque chose d'autre si vous préférez) : + +```bash +mkdir javascripting +``` + +Allez dans le dossier `javascripting` avec cette commande : + +```bash +cd javascripting +``` + +Créez un fichier nommé `introduction.js` : + +```bash +touch introduction.js +``` + +ou si vous êtes sur Windows : +```bash +type NUL > introduction.js +``` +(`type` fait partie de la commande !) + +Ouvrez le fichier dans votre éditeur favori, et ajoutez ce texte : + +```js +console.log('hello'); +``` + +Sauvegardez le fichier, puis vérifiez si votre programme s'exécute correctement avec cette commande : + +```bash +javascripting verify introduction.js +``` + +Au passage, tout au long de ce tutoriel, vous pouvez donner nommer les fichiers comme bon vous semble, donc si vous voulez utiliser quelque chose comme `lesChatsSontGeniaux.js` comme nom de fichier pour tous les exercices, vous pouvez. Assurez vous juste d'exécuter : + +```bash +javascripting verify lesChatsSontGeniaux.js +``` + diff --git a/problems/introduction/solution_fr.md b/problems/introduction/solution_fr.md new file mode 100644 index 00000000..9a83af54 --- /dev/null +++ b/problems/introduction/solution_fr.md @@ -0,0 +1,19 @@ +--- + +# VOUS L'AVEZ FAIT ! + +Tout ce qui est entre les parenthèses de `console.log()` est affiché dans le terminal. + +Donc : + +```js +console.log('hello'); +``` + +affiche `hello` dans le terminal. + +Actuellement nous affichons une **chaine de caracteres** dans le terminal : `hello`. + +Dans le prochain défi, nous allons nous focaliser sur l'apprentissage des **variables**. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. diff --git a/problems/looping-through-arrays/problem_fr.md b/problems/looping-through-arrays/problem_fr.md new file mode 100644 index 00000000..f7025e58 --- /dev/null +++ b/problems/looping-through-arrays/problem_fr.md @@ -0,0 +1,45 @@ +Pour ce défi nous utiliserons une **boucle for** pour accéder et manipuler une liste de valeurs dans un tableau. + +L'accès à des valeurs de tableaux peut être effectué en utilisant un nombre entier. + +Pour chaque élément du tableau est identifié par un nombre, commençant à `0`. + +Donc dans ce tableau, `hi` est identifié par le nombre `1` : + +```js +var greetings = ['hello', 'hi', 'good morning']; +``` + +Il peut être accédé comme celà : + +```js +greetings[1]; +``` + +Nous allons vouloir utiliser une variable `i` dans des crochets dans une **boucle for** à la place d'indiquer directement l'index avec un nombre entier. + +## Le défi : + +Créer un fichier nommé `iterer-dans-des-tableaux.js`. + +Dans ce fichier, définissez une variable nommée `pets` qui contient les valeurs suivantes : + +```js +['cat', 'dog', 'rat']; +``` + +Créez une boucle for qui modifie chaque chaine de caractères dans le tableau pour les mettre au pluriel. + +Nous utiliserons une instruction similaire à celle-ci dans la boucle for : + +```js +pets[i] = pets[i] + 's'; +``` + +Après la boucle for, utilisez `console.log()` pour afficher le tableau `pets` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify iterer-dans-des-tableaux.js +``` diff --git a/problems/looping-through-arrays/solution_fr.md b/problems/looping-through-arrays/solution_fr.md new file mode 100644 index 00000000..1db9a25a --- /dev/null +++ b/problems/looping-through-arrays/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# SUCCES ! PLEIN D'ANIMAUX ! + +Tous les éléments dans le tableau `pets` sont maintenant au pluriel ! + +Dans le prochain défi, nous allons découvrir les **objets**. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/number-to-string/problem_fr.md b/problems/number-to-string/problem_fr.md new file mode 100644 index 00000000..fc8e7744 --- /dev/null +++ b/problems/number-to-string/problem_fr.md @@ -0,0 +1,24 @@ +Vous devez parfois transformer un nombre en chaines de caractères. + +Dans ces instructions, vous utiliserez la méthode `.toString()`. Voici un exemple : + +```js +var n = 256; +n = n.toString(); +``` + +## Le défi : + +Créez un fichier nommé `nombre-en-chaine.js`. + +Dans ce fichier, définissez une variable nommée `n` qui contient le nombre `128`. + +Appelez la méthode `.toString()` sur la variable `n`. + +Utilisez `console.log()` pour afficher le résultat de la méthode `.toString()` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify nombre-en-chaine.js +``` diff --git a/problems/number-to-string/solution_fr.md b/problems/number-to-string/solution_fr.md new file mode 100644 index 00000000..ecd83380 --- /dev/null +++ b/problems/number-to-string/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# CE NOMBRE EST MAINTENANT UNE CHAINE DE CARACTERES ! + +Excellent. Vous avez réussi à convertir un nombre en chaîne de caractères. + +Dans le prochain défi, nous nous intéresserons aux **instructions if**. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/numbers/problem_fr.md b/problems/numbers/problem_fr.md new file mode 100644 index 00000000..34f69a90 --- /dev/null +++ b/problems/numbers/problem_fr.md @@ -0,0 +1,14 @@ +Les nombres peuvent être des entiers, comme `2`, `14`, ou `4353`, ou décimaux, aussi appelés `floats`, comme `3.14`, `1.5`, ou `100.7893423`. +Contrairement aux chaînes de caractères, les nombres ne sont pas entourés par des guillemets. + +## Le défi : + +Créez un fichier nommé `nombres.js`. + +Dans ce fichier, définissez une variable nommée `example` qui contient l'entier `123456789`. + +Utilisez `console.log()` pour afficher ce nombre dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +`javascripting verify nombres.js` diff --git a/problems/numbers/solution_fr.md b/problems/numbers/solution_fr.md new file mode 100644 index 00000000..6be93d31 --- /dev/null +++ b/problems/numbers/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# YEAH ! DES NOMBRES ! + +Génial, vous avez défini avec succès une variable contenant le nombre `123456789`. + +Dans le prochain défi, nous nous intéressons à la manipulation de nombres. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/object-keys/problem_fr.md b/problems/object-keys/problem_fr.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/problem_fr.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/object-keys/solution_fr.md b/problems/object-keys/solution_fr.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/object-keys/solution_fr.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/objects/problem_fr.md b/problems/objects/problem_fr.md new file mode 100644 index 00000000..b2a53d67 --- /dev/null +++ b/problems/objects/problem_fr.md @@ -0,0 +1,32 @@ +Les objets sont des listes de valeurs similaires aux tableaux, sauf que les valeurs sont identifiées par une clé au lieu d'un entier. + +Voici un exemple : + +```js +var foodPreferences = { + pizza: 'yum', + salad: 'gross' +}; +``` + +## Le défi : + +Créez un fichier nommé `objets.js`. + +Dans ce fichier, définissez une variable nommée `pizza` comme celà : + +```js +var pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +}; +``` + +Utilisez `console.log()` pour afficher l'objet `pizza` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify objets.js +``` diff --git a/problems/objects/solution_fr.md b/problems/objects/solution_fr.md new file mode 100644 index 00000000..b0b87dc9 --- /dev/null +++ b/problems/objects/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# L'OBJET PIZZA EST PRÊT. + +Vous avez réussi à créer un objet ! + +Dans le prochain défi, nous nous focaliserons sur l'accès à des propriétés d'objets. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/revising-strings/problem_fr.md b/problems/revising-strings/problem_fr.md new file mode 100644 index 00000000..fe8174f0 --- /dev/null +++ b/problems/revising-strings/problem_fr.md @@ -0,0 +1,27 @@ +Vous allez souvent avoir besoin de changer le contenu d'une chaîne de caractères. + +Les chaînes de caractères ont des fonctionnalités directement intégrées qui vous permettent de manipuler et accéder à leur contenu. + +Voici un exemple qui utilise la méthode `.replace()` : + +```js +var example = 'this example exists'; +example = example.replace('exists', 'is awesome'); +console.log(example); +``` + +Notez que pour modifier la valeur contenue dans la variable `example`, nous devons utiliser encore une fois le signe égal, mais cette fois avec la méthode `example.replace()` à la droite du égal. + +## Le challenge : + +Créez un fichier nommé `revisions-chaines.js`. + +Définissez une variable nommée `pizza` qui contient cette chaîne de caractères : `'pizza is alright'` + +Utilisez la méthode `.replace()` pour modifier `alright` en `wonderful`. + +Utilisez `console.log()` pour afficher le résultat de la méthode `.replace()` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +`javascripting verify revisions-chaines.js` diff --git a/problems/revising-strings/solution_fr.md b/problems/revising-strings/solution_fr.md new file mode 100644 index 00000000..f06f48a4 --- /dev/null +++ b/problems/revising-strings/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# OUI, LA PIZZA _EST_ MAGNIFIQUE. + +Bon boulot avec cette méthode `.replace()` ! + +Nous allons ensuite étudier les **nombres**. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/rounding-numbers/problem_fr.md b/problems/rounding-numbers/problem_fr.md new file mode 100644 index 00000000..e900847b --- /dev/null +++ b/problems/rounding-numbers/problem_fr.md @@ -0,0 +1,29 @@ +Nous pouvons faire des mathématiques basiques avec les operateurs tels que `+`, `-`, `*`, `/`, et `%`. + +Pour des maths plus complexes, nous pouvons utiliser l'objet `Math`. + +Dans ce défi, nous allons utiliser l'objet `Math` pour arrondir des nombres. + +## Le défi : + +Créer un fichier nomém `nombres-arrondis.js`. + +Dans ce fichier, définissez une variable nommée `roundUp` qui contient le flottant `1.5`. + +Nous allons utiliser la méthode `Math.round()` pour arrondir notre nombre. Cette méthode retourne l'arrondi entier le plus proche. + +Un exemple d'utilisation de `Math.round()` : + +```js +Math.round(0.5); +``` + +Définissez une seconde variable nommée `rounded` qui contient le résultat de la méthode `Math.round()`, en lui passant la variable `roundUp` en argument. + +Utilisez `console.log()` pour afficher ce nombre dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/solution_fr.md b/problems/rounding-numbers/solution_fr.md new file mode 100644 index 00000000..7abd6fa2 --- /dev/null +++ b/problems/rounding-numbers/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# CE NOMBRE EST ARRONDI + +Ouaip, vous venez d'arrondir le nombre `1.5` vers `2`. Bon boulot ! + +Dans le prochain défi, nous allons transformer un nombre en chaîne de caractères. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/scope/problem_fr.md b/problems/scope/problem_fr.md new file mode 100644 index 00000000..9d8c5374 --- /dev/null +++ b/problems/scope/problem_fr.md @@ -0,0 +1,70 @@ +Le `scope` est le jeu de variables, d'objets et de fonctions auxquels vous avez accès. + +Le JavaScript a deux scopes : le scope `global` et le scope `local`. Une variable qui est déclarée hors d'une fonction est une variable `globale`, et sa valeur est accessible et modifiable à travers tout le programme. Une variable qui est déclarée dans une fonction est `locale`. Elle est créée et détruite à chaque fois qu'une fonction est exécutée, et ne peut pas être accédée en dehors de cette fonction. + +Les fonctions définies à l'intérieur d'autres fonctions, aussi connues en tant que fonctions imbriquées (nested), ont accès au scope de leur fonction parent. + +Soyez attentif aux commentaires dans le code suivant : + +```js +var a = 4; // a est une variable globale, elle peut être accédée par les fonctions ci-dessous + +function foo() { + var b = a * 3; // b ne peut pas être accédée hors de la fonction foo, mais peut être accédée + // par les fonctions déclarées à l'intérieur de foo + function bar(c) { + var b = 2; // une autre variable `b` est créée à l'intérieur du scope de la fonction + // les changements apportés à cette nouvelle variable `b` n'ont pas d'effet sur + // l'ancienne variable `b` + console.log( a, b, c ); + } + + bar(b * 4); +} + +foo(); // 4, 2, 48 +``` +IIFE, Immediately Invoked Function Expression, est un schéma commun pour créer des scopes locaux +exemple: +```js + (function(){ // l'expression `function` est entourrée par des parenthèses + // les variables définies ici + // ne sont pas accessibles en dehors + })(); // la fonction est appelée immédiatement +``` +## Le défi : + +Créez un fichier nommé `scope.js`. + +Dans ce fichier, copiez le code suivant : +```js +var a = 1, b = 2, c = 3; + +(function firstFunction(){ + var b = 5, c = 6; + + (function secondFunction(){ + var b = 8; + + (function thirdFunction(){ + var a = 7, c = 9; + + (function fourthFunction(){ + var a = 1, c = 8; + + })(); + })(); + })(); +})(); +``` + +Utilisez vos connaissances des `scopes` de variables et placez le code suivant à l'intérieur d'une fonction de `scope.js` afin d'obtenir la sortie `a: 1, b: 8, c: 6` +```js +console.log("a: "+a+", b: "+b+", c: "+c); +``` + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/solution_fr.md b/problems/scope/solution_fr.md new file mode 100644 index 00000000..13e105f8 --- /dev/null +++ b/problems/scope/solution_fr.md @@ -0,0 +1,9 @@ +--- + +# EXCELLENT ! + +Vous l'avez fait ! La seconde fonction possède le `scope` que nous recherchons. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/string-length/problem_fr.md b/problems/string-length/problem_fr.md new file mode 100644 index 00000000..2cf231bd --- /dev/null +++ b/problems/string-length/problem_fr.md @@ -0,0 +1,29 @@ +Vous allez assez souvent avoir besoin de savoir combien de caractères sont contenus dans une chaîne de caractères. + +Pour celà vous allez utiliser la propriété `.length`. Voici un exemple : + +```js +var example = 'example string'; +example.length +``` + +## NOTE + +Assurez vous qu'il y ait un point entre `example` et `length`. + +Le code ci-dessus renverra un **nombre** contenant le nombre total de caractères de la chaîne de caractères. + + +## Le défi : + +Créez un fichier nommé `longueur-chaine.js`. + +Dans ce fichier, créez une variable nommée `example`. + +**Assignez la chaîne de caractères `'example string'` à la variable `example`.** + +Utilisez `console.log` pour afficher la **longueur** de la chaîne de caractères dans le terminal. + +**Vérifiez si votre programme est correct en exécutant la commande :** + +`javascripting verify longueur-chaine.js` diff --git a/problems/string-length/solution_fr.md b/problems/string-length/solution_fr.md new file mode 100644 index 00000000..82682157 --- /dev/null +++ b/problems/string-length/solution_fr.md @@ -0,0 +1,9 @@ +--- + +# GAGNE: 14 CARACTERES + +Vous l'avez fait ! La chaine de caractères `example string` contient 14 caractères. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md new file mode 100644 index 00000000..404bb569 --- /dev/null +++ b/problems/strings/problem_fr.md @@ -0,0 +1,29 @@ +Une **chaine de caractères** peut être n'importe quelle valeur entourrée par des guillemets. + +Cela peut-être des guillemets simples ou doubles : + +```js +'this is a string' + +"this is also a string" +``` + +## NOTE + +Essayez de rester cohérent. Dans ce TP, nous n'allons utiliser que des guillemets simples. + +## Le défi : + +Pour ce défi, créez un fichier nommé `chaines.js`. + +Dans ce fichier, créez uen variable nommée `someString` comme cela : + +```js +var someString = 'this is a string'; +``` + +Utilisez `console.log` pour afficher la variable **someString** dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +`javascripting verify chaines.js` diff --git a/problems/strings/solution_fr.md b/problems/strings/solution_fr.md new file mode 100644 index 00000000..3afdf9f2 --- /dev/null +++ b/problems/strings/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# SUCCES + +Vous vous habituez aux chaînes de caractères ! + +Dans le défi suivant, nous découvrirons comment manipuler des chaînes de caractères. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/this/problem_fr.md b/problems/this/problem_fr.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_fr.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_fr.md b/problems/this/solution_fr.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_fr.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/variables/problem_fr.md b/problems/variables/problem_fr.md new file mode 100644 index 00000000..f3bb4139 --- /dev/null +++ b/problems/variables/problem_fr.md @@ -0,0 +1,33 @@ +Une variable est un nom qui fait référence à une valeur spécifique. Les variables sont déclarées en utilisant le mot clé `var` suivi par le nom de la variable. + +Voici un exemple : + +```js +var example; +``` + +La variable ci-dessus est **déclarée**, mais elle n'est pas définie (elle ne référence aucune valeur pour le moment). + +Voici un exemple de définition de variable, la faisant contenir une valeur spécifique : + +```js +var example = 'some string'; +``` + +# NOTE + +Une variable est **déclarée** en utilisant `var` et utilise le signe égal pour **assigner** la valeur qu'elle référence. Nous utilisons communément l'expression "Assigner une valeur à une variable". + +## Le défi : + +Créez un fichier nommé `variables.js`. + +Dans ce fichier, déclarez une variable nommée `example`. + +**Assignez la valeur `'some string'` à la variable `example`.** + +Utilisez ensuite `console.log()` pour afficher la variable `example` dans la console. + +Vérifiez si votre programme est correct en exécutant la commande : + +`javascripting verify variables.js` diff --git a/problems/variables/solution_fr.md b/problems/variables/solution_fr.md new file mode 100644 index 00000000..3966da5e --- /dev/null +++ b/problems/variables/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# VOUS AVEZ CRÉER UNE VARIABLE ! + +Bon boulot. + +Dans le prochain défi, nous étudierons les chaînes de caractères de façon plus précise. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- From 16ab96d611a6294cc657ef4ebf828d17285d4f14 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 13 Apr 2016 19:34:18 -0700 Subject: [PATCH 195/346] windows -> Windows (#165) --- problems/introduction/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/introduction/problem.md b/problems/introduction/problem.md index 7266bfb7..9cf827a5 100644 --- a/problems/introduction/problem.md +++ b/problems/introduction/problem.md @@ -18,7 +18,7 @@ Create a file named `introduction.js`: touch introduction.js ``` -or if you're on windows, +Or if you're on Windows: ```bash type NUL > introduction.js ``` From ef87d80d36801cf3d9ec320e3605abe2190fa03f Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 13 Apr 2016 19:42:57 -0700 Subject: [PATCH 196/346] more precision in strings explanation --- problems/strings/problem.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/problems/strings/problem.md b/problems/strings/problem.md index a897f718..e9af830f 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -1,6 +1,8 @@ -A **string** is any value surrounded by quotes. +A **string** is a sequence of characters. A ***character*** is, roughly +speaking, a written symbol. Examples of characters are letters, numbers, +punctuation marks, and spaces. -It can be single or double quotes: +String values are surrounded by either single or double quotation marks. ```js 'this is a string' @@ -10,7 +12,7 @@ It can be single or double quotes: ## NOTE -Try to stay consistent. In this workshop we'll only use single quotes. +Try to stay consistent. In this workshop we'll only use single quotation marks. ## The challenge: From 76c7f84f476641ada54c4f9148a39319b9de7495 Mon Sep 17 00:00:00 2001 From: physiocheck Date: Fri, 15 Apr 2016 15:09:34 +0200 Subject: [PATCH 197/346] Fix some typos & add missing file. --- i18n/fr.json | 2 +- problems/accessing-array-values/problem_fr.md | 2 +- problems/array-filtering/problem_fr.md | 2 +- problems/looping-through-arrays/problem_fr.md | 2 +- problems/object-properties/problem_fr.md | 43 +++++++++++++++++++ problems/rounding-numbers/problem_fr.md | 2 +- problems/strings/problem_fr.md | 2 +- 7 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 problems/object-properties/problem_fr.md diff --git a/i18n/fr.json b/i18n/fr.json index 39d84462..71d775cc 100644 --- a/i18n/fr.json +++ b/i18n/fr.json @@ -3,7 +3,7 @@ "INTRODUCTION": "INTRODUCTION" , "VARIABLES": "VARIABLES" , "STRINGS": "CHAINES DE CARACTERES" - , "STRING LENGTH": "LONGUEUR DE CHAINES LE CARACTERES" + , "STRING LENGTH": "LONGUEUR DE CHAINES DE CARACTERES" , "REVISING STRINGS": "INVERSER UNE CHAINE DE CARACTERES" , "NUMBERS": "NOMBRES" , "ROUNDING NUMBERS": "ARRONDIS" diff --git a/problems/accessing-array-values/problem_fr.md b/problems/accessing-array-values/problem_fr.md index ac23bf3c..a971e050 100644 --- a/problems/accessing-array-values/problem_fr.md +++ b/problems/accessing-array-values/problem_fr.md @@ -1,6 +1,6 @@ Les cases du tableau peuvent être accédées via leur index. -Les indexes doivent être des nombres allant de zero à la longuer du tableaux moins un. +Les indexes doivent être des nombres allant de zero à la longueur du tableaux moins un. Voici un exemple : diff --git a/problems/array-filtering/problem_fr.md b/problems/array-filtering/problem_fr.md index 3943d0bf..0206e38f 100644 --- a/problems/array-filtering/problem_fr.md +++ b/problems/array-filtering/problem_fr.md @@ -26,7 +26,7 @@ Dans ce fichier, définissez une variable nommée `numbers` qui contient ce tabl [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; ``` -Comme ci-dessus, définissez une variable nommée `filtered` qui fait contient le résultat de `numbers.filter()`. +Comme ci-dessus, définissez une variable nommée `filtered` qui contient le résultat de `numbers.filter()`. La fonction que vous passez la méthode `.filter()` va ressembler à ça : diff --git a/problems/looping-through-arrays/problem_fr.md b/problems/looping-through-arrays/problem_fr.md index f7025e58..95c06507 100644 --- a/problems/looping-through-arrays/problem_fr.md +++ b/problems/looping-through-arrays/problem_fr.md @@ -2,7 +2,7 @@ Pour ce défi nous utiliserons une **boucle for** pour accéder et manipuler une L'accès à des valeurs de tableaux peut être effectué en utilisant un nombre entier. -Pour chaque élément du tableau est identifié par un nombre, commençant à `0`. +Chaque élément du tableau est identifié par un nombre, commençant à `0`. Donc dans ce tableau, `hi` est identifié par le nombre `1` : diff --git a/problems/object-properties/problem_fr.md b/problems/object-properties/problem_fr.md new file mode 100644 index 00000000..692326bb --- /dev/null +++ b/problems/object-properties/problem_fr.md @@ -0,0 +1,43 @@ +Vous pouvez accéder et manipuler des propriétés d'objets —— les clés et valeurs qu'un objet contient —— en utilisant des méthodes très similaires aux tableaux. + +Voici un example utilisant des **crochets**: + +```js +var example = { + pizza: 'yummy' +}; + +console.log(example['pizza']); +``` + +Le code ci-dessus va afficher la chaine de caractères `'yummy'` dans le terminal. + +Une alternative consiste à utiliser la **notation en point** pour avoir le même résultat : + +```js +example.pizza; + +example['pizza']; +``` + +Les deux lignes de code ci-dessus renverront `yummy`. + +## Le défi : + +Créez un fichier nommé `proprietes-objet.js`. + +Dans ce fichier, définissez une variable nommée `food` comme ceci : + +```js +var food = { + types: 'only pizza' +}; +``` + +Utilisez `console.log()` pour afficher la propriété `types` de l'objet `food` dans le terminal. + +Vérifiez si votre programme est correct en exécutant la commande : + +```bash +javascripting verify proprietes-objet.js +``` diff --git a/problems/rounding-numbers/problem_fr.md b/problems/rounding-numbers/problem_fr.md index e900847b..fd19f87c 100644 --- a/problems/rounding-numbers/problem_fr.md +++ b/problems/rounding-numbers/problem_fr.md @@ -25,5 +25,5 @@ Utilisez `console.log()` pour afficher ce nombre dans le terminal. Vérifiez si votre programme est correct en exécutant la commande : ```bash -javascripting verify rounding-numbers.js +javascripting verify nombres-arrondis.js ``` diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index 404bb569..65a73909 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -16,7 +16,7 @@ Essayez de rester cohérent. Dans ce TP, nous n'allons utiliser que des guilleme Pour ce défi, créez un fichier nommé `chaines.js`. -Dans ce fichier, créez uen variable nommée `someString` comme cela : +Dans ce fichier, créez une variable nommée `someString` comme cela : ```js var someString = 'this is a string'; From be4adcd123d97a29c841e642519a91095a153e80 Mon Sep 17 00:00:00 2001 From: physiocheck Date: Fri, 15 Apr 2016 19:07:19 +0200 Subject: [PATCH 198/346] Fix some other typos and add object-properties missing solution for french translation. --- problems/accessing-array-values/problem_fr.md | 2 +- problems/for-loop/problem_fr.md | 2 +- problems/function-arguments/problem_fr.md | 2 +- problems/functions/problem_fr.md | 2 +- problems/object-properties/solution_fr.md | 11 +++++++++++ problems/rounding-numbers/problem_fr.md | 2 +- problems/scope/problem_fr.md | 2 +- 7 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 problems/object-properties/solution_fr.md diff --git a/problems/accessing-array-values/problem_fr.md b/problems/accessing-array-values/problem_fr.md index a971e050..6ecd9546 100644 --- a/problems/accessing-array-values/problem_fr.md +++ b/problems/accessing-array-values/problem_fr.md @@ -11,7 +11,7 @@ var pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` -Le code ci-dessus affichera le premier élément du tableau `pets` - la chaine de caracteres `cat`. +Le code ci-dessus affichera le premier élément du tableau `pets` - la chaine de caractères `cat`. Les éléments de tableaux doivent uniquement être accedées au travers de la notation des crochets. diff --git a/problems/for-loop/problem_fr.md b/problems/for-loop/problem_fr.md index 7e195373..f3b2cee4 100644 --- a/problems/for-loop/problem_fr.md +++ b/problems/for-loop/problem_fr.md @@ -19,7 +19,7 @@ Créer un fichier nommé `boucle-for.js`. Dans ce fichier, définissez une variable nommée `total` et assignez lui la valeur `0`. -Créez une seconde variabel nommée `limit` et assignez lui la valeur `10`. +Créez une seconde variable nommée `limit` et assignez lui la valeur `10`. Créez une boucle for avec une variable `i` commençant à 0 et s'incrémentant de 1 à chaque itération de la boucle. La boucle doit s'exécuter aussi longtemps que `i` est inférieur à `limit`. diff --git a/problems/function-arguments/problem_fr.md b/problems/function-arguments/problem_fr.md index aa796867..610829b3 100644 --- a/problems/function-arguments/problem_fr.md +++ b/problems/function-arguments/problem_fr.md @@ -20,7 +20,7 @@ L'exemple ci-dessus va afficher dans le terminal `hello world`. Créer un fichier nommé `arguments-de-fonction.js`. -Dans ce fichier, définissez une fonction nommée `math` qui prend trois arguments. Il est important que vous compreniez que les noms d'arguments ne sont seulement utilisés pour leur faire référence. +Dans ce fichier, définissez une fonction nommée `math` qui prend trois arguments. Il est important que vous compreniez que les noms d'arguments ne sont seulement utilisés que pour leur faire référence. Nommez chaque argument comme vous le souhaitez. diff --git a/problems/functions/problem_fr.md b/problems/functions/problem_fr.md index 2564437f..7474dcbc 100644 --- a/problems/functions/problem_fr.md +++ b/problems/functions/problem_fr.md @@ -22,7 +22,7 @@ Créer un fichier nommé `fonctions.js`. Dans ce fichier, définissez une fonction nommée `eat` qui prend un argument nommé `food` qui est considéré comme étant une chaîne de caractères. -Dans cette fonction, retournez l'argument `food` comme celà : +Dans cette fonction, retournez l'argument `food` comme cela : ```js return food + ' tasted really good.'; diff --git a/problems/object-properties/solution_fr.md b/problems/object-properties/solution_fr.md new file mode 100644 index 00000000..7d77c8af --- /dev/null +++ b/problems/object-properties/solution_fr.md @@ -0,0 +1,11 @@ +--- + +# CORRECT. LA PIZZA Y A QUE ÇA DE VRAI. + +Vous avez réussi à accéder à la propriété d'objet. + +Le prochain défi parlera de **fonctions**. + +Exécutez `javascripting` dans la console pour choisir le prochain défi. + +--- diff --git a/problems/rounding-numbers/problem_fr.md b/problems/rounding-numbers/problem_fr.md index fd19f87c..9e1deb9b 100644 --- a/problems/rounding-numbers/problem_fr.md +++ b/problems/rounding-numbers/problem_fr.md @@ -6,7 +6,7 @@ Dans ce défi, nous allons utiliser l'objet `Math` pour arrondir des nombres. ## Le défi : -Créer un fichier nomém `nombres-arrondis.js`. +Créer un fichier nommé `nombres-arrondis.js`. Dans ce fichier, définissez une variable nommée `roundUp` qui contient le flottant `1.5`. diff --git a/problems/scope/problem_fr.md b/problems/scope/problem_fr.md index 9d8c5374..8efcfa2a 100644 --- a/problems/scope/problem_fr.md +++ b/problems/scope/problem_fr.md @@ -27,7 +27,7 @@ foo(); // 4, 2, 48 IIFE, Immediately Invoked Function Expression, est un schéma commun pour créer des scopes locaux exemple: ```js - (function(){ // l'expression `function` est entourrée par des parenthèses + (function(){ // l'expression `function` est entourée par des parenthèses // les variables définies ici // ne sont pas accessibles en dehors })(); // la fonction est appelée immédiatement From 2059a28f96db26b000fae8ebdad817707b22b540 Mon Sep 17 00:00:00 2001 From: Victor Schubert Date: Sun, 17 Apr 2016 00:37:35 +0200 Subject: [PATCH 199/346] Review the french translation Fix mistakes in spelling, punctuation and general sentence construction. --- i18n/fr.json | 16 ++++++------- i18n/troubleshooting_fr.md | 14 +++++------ problems/accessing-array-values/problem_fr.md | 9 +++----- .../accessing-array-values/solution_fr.md | 4 ++-- problems/array-filtering/problem_fr.md | 14 +++++------ problems/array-filtering/solution_fr.md | 2 +- problems/arrays/problem_fr.md | 8 +++---- problems/arrays/solution_fr.md | 4 ++-- problems/for-loop/problem_fr.md | 18 +++++++-------- problems/for-loop/solution_fr.md | 2 +- problems/function-arguments/problem_fr.md | 12 +++++----- problems/function-arguments/solution_fr.md | 3 ++- problems/functions/problem_fr.md | 16 ++++++------- problems/functions/solution_fr.md | 2 +- problems/if-statement/problem_fr.md | 20 ++++++++-------- problems/if-statement/solution_fr.md | 6 ++--- problems/introduction/problem_fr.md | 16 ++++++------- problems/introduction/solution_fr.md | 6 ++--- problems/looping-through-arrays/problem_fr.md | 18 +++++++-------- .../looping-through-arrays/solution_fr.md | 4 ++-- problems/number-to-string/problem_fr.md | 8 +++---- problems/number-to-string/solution_fr.md | 2 +- problems/numbers/problem_fr.md | 4 ++-- problems/numbers/solution_fr.md | 6 ++--- problems/object-properties/problem_fr.md | 12 +++++----- problems/object-properties/solution_fr.md | 2 +- problems/objects/problem_fr.md | 8 +++---- problems/objects/solution_fr.md | 2 +- problems/revising-strings/problem_fr.md | 10 ++++---- problems/revising-strings/solution_fr.md | 4 ++-- problems/rounding-numbers/problem_fr.md | 6 ++--- problems/rounding-numbers/solution_fr.md | 2 +- problems/scope/problem_fr.md | 23 ++++++++++--------- problems/scope/solution_fr.md | 4 ++-- problems/string-length/problem_fr.md | 6 ++--- problems/string-length/solution_fr.md | 2 +- problems/strings/problem_fr.md | 10 ++++---- problems/strings/solution_fr.md | 4 ++-- problems/variables/problem_fr.md | 12 +++++----- problems/variables/solution_fr.md | 2 +- 40 files changed, 161 insertions(+), 162 deletions(-) diff --git a/i18n/fr.json b/i18n/fr.json index 71d775cc..1efd5f1b 100644 --- a/i18n/fr.json +++ b/i18n/fr.json @@ -2,20 +2,20 @@ "exercise": { "INTRODUCTION": "INTRODUCTION" , "VARIABLES": "VARIABLES" - , "STRINGS": "CHAINES DE CARACTERES" - , "STRING LENGTH": "LONGUEUR DE CHAINES DE CARACTERES" - , "REVISING STRINGS": "INVERSER UNE CHAINE DE CARACTERES" + , "STRINGS": "CHAÎNES DE CARACTÈRES" + , "STRING LENGTH": "LONGUEUR DE CHAÎNES DE CARACTÈRES" + , "REVISING STRINGS": "MODIFIER UNE CHAÎNE DE CARACTÈRES" , "NUMBERS": "NOMBRES" , "ROUNDING NUMBERS": "ARRONDIS" - , "NUMBER TO STRING": "NOMBRES EN CHAINES DE CARACTERES" - , "IF STATEMENT": "OPERATEUR IF" + , "NUMBER TO STRING": "NOMBRES EN CHAÎNES DE CARACTÈRES" + , "IF STATEMENT": "OPÉRATEUR IF" , "FOR LOOP": "BOUCLE FOR" , "ARRAYS": "TABLEAUX" , "ARRAY FILTERING": "FILTRAGE DE TABLEAUX" - , "ACCESSING ARRAY VALUES": "ACCEDER AUX VALEURS D'UN TABLEAU" - , "LOOPING THROUGH ARRAYS": "ITERER SUR UN TABLEAU" + , "ACCESSING ARRAY VALUES": "ACCÉDER AUX VALEURS D'UN TABLEAU" + , "LOOPING THROUGH ARRAYS": "ITÉRER SUR UN TABLEAU" , "OBJECTS": "OBJETS" - , "OBJECT PROPERTIES": "PROPRIETES D'OBJETS" + , "OBJECT PROPERTIES": "PROPRIÉTÉS D'OBJETS" , "FUNCTIONS": "FONCTIONS" , "FUNCTION ARGUMENTS": "ARGUMENTS DE FONCTIONS" , "SCOPE": "SCOPE" diff --git a/i18n/troubleshooting_fr.md b/i18n/troubleshooting_fr.md index a68fa3fc..9274c6b5 100644 --- a/i18n/troubleshooting_fr.md +++ b/i18n/troubleshooting_fr.md @@ -1,9 +1,9 @@ --- # O-oh, quelque chose ne fonctionne pas. -# Mais ne paniquez pas ! +# Mais ne paniquez pas ! --- -## Vérifiez votre solution : +## Vérifiez votre solution : `Solution ===================` @@ -15,12 +15,12 @@ %attempt% -`Difference +`Différence ===================` %diff% -## Autres solutions : - * Avez-vous nommé correctement le fichier ? Vous pouvez vérifier en exécutant ls `%filename%`, si vous voyez ls: cannot access `%filename%`: No such file or directory c'est que vous devriez créer un nouveau fichier / le renommer ou aller dans le dossier contenant le fichier - * Assurez-vous que vous n'avez pas oublié de parenthèse, sinon le compilateur ne sera pas capable de l'analyser - * Assurez-vous de ne pas avoir de faute de frappe dans la chaine de caractère +## Autres pistes : + * Avez-vous nommé correctement le fichier ? Vous pouvez vérifier en exécutant `ls %filename%`, si vous voyez `ls: cannot access %filename%: No such file or directory` c'est que vous devriez créer un nouveau fichier ou le renommer ou aller dans le dossier contenant le fichier. + * Assurez-vous que vous n'avez pas oublié de parenthèse, sinon le compilateur ne sera pas capable d'analyser votre code. + * Assurez-vous de ne pas avoir de faute de frappe dans la chaîne de caractère. diff --git a/problems/accessing-array-values/problem_fr.md b/problems/accessing-array-values/problem_fr.md index 6ecd9546..16b36b71 100644 --- a/problems/accessing-array-values/problem_fr.md +++ b/problems/accessing-array-values/problem_fr.md @@ -1,10 +1,9 @@ -Les cases du tableau peuvent être accédées via leur index. +On peut accéder aux cases du tableau via leurs index. -Les indexes doivent être des nombres allant de zero à la longueur du tableaux moins un. +Les index doivent être des nombres allant de zero à la longueur du tableaux moins un. Voici un exemple : - ```js var pets = ['cat', 'dog', 'rat']; @@ -13,9 +12,7 @@ console.log(pets[0]); Le code ci-dessus affichera le premier élément du tableau `pets` - la chaine de caractères `cat`. -Les éléments de tableaux doivent uniquement être accedées au travers de la notation des crochets. - -La notation en point est invalide. +On ne doit accéder aux éléments de tableaux qu'au travers de la notation « crochets » : la notation en point est invalide. Notation valide : diff --git a/problems/accessing-array-values/solution_fr.md b/problems/accessing-array-values/solution_fr.md index 71a4a25c..1450ab10 100644 --- a/problems/accessing-array-values/solution_fr.md +++ b/problems/accessing-array-values/solution_fr.md @@ -1,6 +1,6 @@ --- -# DEUXIEME ELEMENT DU TABLEAU AFFICHE ! +# DEUXIÈME ÉLÉMENT DU TABLEAU AFFICHÉ ! Vous avez réussi à accéder au second élément du tableau. @@ -8,4 +8,4 @@ Dans le défi suivant nous allons travailler sur un exemple de boucle de parcour Exécutez `javascripting` dans la console pour choisir le prochain défi. ---- \ No newline at end of file +--- diff --git a/problems/array-filtering/problem_fr.md b/problems/array-filtering/problem_fr.md index 0206e38f..588eff16 100644 --- a/problems/array-filtering/problem_fr.md +++ b/problems/array-filtering/problem_fr.md @@ -1,10 +1,10 @@ -Il y a beaucoup de manières pour manipuler les tableaux. +Il y a beaucoup de manières de manipuler les tableaux. -Une tache commune est de filtrer les tableaux pour ne garder que certaines valeurs. +Une tâche commune est de filtrer les tableaux pour ne garder que certaines valeurs. Pour cela nous pouvons utiliser la méthode `.filter()`. -Voici un exemple : +Voici un exemple : ```js var pets = ['cat', 'dog', 'elephant']; @@ -16,11 +16,11 @@ var filtered = pets.filter(function (pet) { La variable `filtered` ne va contenir que `cat` et `dog`. -## Le défi : +## Le défi : Créer un fichier nommé `filtrage-de-tableau.js`. -Dans ce fichier, définissez une variable nommée `numbers` qui contient ce tableau : +Dans ce fichier, définissez une variable nommée `numbers` qui contient ce tableau : ```js [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; @@ -28,7 +28,7 @@ Dans ce fichier, définissez une variable nommée `numbers` qui contient ce tabl Comme ci-dessus, définissez une variable nommée `filtered` qui contient le résultat de `numbers.filter()`. -La fonction que vous passez la méthode `.filter()` va ressembler à ça : +La fonction que vous passerez à la méthode `.filter()` va ressembler à ça : ```js function evenNumbers (number) { @@ -38,7 +38,7 @@ function evenNumbers (number) { Utilisez `console.log()` pour afficher le tableau `filtered` dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez que votre programme soit correct en exécutant la commande : ```bash javascripting verify filtrage-de-tableau.js diff --git a/problems/array-filtering/solution_fr.md b/problems/array-filtering/solution_fr.md index beda74fc..0069ee6d 100644 --- a/problems/array-filtering/solution_fr.md +++ b/problems/array-filtering/solution_fr.md @@ -1,6 +1,6 @@ --- -# FILTRÉ ! +# FILTRÉ ! Vous avez réussi à filtrer le tableau. diff --git a/problems/arrays/problem_fr.md b/problems/arrays/problem_fr.md index 5043d3ce..f7c8a9fc 100644 --- a/problems/arrays/problem_fr.md +++ b/problems/arrays/problem_fr.md @@ -1,18 +1,18 @@ -Un tableau est une liste de valeurs. Voici un exemple : +Un tableau est une liste de valeurs. Voici un exemple : ```js var pets = ['cat', 'dog', 'rat']; ``` -### Le défi : +### Le défi : Créer un fichier nommé `tableaux.js`. -Dans ce fichier, définissez une variable nommée `pizzaToppings` qui contient un tableau composé de trois chaines de caractères dans cet ordre : `tomato sauce, cheese, pepperoni`. +Dans ce fichier, définissez une variable nommée `pizzaToppings` qui contient un tableau composé de trois chaînes de caractères dans cet ordre : `tomato sauce, cheese, pepperoni`. Utilisez `console.log()` pour afficher le tableau `pizzaToppings` dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify tableaux.js diff --git a/problems/arrays/solution_fr.md b/problems/arrays/solution_fr.md index bdf72d6d..a573b1f9 100644 --- a/problems/arrays/solution_fr.md +++ b/problems/arrays/solution_fr.md @@ -1,8 +1,8 @@ --- -# YAY, UN TABLEAU DE PIZZAS ! +# YAY, UN TABLEAU DE PIZZAS ! -Vous avez réussi à créer un tableau ! +Vous avez réussi à créer un tableau ! Dans le défi suivant, nous allons explorer le filtrage de tableaux. diff --git a/problems/for-loop/problem_fr.md b/problems/for-loop/problem_fr.md index f3b2cee4..29cde4cb 100644 --- a/problems/for-loop/problem_fr.md +++ b/problems/for-loop/problem_fr.md @@ -1,4 +1,4 @@ -Les boucles for vous permettent de répéter l'exécution d'un bloc de code un certain nombre de fois. Cette boucle for affiche dans la console dix fois : +Les boucles `for` vous permettent de répéter l'exécution d'un bloc de code un certain nombre de fois. Cette boucle `for` affiche dans la console dix fois : ```js for (var i = 0; i < 10; i++) { @@ -9,21 +9,21 @@ for (var i = 0; i < 10; i++) { La première partie, `var i = 0`, n'est exécutée qu'une fois au début de la boucle. La variable `i` est utilisée pour compter le nombre d'exécutions de la boucle. -La seconde partie, `i < 10`, est vérifiée au début de chaque itération de la boucle avant que le code contenu ne s'exécute. Si la condition est valide, le code contenu dans la boucle est exécuté. Sinon, la boucle est terminée. La condition `i < 10;` indique que la boucle va continuer de s'exécuter aussi longtemps que `i` est inférieur à `10`. +La seconde partie, `i < 10`, est vérifiée au début de chaque itération de la boucle avant que le code contenu ne s'exécute. Si la condition est valide, le code contenu dans la boucle est exécuté. Sinon, la boucle est terminée. La condition `i < 10;` indique que la boucle va continuer de s'exécuter tant que `i` est inférieur à `10`. -La partie finale, `i++`, est exécutée à la fin de chaque boucle. Elle incrémente la variable `i` par 1 après chaque itération. Dès que `i` atteint `10`, la boucle est terminée. +La partie finale, `i++`, est exécutée à la fin de chaque boucle. Elle incrémente la variable `i` après chaque itération. Dès que `i` atteint 10, la boucle est terminée. -## Le défi : +## Le défi : -Créer un fichier nommé `boucle-for.js`. +Créez un fichier nommé `boucle-for.js`. Dans ce fichier, définissez une variable nommée `total` et assignez lui la valeur `0`. -Créez une seconde variable nommée `limit` et assignez lui la valeur `10`. +Créez une seconde variable nommée `limit` et assignez lui la valeur 10. -Créez une boucle for avec une variable `i` commençant à 0 et s'incrémentant de 1 à chaque itération de la boucle. La boucle doit s'exécuter aussi longtemps que `i` est inférieur à `limit`. +Créez une boucle `for` avec une variable `i` commençant à 0 et s'incrémentant à chaque itération de la boucle. La boucle doit s'exécuter aussi longtemps que `i` est strictement inférieur à `limit`. -À chaque itération de la boucle, ajoutez le nombre `i` à la variable `total`. Pour faire cela, vous pouvez utiliser l'instruction suivante : +À chaque itération de la boucle, ajoutez le nombre `i` à la variable `total`. Pour faire cela, vous pouvez utiliser l'instruction suivante : ```js total += i; @@ -31,7 +31,7 @@ total += i; Après la boucle, utilisez `console.log()` pour afficher la variable `total` dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify boucle-for.js diff --git a/problems/for-loop/solution_fr.md b/problems/for-loop/solution_fr.md index badc413e..1dc74c39 100644 --- a/problems/for-loop/solution_fr.md +++ b/problems/for-loop/solution_fr.md @@ -2,7 +2,7 @@ # LE TOTAL EST 45 -Vous avez réalisé une introduction basique aux boucles, qui sont utiles dans un grand nombre de situations, particulièrement dans des combinaisons avec d'autres types de données comme les chaînes de caractères et les tableaux. +Ceci était une introduction basique aux boucles. Elles sont utiles dans un grand nombre de situations, particulièrement dans des combinaisons avec d'autres types de données comme les chaînes de caractères et les tableaux. Dans le prochain défi, nous allons travailler sur les **tableaux**. diff --git a/problems/function-arguments/problem_fr.md b/problems/function-arguments/problem_fr.md index 610829b3..6d78cc95 100644 --- a/problems/function-arguments/problem_fr.md +++ b/problems/function-arguments/problem_fr.md @@ -1,6 +1,6 @@ -Une fonction peut être déclarée pour recevoir n'importe quel nombre d'arguments. Les arguments peuvent être de n'importe quel type. Un argument peut être une chaîne de caractères, un nombre, un tableau, un objet et même une autre fonction. +On peut déclarer qu'une fonction reçoit n'importe quel nombre d'arguments. Les arguments peuvent être de n'importe quel type : un argument peut être une chaîne de caractères, un nombre, un tableau, un objet et même une autre fonction. -Voici un exemple : +Voici un exemple : ```js function example (firstArg, secondArg) { @@ -8,7 +8,7 @@ function example (firstArg, secondArg) { } ``` -Nous pouvons **appeler** cette fonction avec deux arguments comme cela : +Nous pouvons **appeler** cette fonction avec deux arguments comme cela : ```js example('hello', 'world'); @@ -16,11 +16,11 @@ example('hello', 'world'); L'exemple ci-dessus va afficher dans le terminal `hello world`. -## Le défi: +## Le défi : -Créer un fichier nommé `arguments-de-fonction.js`. +Créez un fichier nommé `arguments-de-fonction.js`. -Dans ce fichier, définissez une fonction nommée `math` qui prend trois arguments. Il est important que vous compreniez que les noms d'arguments ne sont seulement utilisés que pour leur faire référence. +Dans ce fichier, définissez une fonction nommée `math` qui prend trois arguments. Il est important que vous compreniez que les noms d'arguments ne sont seulement utilisés que pour y faire référence. Nommez chaque argument comme vous le souhaitez. diff --git a/problems/function-arguments/solution_fr.md b/problems/function-arguments/solution_fr.md index a418dbf1..9de07214 100644 --- a/problems/function-arguments/solution_fr.md +++ b/problems/function-arguments/solution_fr.md @@ -1,6 +1,7 @@ --- -# VOUS CONTRÔLEZ VOS ARGUMENTS ! +# VOUS CONTRÔLEZ VOS ARGUMENTS ! + Vous avez bien réussi l'exercice. diff --git a/problems/functions/problem_fr.md b/problems/functions/problem_fr.md index 7474dcbc..fb3ce11e 100644 --- a/problems/functions/problem_fr.md +++ b/problems/functions/problem_fr.md @@ -1,6 +1,6 @@ Une fonction est un bloc de code qui prend des entrées, qui traite ces entrées, et produit une sortie. -Voici un exemple : +Voici un exemple : ```js function example (x) { @@ -8,29 +8,29 @@ function example (x) { } ``` -Nous pouvons **appeler** cette fonction comme cela pour récupérer le nombre 10 : +Nous pouvons **appeler** cette fonction comme cela pour récupérer le nombre 10 : ```js example(5) ``` -L'exemple ci-dessus part du principe que la fonction `example` prend en argument -- en entrée -- un nombre et va renvoyer ce nombre multiplié par 2. +L'exemple ci-dessus part du principe que la fonction `example` prend en argument — en entrée — un nombre et va renvoyer ce nombre multiplié par 2. -## Le défi : +## Le défi : -Créer un fichier nommé `fonctions.js`. +Créez un fichier nommé `fonctions.js`. Dans ce fichier, définissez une fonction nommée `eat` qui prend un argument nommé `food` qui est considéré comme étant une chaîne de caractères. -Dans cette fonction, retournez l'argument `food` comme cela : +Dans cette fonction, retournez l'argument `food` comme cela : ```js return food + ' tasted really good.'; ``` -Dans les parenthèses de `console.log()`, appelez la fonction `eat()` avec la chaine de caractères `bananas` comme argument. +Dans les parenthèses de `console.log()`, appelez la fonction `eat()` avec la chaîne de caractères `bananas` comme argument. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify fonctions.js diff --git a/problems/functions/solution_fr.md b/problems/functions/solution_fr.md index 186ca32c..a43657b6 100644 --- a/problems/functions/solution_fr.md +++ b/problems/functions/solution_fr.md @@ -2,7 +2,7 @@ # OOOOOH DES BANANES -Vous l'avez fait ! Vous avez créé une fonction qui prend une entrée, la traite et renvoit une sortie. +Vous avez réussi ! Vous avez créé une fonction qui prend une entrée, la traite et renvoie une sortie. Exécutez `javascripting` dans la console pour choisir le prochain défi. diff --git a/problems/if-statement/problem_fr.md b/problems/if-statement/problem_fr.md index 160d7adb..b65a4793 100644 --- a/problems/if-statement/problem_fr.md +++ b/problems/if-statement/problem_fr.md @@ -1,6 +1,6 @@ -Les instructions conditionnelles sont utilisées pour changer le flux d'exécution d'un programme, basée sur des conditions booléennes spécifiques. +Les instructions conditionnelles servent à changer le flux d'exécution d'un programme selon des conditions booléennes spécifiques. -Une instruction conditionnelle ressemble à ça : +Une instruction conditionnelle ressemble à ça : ```js if (n > 1) { @@ -10,22 +10,22 @@ if (n > 1) { } ``` -Dans les parenthèses vous devez entrer une instruction logique, ce qui veut dire que le résultat de l'instruction est soit vrai (`true`) soit faux (`false`). +Dans les parenthèses vous devez entrer une expression logique, ce qui veut dire que le résultat de l'instruction est soit vrai ( `true` ) soit faux ( `false` ). -Le bloc `else` est optionnel et contient le code qui sera exécuté si l'instruction conditionnelle est fausse. +Le bloc `else` est optionnel et contient le code qui sera exécuté si la condition est fausse. -## Le défi : +## Le défi : -Créer un fichier nommé `instruction-conditionnelle.js`. +Créez un fichier nommé `instruction-conditionnelle.js`. Dans ce fichier, déclarez une variable `fruit`. -Assignez à la variable `fruit` la valeur **orange** du type **String**. +Assignez à la variable `fruit` la valeur `orange` du type `String`. -Utilisez ensuite `console.log()` pour afficher "**The fruit name has more than five characters."** si la longueur du contenu de la variable `fruit` est supérieur à cinq. -Sinon, affichez "**The fruit name has five characters or less.**" +Utilisez ensuite `console.log()` pour afficher **« The fruit name has more than five characters. »** si la longueur du contenu de la variable `fruit` est supérieure à cinq. +Sinon, affichez **« The fruit name has five characters or less. »** -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify instruction-conditionnelle.js diff --git a/problems/if-statement/solution_fr.md b/problems/if-statement/solution_fr.md index 74ef201b..8f688d75 100644 --- a/problems/if-statement/solution_fr.md +++ b/problems/if-statement/solution_fr.md @@ -1,10 +1,10 @@ --- -# MAITRE DES CONDITIONS +# MAÎTRE DES CONDITIONS -Vous l'avez fait ! La chaîne de caractères `orange` a plus de cinq caractères. +Vous avez réussi ! La chaîne de caractères `orange` a plus de cinq caractères. -Préparez vous pour les **boucles for** qui arrivent ensuite ! +Préparez vous pour les **boucles for** qui arrivent ensuite ! Exécutez `javascripting` dans la console pour choisir le prochain défi. diff --git a/problems/introduction/problem_fr.md b/problems/introduction/problem_fr.md index d141971c..f5308415 100644 --- a/problems/introduction/problem_fr.md +++ b/problems/introduction/problem_fr.md @@ -1,42 +1,42 @@ Pour rester organisé, créons un dossier pour ce TP. -Exécutez cette commande pour créer un dossier nommé `javascripting` (ou quelque chose d'autre si vous préférez) : +Exécutez cette commande pour créer un dossier nommé `javascripting` (ou quelque chose d'autre si vous préférez) : ```bash mkdir javascripting ``` -Allez dans le dossier `javascripting` avec cette commande : +Allez dans le dossier `javascripting` avec cette commande : ```bash cd javascripting ``` -Créez un fichier nommé `introduction.js` : +Créez un fichier nommé `introduction.js` : ```bash touch introduction.js ``` -ou si vous êtes sur Windows : +ou si vous êtes sur Windows : ```bash type NUL > introduction.js ``` -(`type` fait partie de la commande !) +( `type` fait partie de la commande ! ) -Ouvrez le fichier dans votre éditeur favori, et ajoutez ce texte : +Ouvrez le fichier dans votre éditeur favori, et ajoutez ce texte : ```js console.log('hello'); ``` -Sauvegardez le fichier, puis vérifiez si votre programme s'exécute correctement avec cette commande : +Sauvegardez le fichier, puis vérifiez si votre programme s'exécute correctement avec cette commande : ```bash javascripting verify introduction.js ``` -Au passage, tout au long de ce tutoriel, vous pouvez donner nommer les fichiers comme bon vous semble, donc si vous voulez utiliser quelque chose comme `lesChatsSontGeniaux.js` comme nom de fichier pour tous les exercices, vous pouvez. Assurez vous juste d'exécuter : +Au passage, tout au long de ce tutoriel, vous pouvez donner nommer les fichiers comme bon vous semble, donc si vous voulez utiliser quelque chose comme `lesChatsSontGeniaux.js` comme nom de fichier pour tous les exercices, vous pouvez. Assurez-vous juste d'exécuter : ```bash javascripting verify lesChatsSontGeniaux.js diff --git a/problems/introduction/solution_fr.md b/problems/introduction/solution_fr.md index 9a83af54..f591d0b0 100644 --- a/problems/introduction/solution_fr.md +++ b/problems/introduction/solution_fr.md @@ -1,10 +1,10 @@ --- -# VOUS L'AVEZ FAIT ! +# VOUS AVEZ RÉUSSI ! Tout ce qui est entre les parenthèses de `console.log()` est affiché dans le terminal. -Donc : +Donc : ```js console.log('hello'); @@ -12,7 +12,7 @@ console.log('hello'); affiche `hello` dans le terminal. -Actuellement nous affichons une **chaine de caracteres** dans le terminal : `hello`. +Pour le moment nous affichons une **chaîne de caractères** dans le terminal : `hello`. Dans le prochain défi, nous allons nous focaliser sur l'apprentissage des **variables**. diff --git a/problems/looping-through-arrays/problem_fr.md b/problems/looping-through-arrays/problem_fr.md index 95c06507..e9d5f8cc 100644 --- a/problems/looping-through-arrays/problem_fr.md +++ b/problems/looping-through-arrays/problem_fr.md @@ -1,36 +1,36 @@ -Pour ce défi nous utiliserons une **boucle for** pour accéder et manipuler une liste de valeurs dans un tableau. +Pour ce défi nous utiliserons une **boucle for** pour manipuler une liste de valeurs dans un tableau. L'accès à des valeurs de tableaux peut être effectué en utilisant un nombre entier. Chaque élément du tableau est identifié par un nombre, commençant à `0`. -Donc dans ce tableau, `hi` est identifié par le nombre `1` : +Donc dans ce tableau, `hi` est identifié par le nombre `1` : ```js var greetings = ['hello', 'hi', 'good morning']; ``` -Il peut être accédé comme celà : +On peut y accéder comme ceci : ```js greetings[1]; ``` -Nous allons vouloir utiliser une variable `i` dans des crochets dans une **boucle for** à la place d'indiquer directement l'index avec un nombre entier. +Dans une **boucle for**, plutôt que d'indiquer directement l'index avec un nombre entier nous allons mettre la variable `i` entre les crochets. ## Le défi : -Créer un fichier nommé `iterer-dans-des-tableaux.js`. +Créez un fichier nommé `iterer-dans-des-tableaux.js`. -Dans ce fichier, définissez une variable nommée `pets` qui contient les valeurs suivantes : +Dans ce fichier, définissez une variable nommée `pets` qui contient les valeurs suivantes : ```js ['cat', 'dog', 'rat']; ``` -Créez une boucle for qui modifie chaque chaine de caractères dans le tableau pour les mettre au pluriel. +Créez une boucle for qui modifie chaque chaîne de caractères dans le tableau pour les mettre au pluriel. -Nous utiliserons une instruction similaire à celle-ci dans la boucle for : +Nous utiliserons une instruction similaire à celle-ci dans la boucle for : ```js pets[i] = pets[i] + 's'; @@ -38,7 +38,7 @@ pets[i] = pets[i] + 's'; Après la boucle for, utilisez `console.log()` pour afficher le tableau `pets` dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify iterer-dans-des-tableaux.js diff --git a/problems/looping-through-arrays/solution_fr.md b/problems/looping-through-arrays/solution_fr.md index 1db9a25a..034bb24b 100644 --- a/problems/looping-through-arrays/solution_fr.md +++ b/problems/looping-through-arrays/solution_fr.md @@ -1,8 +1,8 @@ --- -# SUCCES ! PLEIN D'ANIMAUX ! +# SUCCÈS ! PLEIN D'ANIMAUX ! -Tous les éléments dans le tableau `pets` sont maintenant au pluriel ! +Tous les éléments dans le tableau `pets` sont maintenant au pluriel ! Dans le prochain défi, nous allons découvrir les **objets**. diff --git a/problems/number-to-string/problem_fr.md b/problems/number-to-string/problem_fr.md index fc8e7744..adf18f2f 100644 --- a/problems/number-to-string/problem_fr.md +++ b/problems/number-to-string/problem_fr.md @@ -1,13 +1,13 @@ -Vous devez parfois transformer un nombre en chaines de caractères. +Vous devez parfois transformer un nombre en chaîne de caractère. -Dans ces instructions, vous utiliserez la méthode `.toString()`. Voici un exemple : +Dans ces cas là, vous utiliserez la méthode `.toString()`. Voici un exemple : ```js var n = 256; n = n.toString(); ``` -## Le défi : +## Le défi : Créez un fichier nommé `nombre-en-chaine.js`. @@ -17,7 +17,7 @@ Appelez la méthode `.toString()` sur la variable `n`. Utilisez `console.log()` pour afficher le résultat de la méthode `.toString()` dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify nombre-en-chaine.js diff --git a/problems/number-to-string/solution_fr.md b/problems/number-to-string/solution_fr.md index ecd83380..36140ec4 100644 --- a/problems/number-to-string/solution_fr.md +++ b/problems/number-to-string/solution_fr.md @@ -1,6 +1,6 @@ --- -# CE NOMBRE EST MAINTENANT UNE CHAINE DE CARACTERES ! +# CE NOMBRE EST MAINTENANT UNE CHAÎNE DE CARACTÈRES ! Excellent. Vous avez réussi à convertir un nombre en chaîne de caractères. diff --git a/problems/numbers/problem_fr.md b/problems/numbers/problem_fr.md index 34f69a90..17b95e05 100644 --- a/problems/numbers/problem_fr.md +++ b/problems/numbers/problem_fr.md @@ -1,7 +1,7 @@ Les nombres peuvent être des entiers, comme `2`, `14`, ou `4353`, ou décimaux, aussi appelés `floats`, comme `3.14`, `1.5`, ou `100.7893423`. Contrairement aux chaînes de caractères, les nombres ne sont pas entourés par des guillemets. -## Le défi : +## Le défi : Créez un fichier nommé `nombres.js`. @@ -9,6 +9,6 @@ Dans ce fichier, définissez une variable nommée `example` qui contient l'entie Utilisez `console.log()` pour afficher ce nombre dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : `javascripting verify nombres.js` diff --git a/problems/numbers/solution_fr.md b/problems/numbers/solution_fr.md index 6be93d31..c4228d5c 100644 --- a/problems/numbers/solution_fr.md +++ b/problems/numbers/solution_fr.md @@ -1,10 +1,10 @@ --- -# YEAH ! DES NOMBRES ! +# YEAH ! DES NOMBRES ! -Génial, vous avez défini avec succès une variable contenant le nombre `123456789`. +Génial ! Vous avez défini avec succès une variable contenant le nombre `123456789`. -Dans le prochain défi, nous nous intéressons à la manipulation de nombres. +Dans le prochain défi, nous nous intéresserons à la manipulation de nombres. Exécutez `javascripting` dans la console pour choisir le prochain défi. diff --git a/problems/object-properties/problem_fr.md b/problems/object-properties/problem_fr.md index 692326bb..fc610870 100644 --- a/problems/object-properties/problem_fr.md +++ b/problems/object-properties/problem_fr.md @@ -1,6 +1,6 @@ -Vous pouvez accéder et manipuler des propriétés d'objets —— les clés et valeurs qu'un objet contient —— en utilisant des méthodes très similaires aux tableaux. +Vous pouvez manipuler les propriétés d'objets — les clés et valeurs qu'un objet contient — en utilisant des méthodes très similaires aux tableaux. -Voici un example utilisant des **crochets**: +Voici un example utilisant des **crochets** : ```js var example = { @@ -10,9 +10,9 @@ var example = { console.log(example['pizza']); ``` -Le code ci-dessus va afficher la chaine de caractères `'yummy'` dans le terminal. +Le code ci-dessus va afficher la chaine de caractères `yummy` dans le terminal. -Une alternative consiste à utiliser la **notation en point** pour avoir le même résultat : +Une alternative consiste à utiliser la **notation en point** pour avoir le même résultat : ```js example.pizza; @@ -22,11 +22,11 @@ example['pizza']; Les deux lignes de code ci-dessus renverront `yummy`. -## Le défi : +## Le défi : Créez un fichier nommé `proprietes-objet.js`. -Dans ce fichier, définissez une variable nommée `food` comme ceci : +Dans ce fichier, définissez une variable nommée `food` comme ceci : ```js var food = { diff --git a/problems/object-properties/solution_fr.md b/problems/object-properties/solution_fr.md index 7d77c8af..8bfcb669 100644 --- a/problems/object-properties/solution_fr.md +++ b/problems/object-properties/solution_fr.md @@ -2,7 +2,7 @@ # CORRECT. LA PIZZA Y A QUE ÇA DE VRAI. -Vous avez réussi à accéder à la propriété d'objet. +Vous avez réussi à accéder à la propriété. Le prochain défi parlera de **fonctions**. diff --git a/problems/objects/problem_fr.md b/problems/objects/problem_fr.md index b2a53d67..d9ffc018 100644 --- a/problems/objects/problem_fr.md +++ b/problems/objects/problem_fr.md @@ -1,6 +1,6 @@ Les objets sont des listes de valeurs similaires aux tableaux, sauf que les valeurs sont identifiées par une clé au lieu d'un entier. -Voici un exemple : +Voici un exemple : ```js var foodPreferences = { @@ -9,11 +9,11 @@ var foodPreferences = { }; ``` -## Le défi : +## Le défi : Créez un fichier nommé `objets.js`. -Dans ce fichier, définissez une variable nommée `pizza` comme celà : +Dans ce fichier, définissez une variable nommée `pizza` comme celà : ```js var pizza = { @@ -25,7 +25,7 @@ var pizza = { Utilisez `console.log()` pour afficher l'objet `pizza` dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify objets.js diff --git a/problems/objects/solution_fr.md b/problems/objects/solution_fr.md index b0b87dc9..5ad8972c 100644 --- a/problems/objects/solution_fr.md +++ b/problems/objects/solution_fr.md @@ -2,7 +2,7 @@ # L'OBJET PIZZA EST PRÊT. -Vous avez réussi à créer un objet ! +Vous avez réussi à créer un objet ! Dans le prochain défi, nous nous focaliserons sur l'accès à des propriétés d'objets. diff --git a/problems/revising-strings/problem_fr.md b/problems/revising-strings/problem_fr.md index fe8174f0..5a21fb43 100644 --- a/problems/revising-strings/problem_fr.md +++ b/problems/revising-strings/problem_fr.md @@ -1,8 +1,8 @@ Vous allez souvent avoir besoin de changer le contenu d'une chaîne de caractères. -Les chaînes de caractères ont des fonctionnalités directement intégrées qui vous permettent de manipuler et accéder à leur contenu. +Les chaînes de caractères ont des fonctionnalités directement intégrées qui vous permettent de manipuler leur contenu. -Voici un exemple qui utilise la méthode `.replace()` : +Voici un exemple qui utilise la méthode `.replace()` : ```js var example = 'this example exists'; @@ -12,16 +12,16 @@ console.log(example); Notez que pour modifier la valeur contenue dans la variable `example`, nous devons utiliser encore une fois le signe égal, mais cette fois avec la méthode `example.replace()` à la droite du égal. -## Le challenge : +## Le challenge : Créez un fichier nommé `revisions-chaines.js`. -Définissez une variable nommée `pizza` qui contient cette chaîne de caractères : `'pizza is alright'` +Définissez une variable nommée `pizza` qui contient cette chaîne de caractères : `'pizza is alright'` Utilisez la méthode `.replace()` pour modifier `alright` en `wonderful`. Utilisez `console.log()` pour afficher le résultat de la méthode `.replace()` dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : `javascripting verify revisions-chaines.js` diff --git a/problems/revising-strings/solution_fr.md b/problems/revising-strings/solution_fr.md index f06f48a4..6238dbdc 100644 --- a/problems/revising-strings/solution_fr.md +++ b/problems/revising-strings/solution_fr.md @@ -1,8 +1,8 @@ --- -# OUI, LA PIZZA _EST_ MAGNIFIQUE. +# OUI, LA PIZZA C'EST _MERVEILLEUX_. -Bon boulot avec cette méthode `.replace()` ! +Bon boulot avec cette méthode `.replace()` ! Nous allons ensuite étudier les **nombres**. diff --git a/problems/rounding-numbers/problem_fr.md b/problems/rounding-numbers/problem_fr.md index 9e1deb9b..b01a7293 100644 --- a/problems/rounding-numbers/problem_fr.md +++ b/problems/rounding-numbers/problem_fr.md @@ -4,7 +4,7 @@ Pour des maths plus complexes, nous pouvons utiliser l'objet `Math`. Dans ce défi, nous allons utiliser l'objet `Math` pour arrondir des nombres. -## Le défi : +## Le défi : Créer un fichier nommé `nombres-arrondis.js`. @@ -12,7 +12,7 @@ Dans ce fichier, définissez une variable nommée `roundUp` qui contient le flot Nous allons utiliser la méthode `Math.round()` pour arrondir notre nombre. Cette méthode retourne l'arrondi entier le plus proche. -Un exemple d'utilisation de `Math.round()` : +Un exemple d'utilisation de `Math.round()` : ```js Math.round(0.5); @@ -22,7 +22,7 @@ Définissez une seconde variable nommée `rounded` qui contient le résultat de Utilisez `console.log()` pour afficher ce nombre dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify nombres-arrondis.js diff --git a/problems/rounding-numbers/solution_fr.md b/problems/rounding-numbers/solution_fr.md index 7abd6fa2..4b390941 100644 --- a/problems/rounding-numbers/solution_fr.md +++ b/problems/rounding-numbers/solution_fr.md @@ -2,7 +2,7 @@ # CE NOMBRE EST ARRONDI -Ouaip, vous venez d'arrondir le nombre `1.5` vers `2`. Bon boulot ! +Ouaip, vous venez d'arrondir le nombre `1.5` vers `2`. Bon boulot ! Dans le prochain défi, nous allons transformer un nombre en chaîne de caractères. diff --git a/problems/scope/problem_fr.md b/problems/scope/problem_fr.md index 8efcfa2a..b7106cdb 100644 --- a/problems/scope/problem_fr.md +++ b/problems/scope/problem_fr.md @@ -1,17 +1,17 @@ -Le `scope` est le jeu de variables, d'objets et de fonctions auxquels vous avez accès. +Le `scope` est l'ensemble de variables, d'objets et de fonctions auxquels vous avez accès. -Le JavaScript a deux scopes : le scope `global` et le scope `local`. Une variable qui est déclarée hors d'une fonction est une variable `globale`, et sa valeur est accessible et modifiable à travers tout le programme. Une variable qui est déclarée dans une fonction est `locale`. Elle est créée et détruite à chaque fois qu'une fonction est exécutée, et ne peut pas être accédée en dehors de cette fonction. +Le JavaScript a deux scopes : le scope `global` et le scope `local`. Une variable qui est déclarée hors d'une fonction est une variable `globale` et sa valeur est accessible et modifiable à travers tout le programme. Une variable qui est déclarée dans une fonction est `locale`. Elle est créée et détruite à chaque fois que la fonction est exécutée, et n'est pas accessible en dehors de cette fonction. -Les fonctions définies à l'intérieur d'autres fonctions, aussi connues en tant que fonctions imbriquées (nested), ont accès au scope de leur fonction parent. +Les fonctions définies à l'intérieur d'autres fonctions, aussi connues en tant que fonctions imbriquées ( _nested_ ), ont accès au scope de leur fonction parent. -Soyez attentif aux commentaires dans le code suivant : +Soyez attentif aux commentaires dans le code suivant : ```js -var a = 4; // a est une variable globale, elle peut être accédée par les fonctions ci-dessous +var a = 4; // a est une variable globale, elle est accessible dans les fonctions ci-dessous function foo() { - var b = a * 3; // b ne peut pas être accédée hors de la fonction foo, mais peut être accédée - // par les fonctions déclarées à l'intérieur de foo + var b = a * 3; // b n'est pas accessible hors de la fonction foo mais l'est + // dans les fonctions déclarées à l'intérieur de foo function bar(c) { var b = 2; // une autre variable `b` est créée à l'intérieur du scope de la fonction // les changements apportés à cette nouvelle variable `b` n'ont pas d'effet sur @@ -24,15 +24,16 @@ function foo() { foo(); // 4, 2, 48 ``` -IIFE, Immediately Invoked Function Expression, est un schéma commun pour créer des scopes locaux -exemple: + +IIFE, Immediately Invoked Function Expression, est un schéma commun pour créer des scopes locaux : + ```js (function(){ // l'expression `function` est entourée par des parenthèses // les variables définies ici // ne sont pas accessibles en dehors })(); // la fonction est appelée immédiatement ``` -## Le défi : +## Le défi : Créez un fichier nommé `scope.js`. @@ -63,7 +64,7 @@ Utilisez vos connaissances des `scopes` de variables et placez le code suivant console.log("a: "+a+", b: "+b+", c: "+c); ``` -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : ```bash javascripting verify scope.js diff --git a/problems/scope/solution_fr.md b/problems/scope/solution_fr.md index 13e105f8..4a0d3eee 100644 --- a/problems/scope/solution_fr.md +++ b/problems/scope/solution_fr.md @@ -1,8 +1,8 @@ --- -# EXCELLENT ! +# EXCELLENT ! -Vous l'avez fait ! La seconde fonction possède le `scope` que nous recherchons. +C'est bon ! La seconde fonction possède le `scope` que nous recherchons. Exécutez `javascripting` dans la console pour choisir le prochain défi. diff --git a/problems/string-length/problem_fr.md b/problems/string-length/problem_fr.md index 2cf231bd..408ead1a 100644 --- a/problems/string-length/problem_fr.md +++ b/problems/string-length/problem_fr.md @@ -1,6 +1,6 @@ Vous allez assez souvent avoir besoin de savoir combien de caractères sont contenus dans une chaîne de caractères. -Pour celà vous allez utiliser la propriété `.length`. Voici un exemple : +Pour cela vous allez utiliser la propriété `.length`. Voici un exemple : ```js var example = 'example string'; @@ -14,7 +14,7 @@ Assurez vous qu'il y ait un point entre `example` et `length`. Le code ci-dessus renverra un **nombre** contenant le nombre total de caractères de la chaîne de caractères. -## Le défi : +## Le défi : Créez un fichier nommé `longueur-chaine.js`. @@ -24,6 +24,6 @@ Dans ce fichier, créez une variable nommée `example`. Utilisez `console.log` pour afficher la **longueur** de la chaîne de caractères dans le terminal. -**Vérifiez si votre programme est correct en exécutant la commande :** +**Vérifiez si votre programme est correct en exécutant la commande :** `javascripting verify longueur-chaine.js` diff --git a/problems/string-length/solution_fr.md b/problems/string-length/solution_fr.md index 82682157..02b4ebef 100644 --- a/problems/string-length/solution_fr.md +++ b/problems/string-length/solution_fr.md @@ -2,7 +2,7 @@ # GAGNE: 14 CARACTERES -Vous l'avez fait ! La chaine de caractères `example string` contient 14 caractères. +Vous l'avez fait ! La chaîne de caractères `example string` contient 14 caractères. Exécutez `javascripting` dans la console pour choisir le prochain défi. diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index 65a73909..2a7550d4 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -1,6 +1,6 @@ -Une **chaine de caractères** peut être n'importe quelle valeur entourrée par des guillemets. +Une **chaine de caractères** peut être n'importe quelle valeur entourée par des guillemets. -Cela peut-être des guillemets simples ou doubles : +Il peut s'agir de guillemets simples ou doubles : ```js 'this is a string' @@ -12,11 +12,11 @@ Cela peut-être des guillemets simples ou doubles : Essayez de rester cohérent. Dans ce TP, nous n'allons utiliser que des guillemets simples. -## Le défi : +## Le défi : Pour ce défi, créez un fichier nommé `chaines.js`. -Dans ce fichier, créez une variable nommée `someString` comme cela : +Dans ce fichier, créez une variable nommée `someString` comme cela : ```js var someString = 'this is a string'; @@ -24,6 +24,6 @@ var someString = 'this is a string'; Utilisez `console.log` pour afficher la variable **someString** dans le terminal. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : `javascripting verify chaines.js` diff --git a/problems/strings/solution_fr.md b/problems/strings/solution_fr.md index 3afdf9f2..46aaa38e 100644 --- a/problems/strings/solution_fr.md +++ b/problems/strings/solution_fr.md @@ -1,8 +1,8 @@ --- -# SUCCES +# SUCCÈS -Vous vous habituez aux chaînes de caractères ! +Vous vous habituez aux chaînes de caractères ! Dans le défi suivant, nous découvrirons comment manipuler des chaînes de caractères. diff --git a/problems/variables/problem_fr.md b/problems/variables/problem_fr.md index f3bb4139..758083dc 100644 --- a/problems/variables/problem_fr.md +++ b/problems/variables/problem_fr.md @@ -1,14 +1,14 @@ -Une variable est un nom qui fait référence à une valeur spécifique. Les variables sont déclarées en utilisant le mot clé `var` suivi par le nom de la variable. +Une variable est un nom qui fait référence à une valeur spécifique. Les variables sont déclarées en utilisant le mot clé `var` suivi du le nom de la variable. -Voici un exemple : +Voici un exemple : ```js var example; ``` -La variable ci-dessus est **déclarée**, mais elle n'est pas définie (elle ne référence aucune valeur pour le moment). +La variable ci-dessus est **déclarée**, mais elle n'est pas définie ( elle ne référence aucune valeur pour le moment ). -Voici un exemple de définition de variable, la faisant contenir une valeur spécifique : +Voici un exemple de définition de variable, la faisant contenir une valeur spécifique : ```js var example = 'some string'; @@ -18,7 +18,7 @@ var example = 'some string'; Une variable est **déclarée** en utilisant `var` et utilise le signe égal pour **assigner** la valeur qu'elle référence. Nous utilisons communément l'expression "Assigner une valeur à une variable". -## Le défi : +## Le défi : Créez un fichier nommé `variables.js`. @@ -28,6 +28,6 @@ Dans ce fichier, déclarez une variable nommée `example`. Utilisez ensuite `console.log()` pour afficher la variable `example` dans la console. -Vérifiez si votre programme est correct en exécutant la commande : +Vérifiez si votre programme est correct en exécutant la commande : `javascripting verify variables.js` diff --git a/problems/variables/solution_fr.md b/problems/variables/solution_fr.md index 3966da5e..f5bd7827 100644 --- a/problems/variables/solution_fr.md +++ b/problems/variables/solution_fr.md @@ -1,6 +1,6 @@ --- -# VOUS AVEZ CRÉER UNE VARIABLE ! +# VOUS AVEZ CRÉÉ UNE VARIABLE ! Bon boulot. From 74fd23b761bf78d25ce88afcfd4531ce135fa5b5 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Sat, 16 Apr 2016 16:22:44 -0700 Subject: [PATCH 200/346] v2.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 98b203f6..3ce1f693 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.5.0", + "version": "2.6.0", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From 544cf83cce9691c614ff6880a9c8d5ad422e8cd5 Mon Sep 17 00:00:00 2001 From: Michael McGinnis Date: Fri, 8 Jul 2016 23:46:45 -0500 Subject: [PATCH 201/346] Update problem.md Fixed run-on sentence --- problems/scope/problem.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index eac5ce15..33773578 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -23,8 +23,9 @@ function foo() { foo(); // 4, 2, 48 ``` -IIFE, Immediately Invoked Function Expression, is a common pattern for creating local scopes -example: +IIFE, Immediately Invoked Function Expression, is a common pattern for creating local scopes. + +Example: ```js (function(){ // the function expression is surrounded by parenthesis // variables defined here From 1fec15b8b306cfca1935e06e80fa02b0cece1669 Mon Sep 17 00:00:00 2001 From: Michael McGinnis Date: Sat, 9 Jul 2016 00:04:29 -0500 Subject: [PATCH 202/346] Update troubleshooting.md Clarified instructions. --- i18n/troubleshooting.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/troubleshooting.md b/i18n/troubleshooting.md index 7520e155..28a6e7b5 100644 --- a/i18n/troubleshooting.md +++ b/i18n/troubleshooting.md @@ -21,7 +21,7 @@ %diff% ## Additional troubleshooting: - * Did you type the name of the file correctly? You can check by running ls `%filename%`, if you see ls: cannot access `%filename%`: No such file or directory then you should create new file / rename existing or change directories to the one with file - * Make sure you didn't omit parens, since otherwise compiler would not be able to parse it - * Make sure you didn't do any typos in the string itself + * Did you type the name of the file correctly? You can check by running 'ls `%filename%`'. If you see 'ls: cannot access `%filename%`: No such file or directory,' then perhaps the file doesn't exist, or has a different name, or is in a different directory. + * Make sure you didn't omit any parens, or the compiler will not be able to parse it. + * Make sure you don't have any typos in the string itself. From 11a472ff4543366af97920207c6901ca72464c42 Mon Sep 17 00:00:00 2001 From: Dmitry Zhuravlev-Nevsky Date: Mon, 25 Jul 2016 17:25:29 +0300 Subject: [PATCH 203/346] Update problem_ru.md --- problems/revising-strings/problem_ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/revising-strings/problem_ru.md b/problems/revising-strings/problem_ru.md index d093f526..a6feb156 100644 --- a/problems/revising-strings/problem_ru.md +++ b/problems/revising-strings/problem_ru.md @@ -1,6 +1,6 @@ Типовой задачей является изменение содержимого строки. -Строки обладают встроенным функционалом для проверки и манипуляции их содержимым. +Строки обладают функциональностью для проверки их содержимого и манипуляций над ним. Рассмотрим пример использования метода `.replace()`: From 9afab976a1cdc3e7252179ba115ac5ee385a1c9c Mon Sep 17 00:00:00 2001 From: R Steiner Date: Mon, 3 Oct 2016 19:03:13 -0400 Subject: [PATCH 204/346] Change workshopper-adventure dependency version to >=5.0.0. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3ce1f693..a383ad5e 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "colors": "^1.0.3", "promise": "^7.1.1", "diff": "^1.2.1", - "workshopper-adventure": "^4.4.6" + "workshopper-adventure": "^5.0.0" }, "license": "MIT" } From 7606f5f0a0958098536b45d58dd5136e7eeed26c Mon Sep 17 00:00:00 2001 From: Lydia Kats Date: Sat, 8 Oct 2016 14:44:50 -0700 Subject: [PATCH 205/346] add a contributing doc --- CONTRIBUTING.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..d0d86880 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,9 @@ +# Contributing + +Contributions are welcome! For instructions and help creating a great pull request, please read the [workshopper contributing document](https://github.com/workshopper/org/blob/master/CONTRIBUTING.md). + +If you have questions about contributing, please create an issue. + +## Current Stewards + +- you? From b080365f9627e8876dfe63f2ed53e89ef735eb70 Mon Sep 17 00:00:00 2001 From: sethvincent Date: Tue, 11 Oct 2016 14:01:54 -0700 Subject: [PATCH 206/346] 2.6.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a383ad5e..53aa7c5e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.6.0", + "version": "2.6.1", "repository": { "url": "https://github.com/sethvincent/javascripting.git" }, From ad1f7496946e03b5d82b578d53a6f840b4059c63 Mon Sep 17 00:00:00 2001 From: Lydia Kats Date: Thu, 13 Oct 2016 22:12:33 -0700 Subject: [PATCH 207/346] more information around lead maintainers --- CONTRIBUTING.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d0d86880..157ac436 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,9 +1,19 @@ # Contributing -Contributions are welcome! For instructions and help creating a great pull request, please read the [workshopper contributing document](https://github.com/workshopper/org/blob/master/CONTRIBUTING.md). +Code contributions are welcome and high encouraged! For instructions and help creating a great pull request, please read the [workshopper contributing document](https://github.com/workshopper/org/blob/master/CONTRIBUTING.md). If you have questions about contributing, please create an issue. -## Current Stewards +## Lead Maintainers -- you? +The role of lead maintainers is to triage and categorize issues, answer questions about contributing to the repository, review and give feedback on PRs, and maintain the quality of a workshopper's codebase and repository. + +### Current Team + +[link to github]() + +### Volunteer + +Submitting many PRs? Please volunteer to lead this repository! Lead maintainers are selected in the philosophy of [Open Open Source](http://openopensource.org/): + +> Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. From f430945d8e911603810b6c49f6e8227b85ae9e9b Mon Sep 17 00:00:00 2001 From: Lydia Kats Date: Fri, 14 Oct 2016 11:34:00 -0700 Subject: [PATCH 208/346] added link to contributing to readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a25ae22a..cd44a43b 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,10 @@ Open an issue in the nodeschool/discussions repo: https://github.com/nodeschool/ Include the name `javascripting` and the name of the challenge you're working on in the title of the issue. +## Get Involved + +Code contributions welcome! Please check our [documentation on contributing](https://github.com/workshopper/javascripting/blob/master/CONTRIBUTING.md) to get started. + ## TODOS: Add these challenges: From a8d1c846af9281399acb9eb22b67402ab3ba0d10 Mon Sep 17 00:00:00 2001 From: Lydia Kats Date: Mon, 17 Oct 2016 20:58:59 -0700 Subject: [PATCH 209/346] added link to javascripting team page --- CONTRIBUTING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 157ac436..381f3ef7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -Code contributions are welcome and high encouraged! For instructions and help creating a great pull request, please read the [workshopper contributing document](https://github.com/workshopper/org/blob/master/CONTRIBUTING.md). +Code contributions are welcome and highly encouraged! For instructions on and help with creating a great pull request, please read the [workshopper contributing document](https://github.com/workshopper/org/blob/master/CONTRIBUTING.md). If you have questions about contributing, please create an issue. @@ -8,9 +8,7 @@ If you have questions about contributing, please create an issue. The role of lead maintainers is to triage and categorize issues, answer questions about contributing to the repository, review and give feedback on PRs, and maintain the quality of a workshopper's codebase and repository. -### Current Team - -[link to github]() +[Current Lead Maintainers](https://github.com/orgs/workshopper/teams/javascripting-leads) ### Volunteer From dc418e71fa7fca86d08a7b312f9fff874a44a5c6 Mon Sep 17 00:00:00 2001 From: Shutaro Takimoto Date: Sat, 12 Nov 2016 11:23:20 +0900 Subject: [PATCH 210/346] Fix typo Stirng => String --- problems/strings/problem_ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index fbc1ae5b..b6c83cf4 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -20,7 +20,7 @@ var someString = 'this is a string'; ``` -`console.log` を使い、変数 **someStirng** をターミナルに表示しましょう。 +`console.log` を使い、変数 **someString** をターミナルに表示しましょう。 次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 From e926dd87c3f7fdff5ad6a8bcf7b95c14427d4b33 Mon Sep 17 00:00:00 2001 From: "Seth A. Alexander" Date: Sat, 24 Dec 2016 12:44:38 -0600 Subject: [PATCH 211/346] Added Lead Maintainers list. --- CONTRIBUTING.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 381f3ef7..9d714196 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,12 @@ If you have questions about contributing, please create an issue. The role of lead maintainers is to triage and categorize issues, answer questions about contributing to the repository, review and give feedback on PRs, and maintain the quality of a workshopper's codebase and repository. -[Current Lead Maintainers](https://github.com/orgs/workshopper/teams/javascripting-leads) +**Current Lead Maintainers** +- Seth Vincent [@sethvincent](https://github.com/sethvincent) +- Adam Brady [@SomeoneWeird](https://github.com/SomeoneWeird) +- Anshul [@AnshulMalik](https://github.com/AnshulMalik) +- Martin Splitt [@AVGP](https://github.com/AVGP) +- Seth [@itzsaga](https://github.com/itzsaga) ### Volunteer From 1c437ae87ecc8fd11e337794d287cac00a83d10b Mon Sep 17 00:00:00 2001 From: Seth Date: Sat, 24 Dec 2016 13:14:09 -0600 Subject: [PATCH 212/346] removed "SCOPE" from Add these challenges list. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cd44a43b..683c0120 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,6 @@ Add these challenges: - "OBJECT KEYS" - "FUNCTION RETURN VALUES" - "THIS" -- "SCOPE" ## License From c123032321d0ae0123de7978673bc3b56a507738 Mon Sep 17 00:00:00 2001 From: "Seth A. Alexander" Date: Tue, 27 Dec 2016 22:12:00 -0600 Subject: [PATCH 213/346] Updated links in il8n footer docs. --- i18n/footer/en.md | 2 +- i18n/footer/es.md | 2 +- i18n/footer/fr.md | 2 +- i18n/footer/it.md | 2 +- i18n/footer/ja.md | 2 +- i18n/footer/ko.md | 2 +- i18n/footer/nb-no.md | 2 +- i18n/footer/pt-br.md | 2 +- i18n/footer/ru.md | 2 +- i18n/footer/uk.md | 2 +- i18n/footer/zh-cn.md | 2 +- i18n/footer/zh-tw.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/i18n/footer/en.md b/i18n/footer/en.md index f0ea9a82..647a502d 100644 --- a/i18n/footer/en.md +++ b/i18n/footer/en.md @@ -1 +1 @@ -__Need help?__ View the README for this workshop: http://github.com/sethvincent/javascripting +__Need help?__ View the README for this workshop: https://github.com/workshopper/javascripting diff --git a/i18n/footer/es.md b/i18n/footer/es.md index d38c8abd..ec7e0c53 100644 --- a/i18n/footer/es.md +++ b/i18n/footer/es.md @@ -1 +1 @@ -__Necesitas ayuda?__ Vista el README de este workshop: github.com/sethvincent/javascripting +__Necesitas ayuda?__ Vista el README de este workshop: https://github.com/workshopper/javascripting diff --git a/i18n/footer/fr.md b/i18n/footer/fr.md index a141ba48..40a561be 100644 --- a/i18n/footer/fr.md +++ b/i18n/footer/fr.md @@ -1 +1 @@ -__Besoin d'aide ?__ Voir le README pour cet atelier : http://github.com/sethvincent/javascripting +__Besoin d'aide ?__ Voir le README pour cet atelier: https://github.com/workshopper/javascripting diff --git a/i18n/footer/it.md b/i18n/footer/it.md index 3387371b..bdf471f8 100644 --- a/i18n/footer/it.md +++ b/i18n/footer/it.md @@ -1 +1 @@ -__Serve aiuto?__ Leggi il README di questo workshop: http://github.com/sethvincent/javascripting +__Serve aiuto?__ Leggi il README di questo workshop: https://github.com/workshopper/javascripting diff --git a/i18n/footer/ja.md b/i18n/footer/ja.md index 0053e7b7..f3f0b833 100644 --- a/i18n/footer/ja.md +++ b/i18n/footer/ja.md @@ -1 +1 @@ -__ヘルプが必要ですか??__ このワークショップのREADMEを読んでください。 : http://github.com/ledsun/javascripting +__ヘルプが必要ですか??__ このワークショップのREADMEを読んでください。: https://github.com/ledsun/javascripting diff --git a/i18n/footer/ko.md b/i18n/footer/ko.md index b994fc54..721fae18 100644 --- a/i18n/footer/ko.md +++ b/i18n/footer/ko.md @@ -1 +1 @@ -__도움이 필요하신가요?__ 이 워크숍의 README를 확인하세요. http://github.com/sethvincent/javascripting +__도움이 필요하신가요?__ 이 워크숍의 README를 확인하세요: https://github.com/workshopper/javascripting diff --git a/i18n/footer/nb-no.md b/i18n/footer/nb-no.md index 9cd86bf4..ae36f84f 100644 --- a/i18n/footer/nb-no.md +++ b/i18n/footer/nb-no.md @@ -1 +1 @@ -__Trenger du hjelp?__ Se README-filen for denne workshopen: http://github.com/sethvincent/javascripting +__Trenger du hjelp?__ Se README-filen for denne workshopen: https://github.com/workshopper/javascripting diff --git a/i18n/footer/pt-br.md b/i18n/footer/pt-br.md index 2ce32fa4..40b78913 100644 --- a/i18n/footer/pt-br.md +++ b/i18n/footer/pt-br.md @@ -1 +1 @@ -__Precisa de ajuda?__ Leia o README deste workshop: http://github.com/sethvincent/javascripting +__Precisa de ajuda?__ Leia o README deste workshop: https://github.com/workshopper/javascripting diff --git a/i18n/footer/ru.md b/i18n/footer/ru.md index 7b3e6d11..3cba98f1 100644 --- a/i18n/footer/ru.md +++ b/i18n/footer/ru.md @@ -1 +1 @@ -__Требуется помощь?__ Перечитайте README данного воркшопа: http://github.com/sethvincent/javascripting +__Требуется помощь?__ Перечитайте README данного воркшопа: https://github.com/workshopper/javascripting diff --git a/i18n/footer/uk.md b/i18n/footer/uk.md index a0ab4d9e..2d230242 100644 --- a/i18n/footer/uk.md +++ b/i18n/footer/uk.md @@ -1 +1 @@ -__Потрібна допомога?__ Перегляньте README цього воркшопу: http://github.com/sethvincent/javascripting +__Потрібна допомога?__ Перегляньте README цього воркшопу: https://github.com/workshopper/javascripting diff --git a/i18n/footer/zh-cn.md b/i18n/footer/zh-cn.md index 1b1f1fce..94d6b6b6 100644 --- a/i18n/footer/zh-cn.md +++ b/i18n/footer/zh-cn.md @@ -1 +1 @@ -__需要帮助?__ 查看本教程的 README 文件:http://github.com/sethvincent/javascripting +__需要帮助?__ 查看本教程的 README 文件:https://github.com/workshopper/javascripting diff --git a/i18n/footer/zh-tw.md b/i18n/footer/zh-tw.md index 6290ad9a..985e0314 100644 --- a/i18n/footer/zh-tw.md +++ b/i18n/footer/zh-tw.md @@ -1 +1 @@ -__需要幫助?__ 查看本教學的 README 文件:http://github.com/sethvincent/javascripting +__需要幫助?__ 查看本教學的 README 文件:https://github.com/workshopper/javascripting From 83268bb10816d54f8426b58d709895b387a36f48 Mon Sep 17 00:00:00 2001 From: "Seth A. Alexander" Date: Wed, 28 Dec 2016 00:37:39 -0600 Subject: [PATCH 214/346] Solves #172 --- problems/scope/solution.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/problems/scope/solution.md b/problems/scope/solution.md index 4a351bd7..24256691 100644 --- a/problems/scope/solution.md +++ b/problems/scope/solution.md @@ -4,6 +4,10 @@ You got it! The second function has the scope we were looking for. -Run javascripting in the console to choose the next challenge. +Now move on to a more challenging Javascript workshopper **Functional Javascript**: + +``` +npm install -g functional-javascript-workshop +``` --- From 5737918c0946cc327bd35550a531875de66bf6dd Mon Sep 17 00:00:00 2001 From: Seth Date: Wed, 28 Dec 2016 00:41:48 -0600 Subject: [PATCH 215/346] Update solution.md --- problems/scope/solution.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/problems/scope/solution.md b/problems/scope/solution.md index 24256691..a2db4379 100644 --- a/problems/scope/solution.md +++ b/problems/scope/solution.md @@ -6,8 +6,6 @@ You got it! The second function has the scope we were looking for. Now move on to a more challenging Javascript workshopper **Functional Javascript**: -``` npm install -g functional-javascript-workshop -``` --- From 7699cb02c75e3c481fb5093fd787e8277c545753 Mon Sep 17 00:00:00 2001 From: "Seth A. Alexander" Date: Wed, 28 Dec 2016 22:36:43 -0600 Subject: [PATCH 216/346] Fixed formatting issues #139 --- problems/scope/problem.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 33773578..754d4dde 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -13,9 +13,9 @@ function foo() { var b = a * 3; // b cannot be accessed outside foo function, but can be accessed by functions // defined inside foo function bar(c) { - var b = 2; // another `b` variable is created inside bar function scope - // the changes to this new `b` variable don't affect the old `b` variable - console.log( a, b, c ); + var b = 2; // another `b` variable is created inside bar function scope + // the changes to this new `b` variable don't affect the old `b` variable + console.log( a, b, c ); } bar(b * 4); @@ -61,7 +61,7 @@ var a = 1, b = 2, c = 3; Use your knowledge of the variables' `scope` and place the following code inside one of the functions in `scope.js` so the output is `a: 1, b: 8, c: 6` ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log("a: " + a + ", b: " + b + ", c: " + c); ``` Check to see if your program is correct by running this command: From 8211acecd6f32891c634caafd1e0047e612c9bf0 Mon Sep 17 00:00:00 2001 From: Seth Date: Wed, 28 Dec 2016 22:49:57 -0600 Subject: [PATCH 217/346] updated lead maintainers list --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9d714196..da4d04d0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,7 @@ The role of lead maintainers is to triage and categorize issues, answer question - Anshul [@AnshulMalik](https://github.com/AnshulMalik) - Martin Splitt [@AVGP](https://github.com/AVGP) - Seth [@itzsaga](https://github.com/itzsaga) +- Lawal Sauban [@sauban](https://github.com/sauban) ### Volunteer From 0dca662c1e01b1e864ba7f45c7aabb499117370c Mon Sep 17 00:00:00 2001 From: claudiopro Date: Sat, 28 Jan 2017 23:38:12 +0100 Subject: [PATCH 218/346] Adds a howto to localize the workshopper to new languages --- LOCALIZING.md | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 LOCALIZING.md diff --git a/LOCALIZING.md b/LOCALIZING.md new file mode 100644 index 00000000..031263b4 --- /dev/null +++ b/LOCALIZING.md @@ -0,0 +1,115 @@ +# Localization HOWTO + +In computing, localization is the process of adapting software to different languages, regional differences, cultural preferences, and technical requirements of a target audience. + +This guide explains how to contribute a new localization to this workshopper. If you are an international user and would like to bring Nodeschool workshops to a broader audience, please consider contributing a localization! It is simple, fun, and enables more people to learn and practice. + +## Add the language option + +In the `index.js` file, the workshopper is instantiated with a list of supported translations. In order to add a new language, add its code to the array: + +```js +const workshopper = require('workshopper-adventure')({ + appDir: __dirname + , languages: ['en', 'ja', 'zh-cn'] + , header: require('workshopper-adventure/default/header') + , footer: require('./lib/footer.js') +}); +``` + +If you want to add a new language, e.g. Spanish, add an entry `'es'` to the array: + +```js + , languages: ['en', 'es', 'ja', 'zh-cn'] +``` + +## Menu + +The menu of the workshopper greets the user with a list of problem names. The strings for these names are contained in the top level `menu.json` file. Translations of problem names should be placed in a JSON file inside the `i18n` folder named with the language code, e.g. `es.json`. Use an existing translation file as reference, ensuring it's up to date with the contents of `menu.json`. + +```json +{ + "exercise": { + "INTRODUCTION": "INTRODUCCIÓN" + , "FIRST PROBLEM": "PRIMER PROBLEMA" + , "SECOND PROBLEM": "SEGUNDO PROBLEMA" + , "LAST PROBLEM": "ÚLTIMO PROBLEMA" + } +} +``` + +## Footer + +Workshoppers usually display a footer beneath the problem description, providing the user with help or additional information to make their way through. The footer is a [Markdown](https://en.wikipedia.org/wiki/Markdown) file located inside the `i18n/footer` directory, named after the language code, e.g. `ja.md`. + +In order to add a localized footer for Spanish, create a `es.md` file inside the `i18n/footer` directory, containing the translation of the English file `en.md`. + +## Troubleshooting tips + +Similarly, workshoppers display troubleshooting tips when the user submits a wrong solution for the exercise. Tips are contained in a [Markdown](https://en.wikipedia.org/wiki/Markdown) file located inside the `i18n` directory, named after the language code, e.g. `troubleshooting-ja.md`. + +In order to add translated troubleshooting tips for Spanish, create a `troubleshooting_es.md` file inside the `i18n` directory, containing the translation of the English file `troubleshooting.md`. + +## Problems and solutions + +The text of each problem and the message printed when the user solves it can be localized by adding [Markdown](https://en.wikipedia.org/wiki/Markdown) files with a well defined name inside the problem directory, which is a subdirectory of the `problems` directory. Consider this structure: + +``` ++-- problems +| +-- problem-1 +| | +-- index.js +| | +-- problem.md +| | +-- problem_ja.md +| | +-- problem_zh-cn.md +| | +-- solution.md +| | +-- solution_ja.md +| | `-- solution_zh-cn.md +| +-- problem-2 +| | +-- index.js +| | +-- problem.md +| | +-- problem_ja.md +| | +-- problem_zh-cn.md +| | +-- solution.md +| | +-- solution_ja.md +| | `-- solution_zh-cn.md +: : +``` + +As you can see, translation file names are in the format `problem_xx.md` and `solution_xx.md` where the `xx` suffix is the language code. + +In order to add the Spanish localization, we must add new `problem_es.md` and `solution_es.md` files inside each problem directory as follows: + +``` ++-- problems +| +-- problem-1 +| | +-- index.js +| | +-- problem.md +| | +-- problem_es.md +| | +-- problem_ja.md +| | +-- problem_zh-cn.md +| | +-- solution.md +| | +-- solution_es.md +| | +-- solution_ja.md +| | `-- solution_zh-cn.md +| +-- problem-2 +| | +-- index.js +| | +-- problem.md +| | +-- problem_es.md +| | +-- problem_ja.md +| | +-- problem_zh-cn.md +| | +-- solution.md +| | +-- solution_es.md +| | +-- solution_ja.md +| | `-- solution_zh-cn.md +: : +``` + +This is probably the most complex and time consuming task of localizing a workshopper, as problems often interleave paragraphs of text, code snippets and suggestions. + +Please remember to use welcoming and inclusive language. The [Contributor Covenant](http://contributor-covenant.org/) offers guidelines if you're unsure. + +## Testing + +In order to test a translation, launch the workshopper and choose the desired language selecting the menu option `CHOOSE LANGUAGE`. If you don't see the language you contributed listed in the options, chances are you didn't save your updates to the list of languages in the `index.js`. + +Once you're satisfied with the results, commit your changes and push to your repo, then submit a PR to the main workshopper repo! From 9a8f62bac04db2863dc547dd03429f9e6ee3c79d Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Thu, 16 Feb 2017 22:31:19 +0200 Subject: [PATCH 219/346] Update Node.js download link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 683c0120..c27dc8a7 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Having issues with javascripting? Get help troubleshooting in the [nodeschool di Make sure Node.js is installed on your computer. -Install it from [nodejs.org/download](http://nodejs.org/download) +Install it from [nodejs.org](https://nodejs.org/) On Windows and using v4 or v5 of Node.js? Make sure you are using at least 5.1.0, which provides a fix for a bug on Windows where you can't choose items in the menu. From 3e15c9edccdcee04db6c83bb62948844b1d17810 Mon Sep 17 00:00:00 2001 From: CodinCat Date: Fri, 3 Mar 2017 18:47:53 +0800 Subject: [PATCH 220/346] Improve zh-tw troubleshooting translation --- i18n/troubleshooting_zh-tw.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/troubleshooting_zh-tw.md b/i18n/troubleshooting_zh-tw.md index 3f3d8f7d..cf451ce6 100644 --- a/i18n/troubleshooting_zh-tw.md +++ b/i18n/troubleshooting_zh-tw.md @@ -1,9 +1,9 @@ --- -# 啊,出錯了…… -# 但是別著急! +# 啊,有東西出錯了。 +# 但是別緊張! --- -## 檢查你的程式碼: +## 檢查你的答案: `正確答案 ===================` @@ -15,12 +15,12 @@ %attempt% -`它們之間的不同 +`差別 ===================` %diff% -## 遇到了奇怪的錯誤? - * 確定你的檔名是正確的 - * 確定你沒有省略必要的括號,否則編譯器將無法理解它們 - * 確定你在字串中沒有筆誤(可能叫鍵盤誤更好一些) +## 其他錯誤排除: + * 你的檔名輸入正確了嗎?你可以透過 ls `%filename%` 指令來檢查。如果你看到了 ls: cannot access `%filename%`: No such file or directory 訊息,那可能就是檔案不存在、檔名不對或是在不同的資料夾裡。 + * 確定你沒有省略必要的括號,否則編譯器將無法理解它們。 + * 確定你在字串裡沒有打錯字。 From ba1317389ba63be83da23ffd421a0463bc9d2004 Mon Sep 17 00:00:00 2001 From: Joshua Austin Date: Mon, 26 Jun 2017 23:07:32 -0500 Subject: [PATCH 221/346] Fixed missing gitter badge (#200) Updated missing Gitter badge in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c27dc8a7..9e6252f2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ## Get help Having issues with javascripting? Get help troubleshooting in the [nodeschool discussions repo](http://github.com/nodeschool/discussions), or on gitter: -[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/nodeschool/discussions?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Gitter](https://img.shields.io/gitter/room/gitterHQ/gitter.svg)](https://gitter.im/nodeschool/discussions?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ## Install Node.js From 516fe6cf124193933234370e9fd58df168c6ea58 Mon Sep 17 00:00:00 2001 From: Francois Wouts Date: Tue, 17 Oct 2017 12:37:55 +1100 Subject: [PATCH 222/346] Improve wording in if-statement problem This fixes #206 in English, French, Spanish and Italian. --- problems/if-statement/problem.md | 2 +- problems/if-statement/problem_es.md | 2 +- problems/if-statement/problem_fr.md | 2 +- problems/if-statement/problem_it.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/problems/if-statement/problem.md b/problems/if-statement/problem.md index 7c0d4670..3ec7a76b 100644 --- a/problems/if-statement/problem.md +++ b/problems/if-statement/problem.md @@ -20,7 +20,7 @@ Create a file named `if-statement.js`. In that file, declare a variable named `fruit`. -Make the `fruit` variable reference the value **orange** with the type of **String**. +Make the `fruit` variable reference the string value **"orange"**. Then use `console.log()` to print "**The fruit name has more than five characters."** if the length of the value of `fruit` is greater than five. Otherwise, print "**The fruit name has five characters or less.**" diff --git a/problems/if-statement/problem_es.md b/problems/if-statement/problem_es.md index c90927c0..e5f7eb1d 100644 --- a/problems/if-statement/problem_es.md +++ b/problems/if-statement/problem_es.md @@ -20,7 +20,7 @@ Crea un archivo llamando `if-statement.js`. En ese archivo, declara una variabe llamada `fruit`. -Haz la variable `fruit` referenciar al valor **orange**, del tipo **String**. +Haz la variable `fruit` referenciar a la cadena de caracteres **"orange"**. Luego utiliza `console.log()` para imprimir a la terminal "**The fruit name has more than five characters."** si el length de la variable `fruit` es mayor a cinco. Imprime "**The fruit name has five characters or less.**" de lo contrario. diff --git a/problems/if-statement/problem_fr.md b/problems/if-statement/problem_fr.md index b65a4793..fe20594d 100644 --- a/problems/if-statement/problem_fr.md +++ b/problems/if-statement/problem_fr.md @@ -20,7 +20,7 @@ Créez un fichier nommé `instruction-conditionnelle.js`. Dans ce fichier, déclarez une variable `fruit`. -Assignez à la variable `fruit` la valeur `orange` du type `String`. +Assignez à la variable `fruit` la chaîne de caractères ***"orange"***. Utilisez ensuite `console.log()` pour afficher **« The fruit name has more than five characters. »** si la longueur du contenu de la variable `fruit` est supérieure à cinq. Sinon, affichez **« The fruit name has five characters or less. »** diff --git a/problems/if-statement/problem_it.md b/problems/if-statement/problem_it.md index cd99794b..8dbc56c3 100644 --- a/problems/if-statement/problem_it.md +++ b/problems/if-statement/problem_it.md @@ -20,7 +20,7 @@ Crea un file dal nome `if-statement.js`. In questo file, dichiara una variabile chiamata `fruit`. -Fa' in modo che la variabile `fruit` referenzi il valore **orange** con il tipo **String**. +Fa' in modo che la variabile `fruit` referenzi la stringa **"orange"**. Quindi usa `console.log()` per stampare "**The fruit name has more than five characters."** se la lunghezza del valore di `fruit` è maggiore di cinque. Altrimenti, stampa "**The fruit name has five characters or less.**" From 3da66cf5762b326cd2ef6b974b03cf5d46e29f8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JM=20Cl=C3=A9ry?= Date: Wed, 18 Oct 2017 12:13:17 +0200 Subject: [PATCH 223/346] [Fix #145] Update dependency that caused the error --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 53aa7c5e..c9df0d9d 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "colors": "^1.0.3", "promise": "^7.1.1", "diff": "^1.2.1", - "workshopper-adventure": "^5.0.0" + "workshopper-adventure": "^6.0.3" }, "license": "MIT" } From 122a4dfe9abfaa82587e126e4536e0ded89f0776 Mon Sep 17 00:00:00 2001 From: Robert Koval Date: Sun, 29 Oct 2017 13:11:13 +0200 Subject: [PATCH 224/346] Update solution_uk.md fixed mistake in the word --- problems/numbers/solution_uk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/numbers/solution_uk.md b/problems/numbers/solution_uk.md index aedf8a51..a884fb6f 100644 --- a/problems/numbers/solution_uk.md +++ b/problems/numbers/solution_uk.md @@ -2,7 +2,7 @@ # ТАААК! ЧИСЛА! -Круто, ви успішно оголомили змінну з числом `123456789`. +Круто, ви успішно оголосили змінну з числом `123456789`. В наступному завданні ми подивимось як оперувати числами.s. From be9c7a9300e825fa7511912c53c190c4416af1ec Mon Sep 17 00:00:00 2001 From: Dike Kalu Date: Thu, 5 Apr 2018 21:41:04 +0100 Subject: [PATCH 225/346] Added note on how to fix EACCESS error when using PS or CMD --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9e6252f2..4bee9922 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,12 @@ The `--global` option installs this module globally so that you can run it as a #### Having issues with installation? -If you get an `EACCESS` error, the simplest way to fix this is to rerun the command, prefixed with sudo: +If you get an `EACCESS` error, the simplest way to fix this is to rerun the command, in either of the following ways: -``` -sudo npm install --global javascripting -``` +- On unix shells, prefix the command with sudo +> `sudo npm install --global javascripting` + +- On Windows and if using either PowerShell or CMD, ensure you open the shell with administrator privilege. You can also fix the permissions so that you don't have to use `sudo`. Take a look at this npm documentation: https://docs.npmjs.com/getting-started/fixing-npm-permissions From 65d5e7bfe3150db8b5579bd623c967109ed99d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Thu, 18 Oct 2018 15:17:26 +0200 Subject: [PATCH 226/346] switched number-to-string to const (#230) --- problems/number-to-string/problem.md | 2 +- problems/number-to-string/problem_es.md | 2 +- problems/number-to-string/problem_fr.md | 2 +- problems/number-to-string/problem_it.md | 2 +- problems/number-to-string/problem_ja.md | 2 +- problems/number-to-string/problem_ko.md | 2 +- problems/number-to-string/problem_nb-no.md | 2 +- problems/number-to-string/problem_pt-br.md | 2 +- problems/number-to-string/problem_ru.md | 2 +- problems/number-to-string/problem_uk.md | 2 +- problems/number-to-string/problem_zh-cn.md | 2 +- problems/number-to-string/problem_zh-tw.md | 2 +- solutions/number-to-string/index.js | 4 ++-- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/problems/number-to-string/problem.md b/problems/number-to-string/problem.md index 32af56d7..d7e9a0f1 100644 --- a/problems/number-to-string/problem.md +++ b/problems/number-to-string/problem.md @@ -3,7 +3,7 @@ Sometimes you will need to turn a number into a string. In those instances you will use the `.toString()` method. Here's an example: ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_es.md b/problems/number-to-string/problem_es.md index f452b03f..c87fccac 100644 --- a/problems/number-to-string/problem_es.md +++ b/problems/number-to-string/problem_es.md @@ -3,7 +3,7 @@ A veces necesitarás convertir un número a una string. En esos casos, usarás el método `.toString()`. A continuación un ejemplo: ```js -var n = 256; +const n = 256; n.toString(); ``` diff --git a/problems/number-to-string/problem_fr.md b/problems/number-to-string/problem_fr.md index adf18f2f..873825db 100644 --- a/problems/number-to-string/problem_fr.md +++ b/problems/number-to-string/problem_fr.md @@ -3,7 +3,7 @@ Vous devez parfois transformer un nombre en chaîne de caractère. Dans ces cas là, vous utiliserez la méthode `.toString()`. Voici un exemple : ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_it.md b/problems/number-to-string/problem_it.md index 03f1cbbd..8d489a95 100644 --- a/problems/number-to-string/problem_it.md +++ b/problems/number-to-string/problem_it.md @@ -3,7 +3,7 @@ A volte è necessario trasformare un numero in una stringa. In quei casi, userai il metodo `.toString()`. Ecco un esempio: ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ja.md b/problems/number-to-string/problem_ja.md index ce609f95..3a6510f9 100644 --- a/problems/number-to-string/problem_ja.md +++ b/problems/number-to-string/problem_ja.md @@ -3,7 +3,7 @@ そういう時は `toString()` メソッドを使います。たとえば... ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ko.md b/problems/number-to-string/problem_ko.md index 53eaa997..b3990b5b 100644 --- a/problems/number-to-string/problem_ko.md +++ b/problems/number-to-string/problem_ko.md @@ -3,7 +3,7 @@ 그런 경우에 `.toString()` 메소드를 사용하면 됩니다. 예제를 보세요. ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_nb-no.md b/problems/number-to-string/problem_nb-no.md index 2d876fcc..e214a294 100644 --- a/problems/number-to-string/problem_nb-no.md +++ b/problems/number-to-string/problem_nb-no.md @@ -3,7 +3,7 @@ Noen ganger må du gjøre om et nummer til en string. I de tilfelle må du bruke `.toString()` metoden. Eksempel: ```js -var nummer = 256; +const nummer = 256; nummer = nummer.toString(); ``` diff --git a/problems/number-to-string/problem_pt-br.md b/problems/number-to-string/problem_pt-br.md index 0926c8ac..29c34f95 100644 --- a/problems/number-to-string/problem_pt-br.md +++ b/problems/number-to-string/problem_pt-br.md @@ -3,7 +3,7 @@ Nestas situações você usará o método `.toString()`. Veja um exemplo de como usá-lo: ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ru.md b/problems/number-to-string/problem_ru.md index 311e97d7..b3363e7c 100644 --- a/problems/number-to-string/problem_ru.md +++ b/problems/number-to-string/problem_ru.md @@ -3,7 +3,7 @@ В этом случае используйте метод `.toString()`. Например: ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_uk.md b/problems/number-to-string/problem_uk.md index 9fa7c451..6daeabd2 100644 --- a/problems/number-to-string/problem_uk.md +++ b/problems/number-to-string/problem_uk.md @@ -3,7 +3,7 @@ В таких випадках ви можете використати метод `.toString()`. Ось приклад: ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_zh-cn.md b/problems/number-to-string/problem_zh-cn.md index 58a2fe57..bb74e5e3 100644 --- a/problems/number-to-string/problem_zh-cn.md +++ b/problems/number-to-string/problem_zh-cn.md @@ -3,7 +3,7 @@ 这时,你可以使用 `.toString()` 方法。例如: ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_zh-tw.md b/problems/number-to-string/problem_zh-tw.md index 92901a5c..57ecf8e3 100644 --- a/problems/number-to-string/problem_zh-tw.md +++ b/problems/number-to-string/problem_zh-tw.md @@ -3,7 +3,7 @@ 這時,你可以使用 `.toString()` 方法。例如: ```js -var n = 256; +const n = 256; n = n.toString(); ``` diff --git a/solutions/number-to-string/index.js b/solutions/number-to-string/index.js index 39cbd6b4..b23a907d 100644 --- a/solutions/number-to-string/index.js +++ b/solutions/number-to-string/index.js @@ -1,2 +1,2 @@ -var n = 128; -console.log(n.toString()); \ No newline at end of file +const n = 128; +console.log(n.toString()); From cf34563fe7f584f0a8c08ddbd39be5d2b7685be7 Mon Sep 17 00:00:00 2001 From: Aryan J Date: Thu, 18 Oct 2018 09:19:04 -0400 Subject: [PATCH 227/346] Replace var with const and let in accessing-array-values (#228) --- problems/accessing-array-values/problem.md | 4 ++-- problems/accessing-array-values/problem_es.md | 6 +++--- problems/accessing-array-values/problem_fr.md | 4 ++-- problems/accessing-array-values/problem_it.md | 4 ++-- problems/accessing-array-values/problem_ja.md | 4 ++-- problems/accessing-array-values/problem_ko.md | 4 ++-- problems/accessing-array-values/problem_nb-no.md | 4 ++-- problems/accessing-array-values/problem_pt-br.md | 4 ++-- problems/accessing-array-values/problem_ru.md | 4 ++-- problems/accessing-array-values/problem_uk.md | 4 ++-- problems/accessing-array-values/problem_zh-cn.md | 4 ++-- problems/accessing-array-values/problem_zh-tw.md | 4 ++-- solutions/accessing-array-values/index.js | 4 ++-- 13 files changed, 27 insertions(+), 27 deletions(-) diff --git a/problems/accessing-array-values/problem.md b/problems/accessing-array-values/problem.md index 206d7915..729cacc1 100644 --- a/problems/accessing-array-values/problem.md +++ b/problems/accessing-array-values/problem.md @@ -6,7 +6,7 @@ Here is an example: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -34,7 +34,7 @@ Create a file named `accessing-array-values.js`. In that file, define array `food` : ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_es.md b/problems/accessing-array-values/problem_es.md index 47d57d67..7cba710d 100644 --- a/problems/accessing-array-values/problem_es.md +++ b/problems/accessing-array-values/problem_es.md @@ -1,11 +1,11 @@ Se puede tener acceso a los elementos de un Array a través del número de índice. -El número de índice comienza en cero y finaliza en el valor de la propiedad longitud (length) del array, restándole uno. +El número de índice comienza en cero y finaliza en el valor de la propiedad longitud (length) del array, restándole uno. A continuación, un ejemplo: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -33,7 +33,7 @@ Crea un archivo llamado `accediendo-valores-array.js` En ese archivo, define un array llamado `food` : ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` Usa `console.log()` para imprimir el `segundo` valor del array en la terminal. diff --git a/problems/accessing-array-values/problem_fr.md b/problems/accessing-array-values/problem_fr.md index 16b36b71..cd3ac2bc 100644 --- a/problems/accessing-array-values/problem_fr.md +++ b/problems/accessing-array-values/problem_fr.md @@ -5,7 +5,7 @@ Les index doivent être des nombres allant de zero à la longueur du tableaux mo Voici un exemple : ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -31,7 +31,7 @@ Créez un fichier nommé `acces-valeurs-tableau.js` Dans ce fichier, définissez un tableau `food` : ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_it.md b/problems/accessing-array-values/problem_it.md index ac5964a7..aa6ab97c 100644 --- a/problems/accessing-array-values/problem_it.md +++ b/problems/accessing-array-values/problem_it.md @@ -6,7 +6,7 @@ Ecco un esempio: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -34,7 +34,7 @@ Crea un file dal nome `accessing-array-values.js`. In questo file, definisci l'array `food` : ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_ja.md b/problems/accessing-array-values/problem_ja.md index 58f96b10..4ab93ecb 100644 --- a/problems/accessing-array-values/problem_ja.md +++ b/problems/accessing-array-values/problem_ja.md @@ -5,7 +5,7 @@ 以下に例を示します... ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -34,7 +34,7 @@ console.log(pets.1); ファイルの中で、次の配列 `food` を定義します。 ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_ko.md b/problems/accessing-array-values/problem_ko.md index fb1d5e47..2029f88e 100644 --- a/problems/accessing-array-values/problem_ko.md +++ b/problems/accessing-array-values/problem_ko.md @@ -6,7 +6,7 @@ ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -34,7 +34,7 @@ console.log(pets.1); 그 파일에서, `food`라는 배열을 정의합니다. ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_nb-no.md b/problems/accessing-array-values/problem_nb-no.md index 8ea11e25..9688ee78 100644 --- a/problems/accessing-array-values/problem_nb-no.md +++ b/problems/accessing-array-values/problem_nb-no.md @@ -5,7 +5,7 @@ Indeksnummeret starter fra null opp til antallet verdier i arrayet, minus en. Her er et eksempel: ```js -var dyr = ['katt', 'hund', 'rotte']; +const dyr = ['katt', 'hund', 'rotte']; console.log(dyr[0]); ``` @@ -33,7 +33,7 @@ Lag en fil som heter `accessing-array-values.js`. Definer et array `food` i den filen: ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` Bruk `console.log()` til å skrive ut den `andre` verdien av det arrayet til skjermen. diff --git a/problems/accessing-array-values/problem_pt-br.md b/problems/accessing-array-values/problem_pt-br.md index 5b0fe9c5..fad61bc9 100644 --- a/problems/accessing-array-values/problem_pt-br.md +++ b/problems/accessing-array-values/problem_pt-br.md @@ -6,7 +6,7 @@ Aqui está um exemplo: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -34,7 +34,7 @@ Crie um arquivo chamado `accessing-array-values.js`. Neste arquivo, defina o array `food` : ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_ru.md b/problems/accessing-array-values/problem_ru.md index ae2f0894..a3ddc7f9 100644 --- a/problems/accessing-array-values/problem_ru.md +++ b/problems/accessing-array-values/problem_ru.md @@ -6,7 +6,7 @@ ```js - var pets = ['cat', 'dog', 'rat']; + const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -34,7 +34,7 @@ В этом файле объявите массив `food` : ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` diff --git a/problems/accessing-array-values/problem_uk.md b/problems/accessing-array-values/problem_uk.md index e20c9f4a..8b87864c 100644 --- a/problems/accessing-array-values/problem_uk.md +++ b/problems/accessing-array-values/problem_uk.md @@ -5,7 +5,7 @@ Приклад: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -33,7 +33,7 @@ console.log(pets.1); У цьому файлі створити масив 'food' : ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` Використайте `console.log()`, щоб надрукувати 'другий' елемент масиву в терміналі. diff --git a/problems/accessing-array-values/problem_zh-cn.md b/problems/accessing-array-values/problem_zh-cn.md index 4eedc133..8b6b387e 100644 --- a/problems/accessing-array-values/problem_zh-cn.md +++ b/problems/accessing-array-values/problem_zh-cn.md @@ -5,7 +5,7 @@ 下面是一个例子: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -33,7 +33,7 @@ console.log(pets.1); 在文件中定义一个数组 `food`: ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` 使用 `console.log()` 打印数组的第二个值到终端。 diff --git a/problems/accessing-array-values/problem_zh-tw.md b/problems/accessing-array-values/problem_zh-tw.md index adb818f5..f5c488cc 100644 --- a/problems/accessing-array-values/problem_zh-tw.md +++ b/problems/accessing-array-values/problem_zh-tw.md @@ -5,7 +5,7 @@ 下面是一個例子: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; console.log(pets[0]); ``` @@ -33,7 +33,7 @@ console.log(pets.1); 在該檔案中定義一個陣列 `food`: ```js -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; ``` 使用 `console.log()` 印出陣列中的 `第二個` 值。 diff --git a/solutions/accessing-array-values/index.js b/solutions/accessing-array-values/index.js index 55ebd76c..cf78843f 100644 --- a/solutions/accessing-array-values/index.js +++ b/solutions/accessing-array-values/index.js @@ -1,3 +1,3 @@ -var food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear']; -console.log(food[1]); \ No newline at end of file +console.log(food[1]); From cb9017ed166e7eee48272ee9a7cdd7bf00bc72e7 Mon Sep 17 00:00:00 2001 From: Alexey Pudnikov Date: Sun, 21 Oct 2018 06:32:34 +0300 Subject: [PATCH 228/346] changes var to let in variables --- problems/variables/problem.md | 8 ++++---- problems/variables/problem_es.md | 8 ++++---- problems/variables/problem_fr.md | 8 ++++---- problems/variables/problem_it.md | 8 ++++---- problems/variables/problem_ja.md | 8 ++++---- problems/variables/problem_ko.md | 8 ++++---- problems/variables/problem_nb-no.md | 8 ++++---- problems/variables/problem_pt-br.md | 8 ++++---- problems/variables/problem_ru.md | 8 ++++---- problems/variables/problem_uk.md | 8 ++++---- problems/variables/problem_zh-cn.md | 8 ++++---- problems/variables/problem_zh-tw.md | 8 ++++---- solutions/variables/index.js | 2 +- 13 files changed, 49 insertions(+), 49 deletions(-) diff --git a/problems/variables/problem.md b/problems/variables/problem.md index b1474dbc..8247fe56 100644 --- a/problems/variables/problem.md +++ b/problems/variables/problem.md @@ -1,9 +1,9 @@ -A variable is a name that can reference a specific value. Variables are declared using `var` followed by the variable's name. +A variable is a name that can reference a specific value. Variables are declared using `let` followed by the variable's name. Here's an example: ```js -var example; +let example; ``` The above variable is **declared**, but it isn't defined (it does not yet reference a specific value). @@ -11,12 +11,12 @@ The above variable is **declared**, but it isn't defined (it does not yet refere Here's an example of defining a variable, making it reference a specific value: ```js -var example = 'some string'; +let example = 'some string'; ``` # NOTE -A variable is **declared** using `var` and uses the equals sign to **define** the value that it references. This is colloquially known as "Making a variable equal a value". +A variable is **declared** using `let` and uses the equals sign to **define** the value that it references. This is colloquially known as "Making a variable equal a value". ## The challenge: diff --git a/problems/variables/problem_es.md b/problems/variables/problem_es.md index cd1d322f..4cedddae 100644 --- a/problems/variables/problem_es.md +++ b/problems/variables/problem_es.md @@ -1,8 +1,8 @@ -Una variable es una referencia a un valor. Define una variable usando la palabra reservada `var`. +Una variable es una referencia a un valor. Define una variable usando la palabra reservada `let`. Por ejemplo: ```js -var example; +let example; ``` La variable anterior es **declarada**, pero no definida. @@ -10,10 +10,10 @@ La variable anterior es **declarada**, pero no definida. A continuación damos un ejemplo de cómo definir una variable, haciendo que referencie a un valor específico: ```js -var example = 'some string'; +let example = 'some string'; ``` -Nota que empieza con la palabra reserva `var` y usa el signo de igualdad entre en nombre de la variable y el valor que referencia. +Nota que empieza con la palabra reserva `let` y usa el signo de igualdad entre en nombre de la variable y el valor que referencia. ## El ejercicio diff --git a/problems/variables/problem_fr.md b/problems/variables/problem_fr.md index 758083dc..1e27b203 100644 --- a/problems/variables/problem_fr.md +++ b/problems/variables/problem_fr.md @@ -1,9 +1,9 @@ -Une variable est un nom qui fait référence à une valeur spécifique. Les variables sont déclarées en utilisant le mot clé `var` suivi du le nom de la variable. +Une variable est un nom qui fait référence à une valeur spécifique. Les variables sont déclarées en utilisant le mot clé `let` suivi du le nom de la variable. Voici un exemple : ```js -var example; +let example; ``` La variable ci-dessus est **déclarée**, mais elle n'est pas définie ( elle ne référence aucune valeur pour le moment ). @@ -11,12 +11,12 @@ La variable ci-dessus est **déclarée**, mais elle n'est pas définie ( elle Voici un exemple de définition de variable, la faisant contenir une valeur spécifique : ```js -var example = 'some string'; +let example = 'some string'; ``` # NOTE -Une variable est **déclarée** en utilisant `var` et utilise le signe égal pour **assigner** la valeur qu'elle référence. Nous utilisons communément l'expression "Assigner une valeur à une variable". +Une variable est **déclarée** en utilisant `let` et utilise le signe égal pour **assigner** la valeur qu'elle référence. Nous utilisons communément l'expression "Assigner une valeur à une variable". ## Le défi : diff --git a/problems/variables/problem_it.md b/problems/variables/problem_it.md index 78334096..63c21623 100644 --- a/problems/variables/problem_it.md +++ b/problems/variables/problem_it.md @@ -1,9 +1,9 @@ -Una variabile è un nome che può fare riferimento a un valore specifico. Le variabili sono dichiarate usando `var` seguito dal nome della variabile. +Una variabile è un nome che può fare riferimento a un valore specifico. Le variabili sono dichiarate usando `let` seguito dal nome della variabile. Ecco un esempio: ```js -var example; +let example; ``` La variabile precedente è stata **dichiarata**, ma non è stata definita (non fa ancora riferimento a un valore specifico). @@ -11,12 +11,12 @@ La variabile precedente è stata **dichiarata**, ma non è stata definita (non f Ecco un esempio di definizione di una variabile, che le fa assumere un valore specifico: ```js -var example = 'some string'; +let example = 'some string'; ``` # NOTA -Una variabile è **dichiarata** usando `var` e usa il segno uguale per **definire** il valore che rappresenta. Questa operazione è nota con l'espressione colloquiale "assegnare un valore a una variabile". +Una variabile è **dichiarata** usando `let` e usa il segno uguale per **definire** il valore che rappresenta. Questa operazione è nota con l'espressione colloquiale "assegnare un valore a una variabile". ## La sfida: diff --git a/problems/variables/problem_ja.md b/problems/variables/problem_ja.md index 6b0717f3..eb521372 100644 --- a/problems/variables/problem_ja.md +++ b/problems/variables/problem_ja.md @@ -1,9 +1,9 @@ -変数は特定の値を示す名前です。 `var` を使って変数を宣言します。 `var` につづけて変数の名前を書きます。 +変数は特定の値を示す名前です。 `let` を使って変数を宣言します。 `let` につづけて変数の名前を書きます。 例... ```js -var example; +let example; ``` 上の例は変数を**宣言**しています。しかし、定義していません(この変数はまだなんの値も示しません)。 @@ -11,10 +11,10 @@ var example; 次の例は変数を定義します。定義した変数は特定の値を示します。 ```js -var example = 'some string'; +let example = 'some string'; ``` -`var` を使って**宣言**します。つづいて、等号を使い、変数が示す値を**定義**します。 +`let` を使って**宣言**します。つづいて、等号を使い、変数が示す値を**定義**します。 これを「変数に値を代入する」と言います。 diff --git a/problems/variables/problem_ko.md b/problems/variables/problem_ko.md index bcd5df1f..3de61103 100644 --- a/problems/variables/problem_ko.md +++ b/problems/variables/problem_ko.md @@ -1,9 +1,9 @@ -변수는 특정 값을 참조하는 이름입니다. 변수는 `var`와 변수의 이름으로 선언합니다. +변수는 특정 값을 참조하는 이름입니다. 변수는 `let`와 변수의 이름으로 선언합니다. 예제를 보세요. ```js -var example; +let example; ``` 위 변수는 **선언**되었지만, 정의되지는 않았습니다.(아직 특정 값을 참조하지 않았습니다.) @@ -11,12 +11,12 @@ var example; 특정 값을 참조하게 만든, 변수를 정의하는 예제입니다. ```js -var example = 'some string'; +let example = 'some string'; ``` # 주의 -변수는 `var`를 사용해 **선언**하고 등호(`=`)를 이용해 참조하는 값을 넣어 **정의**합니다. "변수는 값과 같게 만든다."라고 읽을 수 있습니다. +변수는 `let`를 사용해 **선언**하고 등호(`=`)를 이용해 참조하는 값을 넣어 **정의**합니다. "변수는 값과 같게 만든다."라고 읽을 수 있습니다. ## 도전 과제 diff --git a/problems/variables/problem_nb-no.md b/problems/variables/problem_nb-no.md index 59b05d9d..0bcddaf1 100644 --- a/problems/variables/problem_nb-no.md +++ b/problems/variables/problem_nb-no.md @@ -1,9 +1,9 @@ -En variabel er et navn som kan peke til en spesifikk verdi. Variables deklareres ved å bruke `var` etterfulgt av variablens navn. +En variabel er et navn som kan peke til en spesifikk verdi. Variables deklareres ved å bruke `let` etterfulgt av variablens navn. Her er et eksempel: ```js -var example; +let example; ``` Variabelen over er **deklarert**, men den er ikke definert (den peker ikke til en spesifikk verdi ennå). @@ -11,12 +11,12 @@ Variabelen over er **deklarert**, men den er ikke definert (den peker ikke til e Her er et eksempel som definerer en variabel, ved å peke til en spesifikk verdi: ```js -var example = 'some string'; +let example = 'some string'; ``` # OBS -En variabel blir **deklarert** ved bruk av `var` og erlikhetstegn til å **definere** verdien den peker til. Dette kalles som oftes å "sette verdien til en variabel". +En variabel blir **deklarert** ved bruk av `let` og erlikhetstegn til å **definere** verdien den peker til. Dette kalles som oftes å "sette verdien til en variabel". ## Oppgaven: diff --git a/problems/variables/problem_pt-br.md b/problems/variables/problem_pt-br.md index b15cafc7..3d4d0a87 100644 --- a/problems/variables/problem_pt-br.md +++ b/problems/variables/problem_pt-br.md @@ -1,9 +1,9 @@ -Uma variável é o nome que pode fazer referência a um valor específico. Variáveis são declaradas usando a palavra `var` seguida do nome da variável. +Uma variável é o nome que pode fazer referência a um valor específico. Variáveis são declaradas usando a palavra `let` seguida do nome da variável. Aqui está um exemplo: ```js -var example; +let example; ``` A variável acima foi **declarada**, mas ainda não foi definida (ou seja, ainda não faz referência á um valor específico). @@ -11,12 +11,12 @@ A variável acima foi **declarada**, mas ainda não foi definida (ou seja, ainda Aqui está um exemplo de como definir uma variável, fazendo ela referenciar um valor específico: ```js -var example = 'some string'; +let example = 'some string'; ``` # OBSERVAÇÃO -Um variável é **declarada** quando usamos `var`, e o `=` é usado para **definir** o valor pelo qual a variável vai fazer referência. +Um variável é **declarada** quando usamos `let`, e o `=` é usado para **definir** o valor pelo qual a variável vai fazer referência. Coloquialmente dizemos que "criamos uma variável com um valor". diff --git a/problems/variables/problem_ru.md b/problems/variables/problem_ru.md index 0b27e09c..320987ed 100644 --- a/problems/variables/problem_ru.md +++ b/problems/variables/problem_ru.md @@ -1,9 +1,9 @@ -Переменная -- это имя, с которым связано определённое значение. Переменные объявляются с помощью ключевого слова `var`, после которого записывается название переменной. +Переменная -- это имя, с которым связано определённое значение. Переменные объявляются с помощью ключевого слова `let`, после которого записывается название переменной. Например: ```js -var example; +let example; ``` Переменная выше **объявлена**, но не задана (ей не присвоено какое-либо конкретное значение). @@ -11,12 +11,12 @@ var example; Ниже дан пример объявления переменной с заданным значением: ```js -var example = 'some string'; +let example = 'some string'; ``` ## НА ЗАМЕТКУ -Ключевое слово `var` используется чтобы **объявить** переменную, а знак _равно_ используется для того, чтобы **присвоить** значение этой переменной. +Ключевое слово `let` используется чтобы **объявить** переменную, а знак _равно_ используется для того, чтобы **присвоить** значение этой переменной. ## Условие задачи: diff --git a/problems/variables/problem_uk.md b/problems/variables/problem_uk.md index 48360607..7f52d54b 100644 --- a/problems/variables/problem_uk.md +++ b/problems/variables/problem_uk.md @@ -1,9 +1,9 @@ -Змінною називають ім’я, яке посилається на певне значення. Змінні оголошуються з допомогою ключового слова `var`, за яким слідує ім’я змінної. +Змінною називають ім’я, яке посилається на певне значення. Змінні оголошуються з допомогою ключового слова `let`, за яким слідує ім’я змінної. Приклад оголошення змінної: ```js -var example; +let example; ``` У прикладі вище, змінна **оголошена (declared)**, проте не була визначеною (defined) (тобто вона поки не посилається на конкретне значення). @@ -11,12 +11,12 @@ var example; Ось приклад визначення змінних, посилання на певне значення: ```js -var example = 'some string'; +let example = 'some string'; ``` # ЗАУВАЖЕННЯ -Змінна **оголошена** з допомогою `var` та якій **присвоєно** посилання на значення з допомогою оператора присвоєння, буде посилатись на це значення. Також це називають «Присвоєнням змінній значення». +Змінна **оголошена** з допомогою `let` та якій **присвоєно** посилання на значення з допомогою оператора присвоєння, буде посилатись на це значення. Також це називають «Присвоєнням змінній значення». ## Завдання: diff --git a/problems/variables/problem_zh-cn.md b/problems/variables/problem_zh-cn.md index 447af923..d655faad 100644 --- a/problems/variables/problem_zh-cn.md +++ b/problems/variables/problem_zh-cn.md @@ -1,9 +1,9 @@ -变量就是一个可以引用具体值的名字。变量通过使用 `var` 及紧随其后的变量名来声明。 +变量就是一个可以引用具体值的名字。变量通过使用 `let` 及紧随其后的变量名来声明。 下面是一个例子: ```js -var example; +let example; ``` 这个例子里的变量被**声明**,但是没有被定义(也就是说,它目前还没有引用一个值)。 @@ -12,12 +12,12 @@ var example; ```js -var example = 'some string'; +let example = 'some string'; ``` # 注 -变量通过 `var` 来**声明**,并通过等号来**定义**它的值。这也就是经常提到的“让一个变量等于一个值(变量赋值)”。 +变量通过 `let` 来**声明**,并通过等号来**定义**它的值。这也就是经常提到的“让一个变量等于一个值(变量赋值)”。 ## 挑战: diff --git a/problems/variables/problem_zh-tw.md b/problems/variables/problem_zh-tw.md index 58f907ea..0310ede5 100644 --- a/problems/variables/problem_zh-tw.md +++ b/problems/variables/problem_zh-tw.md @@ -1,9 +1,9 @@ -變數就是一個可以引用具體值的名字。變數通過使用 `var` 及緊隨其後的變數名來宣告。 +變數就是一個可以引用具體值的名字。變數通過使用 `let` 及緊隨其後的變數名來宣告。 下面是一個例子: ```js -var example; +let example; ``` 這個例子裡的變數被**宣告**,但是沒有被定義(也就是說,它目前還沒有引用一個值)。 @@ -12,12 +12,12 @@ var example; ```js -var example = 'some string'; +let example = 'some string'; ``` # 注 -變數通過 `var` 來**宣告**,並通過等號來**定義**它的值。這也就是經常提到的「讓一個變數等於一個值」。 +變數通過 `let` 來**宣告**,並通過等號來**定義**它的值。這也就是經常提到的「讓一個變數等於一個值」。 ## 挑戰: diff --git a/solutions/variables/index.js b/solutions/variables/index.js index 06bc2b0a..339e1fcb 100644 --- a/solutions/variables/index.js +++ b/solutions/variables/index.js @@ -1,2 +1,2 @@ -var example = 'some string'; +let example = 'some string'; console.log(example); \ No newline at end of file From 5e5dd5ba91b9b599e030dbbe611c56cfcd76e38b Mon Sep 17 00:00:00 2001 From: Aleksei Pudnikov Date: Sun, 21 Oct 2018 07:19:57 +0300 Subject: [PATCH 229/346] changes var to const in rounding-numbers (#249) --- solutions/rounding-numbers/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/rounding-numbers/index.js b/solutions/rounding-numbers/index.js index a99123dd..4ffe3fe9 100644 --- a/solutions/rounding-numbers/index.js +++ b/solutions/rounding-numbers/index.js @@ -1,3 +1,3 @@ -var roundUp = 1.5; -var rounded = Math.round(roundUp); +const roundUp = 1.5; +const rounded = Math.round(roundUp); console.log(rounded); \ No newline at end of file From 016f878d9207f40fe86e2b99504b0545daa5a024 Mon Sep 17 00:00:00 2001 From: Aleksei Pudnikov Date: Sun, 21 Oct 2018 07:21:41 +0300 Subject: [PATCH 230/346] changes var to const in strings (#248) --- problems/strings/problem.md | 2 +- problems/strings/problem_es.md | 2 +- problems/strings/problem_fr.md | 2 +- problems/strings/problem_it.md | 2 +- problems/strings/problem_ja.md | 2 +- problems/strings/problem_ko.md | 2 +- problems/strings/problem_nb-no.md | 2 +- problems/strings/problem_pt-br.md | 2 +- problems/strings/problem_ru.md | 2 +- problems/strings/problem_uk.md | 2 +- problems/strings/problem_zh-cn.md | 2 +- problems/strings/problem_zh-tw.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/problems/strings/problem.md b/problems/strings/problem.md index e9af830f..e8645292 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -21,7 +21,7 @@ For this challenge, create a file named `strings.js`. In that file create a variable named `someString` like this: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Use `console.log` to print the variable **someString** to the terminal. diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 7b1febd1..0151fc98 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -18,7 +18,7 @@ Para este ejercicio, crea un archivo llamado `strings.js`. En ese archivo define una variable llamada `someString` de la siguiente forma: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Utiliza `console.log` para imprimir la variable `someString` a la terminal. diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index 2a7550d4..4a3558ac 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -19,7 +19,7 @@ Pour ce défi, créez un fichier nommé `chaines.js`. Dans ce fichier, créez une variable nommée `someString` comme cela : ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Utilisez `console.log` pour afficher la variable **someString** dans le terminal. diff --git a/problems/strings/problem_it.md b/problems/strings/problem_it.md index e27c7221..590fb102 100644 --- a/problems/strings/problem_it.md +++ b/problems/strings/problem_it.md @@ -19,7 +19,7 @@ Per risolvere questa sfida, crea un file dal nome `strings.js`. In questo file crea una variabile dal nome `someString` come segue: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Usa `console.log` per stampare la variabile **someString** sul terminale. diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index b6c83cf4..766b4a83 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -17,7 +17,7 @@ ファイルの中で、次のように変数 `someString` を作りましょう。 ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` `console.log` を使い、変数 **someString** をターミナルに表示しましょう。 diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index 424caf7c..883c9440 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -19,7 +19,7 @@ 그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면 됩니다. ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` `console.log`를 사용해 **someString** 변수를 터미널에 출력합니다. diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index d7c15c69..9c13e1db 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -16,7 +16,7 @@ I denne oppgaven, lage en fil med navnet `strings.js`. Lage en variabel `someString`, slik som dette: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` For å skrive variabelen **someString** til skjermen kan du bruke `console.log`. diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index ce265c88..88634d84 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -18,7 +18,7 @@ Para este desafio, crie um arquivo chamado `strings.js`. No arquivo que foi criado, crie uma variável chamada `someString` da seguinte forma: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Use o `console.log` para imprimir a variável **someString** para o terminal. diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md index c32131c5..3022a642 100644 --- a/problems/strings/problem_ru.md +++ b/problems/strings/problem_ru.md @@ -19,7 +19,7 @@ В этом файле объявите переменную `someString` таким образом: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной **someString** в консоль. diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index fbb332cc..6ab8b865 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -18,7 +18,7 @@ У цьому файлі створіть змінну `someString` ось так: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Використайте `console.log`, щоб вивести змінну **someString** до терміналу. diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index bf81f93b..b2753459 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -18,7 +18,7 @@ 在文件中像这样创建一个名为 `someString` 的变量: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` 使用 `console.log` 打印变量 **someString** 到终端。 diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md index b94a5d73..1660b53c 100644 --- a/problems/strings/problem_zh-tw.md +++ b/problems/strings/problem_zh-tw.md @@ -18,7 +18,7 @@ 在該檔案中像這樣建立一個名為 `someString` 的變數: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` 使用 `console.log` 印出變數 **someString** 到終端機上。 From f4cf0288630bd43f4f2298868ac61cd375c2eab6 Mon Sep 17 00:00:00 2001 From: Kesler Tanner Date: Sat, 20 Oct 2018 21:30:21 -0700 Subject: [PATCH 231/346] Updating arrays to use const instead of var (#245) --- problems/arrays/problem.md | 2 +- problems/arrays/problem_es.md | 2 +- problems/arrays/problem_fr.md | 2 +- problems/arrays/problem_it.md | 2 +- problems/arrays/problem_ja.md | 2 +- problems/arrays/problem_ko.md | 2 +- problems/arrays/problem_nb-no.md | 2 +- problems/arrays/problem_pt-br.md | 2 +- problems/arrays/problem_ru.md | 2 +- problems/arrays/problem_uk.md | 2 +- problems/arrays/problem_zh-cn.md | 2 +- problems/arrays/problem_zh-tw.md | 2 +- solutions/arrays/index.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/problems/arrays/problem.md b/problems/arrays/problem.md index 9e0935be..9efdf578 100644 --- a/problems/arrays/problem.md +++ b/problems/arrays/problem.md @@ -1,7 +1,7 @@ An array is a list of values. Here's an example: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### The challenge: diff --git a/problems/arrays/problem_es.md b/problems/arrays/problem_es.md index 74af7acc..0f81adee 100644 --- a/problems/arrays/problem_es.md +++ b/problems/arrays/problem_es.md @@ -1,7 +1,7 @@ Un array es una lista ordenada de elementos. Por ejemplo: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### El ejercicio: diff --git a/problems/arrays/problem_fr.md b/problems/arrays/problem_fr.md index f7c8a9fc..57c9e55a 100644 --- a/problems/arrays/problem_fr.md +++ b/problems/arrays/problem_fr.md @@ -1,7 +1,7 @@ Un tableau est une liste de valeurs. Voici un exemple : ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### Le défi : diff --git a/problems/arrays/problem_it.md b/problems/arrays/problem_it.md index d8df4b7f..cc28b48a 100644 --- a/problems/arrays/problem_it.md +++ b/problems/arrays/problem_it.md @@ -1,7 +1,7 @@ Un array è una lista di valori. Ecco un esempio: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### La sfida: diff --git a/problems/arrays/problem_ja.md b/problems/arrays/problem_ja.md index c528cc61..49baedf1 100644 --- a/problems/arrays/problem_ja.md +++ b/problems/arrays/problem_ja.md @@ -1,7 +1,7 @@ 配列は、値のリストです。たとえば、こう... ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ## やってみよう diff --git a/problems/arrays/problem_ko.md b/problems/arrays/problem_ko.md index 0781cae8..62ff4714 100644 --- a/problems/arrays/problem_ko.md +++ b/problems/arrays/problem_ko.md @@ -1,7 +1,7 @@ 배열은 값의 목록입니다. 예를 들면 다음과 같습니다. ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### 도전 과제 diff --git a/problems/arrays/problem_nb-no.md b/problems/arrays/problem_nb-no.md index 02ff4e75..1e1e061b 100644 --- a/problems/arrays/problem_nb-no.md +++ b/problems/arrays/problem_nb-no.md @@ -1,7 +1,7 @@ Et array er en liste av verdier. Her er et eksempel: ```js -var dyr = ['katt', 'hund', 'rotte']; +const dyr = ['katt', 'hund', 'rotte']; ``` ### Oppgaven: diff --git a/problems/arrays/problem_pt-br.md b/problems/arrays/problem_pt-br.md index e1f37986..20b3636a 100644 --- a/problems/arrays/problem_pt-br.md +++ b/problems/arrays/problem_pt-br.md @@ -1,7 +1,7 @@ Um array é uma lista de valores. Aqui está um exemplo: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### Desafio: diff --git a/problems/arrays/problem_ru.md b/problems/arrays/problem_ru.md index 7a57efcc..9578536a 100644 --- a/problems/arrays/problem_ru.md +++ b/problems/arrays/problem_ru.md @@ -1,7 +1,7 @@ Массив -- это набор значений. Например: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### Условие задачи: diff --git a/problems/arrays/problem_uk.md b/problems/arrays/problem_uk.md index 42130d43..f9d50b97 100644 --- a/problems/arrays/problem_uk.md +++ b/problems/arrays/problem_uk.md @@ -1,7 +1,7 @@ Масивами називають значень. Наприклад: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### Завдання: diff --git a/problems/arrays/problem_zh-cn.md b/problems/arrays/problem_zh-cn.md index 0faf05af..d64cf707 100644 --- a/problems/arrays/problem_zh-cn.md +++ b/problems/arrays/problem_zh-cn.md @@ -1,7 +1,7 @@ 数组就是由一组值构成的列表。下面是一个例子: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### 挑战: diff --git a/problems/arrays/problem_zh-tw.md b/problems/arrays/problem_zh-tw.md index fccd1b5b..e8be3d56 100644 --- a/problems/arrays/problem_zh-tw.md +++ b/problems/arrays/problem_zh-tw.md @@ -1,7 +1,7 @@ 陣列就是由一組值構成的列表。下面是一個例子: ```js -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; ``` ### 挑戰: diff --git a/solutions/arrays/index.js b/solutions/arrays/index.js index 9eb1ab2d..c973e181 100644 --- a/solutions/arrays/index.js +++ b/solutions/arrays/index.js @@ -1,2 +1,2 @@ -var pizzaToppings = ['tomato sauce', 'cheese', 'pepperoni']; +const pizzaToppings = ['tomato sauce', 'cheese', 'pepperoni']; console.log(pizzaToppings); \ No newline at end of file From c1c8926052949087e68b83212960ad282e34bd1d Mon Sep 17 00:00:00 2001 From: Anshul Date: Sun, 21 Oct 2018 10:02:23 +0530 Subject: [PATCH 232/346] Revert "switched number-to-string to const" (#232) * Revert "Replace var with const and let in accessing-array-values (#228)" This reverts commit cf34563fe7f584f0a8c08ddbd39be5d2b7685be7. * Revert "switched number-to-string to const (#230)" This reverts commit 65d5e7bfe3150db8b5579bd623c967109ed99d45. --- problems/number-to-string/problem.md | 2 +- problems/number-to-string/problem_es.md | 2 +- problems/number-to-string/problem_fr.md | 2 +- problems/number-to-string/problem_it.md | 2 +- problems/number-to-string/problem_ja.md | 2 +- problems/number-to-string/problem_ko.md | 2 +- problems/number-to-string/problem_nb-no.md | 2 +- problems/number-to-string/problem_pt-br.md | 2 +- problems/number-to-string/problem_ru.md | 2 +- problems/number-to-string/problem_uk.md | 2 +- problems/number-to-string/problem_zh-cn.md | 2 +- problems/number-to-string/problem_zh-tw.md | 2 +- solutions/number-to-string/index.js | 4 ++-- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/problems/number-to-string/problem.md b/problems/number-to-string/problem.md index d7e9a0f1..32af56d7 100644 --- a/problems/number-to-string/problem.md +++ b/problems/number-to-string/problem.md @@ -3,7 +3,7 @@ Sometimes you will need to turn a number into a string. In those instances you will use the `.toString()` method. Here's an example: ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_es.md b/problems/number-to-string/problem_es.md index c87fccac..f452b03f 100644 --- a/problems/number-to-string/problem_es.md +++ b/problems/number-to-string/problem_es.md @@ -3,7 +3,7 @@ A veces necesitarás convertir un número a una string. En esos casos, usarás el método `.toString()`. A continuación un ejemplo: ```js -const n = 256; +var n = 256; n.toString(); ``` diff --git a/problems/number-to-string/problem_fr.md b/problems/number-to-string/problem_fr.md index 873825db..adf18f2f 100644 --- a/problems/number-to-string/problem_fr.md +++ b/problems/number-to-string/problem_fr.md @@ -3,7 +3,7 @@ Vous devez parfois transformer un nombre en chaîne de caractère. Dans ces cas là, vous utiliserez la méthode `.toString()`. Voici un exemple : ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_it.md b/problems/number-to-string/problem_it.md index 8d489a95..03f1cbbd 100644 --- a/problems/number-to-string/problem_it.md +++ b/problems/number-to-string/problem_it.md @@ -3,7 +3,7 @@ A volte è necessario trasformare un numero in una stringa. In quei casi, userai il metodo `.toString()`. Ecco un esempio: ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ja.md b/problems/number-to-string/problem_ja.md index 3a6510f9..ce609f95 100644 --- a/problems/number-to-string/problem_ja.md +++ b/problems/number-to-string/problem_ja.md @@ -3,7 +3,7 @@ そういう時は `toString()` メソッドを使います。たとえば... ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ko.md b/problems/number-to-string/problem_ko.md index b3990b5b..53eaa997 100644 --- a/problems/number-to-string/problem_ko.md +++ b/problems/number-to-string/problem_ko.md @@ -3,7 +3,7 @@ 그런 경우에 `.toString()` 메소드를 사용하면 됩니다. 예제를 보세요. ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_nb-no.md b/problems/number-to-string/problem_nb-no.md index e214a294..2d876fcc 100644 --- a/problems/number-to-string/problem_nb-no.md +++ b/problems/number-to-string/problem_nb-no.md @@ -3,7 +3,7 @@ Noen ganger må du gjøre om et nummer til en string. I de tilfelle må du bruke `.toString()` metoden. Eksempel: ```js -const nummer = 256; +var nummer = 256; nummer = nummer.toString(); ``` diff --git a/problems/number-to-string/problem_pt-br.md b/problems/number-to-string/problem_pt-br.md index 29c34f95..0926c8ac 100644 --- a/problems/number-to-string/problem_pt-br.md +++ b/problems/number-to-string/problem_pt-br.md @@ -3,7 +3,7 @@ Nestas situações você usará o método `.toString()`. Veja um exemplo de como usá-lo: ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ru.md b/problems/number-to-string/problem_ru.md index b3363e7c..311e97d7 100644 --- a/problems/number-to-string/problem_ru.md +++ b/problems/number-to-string/problem_ru.md @@ -3,7 +3,7 @@ В этом случае используйте метод `.toString()`. Например: ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_uk.md b/problems/number-to-string/problem_uk.md index 6daeabd2..9fa7c451 100644 --- a/problems/number-to-string/problem_uk.md +++ b/problems/number-to-string/problem_uk.md @@ -3,7 +3,7 @@ В таких випадках ви можете використати метод `.toString()`. Ось приклад: ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_zh-cn.md b/problems/number-to-string/problem_zh-cn.md index bb74e5e3..58a2fe57 100644 --- a/problems/number-to-string/problem_zh-cn.md +++ b/problems/number-to-string/problem_zh-cn.md @@ -3,7 +3,7 @@ 这时,你可以使用 `.toString()` 方法。例如: ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_zh-tw.md b/problems/number-to-string/problem_zh-tw.md index 57ecf8e3..92901a5c 100644 --- a/problems/number-to-string/problem_zh-tw.md +++ b/problems/number-to-string/problem_zh-tw.md @@ -3,7 +3,7 @@ 這時,你可以使用 `.toString()` 方法。例如: ```js -const n = 256; +var n = 256; n = n.toString(); ``` diff --git a/solutions/number-to-string/index.js b/solutions/number-to-string/index.js index b23a907d..39cbd6b4 100644 --- a/solutions/number-to-string/index.js +++ b/solutions/number-to-string/index.js @@ -1,2 +1,2 @@ -const n = 128; -console.log(n.toString()); +var n = 128; +console.log(n.toString()); \ No newline at end of file From cf5d36e1f67026730886c9768060d13228362636 Mon Sep 17 00:00:00 2001 From: Aryan J Date: Sun, 21 Oct 2018 00:36:17 -0400 Subject: [PATCH 233/346] Update 'string' and 'for-loop' problems to use 'const' and 'let', respectively (#234) * Update 'string' problem to use 'const' * Update 'for-loop' problem to use 'let' --- problems/for-loop/problem.md | 4 ++-- problems/for-loop/problem_es.md | 4 ++-- problems/for-loop/problem_fr.md | 4 ++-- problems/for-loop/problem_it.md | 2 +- problems/for-loop/problem_ja.md | 4 ++-- problems/for-loop/problem_ko.md | 2 +- problems/for-loop/problem_nb-no.md | 2 +- problems/for-loop/problem_pt-br.md | 2 +- problems/for-loop/problem_ru.md | 4 ++-- problems/for-loop/problem_uk.md | 2 +- problems/for-loop/problem_zh-cn.md | 2 +- problems/for-loop/problem_zh-tw.md | 2 +- problems/strings/problem.md | 2 +- problems/strings/problem_es.md | 2 +- problems/strings/problem_fr.md | 2 +- problems/strings/problem_it.md | 2 +- problems/strings/problem_ja.md | 2 +- problems/strings/problem_ko.md | 2 +- problems/strings/problem_nb-no.md | 2 +- problems/strings/problem_pt-br.md | 2 +- problems/strings/problem_ru.md | 2 +- problems/strings/problem_uk.md | 2 +- problems/strings/problem_zh-cn.md | 2 +- problems/strings/problem_zh-tw.md | 2 +- solutions/for-loop/index.js | 6 +++--- 25 files changed, 32 insertions(+), 32 deletions(-) diff --git a/problems/for-loop/problem.md b/problems/for-loop/problem.md index f466f2b1..c404446c 100644 --- a/problems/for-loop/problem.md +++ b/problems/for-loop/problem.md @@ -1,13 +1,13 @@ For loops allow you to repeatedly run a block of code a certain number of times. This for loop logs to the console ten times: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // log the numbers 0 through 9 console.log(i) } ``` -The first part, `var i = 0`, is run once at the beginning of the loop. The variable `i` is used to track how many times the loop has run. +The first part, `let i = 0`, is run once at the beginning of the loop. The variable `i` is used to track how many times the loop has run. The second part, `i < 10`, is checked at the beginning of every loop iteration before running the code inside the loop. If the statement is true, the code inside the loop is executed. If it is false, then the loop is complete. The statement `i < 10;` indicates that the loop will continue as long as `i` is less than `10`. diff --git a/problems/for-loop/problem_es.md b/problems/for-loop/problem_es.md index 17ee5e11..a680d78f 100644 --- a/problems/for-loop/problem_es.md +++ b/problems/for-loop/problem_es.md @@ -1,14 +1,14 @@ Un bucle for es como lo siguiente: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // imprime los números del 0 al 9 console.log(i); } ``` La variable `i` es utilizada como contador, en ella se almacenará la cantidad de veces que se ejecutó el bucle. -La expresión `i < 10;` indica el limite de veces que se ejecutara el código dentro del bucle. +La expresión `i < 10;` indica el limite de veces que se ejecutara el código dentro del bucle. Este continuara iterando si `i` es menor que `10`. La expresión `i++` incrementa la variable `i` en uno por cada iteración. diff --git a/problems/for-loop/problem_fr.md b/problems/for-loop/problem_fr.md index 29cde4cb..5512ae93 100644 --- a/problems/for-loop/problem_fr.md +++ b/problems/for-loop/problem_fr.md @@ -1,13 +1,13 @@ Les boucles `for` vous permettent de répéter l'exécution d'un bloc de code un certain nombre de fois. Cette boucle `for` affiche dans la console dix fois : ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // affiche les nombres de 0 a 9 console.log(i) } ``` -La première partie, `var i = 0`, n'est exécutée qu'une fois au début de la boucle. La variable `i` est utilisée pour compter le nombre d'exécutions de la boucle. +La première partie, `let i = 0`, n'est exécutée qu'une fois au début de la boucle. La variable `i` est utilisée pour compter le nombre d'exécutions de la boucle. La seconde partie, `i < 10`, est vérifiée au début de chaque itération de la boucle avant que le code contenu ne s'exécute. Si la condition est valide, le code contenu dans la boucle est exécuté. Sinon, la boucle est terminée. La condition `i < 10;` indique que la boucle va continuer de s'exécuter tant que `i` est inférieur à `10`. diff --git a/problems/for-loop/problem_it.md b/problems/for-loop/problem_it.md index 12fe56d8..b4e0d6dd 100644 --- a/problems/for-loop/problem_it.md +++ b/problems/for-loop/problem_it.md @@ -1,7 +1,7 @@ I cicli for si presentano come il seguente: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // scrive i numeri da 0 a 9 console.log(i) } diff --git a/problems/for-loop/problem_ja.md b/problems/for-loop/problem_ja.md index 0e6197b6..c9440745 100644 --- a/problems/for-loop/problem_ja.md +++ b/problems/for-loop/problem_ja.md @@ -2,13 +2,13 @@ for ループを使うと、コードの塊を何回も繰り返し実行でき 次のfor ループはコンソールにログを10回書きます... ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // log the numbers 0 through 9 console.log(i) } ``` -for ループでは、最初の部分 `var i = 0` をループの最初に一回だけ実行します。 +for ループでは、最初の部分 `let i = 0` をループの最初に一回だけ実行します。 ループを実行した回数を数えるために、変数 `i` を使います。 第二の部分 `i < 10;` は、ループの繰り返し毎にチェックする条件式です。 diff --git a/problems/for-loop/problem_ko.md b/problems/for-loop/problem_ko.md index 9b07a5a3..895c38e2 100644 --- a/problems/for-loop/problem_ko.md +++ b/problems/for-loop/problem_ko.md @@ -1,7 +1,7 @@ for 반복문은 이렇게 생겼습니다. ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // log the numbers 0 through 9 console.log(i) } diff --git a/problems/for-loop/problem_nb-no.md b/problems/for-loop/problem_nb-no.md index ad354e48..438a09ea 100644 --- a/problems/for-loop/problem_nb-no.md +++ b/problems/for-loop/problem_nb-no.md @@ -1,7 +1,7 @@ For løkker ser slik ut: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // skriv ut nummerne fra 0 til 9 console.log(i) } diff --git a/problems/for-loop/problem_pt-br.md b/problems/for-loop/problem_pt-br.md index d3cc7c3d..ddcba834 100644 --- a/problems/for-loop/problem_pt-br.md +++ b/problems/for-loop/problem_pt-br.md @@ -1,7 +1,7 @@ Loops com *for* são dessa forma: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // log the numbers 0 through 9 console.log(i) } diff --git a/problems/for-loop/problem_ru.md b/problems/for-loop/problem_ru.md index dfc57bc0..a4383d31 100644 --- a/problems/for-loop/problem_ru.md +++ b/problems/for-loop/problem_ru.md @@ -2,13 +2,13 @@ Этот цикл for выводит значение переменной в консоль десять раз: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // выводим в консоль числа от 0 до 9 console.log(i) } ``` -Первая часть конструкции цикла for, `var i = 0`, выполняется один раз в начале работы цикла. При этом переменная `i` в данном примере используется для хранения количества итераций цикла. +Первая часть конструкции цикла for, `let i = 0`, выполняется один раз в начале работы цикла. При этом переменная `i` в данном примере используется для хранения количества итераций цикла. Условие `i < 10;` проверяется в начале каждой итерации перед выполнением блока кода, заданного внутри цикла. Если условие является верным, то блок кода внутри цикла будет выполнен. В противном случае выполнение цикла завершается. Выражение `i < 10;` задаёт предел выполнения цикла. Цикл будет выполняться до тех пор, пока `i` будет строго меньше `10`. diff --git a/problems/for-loop/problem_uk.md b/problems/for-loop/problem_uk.md index 2586c66b..f18c4dc9 100644 --- a/problems/for-loop/problem_uk.md +++ b/problems/for-loop/problem_uk.md @@ -1,7 +1,7 @@ Цикл for виглядає ось так: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // log the numbers 0 through 9 console.log(i) } diff --git a/problems/for-loop/problem_zh-cn.md b/problems/for-loop/problem_zh-cn.md index 79198b19..b0c5a493 100644 --- a/problems/for-loop/problem_zh-cn.md +++ b/problems/for-loop/problem_zh-cn.md @@ -1,7 +1,7 @@ For 循环看起来是这样的: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // log the numbers 0 through 9 console.log(i) } diff --git a/problems/for-loop/problem_zh-tw.md b/problems/for-loop/problem_zh-tw.md index 7c688e8b..b1f62882 100644 --- a/problems/for-loop/problem_zh-tw.md +++ b/problems/for-loop/problem_zh-tw.md @@ -1,7 +1,7 @@ For 迴圈看起來是這樣的: ```js -for (var i = 0; i < 10; i++) { +for (let i = 0; i < 10; i++) { // log the numbers 0 through 9 console.log(i) } diff --git a/problems/strings/problem.md b/problems/strings/problem.md index e9af830f..e8645292 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -21,7 +21,7 @@ For this challenge, create a file named `strings.js`. In that file create a variable named `someString` like this: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Use `console.log` to print the variable **someString** to the terminal. diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 7b1febd1..0151fc98 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -18,7 +18,7 @@ Para este ejercicio, crea un archivo llamado `strings.js`. En ese archivo define una variable llamada `someString` de la siguiente forma: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Utiliza `console.log` para imprimir la variable `someString` a la terminal. diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index 2a7550d4..4a3558ac 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -19,7 +19,7 @@ Pour ce défi, créez un fichier nommé `chaines.js`. Dans ce fichier, créez une variable nommée `someString` comme cela : ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Utilisez `console.log` pour afficher la variable **someString** dans le terminal. diff --git a/problems/strings/problem_it.md b/problems/strings/problem_it.md index e27c7221..590fb102 100644 --- a/problems/strings/problem_it.md +++ b/problems/strings/problem_it.md @@ -19,7 +19,7 @@ Per risolvere questa sfida, crea un file dal nome `strings.js`. In questo file crea una variabile dal nome `someString` come segue: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Usa `console.log` per stampare la variabile **someString** sul terminale. diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index b6c83cf4..766b4a83 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -17,7 +17,7 @@ ファイルの中で、次のように変数 `someString` を作りましょう。 ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` `console.log` を使い、変数 **someString** をターミナルに表示しましょう。 diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index 424caf7c..883c9440 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -19,7 +19,7 @@ 그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면 됩니다. ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` `console.log`를 사용해 **someString** 변수를 터미널에 출력합니다. diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index d7c15c69..9c13e1db 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -16,7 +16,7 @@ I denne oppgaven, lage en fil med navnet `strings.js`. Lage en variabel `someString`, slik som dette: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` For å skrive variabelen **someString** til skjermen kan du bruke `console.log`. diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index ce265c88..88634d84 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -18,7 +18,7 @@ Para este desafio, crie um arquivo chamado `strings.js`. No arquivo que foi criado, crie uma variável chamada `someString` da seguinte forma: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Use o `console.log` para imprimir a variável **someString** para o terminal. diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md index c32131c5..3022a642 100644 --- a/problems/strings/problem_ru.md +++ b/problems/strings/problem_ru.md @@ -19,7 +19,7 @@ В этом файле объявите переменную `someString` таким образом: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной **someString** в консоль. diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index fbb332cc..6ab8b865 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -18,7 +18,7 @@ У цьому файлі створіть змінну `someString` ось так: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Використайте `console.log`, щоб вивести змінну **someString** до терміналу. diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index bf81f93b..b2753459 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -18,7 +18,7 @@ 在文件中像这样创建一个名为 `someString` 的变量: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` 使用 `console.log` 打印变量 **someString** 到终端。 diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md index b94a5d73..1660b53c 100644 --- a/problems/strings/problem_zh-tw.md +++ b/problems/strings/problem_zh-tw.md @@ -18,7 +18,7 @@ 在該檔案中像這樣建立一個名為 `someString` 的變數: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` 使用 `console.log` 印出變數 **someString** 到終端機上。 diff --git a/solutions/for-loop/index.js b/solutions/for-loop/index.js index f5ce68da..0034b96b 100644 --- a/solutions/for-loop/index.js +++ b/solutions/for-loop/index.js @@ -1,7 +1,7 @@ -var total = 0; -var limit = 10; +const total = 0; +const limit = 10; -for (var i = 0; i < limit; i++) { +for (let i = 0; i < limit; i++) { total += i; } From bbe6820ab2520f8742230655d450e0b0316207c1 Mon Sep 17 00:00:00 2001 From: Kesler Tanner Date: Sat, 20 Oct 2018 21:37:32 -0700 Subject: [PATCH 234/346] Updating objects to use const instead of var (#244) --- problems/objects/problem.md | 4 ++-- problems/objects/problem_es.md | 4 ++-- problems/objects/problem_fr.md | 4 ++-- problems/objects/problem_it.md | 4 ++-- problems/objects/problem_ja.md | 4 ++-- problems/objects/problem_ko.md | 4 ++-- problems/objects/problem_nb-no.md | 4 ++-- problems/objects/problem_pt-br.md | 4 ++-- problems/objects/problem_ru.md | 4 ++-- problems/objects/problem_uk.md | 4 ++-- problems/objects/problem_zh-cn.md | 4 ++-- problems/objects/problem_zh-tw.md | 4 ++-- solutions/objects/index.js | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/problems/objects/problem.md b/problems/objects/problem.md index 5cbc2a88..8e69c4e4 100644 --- a/problems/objects/problem.md +++ b/problems/objects/problem.md @@ -3,7 +3,7 @@ Objects are lists of values similar to arrays, except values are identified by k Here is an example: ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' }; @@ -16,7 +16,7 @@ Create a file named `objects.js`. In that file, define a variable named `pizza` like this: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_es.md b/problems/objects/problem_es.md index a08287db..98e73abe 100644 --- a/problems/objects/problem_es.md +++ b/problems/objects/problem_es.md @@ -5,7 +5,7 @@ Tendrá ciertas **llaves** y cada una se verá referenciada a un **valor**. Por ejemplo: ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' } @@ -20,7 +20,7 @@ Crea un archivo llamado `objects.js`. En ese archivo, define una variable llamada `pizza` de la siguiente forma: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_fr.md b/problems/objects/problem_fr.md index d9ffc018..01ec752d 100644 --- a/problems/objects/problem_fr.md +++ b/problems/objects/problem_fr.md @@ -3,7 +3,7 @@ Les objets sont des listes de valeurs similaires aux tableaux, sauf que les vale Voici un exemple : ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' }; @@ -16,7 +16,7 @@ Créez un fichier nommé `objets.js`. Dans ce fichier, définissez une variable nommée `pizza` comme celà : ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_it.md b/problems/objects/problem_it.md index f305daad..3f8d32b4 100644 --- a/problems/objects/problem_it.md +++ b/problems/objects/problem_it.md @@ -3,7 +3,7 @@ Gli oggetti sono liste di valori simili agli array, con l'eccezione che i valori Ecco un esempio ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' }; @@ -16,7 +16,7 @@ Crea un file dal nome `objects.js`. In questo file, definisci una variabile chiamata `pizza` come segue: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_ja.md b/problems/objects/problem_ja.md index 466be02d..6ab16eef 100644 --- a/problems/objects/problem_ja.md +++ b/problems/objects/problem_ja.md @@ -4,7 +4,7 @@ ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' } @@ -19,7 +19,7 @@ var foodPreferences = { ファイルの中で、変数 `pizza` を次のようにして定義してください... ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_ko.md b/problems/objects/problem_ko.md index 967955be..470db97b 100644 --- a/problems/objects/problem_ko.md +++ b/problems/objects/problem_ko.md @@ -3,7 +3,7 @@ 예제를 보세요. ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' }; @@ -16,7 +16,7 @@ var foodPreferences = { 파일 안에서 이렇게 `pizza`라는 변수를 정의합니다. ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_nb-no.md b/problems/objects/problem_nb-no.md index ca74e2f3..e0844efc 100644 --- a/problems/objects/problem_nb-no.md +++ b/problems/objects/problem_nb-no.md @@ -3,7 +3,7 @@ Objekter er en samling verdier som arrayer, bortsett ifra at verdiene er identif Her er et eksempel: ```js -var favorittMat = { +const favorittMat = { pizza: 'nam', salat: 'fysjameg' } @@ -16,7 +16,7 @@ Lag en fil som heter `objects.js`. Definer en variabel `pizza` i den filen: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_pt-br.md b/problems/objects/problem_pt-br.md index 43918b8f..8bf947a2 100644 --- a/problems/objects/problem_pt-br.md +++ b/problems/objects/problem_pt-br.md @@ -3,7 +3,7 @@ Um objetos é uma lista de valores similar á um array, exceto que seus valores Aqui está um exemplo: ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' } @@ -16,7 +16,7 @@ Crie um arquivo chamado `objects.js`. Neste arquivo, defina uma variável chamada `pizza` desta forma: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_ru.md b/problems/objects/problem_ru.md index e1b9c729..7c3657a9 100644 --- a/problems/objects/problem_ru.md +++ b/problems/objects/problem_ru.md @@ -3,7 +3,7 @@ Например: ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' }; @@ -16,7 +16,7 @@ var foodPreferences = { В этом файле объявите следующим образом переменную `pizza`: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_uk.md b/problems/objects/problem_uk.md index cea45e57..46d088f5 100644 --- a/problems/objects/problem_uk.md +++ b/problems/objects/problem_uk.md @@ -3,7 +3,7 @@ Приклад: ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' }; @@ -16,7 +16,7 @@ salad: 'gross' У цьому файлі, оголосіть змінну `pizza` ось так: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_zh-cn.md b/problems/objects/problem_zh-cn.md index a6bf336b..9dd7006e 100644 --- a/problems/objects/problem_zh-cn.md +++ b/problems/objects/problem_zh-cn.md @@ -3,7 +3,7 @@ 例子: ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' } @@ -16,7 +16,7 @@ var foodPreferences = { 在文件里,像这样定义一个变量 `pizza`: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/problems/objects/problem_zh-tw.md b/problems/objects/problem_zh-tw.md index 5614d325..0652ae93 100644 --- a/problems/objects/problem_zh-tw.md +++ b/problems/objects/problem_zh-tw.md @@ -3,7 +3,7 @@ 範例: ```js -var foodPreferences = { +const foodPreferences = { pizza: 'yum', salad: 'gross' } @@ -16,7 +16,7 @@ var foodPreferences = { 在該檔案裡,像這樣定義一個變數 `pizza`: ```js -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 diff --git a/solutions/objects/index.js b/solutions/objects/index.js index aab99a87..627c3d25 100644 --- a/solutions/objects/index.js +++ b/solutions/objects/index.js @@ -1,4 +1,4 @@ -var pizza = { +const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2, From b0b874677ab8c0ba4e86faa5f5da83ab88fcba77 Mon Sep 17 00:00:00 2001 From: Kesler Tanner Date: Sat, 20 Oct 2018 21:38:34 -0700 Subject: [PATCH 235/346] Update object-properties to use const instead of var (#243) --- problems/object-properties/problem.md | 4 ++-- problems/object-properties/problem_es.md | 4 ++-- problems/object-properties/problem_fr.md | 4 ++-- problems/object-properties/problem_it.md | 4 ++-- problems/object-properties/problem_ja.md | 4 ++-- problems/object-properties/problem_ko.md | 4 ++-- problems/object-properties/problem_nb-no.md | 4 ++-- problems/object-properties/problem_pt-br.md | 4 ++-- problems/object-properties/problem_ru.md | 4 ++-- problems/object-properties/problem_uk.md | 4 ++-- problems/object-properties/problem_zh-cn.md | 4 ++-- problems/object-properties/problem_zh-tw.md | 4 ++-- solutions/object-properties/index.js | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/problems/object-properties/problem.md b/problems/object-properties/problem.md index 25284a7c..1e64fa72 100644 --- a/problems/object-properties/problem.md +++ b/problems/object-properties/problem.md @@ -3,7 +3,7 @@ You can access and manipulate object properties –– the keys and values that Here's an example using **square brackets**: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ Create a file named `object-properties.js`. In that file, define a variable named `food` like this: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_es.md b/problems/object-properties/problem_es.md index f847ad3b..92c4d0d8 100644 --- a/problems/object-properties/problem_es.md +++ b/problems/object-properties/problem_es.md @@ -3,7 +3,7 @@ Puedes acceder y manipular propiedades de objetos –– las **llaves** y **valo Un ejemplo usando **corchetes**: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ Crea un archivo llamado `object-properties.js`. En ese archivo, define una variable llamada `food` de la siguiente forma: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_fr.md b/problems/object-properties/problem_fr.md index fc610870..6aedae12 100644 --- a/problems/object-properties/problem_fr.md +++ b/problems/object-properties/problem_fr.md @@ -3,7 +3,7 @@ Vous pouvez manipuler les propriétés d'objets — les clés et valeurs qu'un o Voici un example utilisant des **crochets** : ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ Créez un fichier nommé `proprietes-objet.js`. Dans ce fichier, définissez une variable nommée `food` comme ceci : ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_it.md b/problems/object-properties/problem_it.md index a88c637e..d68728f9 100644 --- a/problems/object-properties/problem_it.md +++ b/problems/object-properties/problem_it.md @@ -3,7 +3,7 @@ Puoi accedere e manipolare proprietà degli oggetti –– le chiavi e i valori Ecco un esempio usando le **parentesi quadre**: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ Crea un file dal nome `object-properties.js`. In questo file, definisci una variabile chiamata `food` come segue: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_ja.md b/problems/object-properties/problem_ja.md index 1b1a52f9..ed82749a 100644 --- a/problems/object-properties/problem_ja.md +++ b/problems/object-properties/problem_ja.md @@ -5,7 +5,7 @@ 次の例のように角括弧を使います... ```js -var example = { +const example = { pizza: 'yummy' }; @@ -33,7 +33,7 @@ example['pizza']; ファイルの中で、変数 `food` を次のように定義してください... ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_ko.md b/problems/object-properties/problem_ko.md index 784ad895..74056ede 100644 --- a/problems/object-properties/problem_ko.md +++ b/problems/object-properties/problem_ko.md @@ -3,7 +3,7 @@ **대괄호**를 사용하는 예제입니다. ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ example['pizza']; 파일 안에서 `food`라는 변수를 이렇게 정의합니다. ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_nb-no.md b/problems/object-properties/problem_nb-no.md index eb223fd8..8e3cec03 100644 --- a/problems/object-properties/problem_nb-no.md +++ b/problems/object-properties/problem_nb-no.md @@ -3,7 +3,7 @@ Du kan bruke og endre objektegenskaper –– nøklene og verdiene et objekt inn Her er et eksempel som bruker **hakeparantes**: ```js -var eksempel = { +const eksempel = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ Lag en fil som heter `object-properties.js`. Definer en variabel med navnet `food` i den filen: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_pt-br.md b/problems/object-properties/problem_pt-br.md index b4001ea2..c0e338e6 100644 --- a/problems/object-properties/problem_pt-br.md +++ b/problems/object-properties/problem_pt-br.md @@ -3,7 +3,7 @@ Você pode acessar e manipular propriedades de objetos –– as chaves e valore Aqui está um exemplo usando **colchetes**: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ Crie um arquivo chamado `object-properties.js`. Neste arquivo, defina uma variável chamada `food` desta maneira: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_ru.md b/problems/object-properties/problem_ru.md index 75474453..723b83ed 100644 --- a/problems/object-properties/problem_ru.md +++ b/problems/object-properties/problem_ru.md @@ -3,7 +3,7 @@ Вот пример использования **квадратных скобок**: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ example['pizza']; В этом файле объявите следующим образом переменную `food`: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_uk.md b/problems/object-properties/problem_uk.md index cc4a4404..e681f7de 100644 --- a/problems/object-properties/problem_uk.md +++ b/problems/object-properties/problem_uk.md @@ -3,7 +3,7 @@ Це приклад з **квадратними дужками**: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ example['pizza']; У цьому файлі оголосити змінну під назвою `food` ось так: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_zh-cn.md b/problems/object-properties/problem_zh-cn.md index 1c2cc576..9b0fb9ed 100644 --- a/problems/object-properties/problem_zh-cn.md +++ b/problems/object-properties/problem_zh-cn.md @@ -3,7 +3,7 @@ 这里是一个使用**方括号**的例子: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ example['pizza']; 在文件中,像这样定义名为 `food` 的变量: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/problems/object-properties/problem_zh-tw.md b/problems/object-properties/problem_zh-tw.md index 5468f5ba..58fde2f5 100644 --- a/problems/object-properties/problem_zh-tw.md +++ b/problems/object-properties/problem_zh-tw.md @@ -3,7 +3,7 @@ 這裡是一個使用**中括號**的例子: ```js -var example = { +const example = { pizza: 'yummy' }; @@ -29,7 +29,7 @@ example['pizza']; 在該檔案中,像這樣定義一個名為 `food` 的變數: ```js -var food = { +const food = { types: 'only pizza' }; ``` diff --git a/solutions/object-properties/index.js b/solutions/object-properties/index.js index 1dba17f3..4433c25e 100644 --- a/solutions/object-properties/index.js +++ b/solutions/object-properties/index.js @@ -1,4 +1,4 @@ -var food = { +const food = { types: 'only pizza' }; From dfb268cd49add7a7fd8eaf78d1e22060d76d907d Mon Sep 17 00:00:00 2001 From: Kesler Tanner Date: Sat, 20 Oct 2018 21:40:06 -0700 Subject: [PATCH 236/346] Update revising-strings to use let instead of var (#242) --- problems/revising-strings/problem.md | 2 +- problems/revising-strings/problem_es.md | 2 +- problems/revising-strings/problem_fr.md | 2 +- problems/revising-strings/problem_it.md | 2 +- problems/revising-strings/problem_ja.md | 2 +- problems/revising-strings/problem_ko.md | 2 +- problems/revising-strings/problem_nb-no.md | 2 +- problems/revising-strings/problem_pt-br.md | 2 +- problems/revising-strings/problem_ru.md | 2 +- problems/revising-strings/problem_uk.md | 2 +- problems/revising-strings/problem_zh-cn.md | 2 +- problems/revising-strings/problem_zh-tw.md | 2 +- solutions/revising-strings/index.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/problems/revising-strings/problem.md b/problems/revising-strings/problem.md index 94b023a1..2a77b7eb 100644 --- a/problems/revising-strings/problem.md +++ b/problems/revising-strings/problem.md @@ -5,7 +5,7 @@ Strings have built-in functionality that allow you to inspect and manipulate the Here is an example using the `.replace()` method: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_es.md b/problems/revising-strings/problem_es.md index 5dbc4266..00f2a9a5 100644 --- a/problems/revising-strings/problem_es.md +++ b/problems/revising-strings/problem_es.md @@ -5,7 +5,7 @@ Las strings tienen una funcionalidad por defecto que te permite reemplazar carac Por ejemplo a continuación veremos un uso del método `.replace()`: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_fr.md b/problems/revising-strings/problem_fr.md index 5a21fb43..ca6c8550 100644 --- a/problems/revising-strings/problem_fr.md +++ b/problems/revising-strings/problem_fr.md @@ -5,7 +5,7 @@ Les chaînes de caractères ont des fonctionnalités directement intégrées qui Voici un exemple qui utilise la méthode `.replace()` : ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_it.md b/problems/revising-strings/problem_it.md index 29d7f8db..a33ede92 100644 --- a/problems/revising-strings/problem_it.md +++ b/problems/revising-strings/problem_it.md @@ -5,7 +5,7 @@ Le stringhe possiedono funzionalità integrata che ti permette di ispezionarne e Ecco un esempio che usa il metodo `.replace()`: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_ja.md b/problems/revising-strings/problem_ja.md index 2d99484d..48e64a71 100644 --- a/problems/revising-strings/problem_ja.md +++ b/problems/revising-strings/problem_ja.md @@ -5,7 +5,7 @@ たとえば `.replace()` メソッドは次のように使います... ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_ko.md b/problems/revising-strings/problem_ko.md index c359eccf..86d0f2cd 100644 --- a/problems/revising-strings/problem_ko.md +++ b/problems/revising-strings/problem_ko.md @@ -5,7 +5,7 @@ `.replace()` 메소드를 사용하는 예제입니다. ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_nb-no.md b/problems/revising-strings/problem_nb-no.md index 574f1621..b06233e0 100644 --- a/problems/revising-strings/problem_nb-no.md +++ b/problems/revising-strings/problem_nb-no.md @@ -5,7 +5,7 @@ Stringer har innebygd funksjonalitet som lar de manipulere og se på innholdet. Her er et eksempel som bruker `.replace()` metoden: ```js -var example = 'dette eksemplet er kjedelig'; +let example = 'dette eksemplet er kjedelig'; example = example.replace('kjedelig', 'kult'); console.log(example); ``` diff --git a/problems/revising-strings/problem_pt-br.md b/problems/revising-strings/problem_pt-br.md index 9bcaefc1..732ad6be 100644 --- a/problems/revising-strings/problem_pt-br.md +++ b/problems/revising-strings/problem_pt-br.md @@ -5,7 +5,7 @@ As strings tem funcionalidades que te permitem inspecionar e manipular seus cont Aqui está um exemplo que usa o método `.replace()`: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_ru.md b/problems/revising-strings/problem_ru.md index a6feb156..73b5c519 100644 --- a/problems/revising-strings/problem_ru.md +++ b/problems/revising-strings/problem_ru.md @@ -5,7 +5,7 @@ Рассмотрим пример использования метода `.replace()`: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_uk.md b/problems/revising-strings/problem_uk.md index 26dad2a7..b617c7ee 100644 --- a/problems/revising-strings/problem_uk.md +++ b/problems/revising-strings/problem_uk.md @@ -5,7 +5,7 @@ Ось приклад використання методу `.replace()`: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_zh-cn.md b/problems/revising-strings/problem_zh-cn.md index 93714c45..275a6d54 100644 --- a/problems/revising-strings/problem_zh-cn.md +++ b/problems/revising-strings/problem_zh-cn.md @@ -5,7 +5,7 @@ 这里是一个使用 `.replace()` 方法的例子: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/problems/revising-strings/problem_zh-tw.md b/problems/revising-strings/problem_zh-tw.md index 17cd72c3..77b0750b 100644 --- a/problems/revising-strings/problem_zh-tw.md +++ b/problems/revising-strings/problem_zh-tw.md @@ -5,7 +5,7 @@ 這裡是一個使用 `.replace()` 方法的例子: ```js -var example = 'this example exists'; +let example = 'this example exists'; example = example.replace('exists', 'is awesome'); console.log(example); ``` diff --git a/solutions/revising-strings/index.js b/solutions/revising-strings/index.js index c3edf5ac..0434b940 100644 --- a/solutions/revising-strings/index.js +++ b/solutions/revising-strings/index.js @@ -1,3 +1,3 @@ -var pizza = 'pizza is alright'; +let pizza = 'pizza is alright'; pizza = pizza.replace('alright', 'wonderful'); console.log(pizza); \ No newline at end of file From d6163aaf14ed8e949ac63cf48bfdd46ca5afda28 Mon Sep 17 00:00:00 2001 From: Kesler Tanner Date: Sat, 20 Oct 2018 21:40:45 -0700 Subject: [PATCH 237/346] Update string-length to use const instead of var (#241) --- problems/string-length/problem.md | 2 +- problems/string-length/problem_es.md | 2 +- problems/string-length/problem_fr.md | 2 +- problems/string-length/problem_it.md | 2 +- problems/string-length/problem_ja.md | 2 +- problems/string-length/problem_ko.md | 2 +- problems/string-length/problem_nb-no.md | 2 +- problems/string-length/problem_pt-br.md | 2 +- problems/string-length/problem_ru.md | 2 +- problems/string-length/problem_uk.md | 2 +- problems/string-length/problem_zh-cn.md | 2 +- problems/string-length/problem_zh-tw.md | 2 +- solutions/string-length/index.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/problems/string-length/problem.md b/problems/string-length/problem.md index 443015ba..4fb4b8f5 100644 --- a/problems/string-length/problem.md +++ b/problems/string-length/problem.md @@ -3,7 +3,7 @@ You will often need to know how many characters are in a string. For this you will use the `.length` property. Here's an example: ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_es.md b/problems/string-length/problem_es.md index 4240da47..0d5f3f10 100644 --- a/problems/string-length/problem_es.md +++ b/problems/string-length/problem_es.md @@ -3,7 +3,7 @@ Muy seguido necesitarás saber cuantos caracteres hay en una string. Para esto, usarás la propiedad `.length`. Por ejemplo: ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_fr.md b/problems/string-length/problem_fr.md index 408ead1a..212d2cd4 100644 --- a/problems/string-length/problem_fr.md +++ b/problems/string-length/problem_fr.md @@ -3,7 +3,7 @@ Vous allez assez souvent avoir besoin de savoir combien de caractères sont cont Pour cela vous allez utiliser la propriété `.length`. Voici un exemple : ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_it.md b/problems/string-length/problem_it.md index 3558c74a..13e9f224 100644 --- a/problems/string-length/problem_it.md +++ b/problems/string-length/problem_it.md @@ -3,7 +3,7 @@ Avrai spesso bisogno di conoscere quanti caratteri vi siano in una stringa. A questo scopo userai la proprietà `.length`. Ecco un esempio: ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_ja.md b/problems/string-length/problem_ja.md index 82571e5e..d176046d 100644 --- a/problems/string-length/problem_ja.md +++ b/problems/string-length/problem_ja.md @@ -3,7 +3,7 @@ そういう時は `.length` プロパティを使います。たとえば... ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_ko.md b/problems/string-length/problem_ko.md index 5e396c97..87afbcf4 100644 --- a/problems/string-length/problem_ko.md +++ b/problems/string-length/problem_ko.md @@ -3,7 +3,7 @@ 이는 `.length` 속성을 이용하면 알 수 있습니다. 다음 예제를 보세요. ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_nb-no.md b/problems/string-length/problem_nb-no.md index e1aec40c..40848e21 100644 --- a/problems/string-length/problem_nb-no.md +++ b/problems/string-length/problem_nb-no.md @@ -3,7 +3,7 @@ Du har ofte behov for å vite hvor mange tegn det er i en streng. For å finne ut det kan du bruke `.length` egenskapen. Slik som dette: ```js -var example = 'eksempel streng'; +const example = 'eksempel streng'; example.length ``` diff --git a/problems/string-length/problem_pt-br.md b/problems/string-length/problem_pt-br.md index 1083625d..e4a901e1 100644 --- a/problems/string-length/problem_pt-br.md +++ b/problems/string-length/problem_pt-br.md @@ -3,7 +3,7 @@ Você irá frequentemente precisar saber quantos caracteres estão em uma string Para isso você usará a propriedade `.length` da string. Aqui está um exemplo: ```js -var example = 'example string'; +const example = 'example string'; example.length; ``` diff --git a/problems/string-length/problem_ru.md b/problems/string-length/problem_ru.md index ea0a9c68..44a932d2 100644 --- a/problems/string-length/problem_ru.md +++ b/problems/string-length/problem_ru.md @@ -3,7 +3,7 @@ Для этого мы будем использовать свойство `.length`. Например: ```js -var example = 'example string'; +const example = 'example string'; example.length; ``` diff --git a/problems/string-length/problem_uk.md b/problems/string-length/problem_uk.md index 07443097..3102b0b9 100644 --- a/problems/string-length/problem_uk.md +++ b/problems/string-length/problem_uk.md @@ -3,7 +3,7 @@ Для цього ви можете використати властивість `.length`. Ось приклад: ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_zh-cn.md b/problems/string-length/problem_zh-cn.md index 51efd2e3..fb09d040 100644 --- a/problems/string-length/problem_zh-cn.md +++ b/problems/string-length/problem_zh-cn.md @@ -3,7 +3,7 @@ 你可以使用 `.length` 来得到它。下面是一个例子: ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/problems/string-length/problem_zh-tw.md b/problems/string-length/problem_zh-tw.md index e279c05e..4f825b50 100644 --- a/problems/string-length/problem_zh-tw.md +++ b/problems/string-length/problem_zh-tw.md @@ -3,7 +3,7 @@ 你可以使用 `.length` 來得到它。下面是一個例子: ```js -var example = 'example string'; +const example = 'example string'; example.length ``` diff --git a/solutions/string-length/index.js b/solutions/string-length/index.js index a0d32b65..25909c89 100644 --- a/solutions/string-length/index.js +++ b/solutions/string-length/index.js @@ -1,2 +1,2 @@ -var example = 'example string'; +const example = 'example string'; console.log(example.length); \ No newline at end of file From 63a3099573b4920af793a5a4c1c2ad2a89f8359f Mon Sep 17 00:00:00 2001 From: Elias Hjelm <33635009+EliasHjelm@users.noreply.github.com> Date: Sun, 21 Oct 2018 06:46:09 +0200 Subject: [PATCH 238/346] fix: 'var' to 'const' in array-filtering (#236) --- problems/array-filtering/problem.md | 4 ++-- problems/array-filtering/problem_es.md | 4 ++-- problems/array-filtering/problem_fr.md | 4 ++-- problems/array-filtering/problem_it.md | 4 ++-- problems/array-filtering/problem_ja.md | 4 ++-- problems/array-filtering/problem_ko.md | 4 ++-- problems/array-filtering/problem_nb-no.md | 4 ++-- problems/array-filtering/problem_pt-br.md | 4 ++-- problems/array-filtering/problem_ru.md | 4 ++-- problems/array-filtering/problem_uk.md | 4 ++-- problems/array-filtering/problem_zh-cn.md | 4 ++-- problems/array-filtering/problem_zh-tw.md | 4 ++-- solutions/array-filtering/index.js | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/problems/array-filtering/problem.md b/problems/array-filtering/problem.md index f4192c7c..5b1e8d66 100644 --- a/problems/array-filtering/problem.md +++ b/problems/array-filtering/problem.md @@ -7,9 +7,9 @@ For this we can use the `.filter()` method. Here is an example: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_es.md b/problems/array-filtering/problem_es.md index efdb0760..652b90a6 100644 --- a/problems/array-filtering/problem_es.md +++ b/problems/array-filtering/problem_es.md @@ -13,9 +13,9 @@ Para esto podemos utilizar el método `.filter`. Por ejemplo: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_fr.md b/problems/array-filtering/problem_fr.md index 588eff16..f72339b4 100644 --- a/problems/array-filtering/problem_fr.md +++ b/problems/array-filtering/problem_fr.md @@ -7,9 +7,9 @@ Pour cela nous pouvons utiliser la méthode `.filter()`. Voici un exemple : ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_it.md b/problems/array-filtering/problem_it.md index b91c430a..c1df8ee8 100644 --- a/problems/array-filtering/problem_it.md +++ b/problems/array-filtering/problem_it.md @@ -7,9 +7,9 @@ Per fare ciò possiamo utilizzare il metodo `.filter()`. Ecco un esempio: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_ja.md b/problems/array-filtering/problem_ja.md index 3471d455..e1c57683 100644 --- a/problems/array-filtering/problem_ja.md +++ b/problems/array-filtering/problem_ja.md @@ -7,9 +7,9 @@ たとえば... ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_ko.md b/problems/array-filtering/problem_ko.md index 1213eb74..fda147d5 100644 --- a/problems/array-filtering/problem_ko.md +++ b/problems/array-filtering/problem_ko.md @@ -7,9 +7,9 @@ 여기에 예제가 있습니다. ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_nb-no.md b/problems/array-filtering/problem_nb-no.md index 4a92f13b..95666a63 100644 --- a/problems/array-filtering/problem_nb-no.md +++ b/problems/array-filtering/problem_nb-no.md @@ -7,9 +7,9 @@ For det kan vi bruke `.filter()` metoden. Her er et eksempel: ```js -var dyr = ['katt', 'hund', 'elefant']; +const dyr = ['katt', 'hund', 'elefant']; -var filtrert = dyr.filter(function (ettDyr) { +const filtrert = dyr.filter(function (ettDyr) { return (ettDyr !== 'elefant'); }); ``` diff --git a/problems/array-filtering/problem_pt-br.md b/problems/array-filtering/problem_pt-br.md index 4504d5c0..8e63ce82 100644 --- a/problems/array-filtering/problem_pt-br.md +++ b/problems/array-filtering/problem_pt-br.md @@ -7,9 +7,9 @@ Para isso podemos usar o método `.filter()`. Aqui está um exemplo: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_ru.md b/problems/array-filtering/problem_ru.md index 586f9690..c2a38be4 100644 --- a/problems/array-filtering/problem_ru.md +++ b/problems/array-filtering/problem_ru.md @@ -7,9 +7,9 @@ Например: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_uk.md b/problems/array-filtering/problem_uk.md index 4b7ab3f3..36a6ce2b 100644 --- a/problems/array-filtering/problem_uk.md +++ b/problems/array-filtering/problem_uk.md @@ -7,9 +7,9 @@ Приклад: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_zh-cn.md b/problems/array-filtering/problem_zh-cn.md index 4a78fbf7..0aef1318 100644 --- a/problems/array-filtering/problem_zh-cn.md +++ b/problems/array-filtering/problem_zh-cn.md @@ -7,9 +7,9 @@ 下面是一个例子: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/problems/array-filtering/problem_zh-tw.md b/problems/array-filtering/problem_zh-tw.md index a22c2fbd..d71e0844 100644 --- a/problems/array-filtering/problem_zh-tw.md +++ b/problems/array-filtering/problem_zh-tw.md @@ -7,9 +7,9 @@ 下面是一個例子: ```js -var pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant']; -var filtered = pets.filter(function (pet) { +const filtered = pets.filter(function (pet) { return (pet !== 'elephant'); }); ``` diff --git a/solutions/array-filtering/index.js b/solutions/array-filtering/index.js index b65e18cd..d28443f1 100644 --- a/solutions/array-filtering/index.js +++ b/solutions/array-filtering/index.js @@ -1,6 +1,6 @@ -var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; -var filtered = numbers.filter(function (number) { +const filtered = numbers.filter(function (number) { return (number % 2) === 0; }); From 1cdc744ea97971dbca2ac8866235bdb8d12a9263 Mon Sep 17 00:00:00 2001 From: Elias Hjelm <33635009+EliasHjelm@users.noreply.github.com> Date: Sun, 21 Oct 2018 06:48:58 +0200 Subject: [PATCH 239/346] fix: change 'var' to 'let'/'const' in for-loops (#235) * Changed 'var' to 'let' in for-loops * fix: 'var' to 'let' & 'const' in solutions --- solutions/for-loop/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solutions/for-loop/index.js b/solutions/for-loop/index.js index 0034b96b..6359c9aa 100644 --- a/solutions/for-loop/index.js +++ b/solutions/for-loop/index.js @@ -1,4 +1,4 @@ -const total = 0; +let total = 0; const limit = 10; for (let i = 0; i < limit; i++) { From 37716b492edaaac33a45560aa3bd99a8dd644e39 Mon Sep 17 00:00:00 2001 From: Elias Hjelm <33635009+EliasHjelm@users.noreply.github.com> Date: Sun, 21 Oct 2018 06:51:38 +0200 Subject: [PATCH 240/346] fix: 'var' to 'const' in if-statement solution (#237) --- solutions/if-statement/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solutions/if-statement/index.js b/solutions/if-statement/index.js index 830656f0..34cc6ba8 100644 --- a/solutions/if-statement/index.js +++ b/solutions/if-statement/index.js @@ -1,4 +1,4 @@ -var fruit = 'orange'; +const fruit = 'orange'; if (fruit.length > 5) { console.log('The fruit name has more than five characters.'); } else { From d22f00f1f6f4b44c2a314f1b164ba2a0f9b5a47d Mon Sep 17 00:00:00 2001 From: Elias Hjelm <33635009+EliasHjelm@users.noreply.github.com> Date: Sun, 21 Oct 2018 07:14:00 +0200 Subject: [PATCH 241/346] fix: 'var' to 'let' & 'const' in looping-through-arrays (#238) --- problems/looping-through-arrays/problem.md | 2 +- problems/looping-through-arrays/problem_es.md | 2 +- problems/looping-through-arrays/problem_fr.md | 2 +- problems/looping-through-arrays/problem_it.md | 2 +- problems/looping-through-arrays/problem_ja.md | 2 +- problems/looping-through-arrays/problem_ko.md | 2 +- problems/looping-through-arrays/problem_nb-no.md | 2 +- problems/looping-through-arrays/problem_pt-br.md | 2 +- problems/looping-through-arrays/problem_ru.md | 2 +- problems/looping-through-arrays/problem_uk.md | 2 +- problems/looping-through-arrays/problem_zh-cn.md | 2 +- problems/looping-through-arrays/problem_zh-tw.md | 2 +- solutions/looping-through-arrays/index.js | 4 ++-- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/problems/looping-through-arrays/problem.md b/problems/looping-through-arrays/problem.md index da41e6ff..c792bed1 100644 --- a/problems/looping-through-arrays/problem.md +++ b/problems/looping-through-arrays/problem.md @@ -7,7 +7,7 @@ Each item in an array is identified by a number, starting at `0`. So in this array `hi` is identified by the number `1`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` It can be accessed like this: diff --git a/problems/looping-through-arrays/problem_es.md b/problems/looping-through-arrays/problem_es.md index ab5f5fd0..8d4708dd 100644 --- a/problems/looping-through-arrays/problem_es.md +++ b/problems/looping-through-arrays/problem_es.md @@ -9,7 +9,7 @@ Los índices comienzan desde el cero. Entonces en este array, el elemento `hi` es identificado por el número `1`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` Puede ser accedido de la siguiente forma: diff --git a/problems/looping-through-arrays/problem_fr.md b/problems/looping-through-arrays/problem_fr.md index e9d5f8cc..390d49c7 100644 --- a/problems/looping-through-arrays/problem_fr.md +++ b/problems/looping-through-arrays/problem_fr.md @@ -7,7 +7,7 @@ Chaque élément du tableau est identifié par un nombre, commençant à `0`. Donc dans ce tableau, `hi` est identifié par le nombre `1` : ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` On peut y accéder comme ceci : diff --git a/problems/looping-through-arrays/problem_it.md b/problems/looping-through-arrays/problem_it.md index 985d18af..c9b4a527 100644 --- a/problems/looping-through-arrays/problem_it.md +++ b/problems/looping-through-arrays/problem_it.md @@ -7,7 +7,7 @@ Ciascun elemento di un array è identificato da un numero, a iniziare dallo `0`. Quindi in questo array `hi` è identificato dal numero `1`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` E può essere acceduto come segue: diff --git a/problems/looping-through-arrays/problem_ja.md b/problems/looping-through-arrays/problem_ja.md index fa9514e8..ce7ab9e0 100644 --- a/problems/looping-through-arrays/problem_ja.md +++ b/problems/looping-through-arrays/problem_ja.md @@ -7,7 +7,7 @@ たとえば、次の配列内の `hi` は、数値 `1` で識別できます... ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` 次のようにアクセスします... diff --git a/problems/looping-through-arrays/problem_ko.md b/problems/looping-through-arrays/problem_ko.md index f941f32e..fa2351ea 100644 --- a/problems/looping-through-arrays/problem_ko.md +++ b/problems/looping-through-arrays/problem_ko.md @@ -7,7 +7,7 @@ 그래서 이 배열의 `hi`는 숫자 `1`로 확인할 수 있습니다. ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` 이렇게 접근할 수 있습니다. diff --git a/problems/looping-through-arrays/problem_nb-no.md b/problems/looping-through-arrays/problem_nb-no.md index ff93a7c9..68bf52e8 100644 --- a/problems/looping-through-arrays/problem_nb-no.md +++ b/problems/looping-through-arrays/problem_nb-no.md @@ -7,7 +7,7 @@ Hvert innslag i et array identifiseres med et nummer, fra og med `0`. Så i denne arrayet er `hei` identifisert ved nummeret `1`: ```js -var hilsinger = ['hallo', 'hei', 'god morgen']; +const hilsinger = ['hallo', 'hei', 'god morgen']; ``` Verdien kan nås slik som dette: diff --git a/problems/looping-through-arrays/problem_pt-br.md b/problems/looping-through-arrays/problem_pt-br.md index 121d0108..4b9acf0c 100644 --- a/problems/looping-through-arrays/problem_pt-br.md +++ b/problems/looping-through-arrays/problem_pt-br.md @@ -7,7 +7,7 @@ Cada item em um array é identificado por um número inteiro, começando do `0`. Então neste array a string `hi` é identificada pelo número `1`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` Podemos acessá-la dessa forma: diff --git a/problems/looping-through-arrays/problem_ru.md b/problems/looping-through-arrays/problem_ru.md index a66161f1..a76f87ba 100644 --- a/problems/looping-through-arrays/problem_ru.md +++ b/problems/looping-through-arrays/problem_ru.md @@ -7,7 +7,7 @@ Например в этом массиве элементу `hi` соответствует номер `1`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` Получить доступ к нему можно вот так: diff --git a/problems/looping-through-arrays/problem_uk.md b/problems/looping-through-arrays/problem_uk.md index faa3d1fd..85cff568 100644 --- a/problems/looping-through-arrays/problem_uk.md +++ b/problems/looping-through-arrays/problem_uk.md @@ -7,7 +7,7 @@ Тому в цьому масиві `hi` ідентифікується числом `1`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` Доступ до нього можна отримати так: diff --git a/problems/looping-through-arrays/problem_zh-cn.md b/problems/looping-through-arrays/problem_zh-cn.md index 80af8335..79f1b4bc 100644 --- a/problems/looping-through-arrays/problem_zh-cn.md +++ b/problems/looping-through-arrays/problem_zh-cn.md @@ -7,7 +7,7 @@ 所以下面的数组中,数字 `1` 标识了 `hi`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` 于是,`hi` 就可以像这样被访问: diff --git a/problems/looping-through-arrays/problem_zh-tw.md b/problems/looping-through-arrays/problem_zh-tw.md index 6491b0e5..9dd39491 100644 --- a/problems/looping-through-arrays/problem_zh-tw.md +++ b/problems/looping-through-arrays/problem_zh-tw.md @@ -7,7 +7,7 @@ 所以下面的陣列中,數字 `1` 標識了 `hi`: ```js -var greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning']; ``` 於是,`hi` 就可以像這樣被存取: diff --git a/solutions/looping-through-arrays/index.js b/solutions/looping-through-arrays/index.js index bd242e35..3fe58fd4 100644 --- a/solutions/looping-through-arrays/index.js +++ b/solutions/looping-through-arrays/index.js @@ -1,6 +1,6 @@ -var pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat']; -for (var i=0; i Date: Sun, 21 Oct 2018 10:46:57 +0530 Subject: [PATCH 242/346] Revert "changes var to const in strings (#248)" (#251) This reverts commit 016f878d9207f40fe86e2b99504b0545daa5a024. --- problems/strings/problem.md | 2 +- problems/strings/problem_es.md | 2 +- problems/strings/problem_fr.md | 2 +- problems/strings/problem_it.md | 2 +- problems/strings/problem_ja.md | 2 +- problems/strings/problem_ko.md | 2 +- problems/strings/problem_nb-no.md | 2 +- problems/strings/problem_pt-br.md | 2 +- problems/strings/problem_ru.md | 2 +- problems/strings/problem_uk.md | 2 +- problems/strings/problem_zh-cn.md | 2 +- problems/strings/problem_zh-tw.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/problems/strings/problem.md b/problems/strings/problem.md index e8645292..e9af830f 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -21,7 +21,7 @@ For this challenge, create a file named `strings.js`. In that file create a variable named `someString` like this: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` Use `console.log` to print the variable **someString** to the terminal. diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 0151fc98..7b1febd1 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -18,7 +18,7 @@ Para este ejercicio, crea un archivo llamado `strings.js`. En ese archivo define una variable llamada `someString` de la siguiente forma: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` Utiliza `console.log` para imprimir la variable `someString` a la terminal. diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index 4a3558ac..2a7550d4 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -19,7 +19,7 @@ Pour ce défi, créez un fichier nommé `chaines.js`. Dans ce fichier, créez une variable nommée `someString` comme cela : ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` Utilisez `console.log` pour afficher la variable **someString** dans le terminal. diff --git a/problems/strings/problem_it.md b/problems/strings/problem_it.md index 590fb102..e27c7221 100644 --- a/problems/strings/problem_it.md +++ b/problems/strings/problem_it.md @@ -19,7 +19,7 @@ Per risolvere questa sfida, crea un file dal nome `strings.js`. In questo file crea una variabile dal nome `someString` come segue: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` Usa `console.log` per stampare la variabile **someString** sul terminale. diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index 766b4a83..b6c83cf4 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -17,7 +17,7 @@ ファイルの中で、次のように変数 `someString` を作りましょう。 ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` `console.log` を使い、変数 **someString** をターミナルに表示しましょう。 diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index 883c9440..424caf7c 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -19,7 +19,7 @@ 그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면 됩니다. ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` `console.log`를 사용해 **someString** 변수를 터미널에 출력합니다. diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index 9c13e1db..d7c15c69 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -16,7 +16,7 @@ I denne oppgaven, lage en fil med navnet `strings.js`. Lage en variabel `someString`, slik som dette: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` For å skrive variabelen **someString** til skjermen kan du bruke `console.log`. diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index 88634d84..ce265c88 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -18,7 +18,7 @@ Para este desafio, crie um arquivo chamado `strings.js`. No arquivo que foi criado, crie uma variável chamada `someString` da seguinte forma: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` Use o `console.log` para imprimir a variável **someString** para o terminal. diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md index 3022a642..c32131c5 100644 --- a/problems/strings/problem_ru.md +++ b/problems/strings/problem_ru.md @@ -19,7 +19,7 @@ В этом файле объявите переменную `someString` таким образом: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной **someString** в консоль. diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index 6ab8b865..fbb332cc 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -18,7 +18,7 @@ У цьому файлі створіть змінну `someString` ось так: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` Використайте `console.log`, щоб вивести змінну **someString** до терміналу. diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index b2753459..bf81f93b 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -18,7 +18,7 @@ 在文件中像这样创建一个名为 `someString` 的变量: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` 使用 `console.log` 打印变量 **someString** 到终端。 diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md index 1660b53c..b94a5d73 100644 --- a/problems/strings/problem_zh-tw.md +++ b/problems/strings/problem_zh-tw.md @@ -18,7 +18,7 @@ 在該檔案中像這樣建立一個名為 `someString` 的變數: ```js -const someString = 'this is a string'; +var someString = 'this is a string'; ``` 使用 `console.log` 印出變數 **someString** 到終端機上。 From 3f466d3880ccd8931c5794ea0db5e54c62396fb6 Mon Sep 17 00:00:00 2001 From: Aleksei Pudnikov Date: Sun, 21 Oct 2018 11:05:20 +0300 Subject: [PATCH 243/346] changes var to const in rounding-numbers (#253) --- solutions/rounding-numbers/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/rounding-numbers/index.js b/solutions/rounding-numbers/index.js index a99123dd..4ffe3fe9 100644 --- a/solutions/rounding-numbers/index.js +++ b/solutions/rounding-numbers/index.js @@ -1,3 +1,3 @@ -var roundUp = 1.5; -var rounded = Math.round(roundUp); +const roundUp = 1.5; +const rounded = Math.round(roundUp); console.log(rounded); \ No newline at end of file From 77ffba2934ed363bae7b16b590fa9520dbe2867f Mon Sep 17 00:00:00 2001 From: Aleksei Pudnikov Date: Sun, 21 Oct 2018 11:07:02 +0300 Subject: [PATCH 244/346] changes var to let in scope, fix indent(#247) --- problems/scope/problem.md | 50 ++++++++++++++++--------------- problems/scope/problem_es.md | 49 +++++++++++++++---------------- problems/scope/problem_fr.md | 51 ++++++++++++++++---------------- problems/scope/problem_it.md | 48 +++++++++++++++--------------- problems/scope/problem_ja.md | 40 ++++++++++++------------- problems/scope/problem_ko.md | 50 +++++++++++++++---------------- problems/scope/problem_nb-no.md | 41 +++++++++++++------------- problems/scope/problem_pt-br.md | 52 ++++++++++++++++----------------- problems/scope/problem_ru.md | 34 ++++++++++----------- problems/scope/problem_uk.md | 48 +++++++++++++++--------------- problems/scope/problem_zh-cn.md | 50 +++++++++++++++---------------- problems/scope/problem_zh-tw.md | 46 ++++++++++++++--------------- solutions/scope/index.js | 10 +++---- 13 files changed, 285 insertions(+), 284 deletions(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 754d4dde..ecf66659 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -7,30 +7,32 @@ Functions defined inside other functions, known as nested functions, have access Pay attention to the comments in the code below: ```js -var a = 4; // a is a global variable, it can be accessed by the functions below +const a = 4; // a is a global variable, it can be accessed by the functions below function foo() { - var b = a * 3; // b cannot be accessed outside foo function, but can be accessed by functions - // defined inside foo - function bar(c) { - var b = 2; // another `b` variable is created inside bar function scope - // the changes to this new `b` variable don't affect the old `b` variable - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b cannot be accessed outside foo function, but can be accessed by functions + // defined inside foo + function bar(c) { + let b = 2; // another `b` variable is created inside bar function scope + // the changes to this new `b` variable don't affect the old `b` variable + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 ``` + + IIFE, Immediately Invoked Function Expression, is a common pattern for creating local scopes. Example: ```js - (function(){ // the function expression is surrounded by parenthesis +(function(){ // the function expression is surrounded by parenthesis // variables defined here // can't be accessed outside - })(); // the function is immediately invoked +})(); // the function is immediately invoked ``` ## The challenge: @@ -38,30 +40,30 @@ Create a file named `scope.js`. In that file, copy the following code: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` Use your knowledge of the variables' `scope` and place the following code inside one of the functions in `scope.js` so the output is `a: 1, b: 8, c: 6` ```js -console.log("a: " + a + ", b: " + b + ", c: " + c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Check to see if your program is correct by running this command: diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md index c00522a7..89374df0 100644 --- a/problems/scope/problem_es.md +++ b/problems/scope/problem_es.md @@ -7,18 +7,18 @@ Las funciones definidas dentro de otras funciones, conocidas como funciones anid Presta atención a los comentarios en el siguiente código: ```js -var a = 4; // es una variable global, puede ser accedida por las siguientes funciones +const a = 4; // es una variable global, puede ser accedida por las siguientes funciones function foo() { - var b = a * 3; // b no puede ser accedida por fuera de la función foo, pero puede ser accedida - // por las funciones definidas dentro de foo - function bar(c) { - var b = 2; // otra variable `b` es creada dentro del ámbito de la función bar - // los cambios a esta nueva `b` no afectan a la vieja variable `b` - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b no puede ser accedida por fuera de la función foo, pero puede ser accedida + // por las funciones definidas dentro de foo + function bar(c) { + let b = 2; // otra variable `b` es creada dentro del ámbito de la función bar + // los cambios a esta nueva `b` no afectan a la vieja variable `b` + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 @@ -26,10 +26,10 @@ foo(); // 4, 2, 48 IIFE, Immediately Invoked Function Expression( Expresión de Función Invocada Inmediatamente ), es un patrón común para crear ámbitos locales. Por ejemplo: ```js - (function(){ // La expresión de la función está entre paréntesis +(function(){ // La expresión de la función está entre paréntesis // las variables definidas aquí // no pueden ser accedidas por fuera - })(); // la función es inmediatamente invocada +})(); // la función es inmediatamente invocada ``` ## El ejercicio: @@ -37,29 +37,28 @@ Crea un archivo llamado `scope.js`. En ese archivo, copia el siguiente código: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` Usa tu conocimiento sobre el ámbito de las variables y ubica el siguiente código dentro de alguna de las funciones en `scope.js` para que la salida sea `a: 1, b: 8, c: 6` ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` - diff --git a/problems/scope/problem_fr.md b/problems/scope/problem_fr.md index b7106cdb..96b39af2 100644 --- a/problems/scope/problem_fr.md +++ b/problems/scope/problem_fr.md @@ -7,19 +7,20 @@ Les fonctions définies à l'intérieur d'autres fonctions, aussi connues en tan Soyez attentif aux commentaires dans le code suivant : ```js -var a = 4; // a est une variable globale, elle est accessible dans les fonctions ci-dessous +const a = 4; // a est une variable globale, elle est accessible dans les fonctions ci-dessous function foo() { - var b = a * 3; // b n'est pas accessible hors de la fonction foo mais l'est - // dans les fonctions déclarées à l'intérieur de foo - function bar(c) { - var b = 2; // une autre variable `b` est créée à l'intérieur du scope de la fonction - // les changements apportés à cette nouvelle variable `b` n'ont pas d'effet sur - // l'ancienne variable `b` - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b n'est pas accessible hors de la fonction foo mais l'est + // dans les fonctions déclarées à l'intérieur de foo + + function bar(c) { + let b = 2; // une autre variable `b` est créée à l'intérieur du scope de la fonction + // les changements apportés à cette nouvelle variable `b` n'ont pas d'effet sur + // l'ancienne variable `b` + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 @@ -28,10 +29,10 @@ foo(); // 4, 2, 48 IIFE, Immediately Invoked Function Expression, est un schéma commun pour créer des scopes locaux : ```js - (function(){ // l'expression `function` est entourée par des parenthèses +(function(){ // l'expression `function` est entourée par des parenthèses // les variables définies ici // ne sont pas accessibles en dehors - })(); // la fonction est appelée immédiatement +})(); // la fonction est appelée immédiatement ``` ## Le défi : @@ -39,29 +40,29 @@ Créez un fichier nommé `scope.js`. Dans ce fichier, copiez le code suivant : ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` Utilisez vos connaissances des `scopes` de variables et placez le code suivant à l'intérieur d'une fonction de `scope.js` afin d'obtenir la sortie `a: 1, b: 8, c: 6` ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Vérifiez si votre programme est correct en exécutant la commande : diff --git a/problems/scope/problem_it.md b/problems/scope/problem_it.md index dc90a2fe..65ddfda3 100644 --- a/problems/scope/problem_it.md +++ b/problems/scope/problem_it.md @@ -7,18 +7,18 @@ Le funzioni definite all'interno di altre funzioni, note come funzioni annidate, Presta attenzione ai commenti nel codice seguente: ```js -var a = 4; // a è una variabile globale, può essere acceduta dalle funzioni seguenti +const a = 4; // a è una variabile globale, può essere acceduta dalle funzioni seguenti function foo() { - var b = a * 3; // b non può essere acceduta fuori dalla funzione foo, ma può essere acceduta dalle funzioni - // definite all'interno di foo - function bar(c) { - var b = 2; // un'altra variabile `b` è creata all'interno dell'ambito della funzione bar - // i cambiamenti a questa nuova variabile `b` non hanno effetto sulla variabile `b` precedente - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b non può essere acceduta fuori dalla funzione foo, ma può essere acceduta dalle funzioni + // definite all'interno di foo + function bar(c) { + let b = 2; // un'altra variabile `b` è creata all'interno dell'ambito della funzione bar + // i cambiamenti a questa nuova variabile `b` non hanno effetto sulla variabile `b` precedente + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 @@ -26,10 +26,10 @@ foo(); // 4, 2, 48 IIFE, _Immediately Invoked Function Expression_ ovvero espressione di funzione invocata immediatamente, è un pattern comune per creare ambiti locali esempio: ```js - (function(){ // l'espressione di funzione è circondata da parentesi +(function(){ // l'espressione di funzione è circondata da parentesi // le variabili definite qui // non possono essere accedute dall'esterno - })(); // la funzione è invocata immediatamente +})(); // la funzione è invocata immediatamente ``` ## La sfida: @@ -37,30 +37,30 @@ Crea un file dal nome `scope.js`. In questo file, copia il codice seguente: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` Usa la tua comprensione dell'`ambito` delle variabili e posiziona il codice seguente dentro una delle funzioni in `scope.js` in maniera tale che il risultato sia `a: 1, b: 8,c: 6` ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Verifica che il tuo programma sia corretto eseguendo questo comando: diff --git a/problems/scope/problem_ja.md b/problems/scope/problem_ja.md index 05086461..955f75d8 100644 --- a/problems/scope/problem_ja.md +++ b/problems/scope/problem_ja.md @@ -10,18 +10,18 @@ JavaScriptには、二つのスコープがあります。グローバルとロ 次のソースコードのコメントを読んでください... ```js -var a = 4; // a はグローバル変数です。下の全ての関数から参照できます。 +const a = 4; // a はグローバル変数です。下の全ての関数から参照できます。 function foo() { - var b = a * 3; // b は foo 関数の外からは参照できません。 foo 関数の中で定義した関数 bar からは参照できます。 + let b = a * 3; // b は foo 関数の外からは参照できません。 foo 関数の中で定義した関数 bar からは参照できます。 - function bar(c) { - var b = 2; // bar 関数の中でもう一つ b 変数を定義します - // 新しい b を変更しても、元の b 変数は変わりません。 - console.log( a, b, c ); - } + function bar(c) { + let b = 2; // bar 関数の中でもう一つ b 変数を定義します + // 新しい b を変更しても、元の b 変数は変わりません。 + console.log( a, b, c ); + } - bar(b * 4); + bar(b * 4); } foo(); // 4, 2, 48 @@ -43,23 +43,23 @@ foo(); // 4, 2, 48 ファイルの中に、次のソースコードをコピーしましょう... ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` @@ -67,5 +67,5 @@ var a = 1, b = 2, c = 3; そして、目指す出力は `a: 1, b: 8,c: 6` です。 ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index b90b0d5b..b292455b 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -8,18 +8,18 @@ JavaScript에는 `전역`과 `지역` 두 개의 스코프가 있습니다. 함 아래 코드의 주석을 잘 읽어보세요. ```js -var a = 4; // 전연 변수 아래에 있는 함수에서 접근 가능 +const a = 4; // 전연 변수 아래에 있는 함수에서 접근 가능 function foo() { - var b = a * 3; // b는 foo 함수 밖에서 접근할 수 없지만, foo 함수 안에서 - // 선언된 함수에서는 접근 가능 - function bar(c) { - var b = 2; // bar 함수 스코프 안에서 생성한 다른 `b` 변수 - // 새로 만든 `b` 변수를 변경해도 오래된 `b` 변수에는 영향이 없음 - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b는 foo 함수 밖에서 접근할 수 없지만, foo 함수 안에서 + + function bar(c) { + let b = 2; // bar 함수 스코프 안에서 생성한 다른 `b` 변수 + // 새로 만든 `b` 변수를 변경해도 오래된 `b` 변수에는 영향이 없음 + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 @@ -27,10 +27,10 @@ foo(); // 4, 2, 48 즉시 실행하는 함수식(IIFE, Immediately Invoked Function Expression)은 지역 스코프를 만드는 일반적인 패턴입니다. 예제: ```js - (function(){ // 함수식은 괄호로 둘러 쌈 +(function(){ // 함수식은 괄호로 둘러 쌈 // 변수 선언은 여기서 // 밖에서 접근할 수 없음 - })(); // 함수는 즉시 실행됨 +})(); // 함수는 즉시 실행됨 ``` ## 도전 과제: @@ -38,29 +38,29 @@ foo(); // 4, 2, 48 이 파일에 다음 코드를 복사합니다. ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; + + (function secondFunction(){ + let b = 8; - (function secondFunction(){ - var b = 8; - - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` 변수의 `스코프`에 관한 지식을 활용해 다음 코드를 `scope.js` 안의 함수 안에 넣어 `a: 1, b: 8,c: 6`를 출력하게 하세요. ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/scope/problem_nb-no.md b/problems/scope/problem_nb-no.md index cfc3590e..21288a4e 100644 --- a/problems/scope/problem_nb-no.md +++ b/problems/scope/problem_nb-no.md @@ -7,19 +7,18 @@ Funksjoner som er definert inni andre funksjoner, kjent som nøstede funksjoner, Følg nøye med på kommentarene i koden under: ```js -var a = 4; // a er en global variabel, den kan nås av funksjonene under +const a = 4; // a er en global variabel, den kan nås av funksjonene under function foo() { - var b = a * 3; // b kan ikke nås utenfor foo funksjonen, men kan nås av funksjoner + let b = a * 3; // b kan ikke nås utenfor foo funksjonen, men kan nås av funksjoner // definert inni foo - - function bar(c) { - var b = 2; // enda en `b` variabel blir lagd i bar funksjonens scope + function bar(c) { + let b = 2; // enda en `b` variabel blir lagd i bar funksjonens scope // endringer på den nye `b` variabelen endrer ikke den ytre `b` variabelen - console.log( a, b, c ); - } + console.log( a, b, c ); + } - bar(b * 4); + bar(b * 4); } foo(); // 4, 2, 48 @@ -27,10 +26,10 @@ foo(); // 4, 2, 48 IIFE, Immediately Invoked Function Expression, er et pattern for å lage lokale scope eksempel: ```js - (function(){ // funksjonsuttrykket omgis av paranteser +(function(){ // funksjonsuttrykket omgis av paranteser // variabler defineres her // kan ikke nås utenfor denne funksjonen - })(); // funksjonen kjøres med engang +})(); // funksjonen kjøres med engang ``` ## Oppgaven: @@ -38,29 +37,29 @@ Lag en fil som heter `scope.js`. Kopier inn følgende kode i den filen: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); + })(); })(); + })(); })(); ``` Bruk din kunnskap om variablenes `scope` og sett inn følgende kode i en av funksjonene som finnes i 'scope.js' slik at det skrives ut `a: 1, b: 8, c: 6` på skjermen: ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Se om programmet ditt er riktig ved å kjøre kommandoen: diff --git a/problems/scope/problem_pt-br.md b/problems/scope/problem_pt-br.md index 563e63e8..30b7bbd0 100644 --- a/problems/scope/problem_pt-br.md +++ b/problems/scope/problem_pt-br.md @@ -2,23 +2,23 @@ O JavaScript tem dois escopos: `global` e `local`. Uma variável que é declarada fora da definição de uma função é uma variável `global`, e o seu valor pode ser acessado e modificado á partir de qualquer parte do seu programa. Uma variável que é declarada dentro da definição de uma função é `local`. Ela é criada e destruída toda vez que a função é executada, e não pode ser acessada por qualquer código fora da função. -Funções definidas dentro de outras funções, conhecidas como funções aninhadas, tem acesso ao escopo da função pai. +Funções definidas dentro de outras funções, conhecidas como funções aninhadas, tem acesso ao escopo da função pai. Preste atenção nos comentários do código abaixo: ```js -var a = 4; // uma variável global, pode ser acessada pelas funções abaixo +const a = 4; // uma variável global, pode ser acessada pelas funções abaixo function foo() { - var b = a * 3; // b não pode ser acessada fora da função, mas pode ser acessada pelas funções - // definidas dentro da função foo - function bar(c) { - var b = 2; // uma outra variável `b` é criada dentro do escopo da função bar - // as mudanças dessa nova variável `b` não afeta a outra variável `b` - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b não pode ser acessada fora da função, mas pode ser acessada pelas funções + // definidas dentro da função foo + function bar(c) { + let b = 2; // uma outra variável `b` é criada dentro do escopo da função bar + // as mudanças dessa nova variável `b` não afeta a outra variável `b` + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 @@ -27,10 +27,10 @@ IIFE, Immediately Invoked Function Expression (Expressão de Função Executada Exemplo: ```js - (function(){ // a expressão da função é cercada por parênteses +(function(){ // a expressão da função é cercada por parênteses // as variáveis definidas aqui // não podem ser acessadas do lado de fora - })(); // a função é executada imediatamente +})(); // a função é executada imediatamente ``` ## Desafio: @@ -38,30 +38,30 @@ Crie um arquivo chamado `scope.js`. Nesse arquivo, copie o seguinte código: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; - - (function thirdFunction(){ - var a = 7, c = 9; + (function secondFunction(){ + let b = 8; - (function fourthFunction(){ - var a = 1, c = 8; + (function thirdFunction(){ + let a = 7, c = 9; - })(); - })(); - })(); + (function fourthFunction(){ + let a = 1, c = 8; + + })(); + })(); + })(); })(); ``` Utilize seus conhecimentos sobre `escopo` de variáveis e posicione o seguinte código dentro de uma das funções no 'scope.js' fazendo o resultado ser `a: 1, b: 8,c: 6` ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Verifique se o seu programa está correto executando o comando: diff --git a/problems/scope/problem_ru.md b/problems/scope/problem_ru.md index c9f7b172..6f02ee35 100644 --- a/problems/scope/problem_ru.md +++ b/problems/scope/problem_ru.md @@ -7,15 +7,15 @@ JavaScript обладает двумя областями видимости: ` Обратите внимание на комментарии к приведённому ниже коду: ```js -var a = 4; // это глобальная переменная, она доступна для функций ниже +const a = 4; // это глобальная переменная, она доступна для функций ниже function foo() { - var b = a * 3; // к переменной `b` нет доступа снаружи функции `foo`, но к + let b = a * 3; // к переменной `b` нет доступа снаружи функции `foo`, но к // этой переменной имеют доступ функции, объявленные внутри `foo` function bar(c) { - var b = 2; // ещё одна переменная `b` создана внутри области видимости - // функции `bar`, модификации этой новой переменной `b` никак не - // отразятся на объявленной выше переменной `b` + let b = 2; // ещё одна переменная `b` создана внутри области видимости + // функции `bar`, модификации этой новой переменной `b` никак не + // отразятся на объявленной выше переменной `b` console.log( a, b, c ); } @@ -43,30 +43,30 @@ foo(); // 4, 2, 48 Скопируйте в него следующий код: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` Используя полученные знания об `областях видимости`, разместите приведённый ниже код внутри одной из функций, объявленных в `scope.js` так, чтобы на выходе получилось `a: 1, b: 8, c: 6`. ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: diff --git a/problems/scope/problem_uk.md b/problems/scope/problem_uk.md index a537a8a9..6744abcd 100644 --- a/problems/scope/problem_uk.md +++ b/problems/scope/problem_uk.md @@ -7,18 +7,18 @@ JavaScript має дві області видимості: `глобальну` Зверніть увагу на коментарі у цьому прикладі: ```js -var a = 4; // a є глобальною змінною, її значення можна отримати з функцій нижче +const a = 4; // a є глобальною змінною, її значення можна отримати з функцій нижче function foo() { - var b = a * 3; // b не можу бути доступною поза функцією foo, але доступна у - // функціях, оголошених всередині foo - function bar(c) { - var b = 2; // інша змінна `b` створена всередині функції bar зміна значення - // цієї змінної `b` не вплине на попередню змінну `b` - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b не можу бути доступною поза функцією foo, але доступна у + // функціях, оголошених всередині foo + function bar(c) { + let b = 2; // інша змінна `b` створена всередині функції bar зміна значення + // цієї змінної `b` не вплине на попередню змінну `b` + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 @@ -26,10 +26,10 @@ foo(); // 4, 2, 48 Функції миттєвого (негайного) виклику, або «самовикликаючі» функцій (IIFE, Immediately Invoked Function Expression) є загальною практикою для створення локальних областей видимості Приклад: ```js - (function(){ // вираз функції оточений круглими дужками +(function(){ // вираз функції оточений круглими дужками // змінні оголошені тут // не будуть доступними ззовні - })(); // функція відразу ж викликається +})(); // функція відразу ж викликається ``` ## Завдання: @@ -37,29 +37,29 @@ foo(); // 4, 2, 48 До цього файлу скопіювати такий код: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; + (function secondFunction(){ + let b = 8; - (function thirdFunction(){ - var a = 7, c = 9; + (function thirdFunction(){ + let a = 7, c = 9; - (function fourthFunction(){ - var a = 1, c = 8; + (function fourthFunction(){ + let a = 1, c = 8; - })(); - })(); - })(); + })(); + })(); + })(); })(); ``` Використайте ваші знання про `область видимості` змінних та помістіть код нижче в таку функцію зі 'scope.js', щоб результат був рядок `a: 1, b: 8,c: 6`: ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Перевірте вашу відповідь запустивши команду: diff --git a/problems/scope/problem_zh-cn.md b/problems/scope/problem_zh-cn.md index b55f7289..302a4c53 100644 --- a/problems/scope/problem_zh-cn.md +++ b/problems/scope/problem_zh-cn.md @@ -7,18 +7,18 @@ JavaScript 有两种类型的作用域:`全局` 以及 `局部`。函数外声 注意下面的代码: ```js -var a = 4; // a is a global variable, it can be accesed by the functions below +const a = 4; // a is a global variable, it can be accesed by the functions below function foo() { - var b = a * 3; // b cannot be accesed outside foo function, but can be accesed by functions - // defined inside foo - function bar(c) { - var b = 2; // another `b` variable is created inside bar function scope - // the changes to this new `b` variable don't affect the old `b` variable - console.log( a, b, c ); - } - - bar(b * 4); + let b = a * 3; // b cannot be accesed outside foo function, but can be accesed by functions + // defined inside foo + function bar(c) { + let b = 2; // another `b` variable is created inside bar function scope + // the changes to this new `b` variable don't affect the old `b` variable + console.log( a, b, c ); + } + + bar(b * 4); } foo(); // 4, 2, 48 @@ -26,10 +26,10 @@ foo(); // 4, 2, 48 立即函式(IIFE, Immediately Invoked Function Expression)是用来创建局部作用域的常用方法。 例子: ```js - (function(){ // the function expression is surrounded by parenthesis +(function(){ // the function expression is surrounded by parenthesis // variables defined here // can't be accesed outside - })(); // the function is immediately invoked +})(); // the function is immediately invoked ``` ## 挑战: @@ -37,27 +37,27 @@ foo(); // 4, 2, 48 在文件中复制粘贴下面的代码: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; - - (function thirdFunction(){ - var a = 7, c = 9; + (function secondFunction(){ + let b = 8; - (function fourthFunction(){ - var a = 1, c = 8; + (function thirdFunction(){ + let a = 7, c = 9; - })(); - })(); - })(); + (function fourthFunction(){ + let a = 1, c = 8; + + })(); + })(); + })(); })(); ``` 依你对 `作用域` 的理解,将下面这段代码插入上述代码里,使得代码的输出为 `a: 1, b: 8,c: 6`。 ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` diff --git a/problems/scope/problem_zh-tw.md b/problems/scope/problem_zh-tw.md index d516bc91..12cade2e 100644 --- a/problems/scope/problem_zh-tw.md +++ b/problems/scope/problem_zh-tw.md @@ -7,18 +7,18 @@ JavaScript 有兩種類型的作用域:`全域` 以及 `區域`。函式外宣 注意下面的程式碼: ```js -var a = 4; // a 是一個全域變數,它可以被下面的函式存取 +const a = 4; // a 是一個全域變數,它可以被下面的函式存取 function foo() { - var b = a * 3; // b 不能夠在 foo 函式以外被存取,但是可以被定義於 foo 內部的其他函式存取 + let b = a * 3; // b 不能夠在 foo 函式以外被存取,但是可以被定義於 foo 內部的其他函式存取 - function bar(c) { - var b = 2; // 另一個新的 `b` 變數被建立在 bar 函式的作用域內 - // 對這個新的 `b` 變數的改變並不會影響到舊的 `b` 變數 - console.log( a, b, c ); - } + function bar(c) { + let b = 2; // 另一個新的 `b` 變數被建立在 bar 函式的作用域內 + // 對這個新的 `b` 變數的改變並不會影響到舊的 `b` 變數 + console.log( a, b, c ); + } - bar(b * 4); + bar(b * 4); } foo(); // 4, 2, 48 @@ -26,10 +26,10 @@ foo(); // 4, 2, 48 立即函式(IIFE, Immediately Invoked Function Expression)是用來建立區域作用域的常用方法。 範例: ```js - (function(){ // 這個函式語法被一組小括號括起來 +(function(){ // 這個函式語法被一組小括號括起來 // 在這裡定義的變數 // 不能夠在這個函式外被存取 - })(); // 這個函式立即被執行 +})(); // 這個函式立即被執行 ``` ## 挑戰: @@ -37,27 +37,27 @@ foo(); // 4, 2, 48 在該檔案中複製貼上以下的程式碼: ```js -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; - (function secondFunction(){ - var b = 8; - - (function thirdFunction(){ - var a = 7, c = 9; + (function secondFunction(){ + let b = 8; - (function fourthFunction(){ - var a = 1, c = 8; + (function thirdFunction(){ + let a = 7, c = 9; - })(); - })(); - })(); + (function fourthFunction(){ + let a = 1, c = 8; + + })(); + })(); + })(); })(); ``` 依你對 `作用域` 的理解,將下面這段程式碼插入上述程式碼裡,使得程式碼的輸出為 `a: 1, b: 8,c: 6`。 ```js -console.log("a: "+a+", b: "+b+", c: "+c); +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` diff --git a/solutions/scope/index.js b/solutions/scope/index.js index aaafd8d2..c93f036c 100644 --- a/solutions/scope/index.js +++ b/solutions/scope/index.js @@ -1,16 +1,16 @@ -var a = 1, b = 2, c = 3; +let a = 1, b = 2, c = 3; (function firstFunction(){ - var b = 5, c = 6; + let b = 5, c = 6; (function secondFunction(){ - var b = 8; + let b = 8; console.log("a: "+a+", b: "+b+", c: "+c); (function thirdFunction(){ - var a = 7, c = 9; + let a = 7, c = 9; (function fourthFunction(){ - var a = 1, c = 8; + let a = 1, c = 8; })(); })(); From ec664fb39bb52da8c396daf5162febbbc89ffef0 Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:35:01 +0200 Subject: [PATCH 245/346] Update problem.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace ‘var’ with const. --- problems/strings/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem.md b/problems/strings/problem.md index e9af830f..e8645292 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -21,7 +21,7 @@ For this challenge, create a file named `strings.js`. In that file create a variable named `someString` like this: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Use `console.log` to print the variable **someString** to the terminal. From 7e180fa63ffbf262d4bba5a605ba059d82170d77 Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:37:25 +0200 Subject: [PATCH 246/346] Update problem_es.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace ‘var’ with ‘const’ --- problems/strings/problem_es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 7b1febd1..0151fc98 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -18,7 +18,7 @@ Para este ejercicio, crea un archivo llamado `strings.js`. En ese archivo define una variable llamada `someString` de la siguiente forma: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Utiliza `console.log` para imprimir la variable `someString` a la terminal. From a51297a98137746366762329e569cae152184ce6 Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:38:43 +0200 Subject: [PATCH 247/346] Update problem_fr.md --- problems/strings/problem_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index 2a7550d4..4a3558ac 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -19,7 +19,7 @@ Pour ce défi, créez un fichier nommé `chaines.js`. Dans ce fichier, créez une variable nommée `someString` comme cela : ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Utilisez `console.log` pour afficher la variable **someString** dans le terminal. From 4178d4460dbcd4f2bb2cacc7edaac95d0da31556 Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:39:24 +0200 Subject: [PATCH 248/346] Update problem_it.md --- problems/strings/problem_it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_it.md b/problems/strings/problem_it.md index e27c7221..590fb102 100644 --- a/problems/strings/problem_it.md +++ b/problems/strings/problem_it.md @@ -19,7 +19,7 @@ Per risolvere questa sfida, crea un file dal nome `strings.js`. In questo file crea una variabile dal nome `someString` come segue: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Usa `console.log` per stampare la variabile **someString** sul terminale. From db6d9b7221f67307f3aba8cee158ee312b016acf Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:40:04 +0200 Subject: [PATCH 249/346] Update problem_ja.md --- problems/strings/problem_ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index b6c83cf4..766b4a83 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -17,7 +17,7 @@ ファイルの中で、次のように変数 `someString` を作りましょう。 ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` `console.log` を使い、変数 **someString** をターミナルに表示しましょう。 From 980324b89eb61ea8a1d3fa1ac63a05a54c15231e Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:40:46 +0200 Subject: [PATCH 250/346] Update problem_ko.md --- problems/strings/problem_ko.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index 424caf7c..883c9440 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -19,7 +19,7 @@ 그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면 됩니다. ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` `console.log`를 사용해 **someString** 변수를 터미널에 출력합니다. From 2d709f6605cd2c45cdfdb3f581e35f669bd867c8 Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:41:20 +0200 Subject: [PATCH 251/346] Update problem_nb-no.md --- problems/strings/problem_nb-no.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index d7c15c69..9c13e1db 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -16,7 +16,7 @@ I denne oppgaven, lage en fil med navnet `strings.js`. Lage en variabel `someString`, slik som dette: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` For å skrive variabelen **someString** til skjermen kan du bruke `console.log`. From 9cea4d1e9b1ac95a816685633f9e34e4aa45d22f Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:41:57 +0200 Subject: [PATCH 252/346] Update problem_pt-br.md --- problems/strings/problem_pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index ce265c88..88634d84 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -18,7 +18,7 @@ Para este desafio, crie um arquivo chamado `strings.js`. No arquivo que foi criado, crie uma variável chamada `someString` da seguinte forma: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Use o `console.log` para imprimir a variável **someString** para o terminal. From d36a95de87b5e8144a102e70ad68331b3632346f Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:42:37 +0200 Subject: [PATCH 253/346] Update problem_ru.md --- problems/strings/problem_ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md index c32131c5..3022a642 100644 --- a/problems/strings/problem_ru.md +++ b/problems/strings/problem_ru.md @@ -19,7 +19,7 @@ В этом файле объявите переменную `someString` таким образом: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной **someString** в консоль. From c0c54272e479b35dbd85e5fa43c9f054bd1300bb Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:43:09 +0200 Subject: [PATCH 254/346] Update problem_uk.md --- problems/strings/problem_uk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index fbb332cc..6ab8b865 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -18,7 +18,7 @@ У цьому файлі створіть змінну `someString` ось так: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` Використайте `console.log`, щоб вивести змінну **someString** до терміналу. From 8235a39acb5aa07741cf3b98ab37c019f9a07051 Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:43:39 +0200 Subject: [PATCH 255/346] Update problem_zh-cn.md --- problems/strings/problem_zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index bf81f93b..b2753459 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -18,7 +18,7 @@ 在文件中像这样创建一个名为 `someString` 的变量: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` 使用 `console.log` 打印变量 **someString** 到终端。 From f03e5c5bc6d47df137dc2d1784187c17768e4d10 Mon Sep 17 00:00:00 2001 From: Jason Wilson Date: Mon, 22 Oct 2018 21:44:14 +0200 Subject: [PATCH 256/346] Update problem_zh-tw.md --- problems/strings/problem_zh-tw.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md index b94a5d73..1660b53c 100644 --- a/problems/strings/problem_zh-tw.md +++ b/problems/strings/problem_zh-tw.md @@ -18,7 +18,7 @@ 在該檔案中像這樣建立一個名為 `someString` 的變數: ```js -var someString = 'this is a string'; +const someString = 'this is a string'; ``` 使用 `console.log` 印出變數 **someString** 到終端機上。 From fe80a1d948cf0047650e3f782346b7004fe03f77 Mon Sep 17 00:00:00 2001 From: hxw Date: Fri, 1 Mar 2019 11:52:36 -0500 Subject: [PATCH 257/346] updated numbers/problem_zh-cn.md --- problems/numbers/problem_zh-cn.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/problems/numbers/problem_zh-cn.md b/problems/numbers/problem_zh-cn.md index 0bf0ff39..d147557f 100644 --- a/problems/numbers/problem_zh-cn.md +++ b/problems/numbers/problem_zh-cn.md @@ -1,4 +1,5 @@ 数字既可以是整数,像 `2`,`14`,或者 `4353`,也可以是小数,通常也被称为浮点数,比如 `3.14`,`1.5`,和 `100.7893423`。 +跟字符串不一样,数字不需要使用单引号或双引号括起来。 ## 挑战: @@ -6,7 +7,7 @@ 在文件中定义一个名为 `example` 的变量并让它引用整数 `123456789`。 -使用 `console.log()` 打印这个数到终端。 +使用 `console.log()` 输出打印这个数到终端。 运行下面的命令检查你的程序是否正确: From 092e2b188e70db5d87c0a33b62e1962e3373eda1 Mon Sep 17 00:00:00 2001 From: Huijing Huang Date: Tue, 5 Mar 2019 22:13:36 -0500 Subject: [PATCH 258/346] Use "let". --- problems/number-to-string/problem_zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/number-to-string/problem_zh-cn.md b/problems/number-to-string/problem_zh-cn.md index 58a2fe57..7e71f702 100644 --- a/problems/number-to-string/problem_zh-cn.md +++ b/problems/number-to-string/problem_zh-cn.md @@ -3,7 +3,7 @@ 这时,你可以使用 `.toString()` 方法。例如: ```js -var n = 256; +let n = 256; n = n.toString(); ``` From df25ad321ffbe5342a3783407d2bc78de700714c Mon Sep 17 00:00:00 2001 From: IcySlurpee <1784495+IcySlurpee@users.noreply.github.com> Date: Tue, 14 May 2019 02:52:25 -0700 Subject: [PATCH 259/346] clarify for-loop challenge wording to fix #220 Hey all. I wrote up this light-hearted extra paragraph to be added after the code block with `total += i;` for some extra information. I tried to explain the for loop here in simple terms that hopefully didn't spoil too much of the exercise. Comments appreciated. --- problems/for-loop/problem.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/problems/for-loop/problem.md b/problems/for-loop/problem.md index f466f2b1..8b54986a 100644 --- a/problems/for-loop/problem.md +++ b/problems/for-loop/problem.md @@ -29,6 +29,8 @@ On each iteration of the loop, add the number `i` to the `total` variable. To do total += i; ``` +When this statement is used in a for loop, it can also be known as _an accumulator_. Think of it like a cash register's running total while each item is scanned and added up. For this challenge, you have 10 items and they just happen to be increasing in price by 1 each item (with the first item free!). + After the for loop, use `console.log()` to print the `total` variable to the terminal. Check to see if your program is correct by running this command: From 148bc7180076a712bcf7b9f133063428c2225852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Fri, 5 Jul 2019 12:24:38 -0500 Subject: [PATCH 260/346] update variable declaration for number-to-string problem --- problems/number-to-string/problem.md | 2 +- problems/number-to-string/problem_es.md | 2 +- problems/number-to-string/problem_fr.md | 2 +- problems/number-to-string/problem_it.md | 2 +- problems/number-to-string/problem_ja.md | 2 +- problems/number-to-string/problem_ko.md | 2 +- problems/number-to-string/problem_nb-no.md | 2 +- problems/number-to-string/problem_pt-br.md | 2 +- problems/number-to-string/problem_ru.md | 2 +- problems/number-to-string/problem_uk.md | 2 +- problems/number-to-string/problem_zh-cn.md | 2 +- problems/number-to-string/problem_zh-tw.md | 2 +- solutions/number-to-string/index.js | 4 ++-- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/problems/number-to-string/problem.md b/problems/number-to-string/problem.md index 32af56d7..59338262 100644 --- a/problems/number-to-string/problem.md +++ b/problems/number-to-string/problem.md @@ -3,7 +3,7 @@ Sometimes you will need to turn a number into a string. In those instances you will use the `.toString()` method. Here's an example: ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_es.md b/problems/number-to-string/problem_es.md index f452b03f..fca65f9c 100644 --- a/problems/number-to-string/problem_es.md +++ b/problems/number-to-string/problem_es.md @@ -3,7 +3,7 @@ A veces necesitarás convertir un número a una string. En esos casos, usarás el método `.toString()`. A continuación un ejemplo: ```js -var n = 256; +let n = 256; n.toString(); ``` diff --git a/problems/number-to-string/problem_fr.md b/problems/number-to-string/problem_fr.md index adf18f2f..fed6069c 100644 --- a/problems/number-to-string/problem_fr.md +++ b/problems/number-to-string/problem_fr.md @@ -3,7 +3,7 @@ Vous devez parfois transformer un nombre en chaîne de caractère. Dans ces cas là, vous utiliserez la méthode `.toString()`. Voici un exemple : ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_it.md b/problems/number-to-string/problem_it.md index 03f1cbbd..04a9c24c 100644 --- a/problems/number-to-string/problem_it.md +++ b/problems/number-to-string/problem_it.md @@ -3,7 +3,7 @@ A volte è necessario trasformare un numero in una stringa. In quei casi, userai il metodo `.toString()`. Ecco un esempio: ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ja.md b/problems/number-to-string/problem_ja.md index ce609f95..7d8ddf20 100644 --- a/problems/number-to-string/problem_ja.md +++ b/problems/number-to-string/problem_ja.md @@ -3,7 +3,7 @@ そういう時は `toString()` メソッドを使います。たとえば... ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ko.md b/problems/number-to-string/problem_ko.md index 53eaa997..63fc8e59 100644 --- a/problems/number-to-string/problem_ko.md +++ b/problems/number-to-string/problem_ko.md @@ -3,7 +3,7 @@ 그런 경우에 `.toString()` 메소드를 사용하면 됩니다. 예제를 보세요. ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_nb-no.md b/problems/number-to-string/problem_nb-no.md index 2d876fcc..ab92736f 100644 --- a/problems/number-to-string/problem_nb-no.md +++ b/problems/number-to-string/problem_nb-no.md @@ -3,7 +3,7 @@ Noen ganger må du gjøre om et nummer til en string. I de tilfelle må du bruke `.toString()` metoden. Eksempel: ```js -var nummer = 256; +let nummer = 256; nummer = nummer.toString(); ``` diff --git a/problems/number-to-string/problem_pt-br.md b/problems/number-to-string/problem_pt-br.md index 0926c8ac..4ea1caee 100644 --- a/problems/number-to-string/problem_pt-br.md +++ b/problems/number-to-string/problem_pt-br.md @@ -3,7 +3,7 @@ Nestas situações você usará o método `.toString()`. Veja um exemplo de como usá-lo: ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_ru.md b/problems/number-to-string/problem_ru.md index 311e97d7..b6a114a7 100644 --- a/problems/number-to-string/problem_ru.md +++ b/problems/number-to-string/problem_ru.md @@ -3,7 +3,7 @@ В этом случае используйте метод `.toString()`. Например: ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_uk.md b/problems/number-to-string/problem_uk.md index 9fa7c451..dc9c300d 100644 --- a/problems/number-to-string/problem_uk.md +++ b/problems/number-to-string/problem_uk.md @@ -3,7 +3,7 @@ В таких випадках ви можете використати метод `.toString()`. Ось приклад: ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_zh-cn.md b/problems/number-to-string/problem_zh-cn.md index 58a2fe57..7e71f702 100644 --- a/problems/number-to-string/problem_zh-cn.md +++ b/problems/number-to-string/problem_zh-cn.md @@ -3,7 +3,7 @@ 这时,你可以使用 `.toString()` 方法。例如: ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/problems/number-to-string/problem_zh-tw.md b/problems/number-to-string/problem_zh-tw.md index 92901a5c..541d3664 100644 --- a/problems/number-to-string/problem_zh-tw.md +++ b/problems/number-to-string/problem_zh-tw.md @@ -3,7 +3,7 @@ 這時,你可以使用 `.toString()` 方法。例如: ```js -var n = 256; +let n = 256; n = n.toString(); ``` diff --git a/solutions/number-to-string/index.js b/solutions/number-to-string/index.js index 39cbd6b4..b23a907d 100644 --- a/solutions/number-to-string/index.js +++ b/solutions/number-to-string/index.js @@ -1,2 +1,2 @@ -var n = 128; -console.log(n.toString()); \ No newline at end of file +const n = 128; +console.log(n.toString()); From aa8b5a03615ca7a5dec6294105ae0f687027a28e Mon Sep 17 00:00:00 2001 From: Benji Speer Date: Mon, 12 Aug 2019 00:54:41 -0400 Subject: [PATCH 261/346] added object keys challenge --- menu.json | 1 + problems/object-keys/problem.md | 45 ++++++++++++++++++++++++-- problems/object-keys/solution.md | 8 ++++- problems/object-properties/solution.md | 2 +- solutions/object-keys/index.js | 8 +++++ 5 files changed, 59 insertions(+), 5 deletions(-) diff --git a/menu.json b/menu.json index b6fc2417..27046165 100644 --- a/menu.json +++ b/menu.json @@ -15,6 +15,7 @@ "LOOPING THROUGH ARRAYS", "OBJECTS", "OBJECT PROPERTIES", + "OBJECT KEYS", "FUNCTIONS", "FUNCTION ARGUMENTS", "SCOPE" diff --git a/problems/object-keys/problem.md b/problems/object-keys/problem.md index 09d67ae1..3e28f3eb 100644 --- a/problems/object-keys/problem.md +++ b/problems/object-keys/problem.md @@ -1,5 +1,44 @@ ---- +Javascript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +}; +const keys = Object.keys(car); + +console.log(keys); +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +}; +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car); +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/solution.md b/problems/object-keys/solution.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution.md +++ b/problems/object-keys/solution.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-properties/solution.md b/problems/object-properties/solution.md index f256ee27..981974ef 100644 --- a/problems/object-properties/solution.md +++ b/problems/object-properties/solution.md @@ -4,7 +4,7 @@ Good job accessing that property. -The next challenge is all about **functions**. +The next challenge is all about **object keys**. Run `javascripting` in the console to choose the next challenge. diff --git a/solutions/object-keys/index.js b/solutions/object-keys/index.js index e69de29b..f6832619 100644 --- a/solutions/object-keys/index.js +++ b/solutions/object-keys/index.js @@ -0,0 +1,8 @@ +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +}; +const keys = Object.keys(car); + +console.log(keys); \ No newline at end of file From 94aa7c9575e389db33dd408e2b0617ec9668f6a1 Mon Sep 17 00:00:00 2001 From: Benji Speer Date: Mon, 12 Aug 2019 00:59:43 -0400 Subject: [PATCH 262/346] removed object keys from todo section of readme --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4bee9922..9e4e4a3d 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,6 @@ Code contributions welcome! Please check our [documentation on contributing](htt Add these challenges: -- "OBJECT KEYS" - "FUNCTION RETURN VALUES" - "THIS" From 5cdb63a229fe01669426e8afa9016ef2b99c9a2d Mon Sep 17 00:00:00 2001 From: Benji Speer Date: Tue, 13 Aug 2019 11:02:53 -0400 Subject: [PATCH 263/346] Javascript -> JavaScript correction --- problems/object-keys/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/object-keys/problem.md b/problems/object-keys/problem.md index 3e28f3eb..1f29696d 100644 --- a/problems/object-keys/problem.md +++ b/problems/object-keys/problem.md @@ -1,4 +1,4 @@ -Javascript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. Here's an example of listing all object keys using the **Object.keys()** prototype method. From adaa745916fb8dadc371c89cdc2913fc818f92bc Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Sun, 18 Aug 2019 08:02:52 +0900 Subject: [PATCH 264/346] Update dependencies --- package-lock.json | 5510 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 8 +- 2 files changed, 5514 insertions(+), 4 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..be5f79ca --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5510 @@ +{ + "name": "javascripting", + "version": "2.6.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@hapi/address": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz", + "integrity": "sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.2.1.tgz", + "integrity": "sha512-JPiBy+oSmsq3St7XlipfN5pNA6bDJ1kpa73PrK/zR29CVClDVqy04AanM/M/qx5bSF+I61DdCfAvRrujau+zRg==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.3.tgz", + "integrity": "sha512-JmS9/vQK6dcUYn7wc2YZTqzIKubAQcJKu2KCKAru6es482U5RT5fP1EXCPtlXpiK7PR0On/kpQKI4fRKkzpZBQ==", + "requires": { + "@hapi/hoek": "8.x.x" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "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==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "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" + } + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + }, + "cardinal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", + "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~1.0.0" + }, + "dependencies": { + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "charm_inheritance-fix": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", + "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=" + }, + "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==", + "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=" + }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" + }, + "colors-tmpl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-1.0.0.tgz", + "integrity": "sha1-tgrEr4FlVdnt8a0kczfrMCQbbS4=", + "requires": { + "colors": "~1.0.2" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } + } + }, + "combined-stream-wait-for-it": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", + "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commandico": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/commandico/-/commandico-2.0.4.tgz", + "integrity": "sha512-QF9HmgaY/k9o/7hTbLeH3eP9cjKmz8QHGnqTAZ6KQ4BHt3h2m7+S2+OzSbR5Zs1qBdKMjWxOGufd/wX/pXEhew==", + "requires": { + "@hapi/joi": "^15.1.0", + "explicit": "^0.1.1", + "minimist": "^1.1.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "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=" + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "diff": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", + "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "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=" + }, + "esprima": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", + "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" + }, + "explicit": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", + "integrity": "sha512-Y1xrJFdIwhLwKTHDuk7IGp0iMbLlctk7tEjo3hvKvjnWaUaze5lGZf/u0IfanYVbtNogbSIdLlOmuCKP46Td7g==", + "requires": { + "@hapi/joi": "^15.1.0" + } + }, + "extended-terminal-menu": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-2.1.4.tgz", + "integrity": "sha1-GoKVOkOYQvVDsVS0YxgJ/aMs3hM=", + "requires": { + "charm_inheritance-fix": "^1.0.1", + "duplexer2": "0.0.2", + "inherits": "~2.0.0", + "resumer": "~0.0.0", + "through2": "^0.6.3", + "wcstring": "^2.1.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "i18n-core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", + "integrity": "sha512-4tNStjxSyIcmOip3Ry6OHhHLPNuNjXtl5TCnFCXMO10kbjLA6SV4ZCkzTCK4vN3NyD7kOEwmbI9uHgXdiHk0hw==", + "requires": { + "escape-html": "^1.0.3" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", + "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "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=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" + }, + "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=" + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "requires": { + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bind-obj-methods": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz", + "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=" + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "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=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "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" + } + }, + "circular-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=" + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=" + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "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=" + }, + "codeclimate-test-reporter": { + "version": "github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", + "from": "codeclimate-test-reporter@github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", + "requires": { + "async": "~1.5.2", + "commander": "2.9.0", + "lcov-parse": "0.0.10", + "request": "~2.79.0" + }, + "dependencies": { + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" + } + } + }, + "color-support": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.2.tgz", + "integrity": "sha1-ScyZuJ0b3vEpLp2TI8ZpcaM+uJ0=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "compare-func": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", + "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "requires": { + "safe-buffer": "^5.0.1" + } + } + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "conventional-changelog": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.3.tgz", + "integrity": "sha1-JigweKw4wJTfKvFgSwpGu8AWXE0=", + "requires": { + "conventional-changelog-angular": "^1.3.3", + "conventional-changelog-atom": "^0.1.0", + "conventional-changelog-codemirror": "^0.1.0", + "conventional-changelog-core": "^1.8.0", + "conventional-changelog-ember": "^0.2.5", + "conventional-changelog-eslint": "^0.1.0", + "conventional-changelog-express": "^0.1.0", + "conventional-changelog-jquery": "^0.1.0", + "conventional-changelog-jscs": "^0.1.0", + "conventional-changelog-jshint": "^0.1.0" + } + }, + "conventional-changelog-angular": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.3.3.tgz", + "integrity": "sha1-586AeoXdR1DhtBf3ZgRUl1EeByY=", + "requires": { + "compare-func": "^1.3.1", + "github-url-from-git": "^1.4.0", + "q": "^1.4.1" + } + }, + "conventional-changelog-atom": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz", + "integrity": "sha1-Z6R8ZqQrL4kJ7xWHyZia4d5zC5I=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-codemirror": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz", + "integrity": "sha1-dXelkdv5tTjnoVCn7mL2WihyszQ=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.8.0.tgz", + "integrity": "sha1-l3hItBbK8V+wnyCxKmLUDvFFuVc=", + "requires": { + "conventional-changelog-writer": "^1.1.0", + "conventional-commits-parser": "^1.0.0", + "dateformat": "^1.0.12", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "^1.2.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^1.2.0", + "lodash": "^4.0.0", + "normalize-package-data": "^2.3.5", + "q": "^1.4.1", + "read-pkg": "^1.1.0", + "read-pkg-up": "^1.0.1", + "through2": "^2.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "conventional-changelog-ember": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.5.tgz", + "integrity": "sha1-ziHVz4PNXr4F0j/fIy2IRPS1ak8=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-eslint": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz", + "integrity": "sha1-pSQR6ZngUBzlALhWsKZD0DMJB+I=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-express": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz", + "integrity": "sha1-VcbIQcgRliA2wDe9vZZKVK4xD84=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-jquery": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", + "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-jscs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", + "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-jshint": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz", + "integrity": "sha1-AMq46aMxdIer2UxNhGcTQpGNKgc=", + "requires": { + "compare-func": "^1.3.1", + "q": "^1.4.1" + } + }, + "conventional-changelog-writer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz", + "integrity": "sha1-P0y00APrtWmJ0w00WJO1KkNjnI4=", + "requires": { + "compare-func": "^1.3.1", + "conventional-commits-filter": "^1.0.0", + "dateformat": "^1.0.11", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.0.0", + "meow": "^3.3.0", + "semver": "^5.0.1", + "split": "^1.0.0", + "through2": "^2.0.0" + } + }, + "conventional-commits-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", + "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=", + "requires": { + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz", + "integrity": "sha1-4ye1MZThp61dxjR57pCZpSsCSGU=", + "requires": { + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^3.3.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" + } + }, + "conventional-recommended-bump": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-0.3.0.tgz", + "integrity": "sha1-6Dnej1fLtDRFyLSWdAHeBkTEJdg=", + "requires": { + "concat-stream": "^1.4.10", + "conventional-commits-filter": "^1.0.0", + "conventional-commits-parser": "^1.0.1", + "git-latest-semver-tag": "^1.0.0", + "git-raw-commits": "^1.0.0", + "meow": "^3.3.0", + "object-assign": "^4.0.1" + } + }, + "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=" + }, + "coveralls": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz", + "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=", + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" + } + } + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.x.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "^0.10.9" + } + }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "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=" + }, + "deeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", + "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "requires": { + "is-obj": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.21", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.21.tgz", + "integrity": "sha1-Gacl+eUdAwC7wejoIRCf2dr1WSU=", + "requires": { + "es6-iterator": "2", + "es6-symbol": "~3.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-symbol": "^3.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "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" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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=", + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", + "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" + } + }, + "eslint-config-standard": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", + "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=" + }, + "eslint-import-resolver-node": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", + "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", + "requires": { + "debug": "^2.2.0", + "object-assign": "^4.0.1", + "resolve": "^1.1.6" + } + }, + "eslint-module-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz", + "integrity": "sha1-pvjCHZATWHWc3DXbrBmCrh7li84=", + "requires": { + "debug": "2.2.0", + "pkg-dir": "^1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "eslint-plugin-import": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.3.0.tgz", + "integrity": "sha1-N8gB4K2g4pbL3yDD85OstbUq82s=", + "requires": { + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.2.0", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.2.0", + "eslint-module-utils": "^2.0.0", + "has": "^1.0.1", + "lodash.cond": "^4.3.0", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + } + } + }, + "eslint-plugin-node": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.0.0.tgz", + "integrity": "sha512-9xERRx9V/8ciUHlTDlz9S4JiTL6Dc5oO+jKTy2mvQpxjhycpYZXzTT1t90IXjf+nAYw6/8sDnZfkeixJHxromA==", + "requires": { + "ignore": "^3.3.3", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "5.3.0" + } + }, + "eslint-plugin-promise": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", + "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=" + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" + }, + "espree": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", + "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", + "requires": { + "acorn": "^5.0.1", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "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=" + } + } + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", + "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", + "requires": { + "estraverse": "~4.1.0", + "object-assign": "^4.0.1" + }, + "dependencies": { + "estraverse": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", + "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=" + } + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=" + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "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=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-exists-cached": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", + "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + }, + "function-loop": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz", + "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=" + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "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=", + "requires": { + "is-property": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-pkg-repo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.3.0.tgz", + "integrity": "sha1-Q8a0wEi3XdYE/FOI7ezeVX9jNd8=", + "requires": { + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "git-latest-semver-tag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/git-latest-semver-tag/-/git-latest-semver-tag-1.0.2.tgz", + "integrity": "sha1-BhEwy/QnQRHMa+RhKz/zptk+JmA=", + "requires": { + "git-semver-tags": "^1.1.2", + "meow": "^3.3.0" + } + }, + "git-raw-commits": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", + "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=", + "requires": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^3.3.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + } + }, + "git-semver-tags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.0.tgz", + "integrity": "sha1-sx/QLIq1eL1sm1ysyl4cZMEXesE=", + "requires": { + "meow": "^3.3.0", + "semver": "^5.0.1" + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "requires": { + "ini": "^1.3.2" + } + }, + "github-url-from-git": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", + "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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" + } + }, + "globals": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", + "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "requires": { + "function-bind": "^1.0.2" + } + }, + "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" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "hosted-git-info": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", + "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "ignore": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", + "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + }, + "inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "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.0.3", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "optional": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "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=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "requires": { + "tryit": "^1.0.1" + } + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jodid25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "js-yaml": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", + "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^3.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "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=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "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" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "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=", + "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=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.cond": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" + }, + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "requires": { + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "requires": { + "lodash._reinterpolate": "~3.0.0" + } + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "optional": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", + "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + }, + "mime-types": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "requires": { + "mime-db": "~1.27.0" + } + }, + "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=" + }, + "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" + } + }, + "mockery": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.0.0.tgz", + "integrity": "sha1-BWmhGhhIRh/cNHz4zKLfLzEpvAM=" + }, + "modify-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", + "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=" + }, + "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=" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "normalize-package-data": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", + "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=" + }, + "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=" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "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=" + }, + "only-shallow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", + "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=" + }, + "opener": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", + "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "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-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "own-or": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", + "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=" + }, + "own-or-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz", + "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=" + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "parse-github-repo-url": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz", + "integrity": "sha1-KGxT4smWLgZBZJ7jrJUI/KTdlZw=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "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=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + } + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "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=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "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=", + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "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-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "requires": { + "glob": "^7.0.5" + } + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "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=" + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "shelljs": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", + "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.x.x" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "^1.0.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "split": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", + "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", + "requires": { + "through": "2" + } + }, + "split2": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz", + "integrity": "sha1-eh9VHhdqkOzTNF9yRqDP4XXvT9A=", + "requires": { + "through2": "^2.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" + }, + "standard-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-4.0.0.tgz", + "integrity": "sha1-5XjO/UOrewKUS9dWlSUFLqwbl4c=", + "requires": { + "chalk": "^1.1.3", + "conventional-changelog": "^1.1.0", + "conventional-recommended-bump": "^0.3.0", + "figures": "^1.5.0", + "fs-access": "^1.0.0", + "object-assign": "^4.1.0", + "semver": "^5.1.0", + "yargs": "^6.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "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=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, + "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=" + }, + "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=", + "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": { + "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=" + }, + "string-width": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "tap": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/tap/-/tap-10.3.3.tgz", + "integrity": "sha512-ELPgkGOlrS4fj2iX7CFg9oJ4kGcA8xYurvtJhRN+O/CI52X+vSpHdahjx71ABX3Y774XcPKouU+DYB9lqrR2uQ==", + "requires": { + "bind-obj-methods": "^1.0.0", + "bluebird": "^3.3.1", + "clean-yaml-object": "^0.1.0", + "color-support": "^1.1.0", + "coveralls": "^2.11.2", + "deeper": "^2.1.0", + "foreground-child": "^1.3.3", + "fs-exists-cached": "^1.0.0", + "function-loop": "^1.0.1", + "glob": "^7.0.0", + "isexe": "^1.0.0", + "js-yaml": "^3.3.1", + "nyc": "^11.0.2-candidate.0", + "only-shallow": "^1.0.2", + "opener": "^1.4.1", + "os-homedir": "1.0.1", + "own-or": "^1.0.0", + "own-or-env": "^1.0.0", + "readable-stream": "^2.0.2", + "signal-exit": "^3.0.0", + "source-map-support": "^0.4.3", + "stack-utils": "^1.0.0", + "tap-mocha-reporter": "^3.0.1", + "tap-parser": "^5.3.1", + "tmatch": "^3.0.0", + "trivial-deferred": "^1.0.1", + "yapool": "^1.0.0" + }, + "dependencies": { + "nyc": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.0.2.tgz", + "integrity": "sha512-31rRd6ME9NM17w0oPKqi51a6fzJAqYarnzQXK+iL8XaX+3H6VH0BQut7qHIgrv2mBASRic4oNi2KRgcbFODrsQ==", + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-hook": "^1.0.7", + "istanbul-lib-instrument": "^1.7.2", + "istanbul-lib-report": "^1.1.1", + "istanbul-lib-source-maps": "^1.2.1", + "istanbul-reports": "^1.1.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.0.2", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.3.6", + "test-exclude": "^4.1.1", + "yargs": "^8.0.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "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=" + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", + "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "requires": { + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "babel-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", + "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.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-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" + } + }, + "babel-template": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", + "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1", + "babylon": "^6.11.0", + "lodash": "^4.2.0" + } + }, + "babel-traverse": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", + "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", + "requires": { + "babel-code-frame": "^6.22.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1", + "babylon": "^6.15.0", + "debug": "^2.2.0", + "globals": "^9.0.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "babel-types": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", + "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", + "requires": { + "babel-runtime": "^6.22.0", + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^1.0.1" + } + }, + "babylon": { + "version": "6.17.2", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.2.tgz", + "integrity": "sha1-IB0l71+JLEG65JSIsI2w3Udun1w=" + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "requires": { + "balanced-match": "^0.4.1", + "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=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "caching-transform": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "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" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": 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=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" + }, + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "requires": { + "strip-bom": "^2.0.0" + } + }, + "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" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "^0.2.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=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "execa": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz", + "integrity": "sha1-3j+4XLjW6RyFvLzrFkWBeFy1ezY=", + "requires": { + "cross-spawn": "^4.0.0", + "get-stream": "^2.2.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "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=", + "requires": { + "fill-range": "^2.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "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=", + "requires": { + "for-in": "^1.0.1" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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=", + "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.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", + "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "hosted-git-info": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", + "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "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=", + "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=", + "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-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "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=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "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=" + }, + "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" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==" + }, + "istanbul-lib-hook": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", + "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.2.tgz", + "integrity": "sha512-lPgUY+Pa5dlq2/l0qs1PJZ54QPSfo+s4+UZdkb2d0hbOyrEIAbUJphBLFjEyXBdeCONgGRADFzs3ojfFtmuwFA==", + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.13.0", + "istanbul-lib-coverage": "^1.1.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", + "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "requires": { + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", + "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "requires": { + "debug": "^2.6.3", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz", + "integrity": "sha512-P8G873A0kW24XRlxHVGhMJBhQ8gWAec+dae7ZxOBzxT4w+a9ATSPvRVK3LB1RAJ9S8bg2tOyWHAGW40Zd2dKfw==", + "requires": { + "handlebars": "^4.0.3" + } + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "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" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "optional": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", + "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "md5-hex": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.3.tgz", + "integrity": "sha1-2hQV8nIqURnbB7FMT5c0EIY6Kr8=", + "requires": { + "source-map": "^0.5.3" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "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=" + }, + "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=" + }, + "normalize-package-data": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", + "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.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" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "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.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz", + "integrity": "sha1-FZGN7VEFIrge565aMJ1U9jn8OaQ=", + "requires": { + "execa": "^0.5.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "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=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "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-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "randomatic": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", + "requires": { + "is-number": "^2.0.2", + "kind-of": "^3.0.2" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "requires": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + } + }, + "remove-trailing-separator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", + "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=" + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "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-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "requires": { + "glob": "^7.0.5" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + }, + "spawn-wrap": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.3.6.tgz", + "integrity": "sha512-5bEhZ11kqwoECJwfbur2ALU1NBnnCNbFzdWGHEXCiSsVhH+Ubz6eesa1DuQcm05pk38HknqP556f3CFhqws2ZA==", + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.3.3", + "signal-exit": "^3.0.2", + "which": "^1.2.4" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "^1.0.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "string-width": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "requires": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "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=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "uglify-js": { + "version": "2.8.27", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", + "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.1.tgz", + "integrity": "sha1-Qg73XoQMFFeoCtzKm8b6OEneUao=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "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=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "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=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^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=" + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + } + } + }, + "os-homedir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", + "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=" + } + } + }, + "tap-mocha-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.3.tgz", + "integrity": "sha1-5ZF/rT2acJV/m3xzbnk764fX2vE=", + "requires": { + "color-support": "^1.1.0", + "debug": "^2.1.3", + "diff": "^1.3.2", + "escape-string-regexp": "^1.0.3", + "glob": "^7.0.5", + "js-yaml": "^3.3.1", + "readable-stream": "^2.1.5", + "tap-parser": "^5.1.0", + "unicode-length": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "optional": true, + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + } + } + }, + "tap-parser": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.3.3.tgz", + "integrity": "sha1-U+yKkPJ11v/0PxaeVqZ5UCp0EYU=", + "requires": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7", + "readable-stream": "^2" + } + }, + "text-extensions": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.4.0.tgz", + "integrity": "sha1-w4XS6Ah5/m75eJPhcJ2I2UU3Juk=" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "requires": { + "safe-buffer": "^5.0.1" + } + } + } + }, + "tmatch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.0.0.tgz", + "integrity": "sha1-fSBx3tu8WH8ZSs2jBnvQdHtnCZE=" + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=" + }, + "trivial-deferred": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", + "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=" + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "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=" + }, + "uglify-js": { + "version": "2.8.27", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", + "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "unicode-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", + "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", + "requires": { + "punycode": "^1.3.2", + "strip-ansi": "^3.0.1" + } + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "requires": { + "os-homedir": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "requires": { + "extsprintf": "1.0.2" + } + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "requires": { + "isexe": "^2.0.0" + }, + "dependencies": { + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + } + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "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=", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yapool": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", + "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=" + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + } + } + }, + "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==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "marked": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", + "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" + }, + "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.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "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" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "msee": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", + "integrity": "sha512-4ujQAsunNBX8AVN6nyiIj4jW3uHQsY3xpFVKTzbjKiq57C6GXh0h12qYehXwLYItmhpgWRB3W8PnzODKWxwXxA==", + "requires": { + "ansi-regex": "^3.0.0", + "ansicolors": "^0.3.2", + "cardinal": "^1.0.0", + "chalk": "^2.3.1", + "combined-stream-wait-for-it": "^1.1.0", + "entities": "^1.1.1", + "marked": "0.3.12", + "nopt": "^4.0.1", + "strip-ansi": "^4.0.0", + "table-header": "^0.2.2", + "text-table": "^0.2.0", + "through2": "^2.0.3", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "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=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "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=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "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==" + }, + "promise": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", + "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==", + "requires": { + "asap": "~2.0.6" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "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" + }, + "dependencies": { + "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==" + } + } + }, + "redeyed": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", + "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", + "requires": { + "esprima": "~3.0.0" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "^1.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "simple-terminal-menu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", + "integrity": "sha1-apqmscQd9T/AsCB4DHZNvN7Egf8=", + "requires": { + "chalk": "^1.1.1", + "extended-terminal-menu": "^2.1.2", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "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=" + }, + "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" + } + }, + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "requires": { + "through": "2" + } + }, + "string-to-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz", + "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.1.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "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==" + } + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "table-header": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", + "integrity": "sha1-fJrbQg6laftHF95dj1xFFIBNLAo=", + "requires": { + "repeat-string": "^1.5.2" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "varsize-string": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", + "integrity": "sha1-7xs7bHLbCDXqL4TN+R/sMMUgaIs=" + }, + "wcsize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wcsize/-/wcsize-1.0.0.tgz", + "integrity": "sha1-qKLhXmqKdHkdulgPaaV9J+hQ6h4=" + }, + "wcstring": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/wcstring/-/wcstring-2.1.1.tgz", + "integrity": "sha1-3tUtdFycceJNCkidKCbSKjZe0Gc=", + "requires": { + "varsize-string": "^2.2.1", + "wcsize": "^1.0.0" + } + }, + "workshopper-adventure": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.0.4.tgz", + "integrity": "sha512-Sm6crfv3/BCoNfsYftYsrKJbpIOu+74GQD8URq4spYFtdyyYMpjud6mzAkMKNNhC09wLaLZnsNueb9V/YU3fyQ==", + "requires": { + "after": "^0.8.2", + "chalk": "^2.3.1", + "colors-tmpl": "~1.0.0", + "combined-stream-wait-for-it": "^1.1.0", + "commandico": "^2.0.2", + "i18n-core": "^3.0.0", + "latest-version": "^3.0.0", + "msee": "^0.3.5", + "simple-terminal-menu": "^1.1.3", + "split": "^1.0.0", + "string-to-stream": "^1.1.0", + "strip-ansi": "^4.0.0", + "through2": "^2.0.3", + "workshopper-adventure-storage": "^3.0.0" + } + }, + "workshopper-adventure-storage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.0.tgz", + "integrity": "sha1-AXTFsve4DXLJG8Upv70H9HnCY6A=", + "requires": { + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + } + } +} diff --git a/package.json b/package.json index c9df0d9d..7ffa8b4a 100644 --- a/package.json +++ b/package.json @@ -12,10 +12,10 @@ "main": "./index.js", "preferGlobal": true, "dependencies": { - "colors": "^1.0.3", - "promise": "^7.1.1", - "diff": "^1.2.1", - "workshopper-adventure": "^6.0.3" + "colors": "^1.3.3", + "promise": "^8.0.3", + "diff": "^4.0.1", + "workshopper-adventure": "^6.0.4" }, "license": "MIT" } From 04c0bd84a3a9416df4bbe1f97934e3b5dbe6999d Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Sun, 18 Aug 2019 23:10:38 +0900 Subject: [PATCH 265/346] Fix repository URL --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7ffa8b4a..110aeeaa 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Learn JavaScript by adventuring around in the terminal.", "version": "2.6.1", "repository": { - "url": "https://github.com/sethvincent/javascripting.git" + "url": "https://github.com/workshopper/javascripting" }, "author": "sethvincent", "bin": { From c403678db1e1fb15f7b438b4b5b0e976568a5500 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Tue, 20 Aug 2019 22:39:44 +0900 Subject: [PATCH 266/346] bugfix: Stray [object Object] output in javascripting run --- lib/problem.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/problem.js b/lib/problem.js index daf49c36..ebc4f9c2 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -50,9 +50,5 @@ module.exports = function createProblem(dirname) { }.bind(this)); }; - exports.run = function (args) { - require(path.resolve(process.cwd(), args[0])); - }; - return exports; } From 3ef831ea40618f9096fe9b62d5943e70c2238897 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Mon, 26 Aug 2019 14:01:12 +0900 Subject: [PATCH 267/346] 2.6.2 --- 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 be5f79ca..a0bd4f1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "javascripting", - "version": "2.6.1", + "version": "2.6.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 110aeeaa..cae13c91 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.6.1", + "version": "2.6.2", "repository": { "url": "https://github.com/workshopper/javascripting" }, From abb7ded7dfca147e0aeeebc0c46f5996aabfc0fc Mon Sep 17 00:00:00 2001 From: Lupo Montero Date: Mon, 2 Sep 2019 10:33:17 -0500 Subject: [PATCH 268/346] Adds spanish translation for object-keys exercise #267 * Adds translation of OBJECT KEYS in i18n/es.json * Adds translation of problems/object-keys/problem.md in problems/object-keys/problem_es.md * Adds translation of problems/object-keys/solution.md in problems/object-keys/solution_es.md --- i18n/es.json | 1 + problems/object-keys/problem_es.md | 49 +++++++++++++++++++++++++++-- problems/object-keys/solution_es.md | 8 ++++- 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/i18n/es.json b/i18n/es.json index 8642ef2c..b14ec463 100644 --- a/i18n/es.json +++ b/i18n/es.json @@ -16,6 +16,7 @@ , "LOOPING THROUGH ARRAYS": "RECORRIENDO ARRAYS" , "OBJECTS": "OBJETOS" , "OBJECT PROPERTIES": "PROPIEDADES DE OBJETOS" + , "OBJECT KEYS": "LLAVES/KEYS DE OBJETOS" , "FUNCTIONS": "FUNCIONES" , "FUNCTION ARGUMENTS": "ARGUMENTOS DE FUNCIONES" , "SCOPE": "CONTEXTO" diff --git a/problems/object-keys/problem_es.md b/problems/object-keys/problem_es.md index 09d67ae1..151f3801 100644 --- a/problems/object-keys/problem_es.md +++ b/problems/object-keys/problem_es.md @@ -1,5 +1,48 @@ ---- +JavaScript nos da una manera nativa de listar _todas_ las _llaves_ (_keys_) de +un objeto. Esto puede ser muy útil para iterar sobre las propiedades de un +objeto y manipular sus valores. -# +Veámos un ejemplo de cómo podríamos listar todas las propiedades de un objeto +usando el método **Object.keys()**: ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +}; +const keys = Object.keys(car); + +console.log(keys); +``` + +El código de arriba imprime una arreglo de _strings_, donde cada _string_ es una +_llave_ (_key_) en el objeto `car` (`['make', 'model', 'year']`). + +## El reto: + +Crea un archivo llamado `object-keys.js`. + +En ese archivo, define una variable llamada `car`: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +}; +``` + +Después define otra variable llamada `keys`: + +```js +const keys = Object.keys(car); +``` + +Usa `console.log()` para imprimir la variable `keys` a la consola. + +Comprueba si tu programa es correcto ejecutando el siguiente comando: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/solution_es.md b/problems/object-keys/solution_es.md index 09d67ae1..773f3d47 100644 --- a/problems/object-keys/solution_es.md +++ b/problems/object-keys/solution_es.md @@ -1,5 +1,11 @@ --- -# +# CORRECTO. + +Buen trabajo usando el método Object.keys(). Recuerda usarlo cuando necesites listar las propiedades de un objeto. + +El próximo ejercicio trabajaremos con **funciones**. + +Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. --- From 74196d3490ccfbe04d0de3405ec225933e6d1837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Tue, 3 Sep 2019 19:44:27 -0500 Subject: [PATCH 269/346] fix(object-properties): some minor changes in spanish translation --- problems/object-properties/problem_es.md | 8 ++++---- problems/object-properties/solution_es.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/problems/object-properties/problem_es.md b/problems/object-properties/problem_es.md index 92c4d0d8..9de2d4a3 100644 --- a/problems/object-properties/problem_es.md +++ b/problems/object-properties/problem_es.md @@ -10,9 +10,9 @@ const example = { console.log(example['pizza']); ``` -El código anterior imprimirá la string `yummy` al a terminal. +El código anterior imprimirá el string `yummy` en la terminal. -Alternativamente, puedes usar la **notación de punto** para obtener resultados idénticos: +También puedes usar la **notación de punto** para obtener resultados idénticos: ```js example.pizza; @@ -20,7 +20,7 @@ example.pizza; example['pizza']; ``` -La dos líneas de código anteriores retornaran `yummy`. +Las dos líneas de código anteriores retornarán `yummy`. ## El ejercicio: @@ -34,7 +34,7 @@ const food = { }; ``` -Utiliza `console.log()` para imprimir la propiedad `types` del objeto `food` a la terminal. +Utiliza `console.log()` para imprimir la propiedad `types` del objeto `food` en la terminal. Comprueba si tu programa es correcto ejecutando el siguiente comando: diff --git a/problems/object-properties/solution_es.md b/problems/object-properties/solution_es.md index 31a6fcbc..e4b2b60a 100644 --- a/problems/object-properties/solution_es.md +++ b/problems/object-properties/solution_es.md @@ -1,10 +1,10 @@ --- -# CORRECTO! LOS HIPSTERS TIENEN SU PROPIO TIPO DE BICICLETAS +# CORRECTO! PIZZA ES LA ÚNICA COMIDA Buen trabajo accediendo a esa propiedad. -El siguiente ejercicio es completamente acerca de **funciones**. +El siguiente ejercicio es completamente acerca de **llaves de objetos**. Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio. From 511f243e538e95e9c94115b26b3dac0ac69a77bf Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 5 Sep 2019 18:59:11 +0900 Subject: [PATCH 270/346] 2.6.3 --- 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 a0bd4f1e..6a6ee1bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "javascripting", - "version": "2.6.2", + "version": "2.6.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index cae13c91..c988ab09 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.6.2", + "version": "2.6.3", "repository": { "url": "https://github.com/workshopper/javascripting" }, From cbf2de9160c27ca289c280265400b005b201016a Mon Sep 17 00:00:00 2001 From: Carlo La Pera Date: Sat, 7 Sep 2019 19:38:06 +0200 Subject: [PATCH 271/346] Adds Italian translations of object keys challenge (#273) * Add it translation of OBJECT KEYS in menu.json * Add it translation of object-keys/problem.md * Add it translation of object-keys/solution.md * Fix object-properties it translation of solution --- i18n/it.json | 1 + problems/object-keys/problem_it.md | 44 +++++++++++++++++++++-- problems/object-keys/solution_it.md | 8 ++++- problems/object-properties/solution_it.md | 2 +- 4 files changed, 50 insertions(+), 5 deletions(-) diff --git a/i18n/it.json b/i18n/it.json index 724a730e..b3582590 100644 --- a/i18n/it.json +++ b/i18n/it.json @@ -16,6 +16,7 @@ , "LOOPING THROUGH ARRAYS": "PERCORRERE UN ARRAY" , "OBJECTS": "GLI OGGETTI" , "OBJECT PROPERTIES": "PROPRIETÀ DI UN OGGETTO" + , "OBJECT KEYS": "LE CHIAVI DI UN OGGETTO" , "FUNCTIONS": "LE FUNZIONI" , "FUNCTION ARGUMENTS": "ARGOMENTI DELLA FUNZIONE" , "SCOPE": "LO SCOPE" diff --git a/problems/object-keys/problem_it.md b/problems/object-keys/problem_it.md index 09d67ae1..45a58854 100644 --- a/problems/object-keys/problem_it.md +++ b/problems/object-keys/problem_it.md @@ -1,5 +1,43 @@ ---- +JavaScript fornisce un modo nativo per elencare tutte le chiavi disponibili di un oggetto. Questo può essere utile per scorrere in sequenza tutte le proprietà di un oggetto e manipolarne i valori di conseguenza. -# +Ecco un esempio di elencazione di tutte le chiavi dell'oggetto usando il metodo prototipo **Object.keys()**. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +}; +const keys = Object.keys(car); + +console.log(keys); +``` + +Il codice sopra stamperà una matrice di stringhe, in cui ogni stringa è una chiave nell'oggetto car. `['make', 'model', 'year']` + +## The challenge: + +Crea un file chiamato `object-keys.js`. + +In quel file, definire una variabile denominata `car` come questa: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +}; +``` + +Quindi definire un'altra variabile denominata `keys` come questa: +```js +const keys = Object.keys(car); +``` + +Usa `console.log ()` per stampare la variabile `keys` sul terminale + +Controlla se il tuo programma è corretto eseguendo questo comando: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/solution_it.md b/problems/object-keys/solution_it.md index 09d67ae1..3f2e19fe 100644 --- a/problems/object-keys/solution_it.md +++ b/problems/object-keys/solution_it.md @@ -1,5 +1,11 @@ --- -# +# CORRETTO. + +Ottimo lavoro con il metodo prototipo Object.keys (). Ricorda di usarlo quando devi elencare le chiavi di un oggetto. + +La prossima sfida riguarda le ** funzioni **. + +Esegui `javascripting` nella console per scegliere la prossima sfida. --- diff --git a/problems/object-properties/solution_it.md b/problems/object-properties/solution_it.md index a4a8c594..d1d43db2 100644 --- a/problems/object-properties/solution_it.md +++ b/problems/object-properties/solution_it.md @@ -4,7 +4,7 @@ Ottimo lavoro nell'accedere a quella proprietà. -La prossima sfida è interamente centrata sulle **funzioni**. +La prossima sfida è interamente centrata sulle **chiavi degli oggetti**. Esegui `javascripting` nella console per scegliere la prossima sfida. From 9f6da1bd48a3b84e218bdd1b90fd2775e7eebb27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Tue, 10 Sep 2019 19:59:34 -0500 Subject: [PATCH 272/346] docs(object-keys): improve spanish translation --- problems/object-keys/problem_es.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/problems/object-keys/problem_es.md b/problems/object-keys/problem_es.md index 151f3801..1f664a0a 100644 --- a/problems/object-keys/problem_es.md +++ b/problems/object-keys/problem_es.md @@ -1,4 +1,4 @@ -JavaScript nos da una manera nativa de listar _todas_ las _llaves_ (_keys_) de +JavaScript nos da una manera nativa de listar todas las _llaves_ (_keys_) de un objeto. Esto puede ser muy útil para iterar sobre las propiedades de un objeto y manipular sus valores. @@ -16,10 +16,10 @@ const keys = Object.keys(car); console.log(keys); ``` -El código de arriba imprime una arreglo de _strings_, donde cada _string_ es una +El código de arriba imprime un arreglo de _strings_, donde cada _string_ es una _llave_ (_key_) en el objeto `car` (`['make', 'model', 'year']`). -## El reto: +## El ejercicio: Crea un archivo llamado `object-keys.js`. @@ -39,7 +39,7 @@ Después define otra variable llamada `keys`: const keys = Object.keys(car); ``` -Usa `console.log()` para imprimir la variable `keys` a la consola. +Usa `console.log()` para imprimir la variable `keys` en la consola. Comprueba si tu programa es correcto ejecutando el siguiente comando: From feb8ae5ce00d22054c93810edcad8da9cf21efc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Tue, 10 Sep 2019 20:06:37 -0500 Subject: [PATCH 273/346] docs: update README --- README.md | 25 ++++++------------------- TROUBLESHOOTING.md | 9 +++++++++ 2 files changed, 15 insertions(+), 19 deletions(-) create mode 100644 TROUBLESHOOTING.md diff --git a/README.md b/README.md index 9e4e4a3d..c4752fc2 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,10 @@ > _Looking for more interactive tutorials like this? Go to [nodeschool.io](http://nodeschool.io)._ ## Get help -Having issues with javascripting? Get help troubleshooting in the [nodeschool discussions repo](http://github.com/nodeschool/discussions), or on gitter: +Having issues with javascripting? Get help troubleshooting in the [nodeschool discussions repo](https://github.com/nodeschool/discussions), +on [gitter](https://gitter.im/nodeschool/discussions) or in [repository issues](https://github.com/workshopper/javascripting/issues) -[![Gitter](https://img.shields.io/gitter/room/gitterHQ/gitter.svg)](https://gitter.im/nodeschool/discussions?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +Also, take a look into our [troubleshooting documentation](https://github.com/workshopper/javascripting/blob/master/TROUBLESHOOTING.md) ## Install Node.js @@ -15,29 +16,15 @@ Make sure Node.js is installed on your computer. Install it from [nodejs.org](https://nodejs.org/) -On Windows and using v4 or v5 of Node.js? Make sure you are using at least 5.1.0, which provides a fix for a bug on Windows where you can't choose items in the menu. - ### Install `javascripting` with `npm` Open your terminal and run this command: ``` -npm install --global javascripting +npm install -g javascripting ``` -The `--global` option installs this module globally so that you can run it as a command in your terminal. - -#### Having issues with installation? - -If you get an `EACCESS` error, the simplest way to fix this is to rerun the command, in either of the following ways: - -- On unix shells, prefix the command with sudo -> `sudo npm install --global javascripting` - -- On Windows and if using either PowerShell or CMD, ensure you open the shell with administrator privilege. - -You can also fix the permissions so that you don't have to use `sudo`. Take a look at this npm documentation: -https://docs.npmjs.com/getting-started/fixing-npm-permissions +The `-g` option installs this module globally so that you can run it as a command in your terminal. ## Run the workshop @@ -67,7 +54,7 @@ You can use any editor you like. ## Need help with an exercise? -Open an issue in the nodeschool/discussions repo: https://github.com/nodeschool/discussions +Open an issue in the [nodeschool/discussions repo](https://github.com/nodeschool/discussions) Include the name `javascripting` and the name of the challenge you're working on in the title of the issue. diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md new file mode 100644 index 00000000..1a09bf91 --- /dev/null +++ b/TROUBLESHOOTING.md @@ -0,0 +1,9 @@ +If you get an `EACCESS` error, the simplest way to fix this is to rerun the command, in either of the following ways: + +- On unix shells, prefix the command with sudo +> `sudo npm install --global javascripting` + +- On Windows and if using either PowerShell or CMD, ensure you open the shell with administrator privilege. + +You can also fix the permissions so that you don't have to use `sudo`. Take a look at this npm documentation: +https://docs.npmjs.com/getting-started/fixing-npm-permissions From e2c35f0e6d785e60d5d757e681acdb5e13ec2e4b Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 11 Sep 2019 15:57:13 -0700 Subject: [PATCH 274/346] Use StandardJS I noticed that other workshoppers like `learnyounode` are using StandardJS style. This commit updates `javascripting` to use it, as well. https://standardjs.com --- LOCALIZING.md | 10 +-- index.js | 18 ++--- lib/compare-solution.js | 71 ++++++++----------- lib/footer.js | 10 +-- lib/get-file.js | 8 +-- lib/problem.js | 63 ++++++++-------- lib/run-solution.js | 49 +++++++------ package.json | 8 ++- problems/accessing-array-values/index.js | 2 +- problems/accessing-array-values/problem.md | 8 +-- problems/accessing-array-values/problem_es.md | 8 +-- problems/accessing-array-values/problem_fr.md | 8 +-- problems/accessing-array-values/problem_it.md | 8 +-- problems/accessing-array-values/problem_ja.md | 8 +-- problems/accessing-array-values/problem_ko.md | 8 +-- .../accessing-array-values/problem_nb-no.md | 8 +-- .../accessing-array-values/problem_pt-br.md | 8 +-- problems/accessing-array-values/problem_ru.md | 8 +-- problems/accessing-array-values/problem_uk.md | 10 +-- .../accessing-array-values/problem_zh-cn.md | 8 +-- .../accessing-array-values/problem_zh-tw.md | 8 +-- problems/array-filtering/index.js | 2 +- problems/array-filtering/problem.md | 10 +-- problems/array-filtering/problem_es.md | 10 +-- problems/array-filtering/problem_fr.md | 10 +-- problems/array-filtering/problem_it.md | 10 +-- problems/array-filtering/problem_ja.md | 10 +-- problems/array-filtering/problem_ko.md | 10 +-- problems/array-filtering/problem_nb-no.md | 10 +-- problems/array-filtering/problem_pt-br.md | 10 +-- problems/array-filtering/problem_ru.md | 10 +-- problems/array-filtering/problem_uk.md | 10 +-- problems/array-filtering/problem_zh-cn.md | 10 +-- problems/array-filtering/problem_zh-tw.md | 10 +-- problems/arrays/index.js | 2 +- problems/arrays/problem.md | 2 +- problems/arrays/problem_es.md | 2 +- problems/arrays/problem_fr.md | 2 +- problems/arrays/problem_it.md | 2 +- problems/arrays/problem_ja.md | 2 +- problems/arrays/problem_ko.md | 2 +- problems/arrays/problem_nb-no.md | 2 +- problems/arrays/problem_pt-br.md | 2 +- problems/arrays/problem_ru.md | 2 +- problems/arrays/problem_uk.md | 2 +- problems/arrays/problem_zh-cn.md | 2 +- problems/arrays/problem_zh-tw.md | 2 +- problems/for-loop/index.js | 2 +- problems/for-loop/problem.md | 2 +- problems/for-loop/problem_es.md | 4 +- problems/for-loop/problem_fr.md | 2 +- problems/for-loop/problem_it.md | 2 +- problems/for-loop/problem_ja.md | 2 +- problems/for-loop/problem_ko.md | 2 +- problems/for-loop/problem_nb-no.md | 2 +- problems/for-loop/problem_pt-br.md | 2 +- problems/for-loop/problem_ru.md | 2 +- problems/for-loop/problem_uk.md | 2 +- problems/for-loop/problem_zh-cn.md | 2 +- problems/for-loop/problem_zh-tw.md | 2 +- problems/function-arguments/index.js | 2 +- problems/function-arguments/problem.md | 4 +- problems/function-arguments/problem_es.md | 4 +- problems/function-arguments/problem_fr.md | 4 +- problems/function-arguments/problem_it.md | 4 +- problems/function-arguments/problem_ja.md | 4 +- problems/function-arguments/problem_ko.md | 4 +- problems/function-arguments/problem_nb-no.md | 4 +- problems/function-arguments/problem_pt-br.md | 4 +- problems/function-arguments/problem_ru.md | 4 +- problems/function-arguments/problem_uk.md | 4 +- problems/function-arguments/problem_zh-cn.md | 4 +- problems/function-arguments/problem_zh-tw.md | 4 +- problems/function-return-values/index.js | 2 +- problems/functions/index.js | 2 +- problems/functions/problem.md | 6 +- problems/functions/problem_es.md | 4 +- problems/functions/problem_fr.md | 4 +- problems/functions/problem_it.md | 6 +- problems/functions/problem_ja.md | 4 +- problems/functions/problem_ko.md | 4 +- problems/functions/problem_nb-no.md | 4 +- problems/functions/problem_pt-br.md | 6 +- problems/functions/problem_ru.md | 4 +- problems/functions/problem_uk.md | 4 +- problems/functions/problem_zh-cn.md | 4 +- problems/functions/problem_zh-tw.md | 4 +- problems/if-statement/index.js | 2 +- problems/if-statement/problem.md | 4 +- problems/if-statement/problem_es.md | 6 +- problems/if-statement/problem_fr.md | 4 +- problems/if-statement/problem_it.md | 4 +- problems/if-statement/problem_ja.md | 4 +- problems/if-statement/problem_ko.md | 4 +- problems/if-statement/problem_nb-no.md | 4 +- problems/if-statement/problem_pt-br.md | 4 +- problems/if-statement/problem_ru.md | 4 +- problems/if-statement/problem_uk.md | 4 +- problems/if-statement/problem_zh-cn.md | 4 +- problems/if-statement/problem_zh-tw.md | 4 +- problems/introduction/index.js | 2 +- problems/introduction/problem.md | 2 +- problems/introduction/problem_es.md | 2 +- problems/introduction/problem_fr.md | 2 +- problems/introduction/problem_it.md | 2 +- problems/introduction/problem_ja.md | 2 +- problems/introduction/problem_ko.md | 2 +- problems/introduction/problem_nb-no.md | 2 +- problems/introduction/problem_pt-br.md | 2 +- problems/introduction/problem_ru.md | 2 +- problems/introduction/problem_uk.md | 2 +- problems/introduction/problem_zh-cn.md | 2 +- problems/introduction/problem_zh-tw.md | 2 +- problems/introduction/solution.md | 2 +- problems/introduction/solution_es.md | 2 +- problems/introduction/solution_fr.md | 2 +- problems/introduction/solution_it.md | 2 +- problems/introduction/solution_ja.md | 2 +- problems/introduction/solution_ko.md | 2 +- problems/introduction/solution_nb-no.md | 2 +- problems/introduction/solution_pt-br.md | 2 +- problems/introduction/solution_ru.md | 2 +- problems/introduction/solution_uk.md | 2 +- problems/introduction/solution_zh-cn.md | 2 +- problems/introduction/solution_zh-tw.md | 2 +- problems/looping-through-arrays/index.js | 2 +- problems/looping-through-arrays/problem.md | 8 +-- problems/looping-through-arrays/problem_es.md | 8 +-- problems/looping-through-arrays/problem_fr.md | 8 +-- problems/looping-through-arrays/problem_it.md | 8 +-- problems/looping-through-arrays/problem_ja.md | 8 +-- problems/looping-through-arrays/problem_ko.md | 8 +-- .../looping-through-arrays/problem_nb-no.md | 8 +-- .../looping-through-arrays/problem_pt-br.md | 8 +-- problems/looping-through-arrays/problem_ru.md | 8 +-- problems/looping-through-arrays/problem_uk.md | 8 +-- .../looping-through-arrays/problem_zh-cn.md | 8 +-- .../looping-through-arrays/problem_zh-tw.md | 8 +-- problems/number-to-string/index.js | 2 +- problems/number-to-string/problem.md | 4 +- problems/number-to-string/problem_es.md | 4 +- problems/number-to-string/problem_fr.md | 4 +- problems/number-to-string/problem_it.md | 4 +- problems/number-to-string/problem_ja.md | 4 +- problems/number-to-string/problem_ko.md | 4 +- problems/number-to-string/problem_nb-no.md | 4 +- problems/number-to-string/problem_pt-br.md | 4 +- problems/number-to-string/problem_ru.md | 4 +- problems/number-to-string/problem_uk.md | 4 +- problems/number-to-string/problem_zh-cn.md | 4 +- problems/number-to-string/problem_zh-tw.md | 4 +- problems/numbers/index.js | 2 +- problems/object-keys/index.js | 2 +- problems/object-keys/problem.md | 16 ++--- problems/object-keys/problem_es.md | 16 ++--- problems/object-keys/problem_it.md | 16 ++--- problems/object-properties/index.js | 2 +- problems/object-properties/problem.md | 10 +-- problems/object-properties/problem_es.md | 10 +-- problems/object-properties/problem_fr.md | 10 +-- problems/object-properties/problem_it.md | 10 +-- problems/object-properties/problem_ja.md | 10 +-- problems/object-properties/problem_ko.md | 10 +-- problems/object-properties/problem_nb-no.md | 10 +-- problems/object-properties/problem_pt-br.md | 10 +-- problems/object-properties/problem_ru.md | 10 +-- problems/object-properties/problem_uk.md | 10 +-- problems/object-properties/problem_zh-cn.md | 10 +-- problems/object-properties/problem_zh-tw.md | 10 +-- problems/objects/index.js | 2 +- problems/objects/problem.md | 4 +- problems/objects/problem_fr.md | 4 +- problems/objects/problem_it.md | 4 +- problems/objects/problem_ko.md | 4 +- problems/objects/problem_ru.md | 4 +- problems/objects/problem_uk.md | 14 ++-- problems/revising-strings/index.js | 2 +- problems/revising-strings/problem.md | 6 +- problems/revising-strings/problem_es.md | 6 +- problems/revising-strings/problem_fr.md | 6 +- problems/revising-strings/problem_it.md | 6 +- problems/revising-strings/problem_ja.md | 6 +- problems/revising-strings/problem_ko.md | 6 +- problems/revising-strings/problem_nb-no.md | 6 +- problems/revising-strings/problem_pt-br.md | 6 +- problems/revising-strings/problem_ru.md | 6 +- problems/revising-strings/problem_uk.md | 6 +- problems/revising-strings/problem_zh-cn.md | 6 +- problems/revising-strings/problem_zh-tw.md | 6 +- problems/rounding-numbers/index.js | 2 +- problems/rounding-numbers/problem.md | 2 +- problems/rounding-numbers/problem_es.md | 2 +- problems/rounding-numbers/problem_fr.md | 2 +- problems/rounding-numbers/problem_it.md | 2 +- problems/rounding-numbers/problem_ja.md | 2 +- problems/rounding-numbers/problem_ko.md | 2 +- problems/rounding-numbers/problem_nb-no.md | 2 +- problems/rounding-numbers/problem_pt-br.md | 2 +- problems/rounding-numbers/problem_ru.md | 2 +- problems/rounding-numbers/problem_uk.md | 2 +- problems/rounding-numbers/problem_zh-cn.md | 2 +- problems/rounding-numbers/problem_zh-tw.md | 2 +- problems/scope/index.js | 2 +- problems/scope/problem.md | 59 ++++++++------- problems/scope/problem_es.md | 59 ++++++++------- problems/scope/problem_fr.md | 57 ++++++++------- problems/scope/problem_it.md | 59 ++++++++------- problems/scope/problem_ja.md | 55 +++++++------- problems/scope/problem_ko.md | 55 +++++++------- problems/scope/problem_nb-no.md | 59 ++++++++------- problems/scope/problem_pt-br.md | 59 ++++++++------- problems/scope/problem_ru.md | 57 ++++++++------- problems/scope/problem_uk.md | 59 ++++++++------- problems/scope/problem_zh-cn.md | 59 ++++++++------- problems/scope/problem_zh-tw.md | 55 +++++++------- problems/string-length/index.js | 2 +- problems/string-length/problem.md | 2 +- problems/string-length/problem_es.md | 2 +- problems/string-length/problem_fr.md | 2 +- problems/string-length/problem_it.md | 2 +- problems/string-length/problem_ja.md | 2 +- problems/string-length/problem_ko.md | 2 +- problems/string-length/problem_nb-no.md | 2 +- problems/string-length/problem_pt-br.md | 4 +- problems/string-length/problem_ru.md | 4 +- problems/string-length/problem_uk.md | 2 +- problems/string-length/problem_zh-cn.md | 2 +- problems/string-length/problem_zh-tw.md | 2 +- problems/strings/index.js | 2 +- problems/strings/problem.md | 4 +- problems/strings/problem_es.md | 4 +- problems/strings/problem_fr.md | 4 +- problems/strings/problem_it.md | 4 +- problems/strings/problem_ja.md | 4 +- problems/strings/problem_ko.md | 4 +- problems/strings/problem_nb-no.md | 4 +- problems/strings/problem_pt-br.md | 4 +- problems/strings/problem_ru.md | 4 +- problems/strings/problem_uk.md | 4 +- problems/strings/problem_zh-cn.md | 4 +- problems/strings/problem_zh-tw.md | 4 +- problems/this/index.js | 2 +- problems/variables/index.js | 2 +- problems/variables/problem.md | 4 +- problems/variables/problem_es.md | 4 +- problems/variables/problem_fr.md | 4 +- problems/variables/problem_it.md | 4 +- problems/variables/problem_ja.md | 4 +- problems/variables/problem_ko.md | 4 +- problems/variables/problem_nb-no.md | 4 +- problems/variables/problem_pt-br.md | 4 +- problems/variables/problem_ru.md | 4 +- problems/variables/problem_uk.md | 4 +- problems/variables/problem_zh-cn.md | 4 +- problems/variables/problem_zh-tw.md | 4 +- solutions/accessing-array-values/index.js | 4 +- solutions/array-filtering/index.js | 8 +-- solutions/arrays/index.js | 4 +- solutions/for-loop/index.js | 6 +- solutions/function-arguments/index.js | 6 +- solutions/functions/index.js | 4 +- solutions/if-statement/index.js | 6 +- solutions/introduction/index.js | 2 +- solutions/looping-through-arrays/index.js | 8 +-- solutions/number-to-string/index.js | 4 +- solutions/numbers/index.js | 4 +- solutions/object-keys/index.js | 12 ++-- solutions/object-properties/index.js | 4 +- solutions/objects/index.js | 6 +- solutions/revising-strings/index.js | 6 +- solutions/rounding-numbers/index.js | 6 +- solutions/scope/index.js | 29 ++++---- solutions/string-length/index.js | 4 +- solutions/strings/index.js | 2 +- solutions/variables/index.js | 4 +- 275 files changed, 1058 insertions(+), 1078 deletions(-) diff --git a/LOCALIZING.md b/LOCALIZING.md index 031263b4..456a2d2a 100644 --- a/LOCALIZING.md +++ b/LOCALIZING.md @@ -10,11 +10,11 @@ In the `index.js` file, the workshopper is instantiated with a list of supported ```js const workshopper = require('workshopper-adventure')({ - appDir: __dirname - , languages: ['en', 'ja', 'zh-cn'] - , header: require('workshopper-adventure/default/header') - , footer: require('./lib/footer.js') -}); + appDir: __dirname, + languages: ['en', 'ja', 'zh-cn'], + header: require('workshopper-adventure/default/header'), + footer: require('./lib/footer.js') +}) ``` If you want to add a new language, e.g. Spanish, add an entry `'es'` to the array: diff --git a/index.js b/index.js index 50332d19..2ae3db48 100644 --- a/index.js +++ b/index.js @@ -1,19 +1,19 @@ var jsing = require('workshopper-adventure')({ - appDir: __dirname - , languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru', 'fr'] - , header: require('workshopper-adventure/default/header') - , footer: require('./lib/footer.js') -}); + appDir: __dirname, + languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru', 'fr'], + header: require('workshopper-adventure/default/header'), + footer: require('./lib/footer.js') +}) jsing.addAll(require('./menu.json').map(function (problem) { return { name: problem, fn: function () { - var p = problem.toLowerCase().replace(/\s/g, '-'); - var dir = require('path').join(__dirname, 'problems', p); - return require(dir); + var p = problem.toLowerCase().replace(/\s/g, '-') + var dir = require('path').join(__dirname, 'problems', p) + return require(dir) } } })) -module.exports = jsing; +module.exports = jsing diff --git a/lib/compare-solution.js b/lib/compare-solution.js index 542d4bb4..6a7dad0f 100644 --- a/lib/compare-solution.js +++ b/lib/compare-solution.js @@ -1,58 +1,49 @@ -require("colors"); +require('colors') -var path = require("path"); -var diff = require("diff"); -var run = require(path.join(__dirname, "run-solution")); +var path = require('path') +var diff = require('diff') +var run = require(path.join(__dirname, 'run-solution')) -module.exports = function(solution, attempt, i18n, cb) { - run(solution, i18n, function(err, solutionResult) { - - if(err) { - console.error(err); - return cb(false); +module.exports = function (solution, attempt, i18n, cb) { + run(solution, i18n, function (err, solutionResult) { + if (err) { + console.error(err) + return cb(false) } - run(attempt, i18n, function(err, attemptResult) { - - if(err && err.code !== 8) { - console.error(err); - return cb(false); + run(attempt, i18n, function (err, attemptResult) { + if (err && err.code !== 8) { + console.error(err) + return cb(false) } - if(solutionResult === attemptResult) { - return cb(true); + if (solutionResult === attemptResult) { + return cb(true) } cb(false, { solution: solutionResult, - attempt: err || attemptResult, - diff: generateDiff(solutionResult, attemptResult) - }); - - }); - - }); - + attempt: err || attemptResult, + diff: generateDiff(solutionResult, attemptResult) + }) + }) + }) } -function generateDiff(solution, attempt) { +function generateDiff (solution, attempt) { + var parts = diff.diffChars(solution, attempt) - var parts = diff.diffChars(solution, attempt); + var result = '' - var result = ""; - - parts.forEach(function(part) { - - if(part.added) { - result += part.value["bgRed"]; - } else if(part.removed) { - result += part.value["bgGreen"]; + parts.forEach(function (part) { + if (part.added) { + result += part.value.bgRed + } else if (part.removed) { + result += part.value.bgGreen } else { - result += part.value; + result += part.value } + }) - }); - - return result; - + return result } diff --git a/lib/footer.js b/lib/footer.js index 88b55ff3..2b314bac 100644 --- a/lib/footer.js +++ b/lib/footer.js @@ -1,7 +1,7 @@ var path = require('path') module.exports = [ - {text: '---', type: 'md'} - , {file: path.join(__dirname, '..', 'i18n', 'footer', '{lang}.md')} - , {text: '', type: 'md'} - , require('workshopper-adventure/default/footer') -] \ No newline at end of file + { text: '---', type: 'md' }, + { file: path.join(__dirname, '..', 'i18n', 'footer', '{lang}.md') }, + { text: '', type: 'md' }, + require('workshopper-adventure/default/footer') +] diff --git a/lib/get-file.js b/lib/get-file.js index 372da454..02dde51c 100644 --- a/lib/get-file.js +++ b/lib/get-file.js @@ -1,10 +1,10 @@ -var fs = require('fs'); -var path = require('path'); +var fs = require('fs') +var path = require('path') module.exports = function (filepath) { return fs.readFileSync(filepath, 'utf8') .replace(/'/g, "'") .replace(/"/g, '"') .replace(/</g, '<') - .replace(/>/g, '>'); -}; + .replace(/>/g, '>') +} diff --git a/lib/problem.js b/lib/problem.js index ebc4f9c2..76a97b17 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -1,54 +1,51 @@ -var path = require('path'); -var getFile = require('./get-file'); -var compare = require('./compare-solution'); +var path = require('path') +var getFile = require('./get-file') +var compare = require('./compare-solution') -module.exports = function createProblem(dirname) { - var exports = {}; +module.exports = function createProblem (dirname) { + var exports = {} - var problemName = dirname.split(path.sep); - var i18n; + var problemName = dirname.split(path.sep) + var i18n - problemName = problemName[problemName.length-1]; + problemName = problemName[problemName.length - 1] exports.init = function (workshopper) { - i18n = workshopper.i18n; - var postfix = workshopper.i18n.lang() === 'en' ? '' : '_' + workshopper.i18n.lang(); - this.problem = {file: path.join(dirname, 'problem' + postfix + '.md')}; - this.solution = {file: path.join(dirname, 'solution' + postfix + '.md')}; - this.solutionPath = path.resolve(__dirname, '..', 'solutions', problemName, "index.js"); - this.troubleshootingPath = path.join(__dirname, '..', 'i18n', 'troubleshooting' + postfix + '.md'); + i18n = workshopper.i18n + var postfix = workshopper.i18n.lang() === 'en' ? '' : '_' + workshopper.i18n.lang() + this.problem = { file: path.join(dirname, 'problem' + postfix + '.md') } + this.solution = { file: path.join(dirname, 'solution' + postfix + '.md') } + this.solutionPath = path.resolve(__dirname, '..', 'solutions', problemName, 'index.js') + this.troubleshootingPath = path.join(__dirname, '..', 'i18n', 'troubleshooting' + postfix + '.md') } exports.verify = function (args, cb) { - - var attemptPath = path.resolve(process.cwd(), args[0]); - compare(this.solutionPath, attemptPath, i18n, function(match, obj) { - - if(match) { - return cb(true); + var attemptPath = path.resolve(process.cwd(), args[0]) + compare(this.solutionPath, attemptPath, i18n, function (match, obj) { + if (match) { + return cb(true) } - if(!obj) { + if (!obj) { // An error occured, we've already printed an error - return; + return } - var message = getFile(this.troubleshootingPath); + var message = getFile(this.troubleshootingPath) - message = message.replace(/%solution%/g, obj.solution); - message = message.replace(/%attempt%/g, obj.attempt); - message = message.replace(/%diff%/g, obj.diff); - message = message.replace(/%filename%/g, args[0]); + message = message.replace(/%solution%/g, obj.solution) + message = message.replace(/%attempt%/g, obj.attempt) + message = message.replace(/%diff%/g, obj.diff) + message = message.replace(/%filename%/g, args[0]) exports.fail = [ - {text: message, type: 'md' }, + { text: message, type: 'md' }, require('./footer.js') ] - cb(false); - - }.bind(this)); - }; + cb(false) + }.bind(this)) + } - return exports; + return exports } diff --git a/lib/run-solution.js b/lib/run-solution.js index 64c99f2a..73d56e0f 100644 --- a/lib/run-solution.js +++ b/lib/run-solution.js @@ -1,58 +1,57 @@ -var fs = require('fs'); -var path = require('path'); -var docs = path.join(__dirname, 'docs'); -var exec = require('child_process').exec; +var fs = require('fs') +var path = require('path') +var docs = path.join(__dirname, 'docs') +var exec = require('child_process').exec if (typeof Promise === 'undefined') { - var Promise = require('promise'); + var Promise = require('promise') } /** * @param {!string} filePath * @return {Promise} */ -function exists(filePath) { - return new Promise(function(res, rej) { - fs.stat(filePath, function(err, d) { +function exists (filePath) { + return new Promise(function (res, rej) { + fs.stat(filePath, function (err, d) { if (err) { - res(false); + res(false) } - res(true); - }); - }); + res(true) + }) + }) } /** * @param {!string} filePath * @return {Promise} */ -function executeSolution(filePath) { - return new Promise(function(res, rej) { +function executeSolution (filePath) { + return new Promise(function (res, rej) { exec('node "' + filePath + '"', function (err, stdout, stderr) { if (err) { - return rej(err); + return rej(err) } - return res(stdout); - }); - }); + return res(stdout) + }) + }) } - /** * @param {string} solutionPath * @param {!{__: function(string, object)}} i18n * @param {function} cb */ module.exports = function (solutionPath, i18n, cb) { - exists(solutionPath).then(function(solutionExists) { + exists(solutionPath).then(function (solutionExists) { if (!solutionExists) { - throw new Error(i18n.__('error.exercise.missing_file', {exerciseFile: solutionPath})); + throw new Error(i18n.__('error.exercise.missing_file', { exerciseFile: solutionPath })) } - return executeSolution(solutionPath); - }).then(function(stdout) { - cb(null, stdout); - }).catch(cb); + return executeSolution(solutionPath) + }).then(function (stdout) { + cb(null, stdout) + }).catch(cb) } diff --git a/package.json b/package.json index c988ab09..2e7c141d 100644 --- a/package.json +++ b/package.json @@ -17,5 +17,11 @@ "diff": "^4.0.1", "workshopper-adventure": "^6.0.4" }, - "license": "MIT" + "license": "MIT", + "devDependencies": { + "standard": "^14.2.0" + }, + "scripts": { + "test": "standard" + } } diff --git a/problems/accessing-array-values/index.js b/problems/accessing-array-values/index.js index 706d66c2..24dc941d 100644 --- a/problems/accessing-array-values/index.js +++ b/problems/accessing-array-values/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/accessing-array-values/problem.md b/problems/accessing-array-values/problem.md index 729cacc1..78d7f6f5 100644 --- a/problems/accessing-array-values/problem.md +++ b/problems/accessing-array-values/problem.md @@ -6,9 +6,9 @@ Here is an example: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` The above code will print the first element of `pets` array - string `cat`. @@ -20,7 +20,7 @@ Dot notation is invalid. Valid notation: ```js -console.log(pets[0]); +console.log(pets[0]) ``` Invalid notation: @@ -34,7 +34,7 @@ Create a file named `accessing-array-values.js`. In that file, define array `food` : ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` diff --git a/problems/accessing-array-values/problem_es.md b/problems/accessing-array-values/problem_es.md index 7cba710d..17297941 100644 --- a/problems/accessing-array-values/problem_es.md +++ b/problems/accessing-array-values/problem_es.md @@ -5,9 +5,9 @@ El número de índice comienza en cero y finaliza en el valor de la propiedad lo A continuación, un ejemplo: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` El código de arriba, imprime el primer elemento del array de `pets` - string `cat` @@ -19,7 +19,7 @@ Notación de punto es inválida. Notación válida: ```js -console.log(pets[0]); +console.log(pets[0]) ``` Notación inválida: @@ -33,7 +33,7 @@ Crea un archivo llamado `accediendo-valores-array.js` En ese archivo, define un array llamado `food` : ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` Usa `console.log()` para imprimir el `segundo` valor del array en la terminal. diff --git a/problems/accessing-array-values/problem_fr.md b/problems/accessing-array-values/problem_fr.md index cd3ac2bc..433fd93b 100644 --- a/problems/accessing-array-values/problem_fr.md +++ b/problems/accessing-array-values/problem_fr.md @@ -5,9 +5,9 @@ Les index doivent être des nombres allant de zero à la longueur du tableaux mo Voici un exemple : ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` Le code ci-dessus affichera le premier élément du tableau `pets` - la chaine de caractères `cat`. @@ -17,7 +17,7 @@ On ne doit accéder aux éléments de tableaux qu'au travers de la notation « Notation valide : ```js -console.log(pets[0]); +console.log(pets[0]) ``` Notation invalide : @@ -31,7 +31,7 @@ Créez un fichier nommé `acces-valeurs-tableau.js` Dans ce fichier, définissez un tableau `food` : ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` diff --git a/problems/accessing-array-values/problem_it.md b/problems/accessing-array-values/problem_it.md index aa6ab97c..44834edf 100644 --- a/problems/accessing-array-values/problem_it.md +++ b/problems/accessing-array-values/problem_it.md @@ -6,9 +6,9 @@ Ecco un esempio: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` Il codice precedente stampa il primo elemento dell'array `pets` - la stringa `cat`. @@ -20,7 +20,7 @@ La notazione puntata non è valida. Notazione valida: ```js -console.log(pets[0]); +console.log(pets[0]) ``` Notazione non valida: @@ -34,7 +34,7 @@ Crea un file dal nome `accessing-array-values.js`. In questo file, definisci l'array `food` : ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` diff --git a/problems/accessing-array-values/problem_ja.md b/problems/accessing-array-values/problem_ja.md index 4ab93ecb..108a21d5 100644 --- a/problems/accessing-array-values/problem_ja.md +++ b/problems/accessing-array-values/problem_ja.md @@ -5,9 +5,9 @@ 以下に例を示します... ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` 上記のコードは配列 `pets` の最初の要素、つまり文字列 `cat` を表示します。 @@ -17,7 +17,7 @@ console.log(pets[0]); 有効な書き方 ```js -console.log(pets[0]); +console.log(pets[0]) ``` ドット表記を使ってもアクセスできません。 @@ -34,7 +34,7 @@ console.log(pets.1); ファイルの中で、次の配列 `food` を定義します。 ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` diff --git a/problems/accessing-array-values/problem_ko.md b/problems/accessing-array-values/problem_ko.md index 2029f88e..991549f5 100644 --- a/problems/accessing-array-values/problem_ko.md +++ b/problems/accessing-array-values/problem_ko.md @@ -6,9 +6,9 @@ ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` 위의 코드는 `pet`의 첫 번째 요소인 `cat` 문자열을 출력할 것입니다. @@ -20,7 +20,7 @@ console.log(pets[0]); 유효한 표기법 ```js -console.log(pets[0]); +console.log(pets[0]) ``` 유효하지 않은 표기법 @@ -34,7 +34,7 @@ console.log(pets.1); 그 파일에서, `food`라는 배열을 정의합니다. ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` diff --git a/problems/accessing-array-values/problem_nb-no.md b/problems/accessing-array-values/problem_nb-no.md index 9688ee78..c397e133 100644 --- a/problems/accessing-array-values/problem_nb-no.md +++ b/problems/accessing-array-values/problem_nb-no.md @@ -5,9 +5,9 @@ Indeksnummeret starter fra null opp til antallet verdier i arrayet, minus en. Her er et eksempel: ```js -const dyr = ['katt', 'hund', 'rotte']; +const dyr = ['katt', 'hund', 'rotte'] -console.log(dyr[0]); +console.log(dyr[0]) ``` Koden over skriver ut den første verdien i `dyr` arrayet - strengen `katt`. @@ -19,7 +19,7 @@ Punktum notasjon er ikke gyldig. Gyldig: ```js -console.log(dyr[0]); +console.log(dyr[0]) ``` Ugyldig: @@ -33,7 +33,7 @@ Lag en fil som heter `accessing-array-values.js`. Definer et array `food` i den filen: ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` Bruk `console.log()` til å skrive ut den `andre` verdien av det arrayet til skjermen. diff --git a/problems/accessing-array-values/problem_pt-br.md b/problems/accessing-array-values/problem_pt-br.md index fad61bc9..d9881ec2 100644 --- a/problems/accessing-array-values/problem_pt-br.md +++ b/problems/accessing-array-values/problem_pt-br.md @@ -6,9 +6,9 @@ Aqui está um exemplo: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` O código acima imprime o primeiro elemento do array `pets` - a string `cat`. @@ -20,7 +20,7 @@ Utilizar ponto para acessar o elemento não é válido. Uso válido: ```js -console.log(pets[0]); +console.log(pets[0]) ``` Uso invalido: @@ -34,7 +34,7 @@ Crie um arquivo chamado `accessing-array-values.js`. Neste arquivo, defina o array `food` : ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` diff --git a/problems/accessing-array-values/problem_ru.md b/problems/accessing-array-values/problem_ru.md index a3ddc7f9..9b2c31a6 100644 --- a/problems/accessing-array-values/problem_ru.md +++ b/problems/accessing-array-values/problem_ru.md @@ -6,9 +6,9 @@ ```js - const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] - console.log(pets[0]); +console.log(pets[0]) ``` Приведённый выше код должен вывести первый элемент массива `pets` -- строку `cat`. @@ -20,7 +20,7 @@ Правильная запись: ```js - console.log(pets[0]); +console.log(pets[0]) ``` Неправильная запись: @@ -34,7 +34,7 @@ В этом файле объявите массив `food` : ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` diff --git a/problems/accessing-array-values/problem_uk.md b/problems/accessing-array-values/problem_uk.md index 8b87864c..c6e11cd6 100644 --- a/problems/accessing-array-values/problem_uk.md +++ b/problems/accessing-array-values/problem_uk.md @@ -5,9 +5,9 @@ Приклад: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` Код вище виведе перший елемент масиву `pets` - рядок `cat`. @@ -19,12 +19,12 @@ console.log(pets[0]); Правильний запис: ```js -console.log(pets[0]); +console.log(pets[0]) ``` Неправильний запис: ```js -console.log(pets.1); +console.log(pets.1) ``` ## Завдання: @@ -33,7 +33,7 @@ console.log(pets.1); У цьому файлі створити масив 'food' : ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` Використайте `console.log()`, щоб надрукувати 'другий' елемент масиву в терміналі. diff --git a/problems/accessing-array-values/problem_zh-cn.md b/problems/accessing-array-values/problem_zh-cn.md index 8b6b387e..ccbe8719 100644 --- a/problems/accessing-array-values/problem_zh-cn.md +++ b/problems/accessing-array-values/problem_zh-cn.md @@ -5,9 +5,9 @@ 下面是一个例子: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` 上面的代码将打印出 `pets` 数组的第一个元素,也就是字符串 `cat`。 @@ -19,7 +19,7 @@ console.log(pets[0]); 这是一个正确的例子: ```js -console.log(pets[0]); +console.log(pets[0]) ``` 下面的用法是错误的: @@ -33,7 +33,7 @@ console.log(pets.1); 在文件中定义一个数组 `food`: ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` 使用 `console.log()` 打印数组的第二个值到终端。 diff --git a/problems/accessing-array-values/problem_zh-tw.md b/problems/accessing-array-values/problem_zh-tw.md index f5c488cc..f6511ffb 100644 --- a/problems/accessing-array-values/problem_zh-tw.md +++ b/problems/accessing-array-values/problem_zh-tw.md @@ -5,9 +5,9 @@ 下面是一個例子: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -console.log(pets[0]); +console.log(pets[0]) ``` 上面的程式碼將印出 `pets` 陣列的第一個元素,也就是字串 `cat`。 @@ -19,7 +19,7 @@ console.log(pets[0]); 這是一個正確的例子: ```js -console.log(pets[0]); +console.log(pets[0]) ``` 下面的用法是錯誤的: @@ -33,7 +33,7 @@ console.log(pets.1); 在該檔案中定義一個陣列 `food`: ```js -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] ``` 使用 `console.log()` 印出陣列中的 `第二個` 值。 diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js index 706d66c2..24dc941d 100644 --- a/problems/array-filtering/index.js +++ b/problems/array-filtering/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/array-filtering/problem.md b/problems/array-filtering/problem.md index 5b1e8d66..971e583f 100644 --- a/problems/array-filtering/problem.md +++ b/problems/array-filtering/problem.md @@ -7,11 +7,11 @@ For this we can use the `.filter()` method. Here is an example: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` The `filtered` variable will now only contain `cat` and `dog`. @@ -23,7 +23,7 @@ Create a file named `array-filtering.js`. In that file, define a variable named `numbers` that references this array: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Like above, define a variable named `filtered` that references the result of `numbers.filter()`. @@ -32,7 +32,7 @@ The function that you pass to the `.filter()` method will look something like th ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_es.md b/problems/array-filtering/problem_es.md index 652b90a6..2382a3b9 100644 --- a/problems/array-filtering/problem_es.md +++ b/problems/array-filtering/problem_es.md @@ -13,11 +13,11 @@ Para esto podemos utilizar el método `.filter`. Por ejemplo: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` La variable `filtered` será igual a un array que contiene solo `cat` y `dog`. @@ -29,7 +29,7 @@ Crea un archivo llamado `filtrado-de-arrays.js`. En ese archivo, define una variable llamada `numbers` que referencie al siguiente array: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Luego, define una variable llamada `filtered` que referencie el resultado de `numbers.filter()`. @@ -38,7 +38,7 @@ La función que recibe `.filter()` será algo cómo lo siguiente: ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_fr.md b/problems/array-filtering/problem_fr.md index f72339b4..cdf76aba 100644 --- a/problems/array-filtering/problem_fr.md +++ b/problems/array-filtering/problem_fr.md @@ -7,11 +7,11 @@ Pour cela nous pouvons utiliser la méthode `.filter()`. Voici un exemple : ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` La variable `filtered` ne va contenir que `cat` et `dog`. @@ -23,7 +23,7 @@ Créer un fichier nommé `filtrage-de-tableau.js`. Dans ce fichier, définissez une variable nommée `numbers` qui contient ce tableau : ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Comme ci-dessus, définissez une variable nommée `filtered` qui contient le résultat de `numbers.filter()`. @@ -32,7 +32,7 @@ La fonction que vous passerez à la méthode `.filter()` va ressembler à ça : ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_it.md b/problems/array-filtering/problem_it.md index c1df8ee8..d0cc1f65 100644 --- a/problems/array-filtering/problem_it.md +++ b/problems/array-filtering/problem_it.md @@ -7,11 +7,11 @@ Per fare ciò possiamo utilizzare il metodo `.filter()`. Ecco un esempio: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` La variabile `filtered` conterrà soltanto `cat` e `dog`. @@ -23,7 +23,7 @@ Crea un file dal nome `array-filtering.js`. In questo file, definisci una variabile chiamata `numbers` che fa riferimento a questo array: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Come sopra, definisci una variabile chiamata `filtered` che fa riferimento al risultato di `numbers.filter()`. @@ -32,7 +32,7 @@ La funzione che passerai al metodo `.filter()` dovrà apparire come segue: ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_ja.md b/problems/array-filtering/problem_ja.md index e1c57683..6a203764 100644 --- a/problems/array-filtering/problem_ja.md +++ b/problems/array-filtering/problem_ja.md @@ -7,11 +7,11 @@ たとえば... ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` `フィルターした` 配列の中には `cat` と `dog` だけが残ります。 @@ -24,7 +24,7 @@ const filtered = pets.filter(function (pet) { ファイルの中で、 次の配列を表す、変数 `numbers` を定義しましょう。 ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` 同様に、 `numbers.filter()` の実行結果を表す、変数 `filtered` を定義しましょう。 @@ -33,7 +33,7 @@ const filtered = pets.filter(function (pet) { ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_ko.md b/problems/array-filtering/problem_ko.md index fda147d5..d47157fc 100644 --- a/problems/array-filtering/problem_ko.md +++ b/problems/array-filtering/problem_ko.md @@ -7,11 +7,11 @@ 여기에 예제가 있습니다. ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` `filtered` 변수는 이제 `cat`과 `dog`만 가지고 있습니다. @@ -23,7 +23,7 @@ const filtered = pets.filter(function (pet) { 이 파일에 밑의 배열을 참조하는 `numbers`라는 변수를 정의합니다. ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` 위에 있는 것처럼, `numbers.filter()`의 결과를 참조하는 `filtered`라는 변수를 선언합니다. @@ -32,7 +32,7 @@ const filtered = pets.filter(function (pet) { ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_nb-no.md b/problems/array-filtering/problem_nb-no.md index 95666a63..1bae82a8 100644 --- a/problems/array-filtering/problem_nb-no.md +++ b/problems/array-filtering/problem_nb-no.md @@ -7,11 +7,11 @@ For det kan vi bruke `.filter()` metoden. Her er et eksempel: ```js -const dyr = ['katt', 'hund', 'elefant']; +const dyr = ['katt', 'hund', 'elefant'] const filtrert = dyr.filter(function (ettDyr) { - return (ettDyr !== 'elefant'); -}); + return (ettDyr !== 'elefant') +}) ``` `filtrert` variablen vil nå kun inneholde `katt` og `hund`. @@ -22,7 +22,7 @@ Lag en fil som heter `array-filtering.js`. Definer en variabel med navnet `numbers` i den filen som referer dette arrayet: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Som i eksemplet over, definer en variabel med navnet `filtered` som refererer resultatet av `numbers.filter()`. @@ -31,7 +31,7 @@ Funksjonen du gir til `.filter()` metoden skal se slik ut: ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_pt-br.md b/problems/array-filtering/problem_pt-br.md index 8e63ce82..d112e183 100644 --- a/problems/array-filtering/problem_pt-br.md +++ b/problems/array-filtering/problem_pt-br.md @@ -7,11 +7,11 @@ Para isso podemos usar o método `.filter()`. Aqui está um exemplo: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` A variável `filtered` irá conter apenas `cat` e `dog`. @@ -23,7 +23,7 @@ Crie um arquivo chamado `array-filtering.js`. Neste arquivo, defina uma variável chamada `numbers` que referencia este array: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Como acima, defina uma variavel chamada `filtered` com referência ao resultado de `numbers.filter()`. @@ -32,7 +32,7 @@ A função que você passa para o método `.filter()` será igual essa: ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_ru.md b/problems/array-filtering/problem_ru.md index c2a38be4..6d33b5f1 100644 --- a/problems/array-filtering/problem_ru.md +++ b/problems/array-filtering/problem_ru.md @@ -7,11 +7,11 @@ Например: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` Переменная `filtered` теперь будет содержать массив с элементами `cat` и `dog`. @@ -23,7 +23,7 @@ const filtered = pets.filter(function (pet) { В этом файле требуется объявить переменную `numbers`, которой должен быть присвоен следующий массив: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Как было показано выше, объявите переменную `filtered` и присвойте ей результат выполнения `numbers.filter()`. @@ -32,7 +32,7 @@ const filtered = pets.filter(function (pet) { ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_uk.md b/problems/array-filtering/problem_uk.md index 36a6ce2b..01666ce6 100644 --- a/problems/array-filtering/problem_uk.md +++ b/problems/array-filtering/problem_uk.md @@ -7,11 +7,11 @@ Приклад: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { -return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` Змінна `filtered` буде містили лише елементи `cat` та `dog`. @@ -23,7 +23,7 @@ return (pet !== 'elephant'); У цьому файлі, створіть змінну 'numbers', що міститиме такий масив: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` Як у прикладі вище, оголосіть змінну `filtered`, що міститиме результат виконання `numbers.filter()`. @@ -32,7 +32,7 @@ return (pet !== 'elephant'); ```js function evenNumbers (number) { -return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_zh-cn.md b/problems/array-filtering/problem_zh-cn.md index 0aef1318..75b7bd2b 100644 --- a/problems/array-filtering/problem_zh-cn.md +++ b/problems/array-filtering/problem_zh-cn.md @@ -7,11 +7,11 @@ 下面是一个例子: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` 变量 `filtered` 现在仅包含 `cat` 和 `dog`。 @@ -23,7 +23,7 @@ const filtered = pets.filter(function (pet) { 在文件中,定义一个名为 `numbers` 的变量,并赋予下面的值: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` 像上面的例子那样,定义一个 `filtered` 变量,使它引用 `numbers.filter()` 的结果。 @@ -32,7 +32,7 @@ const filtered = pets.filter(function (pet) { ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/array-filtering/problem_zh-tw.md b/problems/array-filtering/problem_zh-tw.md index d71e0844..fdb79db3 100644 --- a/problems/array-filtering/problem_zh-tw.md +++ b/problems/array-filtering/problem_zh-tw.md @@ -7,11 +7,11 @@ 下面是一個例子: ```js -const pets = ['cat', 'dog', 'elephant']; +const pets = ['cat', 'dog', 'elephant'] const filtered = pets.filter(function (pet) { - return (pet !== 'elephant'); -}); + return (pet !== 'elephant') +}) ``` 變數 `filtered` 現在僅包含 `cat` 和 `dog`。 @@ -23,7 +23,7 @@ const filtered = pets.filter(function (pet) { 在該檔案中,定義一個名為 `numbers` 的變數,並賦予下面的值: ```js -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` 像上面的例子那樣,定義一個 `filtered` 變數,使它引用 `numbers.filter()` 的結果。 @@ -32,7 +32,7 @@ const filtered = pets.filter(function (pet) { ```js function evenNumbers (number) { - return number % 2 === 0; + return number % 2 === 0 } ``` diff --git a/problems/arrays/index.js b/problems/arrays/index.js index 706d66c2..24dc941d 100644 --- a/problems/arrays/index.js +++ b/problems/arrays/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/arrays/problem.md b/problems/arrays/problem.md index 9efdf578..1aa44475 100644 --- a/problems/arrays/problem.md +++ b/problems/arrays/problem.md @@ -1,7 +1,7 @@ An array is a list of values. Here's an example: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### The challenge: diff --git a/problems/arrays/problem_es.md b/problems/arrays/problem_es.md index 0f81adee..08717f60 100644 --- a/problems/arrays/problem_es.md +++ b/problems/arrays/problem_es.md @@ -1,7 +1,7 @@ Un array es una lista ordenada de elementos. Por ejemplo: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### El ejercicio: diff --git a/problems/arrays/problem_fr.md b/problems/arrays/problem_fr.md index 57c9e55a..ab58b092 100644 --- a/problems/arrays/problem_fr.md +++ b/problems/arrays/problem_fr.md @@ -1,7 +1,7 @@ Un tableau est une liste de valeurs. Voici un exemple : ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### Le défi : diff --git a/problems/arrays/problem_it.md b/problems/arrays/problem_it.md index cc28b48a..0cb896c6 100644 --- a/problems/arrays/problem_it.md +++ b/problems/arrays/problem_it.md @@ -1,7 +1,7 @@ Un array è una lista di valori. Ecco un esempio: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### La sfida: diff --git a/problems/arrays/problem_ja.md b/problems/arrays/problem_ja.md index 49baedf1..344845e7 100644 --- a/problems/arrays/problem_ja.md +++ b/problems/arrays/problem_ja.md @@ -1,7 +1,7 @@ 配列は、値のリストです。たとえば、こう... ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ## やってみよう diff --git a/problems/arrays/problem_ko.md b/problems/arrays/problem_ko.md index 62ff4714..60f4edeb 100644 --- a/problems/arrays/problem_ko.md +++ b/problems/arrays/problem_ko.md @@ -1,7 +1,7 @@ 배열은 값의 목록입니다. 예를 들면 다음과 같습니다. ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### 도전 과제 diff --git a/problems/arrays/problem_nb-no.md b/problems/arrays/problem_nb-no.md index 1e1e061b..8a1bc5f2 100644 --- a/problems/arrays/problem_nb-no.md +++ b/problems/arrays/problem_nb-no.md @@ -1,7 +1,7 @@ Et array er en liste av verdier. Her er et eksempel: ```js -const dyr = ['katt', 'hund', 'rotte']; +const dyr = ['katt', 'hund', 'rotte'] ``` ### Oppgaven: diff --git a/problems/arrays/problem_pt-br.md b/problems/arrays/problem_pt-br.md index 20b3636a..ba264ecf 100644 --- a/problems/arrays/problem_pt-br.md +++ b/problems/arrays/problem_pt-br.md @@ -1,7 +1,7 @@ Um array é uma lista de valores. Aqui está um exemplo: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### Desafio: diff --git a/problems/arrays/problem_ru.md b/problems/arrays/problem_ru.md index 9578536a..9d345bdb 100644 --- a/problems/arrays/problem_ru.md +++ b/problems/arrays/problem_ru.md @@ -1,7 +1,7 @@ Массив -- это набор значений. Например: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### Условие задачи: diff --git a/problems/arrays/problem_uk.md b/problems/arrays/problem_uk.md index f9d50b97..d101ef6b 100644 --- a/problems/arrays/problem_uk.md +++ b/problems/arrays/problem_uk.md @@ -1,7 +1,7 @@ Масивами називають значень. Наприклад: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### Завдання: diff --git a/problems/arrays/problem_zh-cn.md b/problems/arrays/problem_zh-cn.md index d64cf707..38226ddc 100644 --- a/problems/arrays/problem_zh-cn.md +++ b/problems/arrays/problem_zh-cn.md @@ -1,7 +1,7 @@ 数组就是由一组值构成的列表。下面是一个例子: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### 挑战: diff --git a/problems/arrays/problem_zh-tw.md b/problems/arrays/problem_zh-tw.md index e8be3d56..1696ee8c 100644 --- a/problems/arrays/problem_zh-tw.md +++ b/problems/arrays/problem_zh-tw.md @@ -1,7 +1,7 @@ 陣列就是由一組值構成的列表。下面是一個例子: ```js -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] ``` ### 挑戰: diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js index 706d66c2..24dc941d 100644 --- a/problems/for-loop/index.js +++ b/problems/for-loop/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/for-loop/problem.md b/problems/for-loop/problem.md index 26703b55..277048ce 100644 --- a/problems/for-loop/problem.md +++ b/problems/for-loop/problem.md @@ -26,7 +26,7 @@ Create a for loop with a variable `i` starting at 0 and increasing by 1 each tim On each iteration of the loop, add the number `i` to the `total` variable. To do this, you can use this statement: ```js -total += i; +total += i ``` When this statement is used in a for loop, it can also be known as _an accumulator_. Think of it like a cash register's running total while each item is scanned and added up. For this challenge, you have 10 items and they just happen to be increasing in price by 1 each item (with the first item free!). diff --git a/problems/for-loop/problem_es.md b/problems/for-loop/problem_es.md index a680d78f..e300abdf 100644 --- a/problems/for-loop/problem_es.md +++ b/problems/for-loop/problem_es.md @@ -3,7 +3,7 @@ Un bucle for es como lo siguiente: ```js for (let i = 0; i < 10; i++) { // imprime los números del 0 al 9 - console.log(i); + console.log(i) } ``` La variable `i` es utilizada como contador, en ella se almacenará la cantidad de veces que se ejecutó el bucle. @@ -26,7 +26,7 @@ Crea un for que itere 10 veces. En cada iteración, añade el valor de `i` a la Puedes utilizar lo siguiente: ```js -total += i; +total += i ``` Luego del for, utiliza `console.log()` para imprimir la variable `total` a la terminal. diff --git a/problems/for-loop/problem_fr.md b/problems/for-loop/problem_fr.md index 5512ae93..b4a00d50 100644 --- a/problems/for-loop/problem_fr.md +++ b/problems/for-loop/problem_fr.md @@ -26,7 +26,7 @@ Créez une boucle `for` avec une variable `i` commençant à 0 et s'incrémentan À chaque itération de la boucle, ajoutez le nombre `i` à la variable `total`. Pour faire cela, vous pouvez utiliser l'instruction suivante : ```js -total += i; +total += i ``` Après la boucle, utilisez `console.log()` pour afficher la variable `total` dans le terminal. diff --git a/problems/for-loop/problem_it.md b/problems/for-loop/problem_it.md index b4e0d6dd..98ab2315 100644 --- a/problems/for-loop/problem_it.md +++ b/problems/for-loop/problem_it.md @@ -27,7 +27,7 @@ Crea un ciclo for con una variabile `i` che inizia da 0 e viene incrementata di Ad ogni iterazione del ciclo, aggiungi il valore di `i` alla variabile `total`. Per fare ciò, puoi usare quest'istruzione: ```js -total += i; +total += i ``` Al termine del ciclo for, usa `console.log()` per stampare la variabile `total` sul terminale. diff --git a/problems/for-loop/problem_ja.md b/problems/for-loop/problem_ja.md index c9440745..26cdeeb4 100644 --- a/problems/for-loop/problem_ja.md +++ b/problems/for-loop/problem_ja.md @@ -34,7 +34,7 @@ forループを作りましょう。変数 `i` を0から始めループのた ループを繰り返すたびに、 数値 `i` を `total` に足しましょう。こんな風に... ```js -total += i; +total += i ``` ループが終わったら、 `console.log()` を使い、変数 `total` をターミナルに表示しましょう。 diff --git a/problems/for-loop/problem_ko.md b/problems/for-loop/problem_ko.md index 895c38e2..72b5dc1f 100644 --- a/problems/for-loop/problem_ko.md +++ b/problems/for-loop/problem_ko.md @@ -27,7 +27,7 @@ for (let i = 0; i < 10; i++) { 각 반복마다 숫자 `i`를 `total` 변수에 더합니다. 이렇게 하려면, 이 구문을 사용하시면 됩니다. ```js -total += i; +total += i ``` for 반복문 다음에, `console.log()`를 사용해 `total` 변수를 터미널에 출력합니다. diff --git a/problems/for-loop/problem_nb-no.md b/problems/for-loop/problem_nb-no.md index 438a09ea..8e594bb1 100644 --- a/problems/for-loop/problem_nb-no.md +++ b/problems/for-loop/problem_nb-no.md @@ -27,7 +27,7 @@ Lag en for løkke med en variabel `i` som starter på 0 og økes med 1 hver rund I hver runde av løkken, legg til nummeret i variablen `i` til verdien i `total` variablen. Det kan gjøres på følgende måte: ```js -total += i; +total += i ``` Etter for løkken, bruk `console.log()` til å skrive ut verdien av `total` variablen til skjermen. diff --git a/problems/for-loop/problem_pt-br.md b/problems/for-loop/problem_pt-br.md index ddcba834..f1386ad6 100644 --- a/problems/for-loop/problem_pt-br.md +++ b/problems/for-loop/problem_pt-br.md @@ -27,7 +27,7 @@ Crie um loop for com a variável `i` iniciando do 0 aumentando por um 1 á cada Á cada iteração do loop, adicione o número do `i` á variável `total`. Para fazer isto, você pode usar a seguinte expressão: ```js -total += i; +total += i ``` Após o loop, use o `console.log()` para imprimir a variável `total` ao terminal. diff --git a/problems/for-loop/problem_ru.md b/problems/for-loop/problem_ru.md index a4383d31..61a7f231 100644 --- a/problems/for-loop/problem_ru.md +++ b/problems/for-loop/problem_ru.md @@ -27,7 +27,7 @@ for (let i = 0; i < 10; i++) { Прибавляйте `i` к переменной `total` в каждой итерации цикла. Чтобы сделать это, воспользуйтесь следующим выражением: ```js -total += i; +total += i ``` Воспользуйтесь методом `console.log()`, чтобы вывести значение `total` в терминал после завершения работы цикла. diff --git a/problems/for-loop/problem_uk.md b/problems/for-loop/problem_uk.md index f18c4dc9..a6855bcb 100644 --- a/problems/for-loop/problem_uk.md +++ b/problems/for-loop/problem_uk.md @@ -27,7 +27,7 @@ for (let i = 0; i < 10; i++) { На кожній ітерації циклу додавайте `i` до змінної `total`. Щоб зробити це, скористайтесь виразом: ```js -total += i; +total += i ``` Після циклу for, скористайтесь `console.log()`, щоб вивести значення `total` в термінал. diff --git a/problems/for-loop/problem_zh-cn.md b/problems/for-loop/problem_zh-cn.md index b0c5a493..2c543dda 100644 --- a/problems/for-loop/problem_zh-cn.md +++ b/problems/for-loop/problem_zh-cn.md @@ -27,7 +27,7 @@ for (let i = 0; i < 10; i++) { 每次循环中,将 `i` 加到 `total` 上。你可以这样做: ```js -total += i; +total += i ``` For 循环结束后,使用 `console.log()` 打印 `total` 变量到终端。 diff --git a/problems/for-loop/problem_zh-tw.md b/problems/for-loop/problem_zh-tw.md index b1f62882..01dbc218 100644 --- a/problems/for-loop/problem_zh-tw.md +++ b/problems/for-loop/problem_zh-tw.md @@ -27,7 +27,7 @@ for (let i = 0; i < 10; i++) { 每次迴圈中,將 `i` 加到 `total` 上。你可以這樣做: ```js -total += i; +total += i ``` For 迴圈結束後,使用 `console.log()` 印出 `total` 變數的值到終端機上。 diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js index 706d66c2..24dc941d 100644 --- a/problems/function-arguments/index.js +++ b/problems/function-arguments/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/function-arguments/problem.md b/problems/function-arguments/problem.md index a1bfc404..ec01012d 100644 --- a/problems/function-arguments/problem.md +++ b/problems/function-arguments/problem.md @@ -4,14 +4,14 @@ Here is an example: ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` We can **call** that function with two arguments like this: ```js -example('hello', 'world'); +example('hello', 'world') ``` The above example will print to the terminal `hello world`. diff --git a/problems/function-arguments/problem_es.md b/problems/function-arguments/problem_es.md index 8a65f6f8..46f4af27 100644 --- a/problems/function-arguments/problem_es.md +++ b/problems/function-arguments/problem_es.md @@ -4,7 +4,7 @@ Un ejemplo: ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` @@ -12,7 +12,7 @@ Podemos **llamar** a la función con dos argumentos de la siguiente forma: ```js -example('hello', 'world'); +example('hello', 'world') ``` El ejemplo anterior imprimirá `hello world` a la terminal. diff --git a/problems/function-arguments/problem_fr.md b/problems/function-arguments/problem_fr.md index 6d78cc95..f580bbff 100644 --- a/problems/function-arguments/problem_fr.md +++ b/problems/function-arguments/problem_fr.md @@ -4,14 +4,14 @@ Voici un exemple : ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` Nous pouvons **appeler** cette fonction avec deux arguments comme cela : ```js -example('hello', 'world'); +example('hello', 'world') ``` L'exemple ci-dessus va afficher dans le terminal `hello world`. diff --git a/problems/function-arguments/problem_it.md b/problems/function-arguments/problem_it.md index 4e92b995..1e394881 100644 --- a/problems/function-arguments/problem_it.md +++ b/problems/function-arguments/problem_it.md @@ -4,14 +4,14 @@ Ecco un esempio: ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` Possiamo **invocare** questa funzione con due argomenti come segue: ```js -example('ciao', 'mondo'); +example('ciao', 'mondo') ``` L'esempio precedente scriverà `ciao mondo` sul terminale. diff --git a/problems/function-arguments/problem_ja.md b/problems/function-arguments/problem_ja.md index 24bf304b..1facf3c2 100644 --- a/problems/function-arguments/problem_ja.md +++ b/problems/function-arguments/problem_ja.md @@ -5,14 +5,14 @@ ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` 引数が2つの関数を**呼び出す**には、次のようにします。 ```js -example('hello', 'world'); +example('hello', 'world') ``` 上の例を実行すると、ターミナルに `hello world` と出力されるでしょう。 diff --git a/problems/function-arguments/problem_ko.md b/problems/function-arguments/problem_ko.md index 2dee20ec..7f387614 100644 --- a/problems/function-arguments/problem_ko.md +++ b/problems/function-arguments/problem_ko.md @@ -4,14 +4,14 @@ ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` 우리는 두 개의 인자를 가지는 함수를 이렇게 **호출**할 수 있습니다. ```js -example('hello', 'world'); +example('hello', 'world') ``` 위 예제는 터미널에 `hello world`를 출력할 것입니다. diff --git a/problems/function-arguments/problem_nb-no.md b/problems/function-arguments/problem_nb-no.md index 5ce73444..f38b7244 100644 --- a/problems/function-arguments/problem_nb-no.md +++ b/problems/function-arguments/problem_nb-no.md @@ -4,14 +4,14 @@ Her er et eksempel: ```js function eksempel (argNr1, argNr2) { - console.log(argNr1, argNr2); + console.log(argNr1, argNr2) } ``` Vi kan **kalle** den funksjonen med to argumenter på denne måten: ```js -eksempel('hello', 'world'); +eksempel('hello', 'world') ``` Eksemplet over vil skrive ut `hello world` til skjermen. diff --git a/problems/function-arguments/problem_pt-br.md b/problems/function-arguments/problem_pt-br.md index cd6fdfed..86796536 100644 --- a/problems/function-arguments/problem_pt-br.md +++ b/problems/function-arguments/problem_pt-br.md @@ -4,14 +4,14 @@ Aqui está um exemplo: ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` Podemos **chamar** essa função passando dois argumentos dessa forma: ```js -example('hello', 'world'); +example('hello', 'world') ``` O exemplo acima irá imprimir no terminal `hello world`. diff --git a/problems/function-arguments/problem_ru.md b/problems/function-arguments/problem_ru.md index 1308aae8..ac768528 100644 --- a/problems/function-arguments/problem_ru.md +++ b/problems/function-arguments/problem_ru.md @@ -4,14 +4,14 @@ ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` Вот так можно **вызвать** эту функцию с двумя аргументами: ```js -example('hello', 'world'); +example('hello', 'world') ``` Указанный пример выведет на экран терминала `hello world`. diff --git a/problems/function-arguments/problem_uk.md b/problems/function-arguments/problem_uk.md index 83d24578..0765e7b5 100644 --- a/problems/function-arguments/problem_uk.md +++ b/problems/function-arguments/problem_uk.md @@ -4,14 +4,14 @@ ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` Ми можемо **викликати** цю функцію з двома аргументами таким чином: ```js -example('hello', 'world'); +example('hello', 'world') ``` Приклад вище виведе в термінал `hello world`. diff --git a/problems/function-arguments/problem_zh-cn.md b/problems/function-arguments/problem_zh-cn.md index 3797e0ae..777677d8 100644 --- a/problems/function-arguments/problem_zh-cn.md +++ b/problems/function-arguments/problem_zh-cn.md @@ -4,14 +4,14 @@ ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` 我们可以**调用**这个函数,并给它两个参数: ```js -example('hello', 'world'); +example('hello', 'world') ``` 上面的代码将打印 `hello world` 到终端。 diff --git a/problems/function-arguments/problem_zh-tw.md b/problems/function-arguments/problem_zh-tw.md index 9e807917..0cd8d020 100644 --- a/problems/function-arguments/problem_zh-tw.md +++ b/problems/function-arguments/problem_zh-tw.md @@ -4,14 +4,14 @@ ```js function example (firstArg, secondArg) { - console.log(firstArg, secondArg); + console.log(firstArg, secondArg) } ``` 我們可以**呼叫**這個函式,並給它兩個參數: ```js -example('hello', 'world'); +example('hello', 'world') ``` 上面的程式碼將印出 `hello world` 到終端機上。 diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js index 706d66c2..24dc941d 100644 --- a/problems/function-return-values/index.js +++ b/problems/function-return-values/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/functions/index.js b/problems/functions/index.js index 706d66c2..24dc941d 100644 --- a/problems/functions/index.js +++ b/problems/functions/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/functions/problem.md b/problems/functions/problem.md index da165503..eb4de8cf 100644 --- a/problems/functions/problem.md +++ b/problems/functions/problem.md @@ -4,7 +4,7 @@ Here is an example: ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -20,13 +20,13 @@ The above example assumes that the `example` function will take a number as an a Create a file named `functions.js`. -In that file, define a function named `eat` that takes an argument named `food` +In that file, define a function named `eat` that takes an argument named `food` that is expected to be a string. Inside the function return the `food` argument like this: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Inside of the parentheses of `console.log()`, call the `eat()` function with the string `bananas` as the argument. diff --git a/problems/functions/problem_es.md b/problems/functions/problem_es.md index daa2107c..b589d3e0 100644 --- a/problems/functions/problem_es.md +++ b/problems/functions/problem_es.md @@ -6,7 +6,7 @@ Vamos a utilizar la palabra reservada `return` para especificar lo que devuelve Por ejemplo: ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -27,7 +27,7 @@ En ese archivo, define una función llamada `eat` que reciba un argumento llamad Dentro de la función, retorna el argumento `food` de la siguiente manera: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Dentro de los paréntesis de `console.log()`, llama a la función `eat()` con la string `bananas` cómo argumento. diff --git a/problems/functions/problem_fr.md b/problems/functions/problem_fr.md index fb3ce11e..d604c38d 100644 --- a/problems/functions/problem_fr.md +++ b/problems/functions/problem_fr.md @@ -4,7 +4,7 @@ Voici un exemple : ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -25,7 +25,7 @@ Dans ce fichier, définissez une fonction nommée `eat` qui prend un argument no Dans cette fonction, retournez l'argument `food` comme cela : ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Dans les parenthèses de `console.log()`, appelez la fonction `eat()` avec la chaîne de caractères `bananas` comme argument. diff --git a/problems/functions/problem_it.md b/problems/functions/problem_it.md index 4d0c3692..2a2582cd 100644 --- a/problems/functions/problem_it.md +++ b/problems/functions/problem_it.md @@ -4,7 +4,7 @@ Ecco un esempio: ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -20,13 +20,13 @@ L'esempio precedente assume che la funzione `example` riceverà un numero come a Crea un file dal nome `functions.js`. -In questo file, definisci una funzione dal nome `eat` che accetta un argomento di nome `food` +In questo file, definisci una funzione dal nome `eat` che accetta un argomento di nome `food` che ci si aspetta sia una stringa. All'interno della funzione restituisci l'argomento `food` come segue: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Dentro le parentesi di `console.log()`, invoca la funzione `eat()` con la stringa `bananas` come argomento. diff --git a/problems/functions/problem_ja.md b/problems/functions/problem_ja.md index 723bb5fa..e1ec7577 100644 --- a/problems/functions/problem_ja.md +++ b/problems/functions/problem_ja.md @@ -5,7 +5,7 @@ ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -29,7 +29,7 @@ example(5) 関数内で、 `food` 引数を次のように処理して返してください... ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` `console.log()` の括弧の中で、 `eat()` 関数を呼んで、引数として `bananas` という文字列を与えてください。 diff --git a/problems/functions/problem_ko.md b/problems/functions/problem_ko.md index f856f3d1..9803382c 100644 --- a/problems/functions/problem_ko.md +++ b/problems/functions/problem_ko.md @@ -4,7 +4,7 @@ ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -25,7 +25,7 @@ example(5) 함수 안에서 `food` 인자를 이렇게 반환합니다. ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` `console.log()`의 괄호 안에서 문자열 `bananas`를 인자로 하는 `eat()` 함수를 호출합니다. diff --git a/problems/functions/problem_nb-no.md b/problems/functions/problem_nb-no.md index 2d69d02d..de157445 100644 --- a/problems/functions/problem_nb-no.md +++ b/problems/functions/problem_nb-no.md @@ -5,7 +5,7 @@ Her er et eksempel: ```js function eksempel (x) { - return x * 2; + return x * 2 } ``` @@ -26,7 +26,7 @@ Definer en funksjon med navnet `eat` i den filen som tar i mot argumentet med na På innsiden av den funksjonen skal du returnere `food` argumentet slik som dette: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Inni parantesene til `console.log()`, kall `eat()` funksjonen med stringen `bananas` som argument. diff --git a/problems/functions/problem_pt-br.md b/problems/functions/problem_pt-br.md index 31026fb5..aff3843b 100644 --- a/problems/functions/problem_pt-br.md +++ b/problems/functions/problem_pt-br.md @@ -4,7 +4,7 @@ Aqui está um exemplo: ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -20,13 +20,13 @@ O exemplo acima assume que a função `example` irá receber um número como um Crie um arquivo chamado `functions.js`. -Neste arquivo, defina uma função chamada `eat` que recebe um argumento chamado `food` +Neste arquivo, defina uma função chamada `eat` que recebe um argumento chamado `food` que deverá ser uma string. De dentro da função retorne o argumento `food` dessa maneira: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Dentro do parênteses do `console.log()`, chame a função `eat()` com a string `bananas` como argumento. diff --git a/problems/functions/problem_ru.md b/problems/functions/problem_ru.md index 4b836515..f6a1c30b 100644 --- a/problems/functions/problem_ru.md +++ b/problems/functions/problem_ru.md @@ -4,7 +4,7 @@ ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -25,7 +25,7 @@ example(5) Внутри функции используйте аргумент `food` и верните следующий результат: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Внутри скобок выражения `console.log()` вызовите функцию `eat()`, указав в качестве аргумента строку `bananas`. diff --git a/problems/functions/problem_uk.md b/problems/functions/problem_uk.md index 576f3b58..c1a93038 100644 --- a/problems/functions/problem_uk.md +++ b/problems/functions/problem_uk.md @@ -4,7 +4,7 @@ ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -25,7 +25,7 @@ example(5) Всередині функції повернуть аргумент `food` ось так: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` Всередині круглих дужок в `console.log()`, викличіть функцію `eat()` з рядком `bananas` в якості аргументу. diff --git a/problems/functions/problem_zh-cn.md b/problems/functions/problem_zh-cn.md index f19588a4..dfb234cb 100644 --- a/problems/functions/problem_zh-cn.md +++ b/problems/functions/problem_zh-cn.md @@ -4,7 +4,7 @@ ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -25,7 +25,7 @@ example(5) 在函数中将 `food` 参数处理后像下面这样返回: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` 在 `console.log()` 的括号中,调用 `eat()` 函数,并把字符串 `bananas` 当做参数传递给它。 diff --git a/problems/functions/problem_zh-tw.md b/problems/functions/problem_zh-tw.md index e73a78a2..1d90ac87 100644 --- a/problems/functions/problem_zh-tw.md +++ b/problems/functions/problem_zh-tw.md @@ -4,7 +4,7 @@ ```js function example (x) { - return x * 2; + return x * 2 } ``` @@ -25,7 +25,7 @@ example(5) 在函式中將 `food` 參數處理後像下面這樣返回: ```js -return food + ' tasted really good.'; +return food + ' tasted really good.' ``` 在 `console.log()` 的括號中,呼叫 `eat()` 函式,並把字串 `bananas` 當做參數傳遞給它。 diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js index 706d66c2..24dc941d 100644 --- a/problems/if-statement/index.js +++ b/problems/if-statement/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/if-statement/problem.md b/problems/if-statement/problem.md index 3ec7a76b..101e55e3 100644 --- a/problems/if-statement/problem.md +++ b/problems/if-statement/problem.md @@ -4,9 +4,9 @@ A conditional statement looks like this: ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_es.md b/problems/if-statement/problem_es.md index e5f7eb1d..4157f4bd 100644 --- a/problems/if-statement/problem_es.md +++ b/problems/if-statement/problem_es.md @@ -3,10 +3,10 @@ Los bloques condicionales son utilizados, partiendo de una condición booleana e Un bloque condicional se parece a lo siguiente: ```js -if(n > 1) { - console.log('la variable n es mayor a 1.'); +if (n > 1) { + console.log('la variable n es mayor a 1.') } else { - console.log('la variable n es menor o igual a 1.'); + console.log('la variable n es menor o igual a 1.') } ``` diff --git a/problems/if-statement/problem_fr.md b/problems/if-statement/problem_fr.md index fe20594d..460f11d1 100644 --- a/problems/if-statement/problem_fr.md +++ b/problems/if-statement/problem_fr.md @@ -4,9 +4,9 @@ Une instruction conditionnelle ressemble à ça : ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_it.md b/problems/if-statement/problem_it.md index 8dbc56c3..32a58566 100644 --- a/problems/if-statement/problem_it.md +++ b/problems/if-statement/problem_it.md @@ -4,9 +4,9 @@ Un'istruzione condizionale appare come segue: ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_ja.md b/problems/if-statement/problem_ja.md index 763196fc..82e8b746 100644 --- a/problems/if-statement/problem_ja.md +++ b/problems/if-statement/problem_ja.md @@ -4,9 +4,9 @@ ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_ko.md b/problems/if-statement/problem_ko.md index bcd375d4..079f933d 100644 --- a/problems/if-statement/problem_ko.md +++ b/problems/if-statement/problem_ko.md @@ -4,9 +4,9 @@ ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_nb-no.md b/problems/if-statement/problem_nb-no.md index 5b947abe..8c0c150f 100644 --- a/problems/if-statement/problem_nb-no.md +++ b/problems/if-statement/problem_nb-no.md @@ -4,9 +4,9 @@ En beslutning ser slik ut: ```js if (n > 1) { - console.log('variablen n er større enn 1.'); + console.log('variablen n er større enn 1.') } else { - console.log('variablen n er mindre eller lik 1.'); + console.log('variablen n er mindre eller lik 1.') } ``` diff --git a/problems/if-statement/problem_pt-br.md b/problems/if-statement/problem_pt-br.md index ed35298c..494e3896 100644 --- a/problems/if-statement/problem_pt-br.md +++ b/problems/if-statement/problem_pt-br.md @@ -4,9 +4,9 @@ Uma instrução condicional é mais ou menos assim: ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_ru.md b/problems/if-statement/problem_ru.md index d2a78abb..55a561e6 100644 --- a/problems/if-statement/problem_ru.md +++ b/problems/if-statement/problem_ru.md @@ -4,9 +4,9 @@ ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_uk.md b/problems/if-statement/problem_uk.md index dc6f3c58..becf6868 100644 --- a/problems/if-statement/problem_uk.md +++ b/problems/if-statement/problem_uk.md @@ -4,9 +4,9 @@ ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_zh-cn.md b/problems/if-statement/problem_zh-cn.md index 2e6ce15a..e21076f2 100644 --- a/problems/if-statement/problem_zh-cn.md +++ b/problems/if-statement/problem_zh-cn.md @@ -4,9 +4,9 @@ ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/if-statement/problem_zh-tw.md b/problems/if-statement/problem_zh-tw.md index 687ae7c4..84010be0 100644 --- a/problems/if-statement/problem_zh-tw.md +++ b/problems/if-statement/problem_zh-tw.md @@ -4,9 +4,9 @@ ```js if (n > 1) { - console.log('the variable n is greater than 1.'); + console.log('the variable n is greater than 1.') } else { - console.log('the variable n is less than or equal to 1.'); + console.log('the variable n is less than or equal to 1.') } ``` diff --git a/problems/introduction/index.js b/problems/introduction/index.js index 706d66c2..24dc941d 100644 --- a/problems/introduction/index.js +++ b/problems/introduction/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/introduction/problem.md b/problems/introduction/problem.md index 9cf827a5..aadcb19d 100644 --- a/problems/introduction/problem.md +++ b/problems/introduction/problem.md @@ -27,7 +27,7 @@ type NUL > introduction.js Open the file in your favorite editor, and add this text: ```js -console.log('hello'); +console.log('hello') ``` Save the file, then check to see if your program is correct by running this command: diff --git a/problems/introduction/problem_es.md b/problems/introduction/problem_es.md index 148df75b..8e0a2cae 100644 --- a/problems/introduction/problem_es.md +++ b/problems/introduction/problem_es.md @@ -25,7 +25,7 @@ type NUL > introduction.js Agrega el siguiente texto al archivo: ```js -console.log('hello'); +console.log('hello') ``` Comprueba si tu programa es correcto ejecutando el siguiente comando: diff --git a/problems/introduction/problem_fr.md b/problems/introduction/problem_fr.md index f5308415..27153e78 100644 --- a/problems/introduction/problem_fr.md +++ b/problems/introduction/problem_fr.md @@ -27,7 +27,7 @@ type NUL > introduction.js Ouvrez le fichier dans votre éditeur favori, et ajoutez ce texte : ```js -console.log('hello'); +console.log('hello') ``` Sauvegardez le fichier, puis vérifiez si votre programme s'exécute correctement avec cette commande : diff --git a/problems/introduction/problem_it.md b/problems/introduction/problem_it.md index af70853a..4db1108a 100644 --- a/problems/introduction/problem_it.md +++ b/problems/introduction/problem_it.md @@ -27,7 +27,7 @@ type NUL > introduction.js Apri il file nel tuo editor preferito, e aggiungi questo testo: ```js -console.log('hello'); +console.log('hello') ``` Salva il file, quindi verifica che il tuo programma sia corretto eseguendo questo comando: diff --git a/problems/introduction/problem_ja.md b/problems/introduction/problem_ja.md index 886bb61d..9def489b 100644 --- a/problems/introduction/problem_ja.md +++ b/problems/introduction/problem_ja.md @@ -22,7 +22,7 @@ touch introduction.js お好みのエディタでファイルを開きます。次の文を書き足しましょう。 ```js -console.log('hello'); +console.log('hello') ``` ファイルを保存します。次のコマンドを実行し、あなたのプログラムが正しく動くか確認しましょう。 diff --git a/problems/introduction/problem_ko.md b/problems/introduction/problem_ko.md index a04d7c47..c9425698 100644 --- a/problems/introduction/problem_ko.md +++ b/problems/introduction/problem_ko.md @@ -29,7 +29,7 @@ type NUL > introduction.js 좋아하는 편집기에서 파일을 열고 다음 내용을 넣으세요. ```js -console.log('hello'); +console.log('hello') ``` 파일을 저장하고 프로그램이 올바른지 다음 명령어를 실행해 확인하세요. diff --git a/problems/introduction/problem_nb-no.md b/problems/introduction/problem_nb-no.md index cc41b4e6..44cbb8b8 100644 --- a/problems/introduction/problem_nb-no.md +++ b/problems/introduction/problem_nb-no.md @@ -27,7 +27,7 @@ type NUL > introduction.js Åpne filen i din favoritt editor og legg til følgende tekst: ```js -console.log('hello'); +console.log('hello') ``` Lagre filen, deretter sjekker du om programmet er korrekt ved å kjøre følgende kommando: diff --git a/problems/introduction/problem_pt-br.md b/problems/introduction/problem_pt-br.md index caa98b83..85ce3335 100644 --- a/problems/introduction/problem_pt-br.md +++ b/problems/introduction/problem_pt-br.md @@ -26,7 +26,7 @@ type NUL > introduction.js Abra o arquivo no seu editor favorito, e adicione este texto: ```js -console.log('hello'); +console.log('hello') ``` Salve o arquivo, e então verifique se o seu programa está correto executando este comando: diff --git a/problems/introduction/problem_ru.md b/problems/introduction/problem_ru.md index 67d25100..984fc782 100644 --- a/problems/introduction/problem_ru.md +++ b/problems/introduction/problem_ru.md @@ -27,7 +27,7 @@ type NUL > introduction.js Откройте этот файл в вашем любимом редакторе и добавьте следующий текст: ```js -console.log('hello'); +console.log('hello') ``` Сохраните файл, и, чтобы проверить что ваша программа работает правильно, запустите в терминале следующую команду: diff --git a/problems/introduction/problem_uk.md b/problems/introduction/problem_uk.md index c0e11c26..2083c3db 100644 --- a/problems/introduction/problem_uk.md +++ b/problems/introduction/problem_uk.md @@ -27,7 +27,7 @@ type NUL > introduction.js Відкрийте файл у вашому улюбленому текстовому редакторі та додайте цей текст: ```js -console.log('hello'); +console.log('hello') ``` Збережіть файл, а потім перевірте вашу програму запустивши команду: diff --git a/problems/introduction/problem_zh-cn.md b/problems/introduction/problem_zh-cn.md index 3a533696..6311c4f9 100644 --- a/problems/introduction/problem_zh-cn.md +++ b/problems/introduction/problem_zh-cn.md @@ -19,7 +19,7 @@ cd javascripting 使用你最喜欢的编辑器,打开这个文件,然后将下面这行加入到文件中: ```js -console.log('hello'); +console.log('hello') ``` 保存文件,运行下面的命令来检查你的程序是否正确: diff --git a/problems/introduction/problem_zh-tw.md b/problems/introduction/problem_zh-tw.md index 3b827d84..ff7f0d36 100644 --- a/problems/introduction/problem_zh-tw.md +++ b/problems/introduction/problem_zh-tw.md @@ -19,7 +19,7 @@ cd javascripting 使用你最喜歡的編輯器,打開這個檔案,然後將下面這行程式碼加入到檔案中: ```js -console.log('hello'); +console.log('hello') ``` 儲存檔案,執行下面的命令來檢查你的程式是否正確: diff --git a/problems/introduction/solution.md b/problems/introduction/solution.md index d531cb82..9c72771c 100644 --- a/problems/introduction/solution.md +++ b/problems/introduction/solution.md @@ -7,7 +7,7 @@ Anything between the parentheses of `console.log()` are printed to the terminal. So this: ```js -console.log('hello'); +console.log('hello') ``` prints `hello` to the terminal. diff --git a/problems/introduction/solution_es.md b/problems/introduction/solution_es.md index ff1c9d26..d5bfbf08 100644 --- a/problems/introduction/solution_es.md +++ b/problems/introduction/solution_es.md @@ -7,7 +7,7 @@ Todo lo que esté dentro de los paréntesis de `console.log()` será impreso a l Entonces esto: ```js -console.log('hola mundo'); +console.log('hola mundo') ``` imprime `hola mundo` a la terminal. diff --git a/problems/introduction/solution_fr.md b/problems/introduction/solution_fr.md index f591d0b0..92c20274 100644 --- a/problems/introduction/solution_fr.md +++ b/problems/introduction/solution_fr.md @@ -7,7 +7,7 @@ Tout ce qui est entre les parenthèses de `console.log()` est affiché dans le t Donc : ```js -console.log('hello'); +console.log('hello') ``` affiche `hello` dans le terminal. diff --git a/problems/introduction/solution_it.md b/problems/introduction/solution_it.md index a47a1fc2..f4d8d23b 100644 --- a/problems/introduction/solution_it.md +++ b/problems/introduction/solution_it.md @@ -7,7 +7,7 @@ Qualsiasi cosa contenuta tra le parentesi `console.log()` viene stampata sul ter Quindi questo: ```js -console.log('hello'); +console.log('hello') ``` stampa `hello` sul terminal. diff --git a/problems/introduction/solution_ja.md b/problems/introduction/solution_ja.md index fa697b7b..93300ec8 100644 --- a/problems/introduction/solution_ja.md +++ b/problems/introduction/solution_ja.md @@ -7,7 +7,7 @@ たとえば... ```js -console.log('hello'); +console.log('hello') ``` ターミナルに `hello` を表示します。 diff --git a/problems/introduction/solution_ko.md b/problems/introduction/solution_ko.md index a53d9724..915d0226 100644 --- a/problems/introduction/solution_ko.md +++ b/problems/introduction/solution_ko.md @@ -7,7 +7,7 @@ 그래서 ```js -console.log('hello'); +console.log('hello') ``` 는 `hello`를 터미널에 출력합니다. diff --git a/problems/introduction/solution_nb-no.md b/problems/introduction/solution_nb-no.md index 07235f6f..e3dec3cb 100644 --- a/problems/introduction/solution_nb-no.md +++ b/problems/introduction/solution_nb-no.md @@ -7,7 +7,7 @@ Alt mellom parantesene i `console.log()` skrives ut til skjermen. Det vil si: ```js -console.log('hello'); +console.log('hello') ``` skriver ut `hello` til skjermen. diff --git a/problems/introduction/solution_pt-br.md b/problems/introduction/solution_pt-br.md index 401919d4..906bfe2c 100644 --- a/problems/introduction/solution_pt-br.md +++ b/problems/introduction/solution_pt-br.md @@ -7,7 +7,7 @@ Qualquer coisa entre os parênteses de `console.log()` é impresso no terminal. Então isto: ```js -console.log('hello'); +console.log('hello') ``` imprime `hello` no terminal. diff --git a/problems/introduction/solution_ru.md b/problems/introduction/solution_ru.md index d89aa22f..3dd20bca 100644 --- a/problems/introduction/solution_ru.md +++ b/problems/introduction/solution_ru.md @@ -7,7 +7,7 @@ Поэтому вот это выражение: ```js -console.log('hello'); +console.log('hello') ``` выведет в терминал `hello`. diff --git a/problems/introduction/solution_uk.md b/problems/introduction/solution_uk.md index f4e72ef7..b2a05191 100644 --- a/problems/introduction/solution_uk.md +++ b/problems/introduction/solution_uk.md @@ -7,7 +7,7 @@ Тому це: ```js -console.log('hello'); +console.log('hello') ``` виведе `hello` до терміналу. diff --git a/problems/introduction/solution_zh-cn.md b/problems/introduction/solution_zh-cn.md index e1f4dd7f..365aac07 100644 --- a/problems/introduction/solution_zh-cn.md +++ b/problems/introduction/solution_zh-cn.md @@ -7,7 +7,7 @@ 所以: ```js -console.log('hello'); +console.log('hello') ``` 打印出 `hello` 到你的终端。 diff --git a/problems/introduction/solution_zh-tw.md b/problems/introduction/solution_zh-tw.md index bac6b64e..1f2b8e16 100644 --- a/problems/introduction/solution_zh-tw.md +++ b/problems/introduction/solution_zh-tw.md @@ -7,7 +7,7 @@ 所以: ```js -console.log('hello'); +console.log('hello') ``` 會印出 `hello` 到你的終端機。 diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js index 706d66c2..24dc941d 100644 --- a/problems/looping-through-arrays/index.js +++ b/problems/looping-through-arrays/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/looping-through-arrays/problem.md b/problems/looping-through-arrays/problem.md index c792bed1..bb067aad 100644 --- a/problems/looping-through-arrays/problem.md +++ b/problems/looping-through-arrays/problem.md @@ -7,13 +7,13 @@ Each item in an array is identified by a number, starting at `0`. So in this array `hi` is identified by the number `1`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` It can be accessed like this: ```js -greetings[1]; +greetings[1] ``` So inside a **for loop** we would use the `i` variable inside the square brackets instead of directly using an integer. @@ -25,7 +25,7 @@ Create a file named `looping-through-arrays.js`. In that file, define a variable named `pets` that references this array: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Create a for loop that changes each string in the array so that they are plural. @@ -33,7 +33,7 @@ Create a for loop that changes each string in the array so that they are plural. You will use a statement like this inside the for loop: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` After the for loop, use `console.log()` to print the `pets` array to the terminal. diff --git a/problems/looping-through-arrays/problem_es.md b/problems/looping-through-arrays/problem_es.md index 8d4708dd..2f7b8758 100644 --- a/problems/looping-through-arrays/problem_es.md +++ b/problems/looping-through-arrays/problem_es.md @@ -9,12 +9,12 @@ Los índices comienzan desde el cero. Entonces en este array, el elemento `hi` es identificado por el número `1`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` Puede ser accedido de la siguiente forma: ```js -greetings[1]; +greetings[1] ``` Entonces dentro de un bucle **for** utilizaremos la variable `ì` dentro de los corchetes. @@ -26,7 +26,7 @@ Crea un archivo llamando `looping-through-arrays.js`. En ese archivo, define una variable llamada `pets` que referencie este array: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Crea un bucle for que cambie cada string en el array para que sean plurales. @@ -34,7 +34,7 @@ Crea un bucle for que cambie cada string en el array para que sean plurales. Usarás una sentencia parecida a la siguiente dentro del bucle: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` Utiliza `console.log()` para imprimir el array `pets` a la terminal. diff --git a/problems/looping-through-arrays/problem_fr.md b/problems/looping-through-arrays/problem_fr.md index 390d49c7..96d77765 100644 --- a/problems/looping-through-arrays/problem_fr.md +++ b/problems/looping-through-arrays/problem_fr.md @@ -7,13 +7,13 @@ Chaque élément du tableau est identifié par un nombre, commençant à `0`. Donc dans ce tableau, `hi` est identifié par le nombre `1` : ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` On peut y accéder comme ceci : ```js -greetings[1]; +greetings[1] ``` Dans une **boucle for**, plutôt que d'indiquer directement l'index avec un nombre entier nous allons mettre la variable `i` entre les crochets. @@ -25,7 +25,7 @@ Créez un fichier nommé `iterer-dans-des-tableaux.js`. Dans ce fichier, définissez une variable nommée `pets` qui contient les valeurs suivantes : ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Créez une boucle for qui modifie chaque chaîne de caractères dans le tableau pour les mettre au pluriel. @@ -33,7 +33,7 @@ Créez une boucle for qui modifie chaque chaîne de caractères dans le tableau Nous utiliserons une instruction similaire à celle-ci dans la boucle for : ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` Après la boucle for, utilisez `console.log()` pour afficher le tableau `pets` dans le terminal. diff --git a/problems/looping-through-arrays/problem_it.md b/problems/looping-through-arrays/problem_it.md index c9b4a527..4d0746c5 100644 --- a/problems/looping-through-arrays/problem_it.md +++ b/problems/looping-through-arrays/problem_it.md @@ -7,13 +7,13 @@ Ciascun elemento di un array è identificato da un numero, a iniziare dallo `0`. Quindi in questo array `hi` è identificato dal numero `1`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` E può essere acceduto come segue: ```js -greetings[1]; +greetings[1] ``` Quindi dentro un **ciclo for** useremmo la variabile `i` dentro le parentesi quadre anziché usare direttamente un intero. @@ -25,7 +25,7 @@ Crea un file dal nome `looping-through-arrays.js`. In questo file, definisci una variabile chiamata `pets` che referenzia questo array: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Crea un ciclo for che cambia ciascuna stringa dell'array nel suo plurale. @@ -33,7 +33,7 @@ Crea un ciclo for che cambia ciascuna stringa dell'array nel suo plurale. Utilizzerai un'istruzione come questa all'interno del ciclo for: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` Al termine del ciclo for, usa `console.log()` per stampare l'array `pets` sul terminale. diff --git a/problems/looping-through-arrays/problem_ja.md b/problems/looping-through-arrays/problem_ja.md index ce7ab9e0..ea9e0c5f 100644 --- a/problems/looping-through-arrays/problem_ja.md +++ b/problems/looping-through-arrays/problem_ja.md @@ -7,13 +7,13 @@ たとえば、次の配列内の `hi` は、数値 `1` で識別できます... ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` 次のようにアクセスします... ```js -greetings[1]; +greetings[1] ``` **forループ**の中では、変数 `i` を角括弧の中に入れて使います。整数を直接使うことはありません。 @@ -26,7 +26,7 @@ greetings[1]; ファイルの中で、次の配列を表す、変数 `pets` を定義しましょう。 ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` forループを作って、配列内の各文字列が複数形になるように変更します。 @@ -34,7 +34,7 @@ forループを作って、配列内の各文字列が複数形になるよう forループの中は次のようになるでしょう... ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` forループが終わったら、 `console.log()` を使って配列 `pets` をターミナルに表示しましょう。 diff --git a/problems/looping-through-arrays/problem_ko.md b/problems/looping-through-arrays/problem_ko.md index fa2351ea..8e49946a 100644 --- a/problems/looping-through-arrays/problem_ko.md +++ b/problems/looping-through-arrays/problem_ko.md @@ -7,13 +7,13 @@ 그래서 이 배열의 `hi`는 숫자 `1`로 확인할 수 있습니다. ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` 이렇게 접근할 수 있습니다. ```js -greetings[1]; +greetings[1] ``` **for 반복문** 안에서는 숫자 그대로 사용하지 않고 `i` 변수를 각괄호 안에서 사용합니다. @@ -25,7 +25,7 @@ greetings[1]; 이 파일 안에서 다음 배열을 참조하는 `pets`라는 이름의 변수를 선언합니다. ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` for 반복문을 만들어 복수형이 되도록 각 문자열을 변경하세요. @@ -33,7 +33,7 @@ for 반복문을 만들어 복수형이 되도록 각 문자열을 변경하세 루프 안에서 이런 구문을 사용하시면 됩니다. ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` 루프 뒤에 `console.log()`로 `pets` 배열을 터미널에 출력하세요. diff --git a/problems/looping-through-arrays/problem_nb-no.md b/problems/looping-through-arrays/problem_nb-no.md index 68bf52e8..d2acab3b 100644 --- a/problems/looping-through-arrays/problem_nb-no.md +++ b/problems/looping-through-arrays/problem_nb-no.md @@ -7,13 +7,13 @@ Hvert innslag i et array identifiseres med et nummer, fra og med `0`. Så i denne arrayet er `hei` identifisert ved nummeret `1`: ```js -const hilsinger = ['hallo', 'hei', 'god morgen']; +const hilsinger = ['hallo', 'hei', 'god morgen'] ``` Verdien kan nås slik som dette: ```js -hilsinger[1]; +hilsinger[1] ``` Så på innsiden av en **for løkke** ville vi brukt `i` varibelen inni hakeparantesen istedenfor å bruke et tall. @@ -25,7 +25,7 @@ Lag en fil som heter `looping-through-arrays.js`. Definer en variabel `pets` som refererer til denne arrayet: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Lag en for løkke som endrer hver eneste string i det arrayet til flertall. @@ -33,7 +33,7 @@ Lag en for løkke som endrer hver eneste string i det arrayet til flertall. Du vil måtte bruke et uttrykk som dette på inni for løkken: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` Etter den for løkken, bruk `console.log()` for å skrive ut `pets` arrayet til skjermen. diff --git a/problems/looping-through-arrays/problem_pt-br.md b/problems/looping-through-arrays/problem_pt-br.md index 4b9acf0c..df181b33 100644 --- a/problems/looping-through-arrays/problem_pt-br.md +++ b/problems/looping-through-arrays/problem_pt-br.md @@ -7,13 +7,13 @@ Cada item em um array é identificado por um número inteiro, começando do `0`. Então neste array a string `hi` é identificada pelo número `1`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` Podemos acessá-la dessa forma: ```js -greetings[1]; +greetings[1] ``` Então dentro de um **loop for** usaríamos a variável `i` dentro dos colchetes ao invés de usar diretamente um inteiro. @@ -25,7 +25,7 @@ Crie um arquivo chamado `looping-through-arrays.js`. Neste arquivo, defina uma variável chamada `pets` que referencie este array: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Crie um loop for que altera cada string no array para o plural. @@ -33,7 +33,7 @@ Crie um loop for que altera cada string no array para o plural. Você usará uma instrução como esta dentro do loop: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` Depois do loop, use o `console.log()` para imprimir o array `pets` no terminal. diff --git a/problems/looping-through-arrays/problem_ru.md b/problems/looping-through-arrays/problem_ru.md index a76f87ba..097bccc5 100644 --- a/problems/looping-through-arrays/problem_ru.md +++ b/problems/looping-through-arrays/problem_ru.md @@ -7,13 +7,13 @@ Например в этом массиве элементу `hi` соответствует номер `1`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` Получить доступ к нему можно вот так: ```js -greetings[1]; +greetings[1] ``` Следовательно, внутри **цикла for** в квадратных скобках мы укажем переменную `i`, вместо непосредственного использования чисел. @@ -25,7 +25,7 @@ greetings[1]; В этом файле объявите переменную `pets` которая ссылается на следующий массив: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Создайте цикл for, который меняет каждую строчку в массиве так, чтобы слова были в форме множественного числа. @@ -33,7 +33,7 @@ greetings[1]; Используйте внутри цикла for следующее выражение: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` После цикла воспользуйтесь `console.log()` и выведите в терминал массив `pets`. diff --git a/problems/looping-through-arrays/problem_uk.md b/problems/looping-through-arrays/problem_uk.md index 85cff568..91a20976 100644 --- a/problems/looping-through-arrays/problem_uk.md +++ b/problems/looping-through-arrays/problem_uk.md @@ -7,13 +7,13 @@ Тому в цьому масиві `hi` ідентифікується числом `1`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` Доступ до нього можна отримати так: ```js -greetings[1]; +greetings[1] ``` Всередині **циклу for** ми можемо використати змінну `i` всередині квадратних дужок, замість звичайного цілого числа. @@ -25,7 +25,7 @@ greetings[1]; У цьому файлі задати змінну під назвою `pets`, що вказуватиме на масив: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` Створити цикл for loop, що змінює кожен рядок масиву так, щоб слова в однині стали словами в множині (в англійській мові множина утворюється додаванням закінчення `-s` ). @@ -33,7 +33,7 @@ greetings[1]; Ви можете використати такий вираз всередині циклу for: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` Після циклу, використайте `console.log()`, щоб вивести масив `pets` до термінала. diff --git a/problems/looping-through-arrays/problem_zh-cn.md b/problems/looping-through-arrays/problem_zh-cn.md index 79f1b4bc..6589b229 100644 --- a/problems/looping-through-arrays/problem_zh-cn.md +++ b/problems/looping-through-arrays/problem_zh-cn.md @@ -7,13 +7,13 @@ 所以下面的数组中,数字 `1` 标识了 `hi`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` 于是,`hi` 就可以像这样被访问: ```js -greetings[1]; +greetings[1] ``` 在 **for 循环**中,我们可以在方括号中使用变量 `i`,而不是直接地使用数字。 @@ -25,7 +25,7 @@ greetings[1]; 在文件中定义一个变量 `pets`,使它引用下面的数组: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` 创建一个 for 循环,把数组里的每一个字符串都变成复数。 @@ -33,7 +33,7 @@ greetings[1]; 在 for 循环里,你可以使用下面的语句: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` 最后,使用 `console.log()` 打印 `pets` 数组到终端。 diff --git a/problems/looping-through-arrays/problem_zh-tw.md b/problems/looping-through-arrays/problem_zh-tw.md index 9dd39491..79aafe4f 100644 --- a/problems/looping-through-arrays/problem_zh-tw.md +++ b/problems/looping-through-arrays/problem_zh-tw.md @@ -7,13 +7,13 @@ 所以下面的陣列中,數字 `1` 標識了 `hi`: ```js -const greetings = ['hello', 'hi', 'good morning']; +const greetings = ['hello', 'hi', 'good morning'] ``` 於是,`hi` 就可以像這樣被存取: ```js -greetings[1]; +greetings[1] ``` 在 **for 迴圈**中,我們可以在中括號中使用變數 `i`,而不是直接地使用數字。 @@ -25,7 +25,7 @@ greetings[1]; 在該檔案中定義一個名為 `pets` 的變數,使它引用下面的陣列: ```js -['cat', 'dog', 'rat']; +['cat', 'dog', 'rat'] ``` 建立一個 for 迴圈,把陣列裡的每一個字串都變成複數單字(尾端加上s)。 @@ -33,7 +33,7 @@ greetings[1]; 在 for 迴圈裡,你可以使用下面的語句: ```js -pets[i] = pets[i] + 's'; +pets[i] = pets[i] + 's' ``` 最後,使用 `console.log()` 輸出 `pets` 陣列到終端機上。 diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js index 706d66c2..24dc941d 100644 --- a/problems/number-to-string/index.js +++ b/problems/number-to-string/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/number-to-string/problem.md b/problems/number-to-string/problem.md index 59338262..376e163b 100644 --- a/problems/number-to-string/problem.md +++ b/problems/number-to-string/problem.md @@ -3,8 +3,8 @@ Sometimes you will need to turn a number into a string. In those instances you will use the `.toString()` method. Here's an example: ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## The challenge: diff --git a/problems/number-to-string/problem_es.md b/problems/number-to-string/problem_es.md index fca65f9c..4761c12b 100644 --- a/problems/number-to-string/problem_es.md +++ b/problems/number-to-string/problem_es.md @@ -3,8 +3,8 @@ A veces necesitarás convertir un número a una string. En esos casos, usarás el método `.toString()`. A continuación un ejemplo: ```js -let n = 256; -n.toString(); +const n = 256 +n.toString() ``` ## El ejercicio diff --git a/problems/number-to-string/problem_fr.md b/problems/number-to-string/problem_fr.md index fed6069c..f7476994 100644 --- a/problems/number-to-string/problem_fr.md +++ b/problems/number-to-string/problem_fr.md @@ -3,8 +3,8 @@ Vous devez parfois transformer un nombre en chaîne de caractère. Dans ces cas là, vous utiliserez la méthode `.toString()`. Voici un exemple : ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## Le défi : diff --git a/problems/number-to-string/problem_it.md b/problems/number-to-string/problem_it.md index 04a9c24c..1850b613 100644 --- a/problems/number-to-string/problem_it.md +++ b/problems/number-to-string/problem_it.md @@ -3,8 +3,8 @@ A volte è necessario trasformare un numero in una stringa. In quei casi, userai il metodo `.toString()`. Ecco un esempio: ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## La sfida: diff --git a/problems/number-to-string/problem_ja.md b/problems/number-to-string/problem_ja.md index 7d8ddf20..e380e72f 100644 --- a/problems/number-to-string/problem_ja.md +++ b/problems/number-to-string/problem_ja.md @@ -3,8 +3,8 @@ そういう時は `toString()` メソッドを使います。たとえば... ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## やってみよう diff --git a/problems/number-to-string/problem_ko.md b/problems/number-to-string/problem_ko.md index 63fc8e59..854a19e5 100644 --- a/problems/number-to-string/problem_ko.md +++ b/problems/number-to-string/problem_ko.md @@ -3,8 +3,8 @@ 그런 경우에 `.toString()` 메소드를 사용하면 됩니다. 예제를 보세요. ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## 도전 과제 diff --git a/problems/number-to-string/problem_nb-no.md b/problems/number-to-string/problem_nb-no.md index ab92736f..73c1d07e 100644 --- a/problems/number-to-string/problem_nb-no.md +++ b/problems/number-to-string/problem_nb-no.md @@ -3,8 +3,8 @@ Noen ganger må du gjøre om et nummer til en string. I de tilfelle må du bruke `.toString()` metoden. Eksempel: ```js -let nummer = 256; -nummer = nummer.toString(); +let nummer = 256 +nummer = nummer.toString() ``` ## Oppgaven: diff --git a/problems/number-to-string/problem_pt-br.md b/problems/number-to-string/problem_pt-br.md index 4ea1caee..b9fba7d4 100644 --- a/problems/number-to-string/problem_pt-br.md +++ b/problems/number-to-string/problem_pt-br.md @@ -3,8 +3,8 @@ Nestas situações você usará o método `.toString()`. Veja um exemplo de como usá-lo: ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## Desafio: diff --git a/problems/number-to-string/problem_ru.md b/problems/number-to-string/problem_ru.md index b6a114a7..b7bdea2e 100644 --- a/problems/number-to-string/problem_ru.md +++ b/problems/number-to-string/problem_ru.md @@ -3,8 +3,8 @@ В этом случае используйте метод `.toString()`. Например: ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## Условие задачи: diff --git a/problems/number-to-string/problem_uk.md b/problems/number-to-string/problem_uk.md index dc9c300d..7dce3460 100644 --- a/problems/number-to-string/problem_uk.md +++ b/problems/number-to-string/problem_uk.md @@ -3,8 +3,8 @@ В таких випадках ви можете використати метод `.toString()`. Ось приклад: ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## Завдання: diff --git a/problems/number-to-string/problem_zh-cn.md b/problems/number-to-string/problem_zh-cn.md index 7e71f702..4b98b411 100644 --- a/problems/number-to-string/problem_zh-cn.md +++ b/problems/number-to-string/problem_zh-cn.md @@ -3,8 +3,8 @@ 这时,你可以使用 `.toString()` 方法。例如: ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## 挑战: diff --git a/problems/number-to-string/problem_zh-tw.md b/problems/number-to-string/problem_zh-tw.md index 541d3664..4cdf52e4 100644 --- a/problems/number-to-string/problem_zh-tw.md +++ b/problems/number-to-string/problem_zh-tw.md @@ -3,8 +3,8 @@ 這時,你可以使用 `.toString()` 方法。例如: ```js -let n = 256; -n = n.toString(); +let n = 256 +n = n.toString() ``` ## 挑戰: diff --git a/problems/numbers/index.js b/problems/numbers/index.js index 706d66c2..24dc941d 100644 --- a/problems/numbers/index.js +++ b/problems/numbers/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js index 706d66c2..24dc941d 100644 --- a/problems/object-keys/index.js +++ b/problems/object-keys/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/object-keys/problem.md b/problems/object-keys/problem.md index 1f29696d..1b07c63f 100644 --- a/problems/object-keys/problem.md +++ b/problems/object-keys/problem.md @@ -5,13 +5,13 @@ prototype method. ```js const car = { - make: 'Toyota', - model: 'Camry', - year: 2020 -}; -const keys = Object.keys(car); + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) -console.log(keys); +console.log(keys) ``` The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` @@ -27,12 +27,12 @@ const car = { make: 'Honda', model: 'Accord', year: 2020 -}; +} ``` Then define another variable named `keys` like this: ```js -const keys = Object.keys(car); +const keys = Object.keys(car) ``` Use `console.log()` to print the `keys` variable to the terminal. diff --git a/problems/object-keys/problem_es.md b/problems/object-keys/problem_es.md index 1f664a0a..418cfbca 100644 --- a/problems/object-keys/problem_es.md +++ b/problems/object-keys/problem_es.md @@ -7,13 +7,13 @@ usando el método **Object.keys()**: ```js const car = { - make: 'Toyota', - model: 'Camry', - year: 2020 -}; -const keys = Object.keys(car); + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) -console.log(keys); +console.log(keys) ``` El código de arriba imprime un arreglo de _strings_, donde cada _string_ es una @@ -30,13 +30,13 @@ const car = { make: 'Honda', model: 'Accord', year: 2020 -}; +} ``` Después define otra variable llamada `keys`: ```js -const keys = Object.keys(car); +const keys = Object.keys(car) ``` Usa `console.log()` para imprimir la variable `keys` en la consola. diff --git a/problems/object-keys/problem_it.md b/problems/object-keys/problem_it.md index 45a58854..1d9bdb9f 100644 --- a/problems/object-keys/problem_it.md +++ b/problems/object-keys/problem_it.md @@ -4,13 +4,13 @@ Ecco un esempio di elencazione di tutte le chiavi dell'oggetto usando il metodo ```js const car = { - make: 'Toyota', - model: 'Camry', - year: 2020 -}; -const keys = Object.keys(car); + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) -console.log(keys); +console.log(keys) ``` Il codice sopra stamperà una matrice di stringhe, in cui ogni stringa è una chiave nell'oggetto car. `['make', 'model', 'year']` @@ -26,12 +26,12 @@ const car = { make: 'Honda', model: 'Accord', year: 2020 -}; +} ``` Quindi definire un'altra variabile denominata `keys` come questa: ```js -const keys = Object.keys(car); +const keys = Object.keys(car) ``` Usa `console.log ()` per stampare la variabile `keys` sul terminale diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js index 706d66c2..24dc941d 100644 --- a/problems/object-properties/index.js +++ b/problems/object-properties/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/object-properties/problem.md b/problems/object-properties/problem.md index 1e64fa72..0b829609 100644 --- a/problems/object-properties/problem.md +++ b/problems/object-properties/problem.md @@ -5,9 +5,9 @@ Here's an example using **square brackets**: ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` The above code will print the string `'yummy'` to the terminal. @@ -15,9 +15,9 @@ The above code will print the string `'yummy'` to the terminal. Alternately, you can use **dot notation** to get identical results: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` The two lines of code above will both return `yummy`. @@ -31,7 +31,7 @@ In that file, define a variable named `food` like this: ```js const food = { types: 'only pizza' -}; +} ``` Use `console.log()` to print the `types` property of the `food` object to the terminal. diff --git a/problems/object-properties/problem_es.md b/problems/object-properties/problem_es.md index 9de2d4a3..8edd16dc 100644 --- a/problems/object-properties/problem_es.md +++ b/problems/object-properties/problem_es.md @@ -5,9 +5,9 @@ Un ejemplo usando **corchetes**: ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` El código anterior imprimirá el string `yummy` en la terminal. @@ -15,9 +15,9 @@ El código anterior imprimirá el string `yummy` en la terminal. También puedes usar la **notación de punto** para obtener resultados idénticos: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` Las dos líneas de código anteriores retornarán `yummy`. @@ -31,7 +31,7 @@ En ese archivo, define una variable llamada `food` de la siguiente forma: ```js const food = { types: 'only pizza' -}; +} ``` Utiliza `console.log()` para imprimir la propiedad `types` del objeto `food` en la terminal. diff --git a/problems/object-properties/problem_fr.md b/problems/object-properties/problem_fr.md index 6aedae12..137ba20e 100644 --- a/problems/object-properties/problem_fr.md +++ b/problems/object-properties/problem_fr.md @@ -5,9 +5,9 @@ Voici un example utilisant des **crochets** : ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` Le code ci-dessus va afficher la chaine de caractères `yummy` dans le terminal. @@ -15,9 +15,9 @@ Le code ci-dessus va afficher la chaine de caractères `yummy` dans le terminal. Une alternative consiste à utiliser la **notation en point** pour avoir le même résultat : ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` Les deux lignes de code ci-dessus renverront `yummy`. @@ -31,7 +31,7 @@ Dans ce fichier, définissez une variable nommée `food` comme ceci : ```js const food = { types: 'only pizza' -}; +} ``` Utilisez `console.log()` pour afficher la propriété `types` de l'objet `food` dans le terminal. diff --git a/problems/object-properties/problem_it.md b/problems/object-properties/problem_it.md index d68728f9..d3e04875 100644 --- a/problems/object-properties/problem_it.md +++ b/problems/object-properties/problem_it.md @@ -5,9 +5,9 @@ Ecco un esempio usando le **parentesi quadre**: ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` Il codice precedente stamperà la stringa `'yummy'` sul terminale. @@ -15,9 +15,9 @@ Il codice precedente stamperà la stringa `'yummy'` sul terminale. In alternativa, puoi usare la **notazione puntata** per ottenere un risultato identico: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` Le due righe di codice precedenti restituiranno entrambe `yummy`. @@ -31,7 +31,7 @@ In questo file, definisci una variabile chiamata `food` come segue: ```js const food = { types: 'only pizza' -}; +} ``` Usa `console.log()` per stampare la proprietà `types` dell'oggetto `food` sul terminale. diff --git a/problems/object-properties/problem_ja.md b/problems/object-properties/problem_ja.md index ed82749a..fbe9add5 100644 --- a/problems/object-properties/problem_ja.md +++ b/problems/object-properties/problem_ja.md @@ -7,9 +7,9 @@ ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` 上のコードは、 `'yummy'` とターミナルに出力します。 @@ -17,9 +17,9 @@ console.log(example['pizza']); 別のやりかたとして、ドット記法を使って同じ結果を得ることもできます... ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` 上の二つの行は、両方とも `yummy` という値を返します。 @@ -35,7 +35,7 @@ example['pizza']; ```js const food = { types: 'only pizza' -}; +} ``` `console.log()` を使って、 `food` オブジェクトの `types` プロパティをターミナルに表示しましょう。 diff --git a/problems/object-properties/problem_ko.md b/problems/object-properties/problem_ko.md index 74056ede..634166b6 100644 --- a/problems/object-properties/problem_ko.md +++ b/problems/object-properties/problem_ko.md @@ -5,9 +5,9 @@ ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` 위의 코드는 문자열 `'yummy'`를 터미널에 출력합니다. @@ -15,9 +15,9 @@ console.log(example['pizza']); 아니면, **점(.) 구문**으로 같은 결과를 얻을 수 있습니다. ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` 위에 있는 두 줄의 코드는 양쪽 다 `yummy`를 반환합니다. @@ -31,7 +31,7 @@ example['pizza']; ```js const food = { types: 'only pizza' -}; +} ``` `console.log()`를 사용해 `food` 객체의 `types` 속성을 터미널에 출력합니다. diff --git a/problems/object-properties/problem_nb-no.md b/problems/object-properties/problem_nb-no.md index 8e3cec03..c030990c 100644 --- a/problems/object-properties/problem_nb-no.md +++ b/problems/object-properties/problem_nb-no.md @@ -5,9 +5,9 @@ Her er et eksempel som bruker **hakeparantes**: ```js const eksempel = { pizza: 'yummy' -}; +} -console.log(eksempel['pizza']); +console.log(eksempel['pizza']) ``` Koden over skriver ut stringen `'yummy'` til skjermen. @@ -15,9 +15,9 @@ Koden over skriver ut stringen `'yummy'` til skjermen. Alternativt kan du bruke **punktum notasjon** for samme resultat: ```js -eksempel.pizza; +eksempel.pizza -eksempel['pizza']; +eksempel['pizza'] ``` De to linjene over returnerer `yummy` begge to. @@ -31,7 +31,7 @@ Definer en variabel med navnet `food` i den filen: ```js const food = { types: 'only pizza' -}; +} ``` Bruk `console.log()` til å skrive ut `types` egenskapen av `food` objektet til skjermen. diff --git a/problems/object-properties/problem_pt-br.md b/problems/object-properties/problem_pt-br.md index c0e338e6..2014f3cd 100644 --- a/problems/object-properties/problem_pt-br.md +++ b/problems/object-properties/problem_pt-br.md @@ -5,9 +5,9 @@ Aqui está um exemplo usando **colchetes**: ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` O código acima vai imprimir no terminal a string `'yummy'`. @@ -15,9 +15,9 @@ O código acima vai imprimir no terminal a string `'yummy'`. Como alternativa você pode utilizar **ponto** para obter o mesmo resultado: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` As duas linhas de código acima retornarão `yummy`. @@ -31,7 +31,7 @@ Neste arquivo, defina uma variável chamada `food` desta maneira: ```js const food = { types: 'only pizza' -}; +} ``` Use o `console.log()` para imprimir a propriedade `types` do objeto `food` no terminal. diff --git a/problems/object-properties/problem_ru.md b/problems/object-properties/problem_ru.md index 723b83ed..d97a74c1 100644 --- a/problems/object-properties/problem_ru.md +++ b/problems/object-properties/problem_ru.md @@ -5,9 +5,9 @@ ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` Код приведенный выше выведет в терминал строку `'yummy'`. @@ -15,9 +15,9 @@ console.log(example['pizza']); В качестве альтернативы, вы можете использовать **запись с точкой** и получить идентичный результат: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` Обе строки кода, приведенные выше, вернут одинаковое значение `yummy`. @@ -31,7 +31,7 @@ example['pizza']; ```js const food = { types: 'only pizza' -}; +} ``` Используйте `console.log()` и выведите в терминал свойство `types` объекта `food`. diff --git a/problems/object-properties/problem_uk.md b/problems/object-properties/problem_uk.md index e681f7de..ef524dd2 100644 --- a/problems/object-properties/problem_uk.md +++ b/problems/object-properties/problem_uk.md @@ -5,9 +5,9 @@ ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` Код вище виведе рядок `'yummy'` до терміналу. @@ -15,9 +15,9 @@ console.log(example['pizza']); Окрім того, ви можете використати **крапковий запис (dot notation)**, щоб отримати ідентичний результат: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` Обидва рядки коду повернуть `yummy`. @@ -31,7 +31,7 @@ example['pizza']; ```js const food = { types: 'only pizza' -}; +} ``` Використайте `console.log()`, щоб вивести властивість `types` об’єкту `food` до терміналу. diff --git a/problems/object-properties/problem_zh-cn.md b/problems/object-properties/problem_zh-cn.md index 9b0fb9ed..b0b9382d 100644 --- a/problems/object-properties/problem_zh-cn.md +++ b/problems/object-properties/problem_zh-cn.md @@ -5,9 +5,9 @@ ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` 上面的例子将打印出 `'yummy'` 到终端。 @@ -15,9 +15,9 @@ console.log(example['pizza']); 你也可以使用**英文句号**来得到相同的结果: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` 上面的两行代码都会返回 `yummy`。 @@ -31,7 +31,7 @@ example['pizza']; ```js const food = { types: 'only pizza' -}; +} ``` 使用 `console.log()` 打印 `food` 对象的 `types` 属性到终端。 diff --git a/problems/object-properties/problem_zh-tw.md b/problems/object-properties/problem_zh-tw.md index 58fde2f5..9111183c 100644 --- a/problems/object-properties/problem_zh-tw.md +++ b/problems/object-properties/problem_zh-tw.md @@ -5,9 +5,9 @@ ```js const example = { pizza: 'yummy' -}; +} -console.log(example['pizza']); +console.log(example['pizza']) ``` 上面的例子將印出 `'yummy'` 到終端機上。 @@ -15,9 +15,9 @@ console.log(example['pizza']); 你也可以使用**點**來得到相同的結果: ```js -example.pizza; +example.pizza -example['pizza']; +example['pizza'] ``` 上面的兩行程式碼都會返回 `yummy`。 @@ -31,7 +31,7 @@ example['pizza']; ```js const food = { types: 'only pizza' -}; +} ``` 使用 `console.log()` 印出 `food` 物件的 `types` 屬性到終端機上。 diff --git a/problems/objects/index.js b/problems/objects/index.js index 706d66c2..24dc941d 100644 --- a/problems/objects/index.js +++ b/problems/objects/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/objects/problem.md b/problems/objects/problem.md index 8e69c4e4..d2965dc4 100644 --- a/problems/objects/problem.md +++ b/problems/objects/problem.md @@ -6,7 +6,7 @@ Here is an example: const foodPreferences = { pizza: 'yum', salad: 'gross' -}; +} ``` ## The challenge: @@ -20,7 +20,7 @@ const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 -}; +} ``` Use `console.log()` to print the `pizza` object to the terminal. diff --git a/problems/objects/problem_fr.md b/problems/objects/problem_fr.md index 01ec752d..c4dc6dcc 100644 --- a/problems/objects/problem_fr.md +++ b/problems/objects/problem_fr.md @@ -6,7 +6,7 @@ Voici un exemple : const foodPreferences = { pizza: 'yum', salad: 'gross' -}; +} ``` ## Le défi : @@ -20,7 +20,7 @@ const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 -}; +} ``` Utilisez `console.log()` pour afficher l'objet `pizza` dans le terminal. diff --git a/problems/objects/problem_it.md b/problems/objects/problem_it.md index 3f8d32b4..e48cc127 100644 --- a/problems/objects/problem_it.md +++ b/problems/objects/problem_it.md @@ -6,7 +6,7 @@ Ecco un esempio const foodPreferences = { pizza: 'yum', salad: 'gross' -}; +} ``` ## La sfida: @@ -20,7 +20,7 @@ const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 -}; +} ``` Usa `console.log()` per stampare l'oggetto `pizza` sul terminale. diff --git a/problems/objects/problem_ko.md b/problems/objects/problem_ko.md index 470db97b..268e3166 100644 --- a/problems/objects/problem_ko.md +++ b/problems/objects/problem_ko.md @@ -6,7 +6,7 @@ const foodPreferences = { pizza: 'yum', salad: 'gross' -}; +} ``` ## 도전 과제 @@ -20,7 +20,7 @@ const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 -}; +} ``` `console.log()`를 사용해 `pizza` 객체를 터미널에 출력합니다. diff --git a/problems/objects/problem_ru.md b/problems/objects/problem_ru.md index 7c3657a9..4c9b0056 100644 --- a/problems/objects/problem_ru.md +++ b/problems/objects/problem_ru.md @@ -6,7 +6,7 @@ const foodPreferences = { pizza: 'yum', salad: 'gross' -}; +} ``` ## Условие задачи: @@ -20,7 +20,7 @@ const pizza = { toppings: ['cheese', 'sauce', 'pepperoni'], crust: 'deep dish', serves: 2 -}; +} ``` Используйте `console.log()` и введите в терминал объект `pizza`. diff --git a/problems/objects/problem_uk.md b/problems/objects/problem_uk.md index 46d088f5..41dd7f95 100644 --- a/problems/objects/problem_uk.md +++ b/problems/objects/problem_uk.md @@ -4,9 +4,9 @@ ```js const foodPreferences = { -pizza: 'yum', -salad: 'gross' -}; + pizza: 'yum', + salad: 'gross' +} ``` ## Завдання: @@ -17,10 +17,10 @@ salad: 'gross' ```js const pizza = { -toppings: ['cheese', 'sauce', 'pepperoni'], -crust: 'deep dish', -serves: 2 -}; + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} ``` Використайте `console.log()`, щоб вивести об’єкт `pizza` до терміналу. diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js index 706d66c2..24dc941d 100644 --- a/problems/revising-strings/index.js +++ b/problems/revising-strings/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/revising-strings/problem.md b/problems/revising-strings/problem.md index 2a77b7eb..89ebe9d7 100644 --- a/problems/revising-strings/problem.md +++ b/problems/revising-strings/problem.md @@ -5,9 +5,9 @@ Strings have built-in functionality that allow you to inspect and manipulate the Here is an example using the `.replace()` method: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` Note that to change the value that the `example` variable references, we need diff --git a/problems/revising-strings/problem_es.md b/problems/revising-strings/problem_es.md index 00f2a9a5..77680b44 100644 --- a/problems/revising-strings/problem_es.md +++ b/problems/revising-strings/problem_es.md @@ -5,9 +5,9 @@ Las strings tienen una funcionalidad por defecto que te permite reemplazar carac Por ejemplo a continuación veremos un uso del método `.replace()`: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` Nota que para cambiar el valor que la variable `example` referencia, diff --git a/problems/revising-strings/problem_fr.md b/problems/revising-strings/problem_fr.md index ca6c8550..deaa5077 100644 --- a/problems/revising-strings/problem_fr.md +++ b/problems/revising-strings/problem_fr.md @@ -5,9 +5,9 @@ Les chaînes de caractères ont des fonctionnalités directement intégrées qui Voici un exemple qui utilise la méthode `.replace()` : ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` Notez que pour modifier la valeur contenue dans la variable `example`, nous devons utiliser encore une fois le signe égal, mais cette fois avec la méthode `example.replace()` à la droite du égal. diff --git a/problems/revising-strings/problem_it.md b/problems/revising-strings/problem_it.md index a33ede92..b2986c69 100644 --- a/problems/revising-strings/problem_it.md +++ b/problems/revising-strings/problem_it.md @@ -5,9 +5,9 @@ Le stringhe possiedono funzionalità integrata che ti permette di ispezionarne e Ecco un esempio che usa il metodo `.replace()`: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` Nota che per cambiare il valore referenziato dalla variabile `example`, dobbiamo usare diff --git a/problems/revising-strings/problem_ja.md b/problems/revising-strings/problem_ja.md index 48e64a71..18340932 100644 --- a/problems/revising-strings/problem_ja.md +++ b/problems/revising-strings/problem_ja.md @@ -5,9 +5,9 @@ たとえば `.replace()` メソッドは次のように使います... ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` 等号を使って `example` 変数を、もう一度変更することに注意してください。 diff --git a/problems/revising-strings/problem_ko.md b/problems/revising-strings/problem_ko.md index 86d0f2cd..5e5bb12c 100644 --- a/problems/revising-strings/problem_ko.md +++ b/problems/revising-strings/problem_ko.md @@ -5,9 +5,9 @@ `.replace()` 메소드를 사용하는 예제입니다. ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` `example` 변수가 참조하는 값을 바꾸는 것에 주의하세요. 등호를 다시 사용해야 합니다. 이번에는 `example.replace()` 메소드를 등호의 오른편에 두었습니다. diff --git a/problems/revising-strings/problem_nb-no.md b/problems/revising-strings/problem_nb-no.md index b06233e0..27cbe546 100644 --- a/problems/revising-strings/problem_nb-no.md +++ b/problems/revising-strings/problem_nb-no.md @@ -5,9 +5,9 @@ Stringer har innebygd funksjonalitet som lar de manipulere og se på innholdet. Her er et eksempel som bruker `.replace()` metoden: ```js -let example = 'dette eksemplet er kjedelig'; -example = example.replace('kjedelig', 'kult'); -console.log(example); +let example = 'dette eksemplet er kjedelig' +example = example.replace('kjedelig', 'kult') +console.log(example) ``` Merk deg at for å endre verdien variabelen `example` refererer til så bruker vi likhetstegnet. Denne gangen med `example.replace()` metoden på høyre siden av likhetstegnet. diff --git a/problems/revising-strings/problem_pt-br.md b/problems/revising-strings/problem_pt-br.md index 732ad6be..ba7ed761 100644 --- a/problems/revising-strings/problem_pt-br.md +++ b/problems/revising-strings/problem_pt-br.md @@ -5,9 +5,9 @@ As strings tem funcionalidades que te permitem inspecionar e manipular seus cont Aqui está um exemplo que usa o método `.replace()`: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` Perceba que para mudar o valor da string da variável `example`, nós precisamos diff --git a/problems/revising-strings/problem_ru.md b/problems/revising-strings/problem_ru.md index 73b5c519..493f4ce1 100644 --- a/problems/revising-strings/problem_ru.md +++ b/problems/revising-strings/problem_ru.md @@ -5,9 +5,9 @@ Рассмотрим пример использования метода `.replace()`: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` Обратите внимание: чтобы изменить значение переменной `example` нам нужно воспользоваться знаком _равно_ ещё раз, в этот раз вместе с вызовом метода `example.replace()` справа от знака _равно_. diff --git a/problems/revising-strings/problem_uk.md b/problems/revising-strings/problem_uk.md index b617c7ee..da15e969 100644 --- a/problems/revising-strings/problem_uk.md +++ b/problems/revising-strings/problem_uk.md @@ -5,9 +5,9 @@ Ось приклад використання методу `.replace()`: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` Зверніть увагу, що для зміни значення змінної `example` ми повинні використати оператор присвоєння знову, цього разу з методом `example.replace()` праворуч від операторa присвоєння. diff --git a/problems/revising-strings/problem_zh-cn.md b/problems/revising-strings/problem_zh-cn.md index 275a6d54..0804d792 100644 --- a/problems/revising-strings/problem_zh-cn.md +++ b/problems/revising-strings/problem_zh-cn.md @@ -5,9 +5,9 @@ 这里是一个使用 `.replace()` 方法的例子: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` 为了改变 `example` 变量引用的值,我们需要再一次使用等号。这一次出现在等号右边的是 `example.replace()` 方法。 diff --git a/problems/revising-strings/problem_zh-tw.md b/problems/revising-strings/problem_zh-tw.md index 77b0750b..614800b6 100644 --- a/problems/revising-strings/problem_zh-tw.md +++ b/problems/revising-strings/problem_zh-tw.md @@ -5,9 +5,9 @@ 這裡是一個使用 `.replace()` 方法的例子: ```js -let example = 'this example exists'; -example = example.replace('exists', 'is awesome'); -console.log(example); +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) ``` 為了改變 `example` 變數引用的值,我們需要再一次使用等號。這一次出現在等號右邊的是 `example.replace()` 方法。 diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js index 706d66c2..24dc941d 100644 --- a/problems/rounding-numbers/index.js +++ b/problems/rounding-numbers/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/rounding-numbers/problem.md b/problems/rounding-numbers/problem.md index 336fa691..dab7a39c 100644 --- a/problems/rounding-numbers/problem.md +++ b/problems/rounding-numbers/problem.md @@ -15,7 +15,7 @@ We will use the `Math.round()` method to round the number up. This method rounds An example of using `Math.round()`: ```js -Math.round(0.5); +Math.round(0.5) ``` Define a second variable named `rounded` that references the output of the `Math.round()` method, passing in the `roundUp` variable as the argument. diff --git a/problems/rounding-numbers/problem_es.md b/problems/rounding-numbers/problem_es.md index 83433a0d..cb36f15c 100644 --- a/problems/rounding-numbers/problem_es.md +++ b/problems/rounding-numbers/problem_es.md @@ -15,7 +15,7 @@ Usaremos el método `Math.round()` para redondear el número. Un ejemplo de `Math.round()`: ```js -Math.round(0.5); +Math.round(0.5) ``` Define una segunda variable llamada `rounded` que referencie lo que retorna el método `Math.round()`, pasando la variable `roundUp` cómo argumento. diff --git a/problems/rounding-numbers/problem_fr.md b/problems/rounding-numbers/problem_fr.md index b01a7293..5a87750d 100644 --- a/problems/rounding-numbers/problem_fr.md +++ b/problems/rounding-numbers/problem_fr.md @@ -15,7 +15,7 @@ Nous allons utiliser la méthode `Math.round()` pour arrondir notre nombre. Cett Un exemple d'utilisation de `Math.round()` : ```js -Math.round(0.5); +Math.round(0.5) ``` Définissez une seconde variable nommée `rounded` qui contient le résultat de la méthode `Math.round()`, en lui passant la variable `roundUp` en argument. diff --git a/problems/rounding-numbers/problem_it.md b/problems/rounding-numbers/problem_it.md index 2b0f0b61..e860cd23 100644 --- a/problems/rounding-numbers/problem_it.md +++ b/problems/rounding-numbers/problem_it.md @@ -15,7 +15,7 @@ Useremo il metodo `Math.round()` per arrotondare il numero per eccesso. Questo m Un esempio dell'uso di `Math.round()`: ```js -Math.round(0.5); +Math.round(0.5) ``` Definisci una seconda variabile chiamata `rounded` che referenzia l'output del metodo `Math.round()`, passando la variabile `roundUp` come argomento. diff --git a/problems/rounding-numbers/problem_ja.md b/problems/rounding-numbers/problem_ja.md index 74c6e843..06e628cc 100644 --- a/problems/rounding-numbers/problem_ja.md +++ b/problems/rounding-numbers/problem_ja.md @@ -16,7 +16,7 @@ rounding-numbers.jsファイルを作りましょう。 `Math.round()` メソッドの使用例です... ```js -Math.round(0.5); +Math.round(0.5) ``` 第二の変数 `rounded` を定義します。この変数は `Math.round()` メソッドの結果を表します。引数には `roundUp` 変数を指定します。 diff --git a/problems/rounding-numbers/problem_ko.md b/problems/rounding-numbers/problem_ko.md index 6321ca0e..2ce04fdc 100644 --- a/problems/rounding-numbers/problem_ko.md +++ b/problems/rounding-numbers/problem_ko.md @@ -15,7 +15,7 @@ `Math.round()`을 사용하는 예입니다. ```js -Math.round(0.5); +Math.round(0.5) ``` `roundUp` 변수를 인자로 `Math.round()` 메소드에 넘긴 결과를 참조하는 `rounded`라는 두 번째 변수를 정의합니다. diff --git a/problems/rounding-numbers/problem_nb-no.md b/problems/rounding-numbers/problem_nb-no.md index 141d0506..420fc031 100644 --- a/problems/rounding-numbers/problem_nb-no.md +++ b/problems/rounding-numbers/problem_nb-no.md @@ -15,7 +15,7 @@ Vi vil bruke `Math.round()` metoden for å runde opp til nærmeste heltall. Et eksempel på bruk av `Math.round()`: ```js -Math.round(0.5); +Math.round(0.5) ``` Definer en andre variabel med navnet `rounded` som referer resultat av `Math.round()` methoden, diff --git a/problems/rounding-numbers/problem_pt-br.md b/problems/rounding-numbers/problem_pt-br.md index aa86c10a..670c55f8 100644 --- a/problems/rounding-numbers/problem_pt-br.md +++ b/problems/rounding-numbers/problem_pt-br.md @@ -15,7 +15,7 @@ Usaremos o método `Math.round()` para arredondar o valor para cima. Veja um exemplo de utilização do método `Math.round()`: ```js -Math.round(0.5); +Math.round(0.5) ``` Defina uma segunda variável chamada `rounded` que referencia a saída do método `Math.round()`, passando a variável `roundUp` como argumento. diff --git a/problems/rounding-numbers/problem_ru.md b/problems/rounding-numbers/problem_ru.md index 97f4d109..22262e75 100644 --- a/problems/rounding-numbers/problem_ru.md +++ b/problems/rounding-numbers/problem_ru.md @@ -15,7 +15,7 @@ Пример использования `Math.round()`: ```js -Math.round(0.5); +Math.round(0.5) ``` Объявите вторую переменную `rounded`, которая ссылается на результат работы метода `Math.round()`, аргументом которой является переменная `roundUp`. diff --git a/problems/rounding-numbers/problem_uk.md b/problems/rounding-numbers/problem_uk.md index cd4f44cb..84784d63 100644 --- a/problems/rounding-numbers/problem_uk.md +++ b/problems/rounding-numbers/problem_uk.md @@ -15,7 +15,7 @@ Приклад використання `Math.round()`: ```js -Math.round(0.5); +Math.round(0.5) ``` Оголосіть ще одну змінну `rounded`, що посилатиметься на результат методу `Math.round()`, який прийматиме змінну `roundUp` в якості аргументу. diff --git a/problems/rounding-numbers/problem_zh-cn.md b/problems/rounding-numbers/problem_zh-cn.md index 020a114c..0b8b9915 100644 --- a/problems/rounding-numbers/problem_zh-cn.md +++ b/problems/rounding-numbers/problem_zh-cn.md @@ -15,7 +15,7 @@ `Math.round()` 的例子: ```js -Math.round(0.5); +Math.round(0.5) ``` 再定义一个名为 `rounded` 的变量,让它引用 `Math.round()` 的结果。将 `roundUp` 作为参数传递。 diff --git a/problems/rounding-numbers/problem_zh-tw.md b/problems/rounding-numbers/problem_zh-tw.md index ff9c26e3..7672ec7d 100644 --- a/problems/rounding-numbers/problem_zh-tw.md +++ b/problems/rounding-numbers/problem_zh-tw.md @@ -15,7 +15,7 @@ `Math.round()` 的例子: ```js -Math.round(0.5); +Math.round(0.5) ``` 再定義一個名為 `rounded` 的變數,讓它引用 `Math.round()` 的結果。將 `roundUp` 作為參數傳遞。 diff --git a/problems/scope/index.js b/problems/scope/index.js index 706d66c2..24dc941d 100644 --- a/problems/scope/index.js +++ b/problems/scope/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index ecf66659..e9d88c81 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -7,21 +7,21 @@ Functions defined inside other functions, known as nested functions, have access Pay attention to the comments in the code below: ```js -const a = 4; // a is a global variable, it can be accessed by the functions below - -function foo() { - let b = a * 3; // b cannot be accessed outside foo function, but can be accessed by functions - // defined inside foo - function bar(c) { - let b = 2; // another `b` variable is created inside bar function scope - // the changes to this new `b` variable don't affect the old `b` variable - console.log( a, b, c ); +const a = 4 // a is a global variable, it can be accessed by the functions below + +function foo () { + const b = a * 3 // b cannot be accessed outside foo function, but can be accessed by functions + // defined inside foo + function bar (c) { + const b = 2 // another `b` variable is created inside bar function scope + // the changes to this new `b` variable don't affect the old `b` variable + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` @@ -29,10 +29,10 @@ IIFE, Immediately Invoked Function Expression, is a common pattern for creating Example: ```js -(function(){ // the function expression is surrounded by parenthesis - // variables defined here - // can't be accessed outside -})(); // the function is immediately invoked +(function () { // the function expression is surrounded by parenthesis + // variables defined here + // can't be accessed outside +})() // the function is immediately invoked ``` ## The challenge: @@ -40,30 +40,29 @@ Create a file named `scope.js`. In that file, copy the following code: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Use your knowledge of the variables' `scope` and place the following code inside one of the functions in `scope.js` so the output is `a: 1, b: 8, c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` Check to see if your program is correct by running this command: diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md index 89374df0..ecea29ab 100644 --- a/problems/scope/problem_es.md +++ b/problems/scope/problem_es.md @@ -7,29 +7,29 @@ Las funciones definidas dentro de otras funciones, conocidas como funciones anid Presta atención a los comentarios en el siguiente código: ```js -const a = 4; // es una variable global, puede ser accedida por las siguientes funciones - -function foo() { - let b = a * 3; // b no puede ser accedida por fuera de la función foo, pero puede ser accedida - // por las funciones definidas dentro de foo - function bar(c) { - let b = 2; // otra variable `b` es creada dentro del ámbito de la función bar - // los cambios a esta nueva `b` no afectan a la vieja variable `b` - console.log( a, b, c ); +const a = 4 // es una variable global, puede ser accedida por las siguientes funciones + +function foo () { + const b = a * 3 // b no puede ser accedida por fuera de la función foo, pero puede ser accedida + // por las funciones definidas dentro de foo + function bar (c) { + const b = 2 // otra variable `b` es creada dentro del ámbito de la función bar + // los cambios a esta nueva `b` no afectan a la vieja variable `b` + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` IIFE, Immediately Invoked Function Expression( Expresión de Función Invocada Inmediatamente ), es un patrón común para crear ámbitos locales. Por ejemplo: ```js -(function(){ // La expresión de la función está entre paréntesis - // las variables definidas aquí - // no pueden ser accedidas por fuera -})(); // la función es inmediatamente invocada +(function () { // La expresión de la función está entre paréntesis + // las variables definidas aquí + // no pueden ser accedidas por fuera +})() // la función es inmediatamente invocada ``` ## El ejercicio: @@ -37,28 +37,27 @@ Crea un archivo llamado `scope.js`. En ese archivo, copia el siguiente código: ```js -let a = 1, b = 2, c = 3; - -(function firstFunction(){ - let b = 5, c = 6; +const a = 1; const b = 2; const c = 3; - (function secondFunction(){ - let b = 8; +(function firstFunction () { + const b = 5; const c = 6; - (function thirdFunction(){ - let a = 7, c = 9; + (function secondFunction () { + const b = 8; - (function fourthFunction(){ - let a = 1, c = 8; + (function thirdFunction () { + const a = 7; const c = 9; - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Usa tu conocimiento sobre el ámbito de las variables y ubica el siguiente código dentro de alguna de las funciones en `scope.js` para que la salida sea `a: 1, b: 8, c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` diff --git a/problems/scope/problem_fr.md b/problems/scope/problem_fr.md index 96b39af2..7ca44f91 100644 --- a/problems/scope/problem_fr.md +++ b/problems/scope/problem_fr.md @@ -7,32 +7,32 @@ Les fonctions définies à l'intérieur d'autres fonctions, aussi connues en tan Soyez attentif aux commentaires dans le code suivant : ```js -const a = 4; // a est une variable globale, elle est accessible dans les fonctions ci-dessous +const a = 4 // a est une variable globale, elle est accessible dans les fonctions ci-dessous -function foo() { - let b = a * 3; // b n'est pas accessible hors de la fonction foo mais l'est - // dans les fonctions déclarées à l'intérieur de foo +function foo () { + const b = a * 3 // b n'est pas accessible hors de la fonction foo mais l'est + // dans les fonctions déclarées à l'intérieur de foo - function bar(c) { - let b = 2; // une autre variable `b` est créée à l'intérieur du scope de la fonction + function bar (c) { + const b = 2 // une autre variable `b` est créée à l'intérieur du scope de la fonction // les changements apportés à cette nouvelle variable `b` n'ont pas d'effet sur - // l'ancienne variable `b` - console.log( a, b, c ); + // l'ancienne variable `b` + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` IIFE, Immediately Invoked Function Expression, est un schéma commun pour créer des scopes locaux : ```js -(function(){ // l'expression `function` est entourée par des parenthèses - // les variables définies ici - // ne sont pas accessibles en dehors -})(); // la fonction est appelée immédiatement +(function () { // l'expression `function` est entourée par des parenthèses + // les variables définies ici + // ne sont pas accessibles en dehors +})() // la fonction est appelée immédiatement ``` ## Le défi : @@ -40,29 +40,28 @@ Créez un fichier nommé `scope.js`. Dans ce fichier, copiez le code suivant : ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Utilisez vos connaissances des `scopes` de variables et placez le code suivant à l'intérieur d'une fonction de `scope.js` afin d'obtenir la sortie `a: 1, b: 8, c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` Vérifiez si votre programme est correct en exécutant la commande : diff --git a/problems/scope/problem_it.md b/problems/scope/problem_it.md index 65ddfda3..36694788 100644 --- a/problems/scope/problem_it.md +++ b/problems/scope/problem_it.md @@ -7,29 +7,29 @@ Le funzioni definite all'interno di altre funzioni, note come funzioni annidate, Presta attenzione ai commenti nel codice seguente: ```js -const a = 4; // a è una variabile globale, può essere acceduta dalle funzioni seguenti - -function foo() { - let b = a * 3; // b non può essere acceduta fuori dalla funzione foo, ma può essere acceduta dalle funzioni - // definite all'interno di foo - function bar(c) { - let b = 2; // un'altra variabile `b` è creata all'interno dell'ambito della funzione bar - // i cambiamenti a questa nuova variabile `b` non hanno effetto sulla variabile `b` precedente - console.log( a, b, c ); +const a = 4 // a è una variabile globale, può essere acceduta dalle funzioni seguenti + +function foo () { + const b = a * 3 // b non può essere acceduta fuori dalla funzione foo, ma può essere acceduta dalle funzioni + // definite all'interno di foo + function bar (c) { + const b = 2 // un'altra variabile `b` è creata all'interno dell'ambito della funzione bar + // i cambiamenti a questa nuova variabile `b` non hanno effetto sulla variabile `b` precedente + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` IIFE, _Immediately Invoked Function Expression_ ovvero espressione di funzione invocata immediatamente, è un pattern comune per creare ambiti locali esempio: ```js -(function(){ // l'espressione di funzione è circondata da parentesi - // le variabili definite qui - // non possono essere accedute dall'esterno -})(); // la funzione è invocata immediatamente +(function () { // l'espressione di funzione è circondata da parentesi + // le variabili definite qui + // non possono essere accedute dall'esterno +})() // la funzione è invocata immediatamente ``` ## La sfida: @@ -37,30 +37,29 @@ Crea un file dal nome `scope.js`. In questo file, copia il codice seguente: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Usa la tua comprensione dell'`ambito` delle variabili e posiziona il codice seguente dentro una delle funzioni in `scope.js` in maniera tale che il risultato sia `a: 1, b: 8,c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` Verifica che il tuo programma sia corretto eseguendo questo comando: diff --git a/problems/scope/problem_ja.md b/problems/scope/problem_ja.md index 955f75d8..0667468a 100644 --- a/problems/scope/problem_ja.md +++ b/problems/scope/problem_ja.md @@ -10,31 +10,31 @@ JavaScriptには、二つのスコープがあります。グローバルとロ 次のソースコードのコメントを読んでください... ```js -const a = 4; // a はグローバル変数です。下の全ての関数から参照できます。 +const a = 4 // a はグローバル変数です。下の全ての関数から参照できます。 -function foo() { - let b = a * 3; // b は foo 関数の外からは参照できません。 foo 関数の中で定義した関数 bar からは参照できます。 +function foo () { + const b = a * 3 // b は foo 関数の外からは参照できません。 foo 関数の中で定義した関数 bar からは参照できます。 - function bar(c) { - let b = 2; // bar 関数の中でもう一つ b 変数を定義します - // 新しい b を変更しても、元の b 変数は変わりません。 - console.log( a, b, c ); + function bar (c) { + const b = 2 // bar 関数の中でもう一つ b 変数を定義します + // 新しい b を変更しても、元の b 変数は変わりません。 + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` 即時実行関数式 (Immediately Invoked Function Expression : IIFE) という共通パターンで、ローカルスコープを作れます。 例えば... ```js -(function(){ // 関数式をカッコで括ります - // 変数はここで定義します - // 関数の外からは参照できません -})(); // 関数を即座に実行します +(function () { // 関数式をカッコで括ります + // 変数はここで定義します + // 関数の外からは参照できません +})() // 関数を即座に実行します ``` ## やってみよう @@ -43,29 +43,28 @@ foo(); // 4, 2, 48 ファイルの中に、次のソースコードをコピーしましょう... ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` 変数のスコープを活用しましょう。次のコードを関数の中に配置してください。`scope.js` の中の関数です。 そして、目指す出力は `a: 1, b: 8,c: 6` です。 ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index b292455b..10797806 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -8,29 +8,29 @@ JavaScript에는 `전역`과 `지역` 두 개의 스코프가 있습니다. 함 아래 코드의 주석을 잘 읽어보세요. ```js -const a = 4; // 전연 변수 아래에 있는 함수에서 접근 가능 +const a = 4 // 전연 변수 아래에 있는 함수에서 접근 가능 -function foo() { - let b = a * 3; // b는 foo 함수 밖에서 접근할 수 없지만, foo 함수 안에서 +function foo () { + const b = a * 3 // b는 foo 함수 밖에서 접근할 수 없지만, foo 함수 안에서 - function bar(c) { - let b = 2; // bar 함수 스코프 안에서 생성한 다른 `b` 변수 - // 새로 만든 `b` 변수를 변경해도 오래된 `b` 변수에는 영향이 없음 - console.log( a, b, c ); + function bar (c) { + const b = 2 // bar 함수 스코프 안에서 생성한 다른 `b` 변수 + // 새로 만든 `b` 변수를 변경해도 오래된 `b` 변수에는 영향이 없음 + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` 즉시 실행하는 함수식(IIFE, Immediately Invoked Function Expression)은 지역 스코프를 만드는 일반적인 패턴입니다. 예제: ```js -(function(){ // 함수식은 괄호로 둘러 쌈 - // 변수 선언은 여기서 - // 밖에서 접근할 수 없음 -})(); // 함수는 즉시 실행됨 +(function () { // 함수식은 괄호로 둘러 쌈 + // 변수 선언은 여기서 + // 밖에서 접근할 수 없음 +})() // 함수는 즉시 실행됨 ``` ## 도전 과제: @@ -38,29 +38,28 @@ foo(); // 4, 2, 48 이 파일에 다음 코드를 복사합니다. ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` 변수의 `스코프`에 관한 지식을 활용해 다음 코드를 `scope.js` 안의 함수 안에 넣어 `a: 1, b: 8,c: 6`를 출력하게 하세요. ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/scope/problem_nb-no.md b/problems/scope/problem_nb-no.md index 21288a4e..9563246c 100644 --- a/problems/scope/problem_nb-no.md +++ b/problems/scope/problem_nb-no.md @@ -7,29 +7,29 @@ Funksjoner som er definert inni andre funksjoner, kjent som nøstede funksjoner, Følg nøye med på kommentarene i koden under: ```js -const a = 4; // a er en global variabel, den kan nås av funksjonene under - -function foo() { - let b = a * 3; // b kan ikke nås utenfor foo funksjonen, men kan nås av funksjoner - // definert inni foo - function bar(c) { - let b = 2; // enda en `b` variabel blir lagd i bar funksjonens scope - // endringer på den nye `b` variabelen endrer ikke den ytre `b` variabelen - console.log( a, b, c ); +const a = 4 // a er en global variabel, den kan nås av funksjonene under + +function foo () { + const b = a * 3 // b kan ikke nås utenfor foo funksjonen, men kan nås av funksjoner + // definert inni foo + function bar (c) { + const b = 2 // enda en `b` variabel blir lagd i bar funksjonens scope + // endringer på den nye `b` variabelen endrer ikke den ytre `b` variabelen + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` IIFE, Immediately Invoked Function Expression, er et pattern for å lage lokale scope eksempel: ```js -(function(){ // funksjonsuttrykket omgis av paranteser - // variabler defineres her - // kan ikke nås utenfor denne funksjonen -})(); // funksjonen kjøres med engang +(function () { // funksjonsuttrykket omgis av paranteser + // variabler defineres her + // kan ikke nås utenfor denne funksjonen +})() // funksjonen kjøres med engang ``` ## Oppgaven: @@ -37,29 +37,28 @@ Lag en fil som heter `scope.js`. Kopier inn følgende kode i den filen: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Bruk din kunnskap om variablenes `scope` og sett inn følgende kode i en av funksjonene som finnes i 'scope.js' slik at det skrives ut `a: 1, b: 8, c: 6` på skjermen: ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` Se om programmet ditt er riktig ved å kjøre kommandoen: diff --git a/problems/scope/problem_pt-br.md b/problems/scope/problem_pt-br.md index 30b7bbd0..56102077 100644 --- a/problems/scope/problem_pt-br.md +++ b/problems/scope/problem_pt-br.md @@ -7,30 +7,30 @@ Funções definidas dentro de outras funções, conhecidas como funções aninha Preste atenção nos comentários do código abaixo: ```js -const a = 4; // uma variável global, pode ser acessada pelas funções abaixo - -function foo() { - let b = a * 3; // b não pode ser acessada fora da função, mas pode ser acessada pelas funções - // definidas dentro da função foo - function bar(c) { - let b = 2; // uma outra variável `b` é criada dentro do escopo da função bar - // as mudanças dessa nova variável `b` não afeta a outra variável `b` - console.log( a, b, c ); +const a = 4 // uma variável global, pode ser acessada pelas funções abaixo + +function foo () { + const b = a * 3 // b não pode ser acessada fora da função, mas pode ser acessada pelas funções + // definidas dentro da função foo + function bar (c) { + const b = 2 // uma outra variável `b` é criada dentro do escopo da função bar + // as mudanças dessa nova variável `b` não afeta a outra variável `b` + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` IIFE, Immediately Invoked Function Expression (Expressão de Função Executada Imediatamente em tradução livre), é um padrão bastante usado para criar escopos locais. Exemplo: ```js -(function(){ // a expressão da função é cercada por parênteses - // as variáveis definidas aqui - // não podem ser acessadas do lado de fora -})(); // a função é executada imediatamente +(function () { // a expressão da função é cercada por parênteses + // as variáveis definidas aqui + // não podem ser acessadas do lado de fora +})() // a função é executada imediatamente ``` ## Desafio: @@ -38,30 +38,29 @@ Crie um arquivo chamado `scope.js`. Nesse arquivo, copie o seguinte código: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Utilize seus conhecimentos sobre `escopo` de variáveis e posicione o seguinte código dentro de uma das funções no 'scope.js' fazendo o resultado ser `a: 1, b: 8,c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` Verifique se o seu programa está correto executando o comando: diff --git a/problems/scope/problem_ru.md b/problems/scope/problem_ru.md index 6f02ee35..32a665e3 100644 --- a/problems/scope/problem_ru.md +++ b/problems/scope/problem_ru.md @@ -7,22 +7,22 @@ JavaScript обладает двумя областями видимости: ` Обратите внимание на комментарии к приведённому ниже коду: ```js -const a = 4; // это глобальная переменная, она доступна для функций ниже - -function foo() { - let b = a * 3; // к переменной `b` нет доступа снаружи функции `foo`, но к - // этой переменной имеют доступ функции, объявленные внутри `foo` - function bar(c) { - let b = 2; // ещё одна переменная `b` создана внутри области видимости - // функции `bar`, модификации этой новой переменной `b` никак не - // отразятся на объявленной выше переменной `b` - console.log( a, b, c ); +const a = 4 // это глобальная переменная, она доступна для функций ниже + +function foo () { + const b = a * 3 // к переменной `b` нет доступа снаружи функции `foo`, но к + // этой переменной имеют доступ функции, объявленные внутри `foo` + function bar (c) { + const b = 2 // ещё одна переменная `b` создана внутри области видимости + // функции `bar`, модификации этой новой переменной `b` никак не + // отразятся на объявленной выше переменной `b` + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` Непосредственно выполняемая функция-выражение (IIFE) -- распространённый паттерн создания локальной области видимости. @@ -30,10 +30,10 @@ foo(); // 4, 2, 48 Например: ```js -(function() { // объявление функции окружено круглыми скобками +(function () { // объявление функции окружено круглыми скобками // переменные, объявленные здесь, // не будут доступны снаружи -})(); // функция сразу же вызывается +})() // функция сразу же вызывается ``` ## Условия задачи @@ -43,30 +43,29 @@ foo(); // 4, 2, 48 Скопируйте в него следующий код: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Используя полученные знания об `областях видимости`, разместите приведённый ниже код внутри одной из функций, объявленных в `scope.js` так, чтобы на выходе получилось `a: 1, b: 8, c: 6`. ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: diff --git a/problems/scope/problem_uk.md b/problems/scope/problem_uk.md index 6744abcd..abf0075f 100644 --- a/problems/scope/problem_uk.md +++ b/problems/scope/problem_uk.md @@ -7,29 +7,29 @@ JavaScript має дві області видимості: `глобальну` Зверніть увагу на коментарі у цьому прикладі: ```js -const a = 4; // a є глобальною змінною, її значення можна отримати з функцій нижче - -function foo() { - let b = a * 3; // b не можу бути доступною поза функцією foo, але доступна у - // функціях, оголошених всередині foo - function bar(c) { - let b = 2; // інша змінна `b` створена всередині функції bar зміна значення - // цієї змінної `b` не вплине на попередню змінну `b` - console.log( a, b, c ); +const a = 4 // a є глобальною змінною, її значення можна отримати з функцій нижче + +function foo () { + const b = a * 3 // b не можу бути доступною поза функцією foo, але доступна у + // функціях, оголошених всередині foo + function bar (c) { + const b = 2 // інша змінна `b` створена всередині функції bar зміна значення + // цієї змінної `b` не вплине на попередню змінну `b` + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` Функції миттєвого (негайного) виклику, або «самовикликаючі» функцій (IIFE, Immediately Invoked Function Expression) є загальною практикою для створення локальних областей видимості Приклад: ```js -(function(){ // вираз функції оточений круглими дужками - // змінні оголошені тут - // не будуть доступними ззовні -})(); // функція відразу ж викликається +(function () { // вираз функції оточений круглими дужками + // змінні оголошені тут + // не будуть доступними ззовні +})() // функція відразу ж викликається ``` ## Завдання: @@ -37,29 +37,28 @@ foo(); // 4, 2, 48 До цього файлу скопіювати такий код: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` Використайте ваші знання про `область видимості` змінних та помістіть код нижче в таку функцію зі 'scope.js', щоб результат був рядок `a: 1, b: 8,c: 6`: ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` Перевірте вашу відповідь запустивши команду: diff --git a/problems/scope/problem_zh-cn.md b/problems/scope/problem_zh-cn.md index 302a4c53..020ddfba 100644 --- a/problems/scope/problem_zh-cn.md +++ b/problems/scope/problem_zh-cn.md @@ -7,29 +7,29 @@ JavaScript 有两种类型的作用域:`全局` 以及 `局部`。函数外声 注意下面的代码: ```js -const a = 4; // a is a global variable, it can be accesed by the functions below - -function foo() { - let b = a * 3; // b cannot be accesed outside foo function, but can be accesed by functions - // defined inside foo - function bar(c) { - let b = 2; // another `b` variable is created inside bar function scope - // the changes to this new `b` variable don't affect the old `b` variable - console.log( a, b, c ); +const a = 4 // a is a global variable, it can be accesed by the functions below + +function foo () { + const b = a * 3 // b cannot be accesed outside foo function, but can be accesed by functions + // defined inside foo + function bar (c) { + const b = 2 // another `b` variable is created inside bar function scope + // the changes to this new `b` variable don't affect the old `b` variable + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` 立即函式(IIFE, Immediately Invoked Function Expression)是用来创建局部作用域的常用方法。 例子: ```js -(function(){ // the function expression is surrounded by parenthesis - // variables defined here - // can't be accesed outside -})(); // the function is immediately invoked +(function () { // the function expression is surrounded by parenthesis + // variables defined here + // can't be accesed outside +})() // the function is immediately invoked ``` ## 挑战: @@ -37,27 +37,26 @@ foo(); // 4, 2, 48 在文件中复制粘贴下面的代码: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` 依你对 `作用域` 的理解,将下面这段代码插入上述代码里,使得代码的输出为 `a: 1, b: 8,c: 6`。 ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` diff --git a/problems/scope/problem_zh-tw.md b/problems/scope/problem_zh-tw.md index 12cade2e..4dd25a01 100644 --- a/problems/scope/problem_zh-tw.md +++ b/problems/scope/problem_zh-tw.md @@ -7,29 +7,29 @@ JavaScript 有兩種類型的作用域:`全域` 以及 `區域`。函式外宣 注意下面的程式碼: ```js -const a = 4; // a 是一個全域變數,它可以被下面的函式存取 +const a = 4 // a 是一個全域變數,它可以被下面的函式存取 -function foo() { - let b = a * 3; // b 不能夠在 foo 函式以外被存取,但是可以被定義於 foo 內部的其他函式存取 +function foo () { + const b = a * 3 // b 不能夠在 foo 函式以外被存取,但是可以被定義於 foo 內部的其他函式存取 - function bar(c) { - let b = 2; // 另一個新的 `b` 變數被建立在 bar 函式的作用域內 - // 對這個新的 `b` 變數的改變並不會影響到舊的 `b` 變數 - console.log( a, b, c ); + function bar (c) { + const b = 2 // 另一個新的 `b` 變數被建立在 bar 函式的作用域內 + // 對這個新的 `b` 變數的改變並不會影響到舊的 `b` 變數 + console.log(a, b, c) } - bar(b * 4); + bar(b * 4) } -foo(); // 4, 2, 48 +foo() // 4, 2, 48 ``` 立即函式(IIFE, Immediately Invoked Function Expression)是用來建立區域作用域的常用方法。 範例: ```js -(function(){ // 這個函式語法被一組小括號括起來 - // 在這裡定義的變數 - // 不能夠在這個函式外被存取 -})(); // 這個函式立即被執行 +(function () { // 這個函式語法被一組小括號括起來 + // 在這裡定義的變數 + // 不能夠在這個函式外被存取 +})() // 這個函式立即被執行 ``` ## 挑戰: @@ -37,27 +37,26 @@ foo(); // 4, 2, 48 在該檔案中複製貼上以下的程式碼: ```js -let a = 1, b = 2, c = 3; +const a = 1; const b = 2; const c = 3; -(function firstFunction(){ - let b = 5, c = 6; +(function firstFunction () { + const b = 5; const c = 6; - (function secondFunction(){ - let b = 8; + (function secondFunction () { + const b = 8; - (function thirdFunction(){ - let a = 7, c = 9; + (function thirdFunction () { + const a = 7; const c = 9; - (function fourthFunction(){ - let a = 1, c = 8; - - })(); - })(); - })(); -})(); + (function fourthFunction () { + const a = 1; const c = 8 + })() + })() + })() +})() ``` 依你對 `作用域` 的理解,將下面這段程式碼插入上述程式碼裡,使得程式碼的輸出為 `a: 1, b: 8,c: 6`。 ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`); +console.log(`a: ${a}, b: ${b}, c: ${c}`) ``` diff --git a/problems/string-length/index.js b/problems/string-length/index.js index 706d66c2..24dc941d 100644 --- a/problems/string-length/index.js +++ b/problems/string-length/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/string-length/problem.md b/problems/string-length/problem.md index 4fb4b8f5..71e071c8 100644 --- a/problems/string-length/problem.md +++ b/problems/string-length/problem.md @@ -3,7 +3,7 @@ You will often need to know how many characters are in a string. For this you will use the `.length` property. Here's an example: ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_es.md b/problems/string-length/problem_es.md index 0d5f3f10..1bc9e517 100644 --- a/problems/string-length/problem_es.md +++ b/problems/string-length/problem_es.md @@ -3,7 +3,7 @@ Muy seguido necesitarás saber cuantos caracteres hay en una string. Para esto, usarás la propiedad `.length`. Por ejemplo: ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_fr.md b/problems/string-length/problem_fr.md index 212d2cd4..c78407e6 100644 --- a/problems/string-length/problem_fr.md +++ b/problems/string-length/problem_fr.md @@ -3,7 +3,7 @@ Vous allez assez souvent avoir besoin de savoir combien de caractères sont cont Pour cela vous allez utiliser la propriété `.length`. Voici un exemple : ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_it.md b/problems/string-length/problem_it.md index 13e9f224..0bacfb2e 100644 --- a/problems/string-length/problem_it.md +++ b/problems/string-length/problem_it.md @@ -3,7 +3,7 @@ Avrai spesso bisogno di conoscere quanti caratteri vi siano in una stringa. A questo scopo userai la proprietà `.length`. Ecco un esempio: ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_ja.md b/problems/string-length/problem_ja.md index d176046d..531f07bc 100644 --- a/problems/string-length/problem_ja.md +++ b/problems/string-length/problem_ja.md @@ -3,7 +3,7 @@ そういう時は `.length` プロパティを使います。たとえば... ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_ko.md b/problems/string-length/problem_ko.md index 87afbcf4..313abfa6 100644 --- a/problems/string-length/problem_ko.md +++ b/problems/string-length/problem_ko.md @@ -3,7 +3,7 @@ 이는 `.length` 속성을 이용하면 알 수 있습니다. 다음 예제를 보세요. ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_nb-no.md b/problems/string-length/problem_nb-no.md index 40848e21..cd539fc3 100644 --- a/problems/string-length/problem_nb-no.md +++ b/problems/string-length/problem_nb-no.md @@ -3,7 +3,7 @@ Du har ofte behov for å vite hvor mange tegn det er i en streng. For å finne ut det kan du bruke `.length` egenskapen. Slik som dette: ```js -const example = 'eksempel streng'; +const example = 'eksempel streng' example.length ``` diff --git a/problems/string-length/problem_pt-br.md b/problems/string-length/problem_pt-br.md index e4a901e1..d4fa8585 100644 --- a/problems/string-length/problem_pt-br.md +++ b/problems/string-length/problem_pt-br.md @@ -3,8 +3,8 @@ Você irá frequentemente precisar saber quantos caracteres estão em uma string Para isso você usará a propriedade `.length` da string. Aqui está um exemplo: ```js -const example = 'example string'; -example.length; +const example = 'example string' +example.length ``` ## OBSERVAÇÕES diff --git a/problems/string-length/problem_ru.md b/problems/string-length/problem_ru.md index 44a932d2..41bbe2c1 100644 --- a/problems/string-length/problem_ru.md +++ b/problems/string-length/problem_ru.md @@ -3,8 +3,8 @@ Для этого мы будем использовать свойство `.length`. Например: ```js -const example = 'example string'; -example.length; +const example = 'example string' +example.length ``` ## НА ЗАМЕТКУ diff --git a/problems/string-length/problem_uk.md b/problems/string-length/problem_uk.md index 3102b0b9..e840404d 100644 --- a/problems/string-length/problem_uk.md +++ b/problems/string-length/problem_uk.md @@ -3,7 +3,7 @@ Для цього ви можете використати властивість `.length`. Ось приклад: ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_zh-cn.md b/problems/string-length/problem_zh-cn.md index fb09d040..e5c9299c 100644 --- a/problems/string-length/problem_zh-cn.md +++ b/problems/string-length/problem_zh-cn.md @@ -3,7 +3,7 @@ 你可以使用 `.length` 来得到它。下面是一个例子: ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/string-length/problem_zh-tw.md b/problems/string-length/problem_zh-tw.md index 4f825b50..906b4f59 100644 --- a/problems/string-length/problem_zh-tw.md +++ b/problems/string-length/problem_zh-tw.md @@ -3,7 +3,7 @@ 你可以使用 `.length` 來得到它。下面是一個例子: ```js -const example = 'example string'; +const example = 'example string' example.length ``` diff --git a/problems/strings/index.js b/problems/strings/index.js index 706d66c2..24dc941d 100644 --- a/problems/strings/index.js +++ b/problems/strings/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/strings/problem.md b/problems/strings/problem.md index e8645292..977c705c 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -7,7 +7,7 @@ String values are surrounded by either single or double quotation marks. ```js 'this is a string' -"this is also a string" +'this is also a string' ``` ## NOTE @@ -21,7 +21,7 @@ For this challenge, create a file named `strings.js`. In that file create a variable named `someString` like this: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` Use `console.log` to print the variable **someString** to the terminal. diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 0151fc98..3ae20218 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -5,7 +5,7 @@ Por ejemplo: ```js 'this is a string' -"this is also a string" +'this is also a string' ``` #NOTA @@ -18,7 +18,7 @@ Para este ejercicio, crea un archivo llamado `strings.js`. En ese archivo define una variable llamada `someString` de la siguiente forma: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` Utiliza `console.log` para imprimir la variable `someString` a la terminal. diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index 4a3558ac..a83ca343 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -5,7 +5,7 @@ Il peut s'agir de guillemets simples ou doubles : ```js 'this is a string' -"this is also a string" +'this is also a string' ``` ## NOTE @@ -19,7 +19,7 @@ Pour ce défi, créez un fichier nommé `chaines.js`. Dans ce fichier, créez une variable nommée `someString` comme cela : ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` Utilisez `console.log` pour afficher la variable **someString** dans le terminal. diff --git a/problems/strings/problem_it.md b/problems/strings/problem_it.md index 590fb102..023c3cf4 100644 --- a/problems/strings/problem_it.md +++ b/problems/strings/problem_it.md @@ -5,7 +5,7 @@ Sono ammessi sia apici singoli che doppi: ```js 'questa è una stringa' -"anche questa è una stringa" +'anche questa è una stringa' ``` ## NOTA @@ -19,7 +19,7 @@ Per risolvere questa sfida, crea un file dal nome `strings.js`. In questo file crea una variabile dal nome `someString` come segue: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` Usa `console.log` per stampare la variabile **someString** sul terminale. diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index 766b4a83..96829411 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -5,7 +5,7 @@ ```js 'this is a string' -"this is also a string" +'this is also a string' ``` どちらかの引用符を使うルールを決め、守りましょう。 このワークショップでは一重引用符だけを使います。 @@ -17,7 +17,7 @@ ファイルの中で、次のように変数 `someString` を作りましょう。 ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` `console.log` を使い、変数 **someString** をターミナルに表示しましょう。 diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index 883c9440..fca912a7 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -5,7 +5,7 @@ ```js 'this is a string' -"this is also a string" +'this is also a string' ``` ## 주의 @@ -19,7 +19,7 @@ 그 파일 안에서 `someString`이라는 변수를 만드세요. 이렇게 하면 됩니다. ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` `console.log`를 사용해 **someString** 변수를 터미널에 출력합니다. diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index 9c13e1db..b2f3457d 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -3,7 +3,7 @@ En **string** er en verdi omgitt av anførselsteng eller apostrof: ```js 'dette er en string' -"dette er også en string" +'dette er også en string' ``` #OBS @@ -16,7 +16,7 @@ I denne oppgaven, lage en fil med navnet `strings.js`. Lage en variabel `someString`, slik som dette: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` For å skrive variabelen **someString** til skjermen kan du bruke `console.log`. diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index 88634d84..82c6f9c5 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -5,7 +5,7 @@ Pode ser usado aspas simples ou aspas duplas: ```js 'this is a string' -"this is also a string" +'this is also a string' ``` # OBSERVAÇÃO @@ -18,7 +18,7 @@ Para este desafio, crie um arquivo chamado `strings.js`. No arquivo que foi criado, crie uma variável chamada `someString` da seguinte forma: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` Use o `console.log` para imprimir a variável **someString** para o terminal. diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md index 3022a642..5b0d213e 100644 --- a/problems/strings/problem_ru.md +++ b/problems/strings/problem_ru.md @@ -5,7 +5,7 @@ ```js 'this is a string' -"this is also a string" +'this is also a string' ``` ## НА ЗАМЕТКУ @@ -19,7 +19,7 @@ В этом файле объявите переменную `someString` таким образом: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` Воспользуйтесь командой `console.log()`, чтобы вывести значение переменной **someString** в консоль. diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index 6ab8b865..9de5a9e9 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -5,7 +5,7 @@ ```js 'this is a string' -"this is also a string" +'this is also a string' ``` # ЗАУВАЖЕННЯ @@ -18,7 +18,7 @@ У цьому файлі створіть змінну `someString` ось так: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` Використайте `console.log`, щоб вивести змінну **someString** до терміналу. diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index b2753459..81162314 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -5,7 +5,7 @@ ```js 'this is a string' -"this is also a string" +'this is also a string' ``` # 注 @@ -18,7 +18,7 @@ 在文件中像这样创建一个名为 `someString` 的变量: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` 使用 `console.log` 打印变量 **someString** 到终端。 diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md index 1660b53c..02d2ddcb 100644 --- a/problems/strings/problem_zh-tw.md +++ b/problems/strings/problem_zh-tw.md @@ -5,7 +5,7 @@ ```js 'this is a string' -"this is also a string" +'this is also a string' ``` # 注 @@ -18,7 +18,7 @@ 在該檔案中像這樣建立一個名為 `someString` 的變數: ```js -const someString = 'this is a string'; +const someString = 'this is a string' ``` 使用 `console.log` 印出變數 **someString** 到終端機上。 diff --git a/problems/this/index.js b/problems/this/index.js index 706d66c2..24dc941d 100644 --- a/problems/this/index.js +++ b/problems/this/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/variables/index.js b/problems/variables/index.js index 706d66c2..24dc941d 100644 --- a/problems/variables/index.js +++ b/problems/variables/index.js @@ -1 +1 @@ -module.exports = require("../../lib/problem")(__dirname) \ No newline at end of file +module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/variables/problem.md b/problems/variables/problem.md index 8247fe56..4225c822 100644 --- a/problems/variables/problem.md +++ b/problems/variables/problem.md @@ -3,7 +3,7 @@ A variable is a name that can reference a specific value. Variables are declared Here's an example: ```js -let example; +let example ``` The above variable is **declared**, but it isn't defined (it does not yet reference a specific value). @@ -11,7 +11,7 @@ The above variable is **declared**, but it isn't defined (it does not yet refere Here's an example of defining a variable, making it reference a specific value: ```js -let example = 'some string'; +const example = 'some string' ``` # NOTE diff --git a/problems/variables/problem_es.md b/problems/variables/problem_es.md index 4cedddae..9b5104b5 100644 --- a/problems/variables/problem_es.md +++ b/problems/variables/problem_es.md @@ -2,7 +2,7 @@ Una variable es una referencia a un valor. Define una variable usando la palabra Por ejemplo: ```js -let example; +let example ``` La variable anterior es **declarada**, pero no definida. @@ -10,7 +10,7 @@ La variable anterior es **declarada**, pero no definida. A continuación damos un ejemplo de cómo definir una variable, haciendo que referencie a un valor específico: ```js -let example = 'some string'; +const example = 'some string' ``` Nota que empieza con la palabra reserva `let` y usa el signo de igualdad entre en nombre de la variable y el valor que referencia. diff --git a/problems/variables/problem_fr.md b/problems/variables/problem_fr.md index 1e27b203..796f192e 100644 --- a/problems/variables/problem_fr.md +++ b/problems/variables/problem_fr.md @@ -3,7 +3,7 @@ Une variable est un nom qui fait référence à une valeur spécifique. Les vari Voici un exemple : ```js -let example; +let example ``` La variable ci-dessus est **déclarée**, mais elle n'est pas définie ( elle ne référence aucune valeur pour le moment ). @@ -11,7 +11,7 @@ La variable ci-dessus est **déclarée**, mais elle n'est pas définie ( elle Voici un exemple de définition de variable, la faisant contenir une valeur spécifique : ```js -let example = 'some string'; +const example = 'some string' ``` # NOTE diff --git a/problems/variables/problem_it.md b/problems/variables/problem_it.md index 63c21623..121a2e50 100644 --- a/problems/variables/problem_it.md +++ b/problems/variables/problem_it.md @@ -3,7 +3,7 @@ Una variabile è un nome che può fare riferimento a un valore specifico. Le var Ecco un esempio: ```js -let example; +let example ``` La variabile precedente è stata **dichiarata**, ma non è stata definita (non fa ancora riferimento a un valore specifico). @@ -11,7 +11,7 @@ La variabile precedente è stata **dichiarata**, ma non è stata definita (non f Ecco un esempio di definizione di una variabile, che le fa assumere un valore specifico: ```js -let example = 'some string'; +const example = 'some string' ``` # NOTA diff --git a/problems/variables/problem_ja.md b/problems/variables/problem_ja.md index eb521372..89b1f6e3 100644 --- a/problems/variables/problem_ja.md +++ b/problems/variables/problem_ja.md @@ -3,7 +3,7 @@ 例... ```js -let example; +let example ``` 上の例は変数を**宣言**しています。しかし、定義していません(この変数はまだなんの値も示しません)。 @@ -11,7 +11,7 @@ let example; 次の例は変数を定義します。定義した変数は特定の値を示します。 ```js -let example = 'some string'; +const example = 'some string' ``` `let` を使って**宣言**します。つづいて、等号を使い、変数が示す値を**定義**します。 diff --git a/problems/variables/problem_ko.md b/problems/variables/problem_ko.md index 3de61103..146b058c 100644 --- a/problems/variables/problem_ko.md +++ b/problems/variables/problem_ko.md @@ -3,7 +3,7 @@ 예제를 보세요. ```js -let example; +let example ``` 위 변수는 **선언**되었지만, 정의되지는 않았습니다.(아직 특정 값을 참조하지 않았습니다.) @@ -11,7 +11,7 @@ let example; 특정 값을 참조하게 만든, 변수를 정의하는 예제입니다. ```js -let example = 'some string'; +const example = 'some string' ``` # 주의 diff --git a/problems/variables/problem_nb-no.md b/problems/variables/problem_nb-no.md index 0bcddaf1..ffe17a1a 100644 --- a/problems/variables/problem_nb-no.md +++ b/problems/variables/problem_nb-no.md @@ -3,7 +3,7 @@ En variabel er et navn som kan peke til en spesifikk verdi. Variables deklareres Her er et eksempel: ```js -let example; +let example ``` Variabelen over er **deklarert**, men den er ikke definert (den peker ikke til en spesifikk verdi ennå). @@ -11,7 +11,7 @@ Variabelen over er **deklarert**, men den er ikke definert (den peker ikke til e Her er et eksempel som definerer en variabel, ved å peke til en spesifikk verdi: ```js -let example = 'some string'; +const example = 'some string' ``` # OBS diff --git a/problems/variables/problem_pt-br.md b/problems/variables/problem_pt-br.md index 3d4d0a87..9fbbddc7 100644 --- a/problems/variables/problem_pt-br.md +++ b/problems/variables/problem_pt-br.md @@ -3,7 +3,7 @@ Uma variável é o nome que pode fazer referência a um valor específico. Vari Aqui está um exemplo: ```js -let example; +let example ``` A variável acima foi **declarada**, mas ainda não foi definida (ou seja, ainda não faz referência á um valor específico). @@ -11,7 +11,7 @@ A variável acima foi **declarada**, mas ainda não foi definida (ou seja, ainda Aqui está um exemplo de como definir uma variável, fazendo ela referenciar um valor específico: ```js -let example = 'some string'; +const example = 'some string' ``` # OBSERVAÇÃO diff --git a/problems/variables/problem_ru.md b/problems/variables/problem_ru.md index 320987ed..ba59ea26 100644 --- a/problems/variables/problem_ru.md +++ b/problems/variables/problem_ru.md @@ -3,7 +3,7 @@ Например: ```js -let example; +let example ``` Переменная выше **объявлена**, но не задана (ей не присвоено какое-либо конкретное значение). @@ -11,7 +11,7 @@ let example; Ниже дан пример объявления переменной с заданным значением: ```js -let example = 'some string'; +const example = 'some string' ``` ## НА ЗАМЕТКУ diff --git a/problems/variables/problem_uk.md b/problems/variables/problem_uk.md index 7f52d54b..5cc3ade0 100644 --- a/problems/variables/problem_uk.md +++ b/problems/variables/problem_uk.md @@ -3,7 +3,7 @@ Приклад оголошення змінної: ```js -let example; +let example ``` У прикладі вище, змінна **оголошена (declared)**, проте не була визначеною (defined) (тобто вона поки не посилається на конкретне значення). @@ -11,7 +11,7 @@ let example; Ось приклад визначення змінних, посилання на певне значення: ```js -let example = 'some string'; +const example = 'some string' ``` # ЗАУВАЖЕННЯ diff --git a/problems/variables/problem_zh-cn.md b/problems/variables/problem_zh-cn.md index d655faad..1223096f 100644 --- a/problems/variables/problem_zh-cn.md +++ b/problems/variables/problem_zh-cn.md @@ -3,7 +3,7 @@ 下面是一个例子: ```js -let example; +let example ``` 这个例子里的变量被**声明**,但是没有被定义(也就是说,它目前还没有引用一个值)。 @@ -12,7 +12,7 @@ let example; ```js -let example = 'some string'; +const example = 'some string' ``` # 注 diff --git a/problems/variables/problem_zh-tw.md b/problems/variables/problem_zh-tw.md index 0310ede5..1adc4b13 100644 --- a/problems/variables/problem_zh-tw.md +++ b/problems/variables/problem_zh-tw.md @@ -3,7 +3,7 @@ 下面是一個例子: ```js -let example; +let example ``` 這個例子裡的變數被**宣告**,但是沒有被定義(也就是說,它目前還沒有引用一個值)。 @@ -12,7 +12,7 @@ let example; ```js -let example = 'some string'; +const example = 'some string' ``` # 注 diff --git a/solutions/accessing-array-values/index.js b/solutions/accessing-array-values/index.js index cf78843f..eadb700e 100644 --- a/solutions/accessing-array-values/index.js +++ b/solutions/accessing-array-values/index.js @@ -1,3 +1,3 @@ -const food = ['apple', 'pizza', 'pear']; +const food = ['apple', 'pizza', 'pear'] -console.log(food[1]); +console.log(food[1]) diff --git a/solutions/array-filtering/index.js b/solutions/array-filtering/index.js index d28443f1..81697601 100644 --- a/solutions/array-filtering/index.js +++ b/solutions/array-filtering/index.js @@ -1,7 +1,7 @@ -const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] const filtered = numbers.filter(function (number) { - return (number % 2) === 0; -}); + return (number % 2) === 0 +}) -console.log(filtered); +console.log(filtered) diff --git a/solutions/arrays/index.js b/solutions/arrays/index.js index c973e181..ca4817f2 100644 --- a/solutions/arrays/index.js +++ b/solutions/arrays/index.js @@ -1,2 +1,2 @@ -const pizzaToppings = ['tomato sauce', 'cheese', 'pepperoni']; -console.log(pizzaToppings); \ No newline at end of file +const pizzaToppings = ['tomato sauce', 'cheese', 'pepperoni'] +console.log(pizzaToppings) diff --git a/solutions/for-loop/index.js b/solutions/for-loop/index.js index 6359c9aa..d3d7b7bc 100644 --- a/solutions/for-loop/index.js +++ b/solutions/for-loop/index.js @@ -1,8 +1,8 @@ -let total = 0; -const limit = 10; +let total = 0 +const limit = 10 for (let i = 0; i < limit; i++) { - total += i; + total += i } console.log(total) diff --git a/solutions/function-arguments/index.js b/solutions/function-arguments/index.js index 8601d86d..226d8916 100644 --- a/solutions/function-arguments/index.js +++ b/solutions/function-arguments/index.js @@ -1,5 +1,5 @@ -function math(a, b, c) { - return (b * c) + a; +function math (a, b, c) { + return (b * c) + a } -console.log(math(53, 61, 67)); \ No newline at end of file +console.log(math(53, 61, 67)) diff --git a/solutions/functions/index.js b/solutions/functions/index.js index 13021984..e3737432 100644 --- a/solutions/functions/index.js +++ b/solutions/functions/index.js @@ -1,5 +1,5 @@ function eat (food) { - return food + ' tasted really good.'; + return food + ' tasted really good.' } -console.log(eat('bananas')); \ No newline at end of file +console.log(eat('bananas')) diff --git a/solutions/if-statement/index.js b/solutions/if-statement/index.js index 34cc6ba8..94fdd1cd 100644 --- a/solutions/if-statement/index.js +++ b/solutions/if-statement/index.js @@ -1,6 +1,6 @@ -const fruit = 'orange'; +const fruit = 'orange' if (fruit.length > 5) { - console.log('The fruit name has more than five characters.'); + console.log('The fruit name has more than five characters.') } else { - console.log('The fruit name has five characters or less.'); + console.log('The fruit name has five characters or less.') } diff --git a/solutions/introduction/index.js b/solutions/introduction/index.js index e921523b..371fdfb1 100644 --- a/solutions/introduction/index.js +++ b/solutions/introduction/index.js @@ -1 +1 @@ -console.log('hello'); +console.log('hello') diff --git a/solutions/looping-through-arrays/index.js b/solutions/looping-through-arrays/index.js index 3fe58fd4..6089e11f 100644 --- a/solutions/looping-through-arrays/index.js +++ b/solutions/looping-through-arrays/index.js @@ -1,7 +1,7 @@ -const pets = ['cat', 'dog', 'rat']; +const pets = ['cat', 'dog', 'rat'] -for (let i=0; i Date: Thu, 12 Sep 2019 10:16:07 +0900 Subject: [PATCH 275/346] misc: Update package-lock.json --- package-lock.json | 1648 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1643 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6a6ee1bc..14dd5361 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,26 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, "@hapi/address": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz", @@ -43,11 +63,41 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "acorn": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.0.0.tgz", + "integrity": "sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==", + "dev": true + }, + "acorn-jsx": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", + "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", + "dev": true + }, "after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -66,11 +116,36 @@ "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" }, + "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" + } + }, + "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" + } + }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -85,6 +160,12 @@ "concat-map": "0.0.1" } }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", @@ -116,11 +197,32 @@ "supports-color": "^5.3.0" } }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "charm_inheritance-fix": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=" }, + "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 + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -177,6 +279,12 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -190,11 +298,76 @@ "capture-stack-trace": "^1.0.0" } }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "dev": true + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, + "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" + } + }, + "deglob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-4.0.1.tgz", + "integrity": "sha512-/g+RDZ7yf2HvoW+E5Cy+K94YhgcFgr6C8LuHZD1O5HoNPkf3KY6RfXJ0DBGlB/NkLi5gml+G9zqRzk9S0mHZCg==", + "dev": true, + "requires": { + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^5.0.0", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" + }, + "dependencies": { + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -205,6 +378,15 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==" }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "duplexer2": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", @@ -241,21 +423,403 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "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.14.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", + "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", + "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.0.0", + "string.prototype.trimright": "^2.0.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" + } + }, "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": "6.3.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.3.0.tgz", + "integrity": "sha512-ZvZTKaqDue+N8Y9g0kp6UPZtS4FSY3qARxBs7p4f0H0iof381XHduqVerFWtK8DPtKmemqbqCFENWSQgPR/Gow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.2", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.4.1", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + } + } + }, + "eslint-config-standard": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz", + "integrity": "sha512-EF6XkrrGVbvv8hL/kYa/m6vnvmUT+K82pJJc4JJVMM6+Qgqh0pnwprSxdduDLB9p/7bIxD+YV5O0wfb8lmcPbA==", + "dev": true + }, + "eslint-config-standard-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-8.1.0.tgz", + "integrity": "sha512-ULVC8qH8qCqbU792ZOO6DaiaZyHNS/5CZt3hKqHkEhVlhPEPN3nfBqqxJCyp59XrjIBZPu1chMYe9T2DXZ7TMw==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz", + "integrity": "sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ==", + "dev": true, + "requires": { + "eslint-utils": "^1.4.2", + "regexpp": "^3.0.0" + }, + "dependencies": { + "regexpp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", + "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", + "dev": true + } + } + }, + "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": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", + "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", + "dev": true, + "requires": { + "eslint-plugin-es": "^2.0.0", + "eslint-utils": "^1.4.2", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", + "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.1.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.10.1" + }, + "dependencies": { + "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" + } + } + } + }, + "eslint-plugin-standard": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz", + "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==", + "dev": true + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", + "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.0.0" + } + }, + "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": "6.1.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz", + "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-jsx": "^5.0.2", + "eslint-visitor-keys": "^1.1.0" + } + }, "esprima": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" }, + "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==", + "dev": true + }, "explicit": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", @@ -309,11 +873,119 @@ } } }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "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 + }, + "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": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "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 + }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -332,6 +1004,21 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", + "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "dev": true, + "requires": { + "is-glob": "^4.0.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 + }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -350,6 +1037,21 @@ "url-parse-lax": "^1.0.0" } }, + "graceful-fs": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "dev": true + }, + "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", @@ -370,6 +1072,18 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "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 + }, + "hosted-git-info": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", + "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", + "dev": true + }, "i18n-core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", @@ -5032,6 +5746,37 @@ } } }, + "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": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "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", @@ -5051,11 +5796,103 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "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-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "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-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-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": "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-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-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "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-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", @@ -5066,11 +5903,78 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "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" + } + }, "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 + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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" + }, + "dependencies": { + "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 + } + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "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 + }, + "jsx-ast-utils": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", + "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" + } + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -5079,6 +5983,53 @@ "package-json": "^4.0.0" } }, + "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==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -5089,6 +6040,12 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" }, + "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", @@ -5117,6 +6074,12 @@ } } }, + "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 + }, "msee": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", @@ -5138,6 +6101,24 @@ "xtend": "^4.0.0" } }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": 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 + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "nopt": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", @@ -5147,6 +6128,84 @@ "osenv": "^0.1.4" } }, + "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" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-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.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz", + "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.11.0", + "function-bind": "^1.1.1", + "has": "^1.0.1" + } + }, + "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", @@ -5155,6 +6214,29 @@ "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", @@ -5174,6 +6256,30 @@ "os-tmpdir": "^1.0.0" } }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -5185,11 +6291,172 @@ "semver": "^5.1.0" } }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.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" + } + }, + "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-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "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-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "pkg-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", + "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", + "dev": true, + "requires": { + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "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" + } + }, + "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 + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", @@ -5200,6 +6467,12 @@ "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 + }, "promise": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", @@ -5208,6 +6481,23 @@ "asap": "~2.0.6" } }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -5219,6 +6509,33 @@ "strip-json-comments": "~2.0.1" } }, + "react-is": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz", + "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==", + "dev": 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", @@ -5248,6 +6565,12 @@ "esprima": "~3.0.0" } }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", @@ -5270,6 +6593,31 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": 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" + } + }, "resumer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", @@ -5286,16 +6634,67 @@ "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.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" }, + "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==" }, + "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 + }, "simple-terminal-menu": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", @@ -5344,6 +6743,49 @@ } } }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "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": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -5352,6 +6794,41 @@ "through": "2" } }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "standard": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-14.2.0.tgz", + "integrity": "sha512-qVXM+iVRBJn7f9HhlH4MxioeCzevLSyMqVLTb48MXcwEtQwjhXKg4MVlWLfQtHxaNACRbtmr5l4D4/Ao1oNgYA==", + "dev": true, + "requires": { + "eslint": "~6.3.0", + "eslint-config-standard": "14.1.0", + "eslint-config-standard-jsx": "8.1.0", + "eslint-plugin-import": "~2.18.0", + "eslint-plugin-node": "~10.0.0", + "eslint-plugin-promise": "~4.2.1", + "eslint-plugin-react": "~7.14.2", + "eslint-plugin-standard": "~4.0.0", + "standard-engine": "^12.0.0" + } + }, + "standard-engine": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-12.0.0.tgz", + "integrity": "sha512-gJIIRb0LpL7AHyGbN9+hJ4UJns37lxmNTnMGRLC8CFrzQ+oB/K60IQjKNgPBCB2VP60Ypm6f8DFXvhVWdBOO+g==", + "dev": true, + "requires": { + "deglob": "^4.0.0", + "get-stdin": "^7.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^3.1.0" + } + }, "string-to-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz", @@ -5361,6 +6838,36 @@ "readable-stream": "^2.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" + } + }, + "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", @@ -5384,6 +6891,12 @@ "ansi-regex": "^3.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", @@ -5397,6 +6910,46 @@ "has-flag": "^3.0.0" } }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "table-header": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", @@ -5429,11 +6982,56 @@ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, + "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" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -5447,6 +7045,22 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "varsize-string": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", @@ -5466,6 +7080,21 @@ "wcsize": "^1.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 + }, "workshopper-adventure": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.0.4.tgz", @@ -5501,6 +7130,15 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", From 8df01753bb52e97d669ad0c6f2fa60c20857dd65 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 12 Sep 2019 10:23:45 +0900 Subject: [PATCH 276/346] Revert single quotes in sample code that contain double quotes in the strings exercise back to double quotes --- problems/strings/problem.md | 2 +- problems/strings/problem_es.md | 2 +- problems/strings/problem_fr.md | 2 +- problems/strings/problem_it.md | 2 +- problems/strings/problem_ja.md | 2 +- problems/strings/problem_ko.md | 2 +- problems/strings/problem_nb-no.md | 2 +- problems/strings/problem_pt-br.md | 2 +- problems/strings/problem_ru.md | 2 +- problems/strings/problem_uk.md | 2 +- problems/strings/problem_zh-cn.md | 2 +- problems/strings/problem_zh-tw.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/problems/strings/problem.md b/problems/strings/problem.md index 977c705c..0853de18 100644 --- a/problems/strings/problem.md +++ b/problems/strings/problem.md @@ -7,7 +7,7 @@ String values are surrounded by either single or double quotation marks. ```js 'this is a string' -'this is also a string' +"this is also a string" ``` ## NOTE diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 3ae20218..4147d471 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -5,7 +5,7 @@ Por ejemplo: ```js 'this is a string' -'this is also a string' +"this is also a string" ``` #NOTA diff --git a/problems/strings/problem_fr.md b/problems/strings/problem_fr.md index a83ca343..4ba81bbc 100644 --- a/problems/strings/problem_fr.md +++ b/problems/strings/problem_fr.md @@ -5,7 +5,7 @@ Il peut s'agir de guillemets simples ou doubles : ```js 'this is a string' -'this is also a string' +"this is also a string" ``` ## NOTE diff --git a/problems/strings/problem_it.md b/problems/strings/problem_it.md index 023c3cf4..85879457 100644 --- a/problems/strings/problem_it.md +++ b/problems/strings/problem_it.md @@ -5,7 +5,7 @@ Sono ammessi sia apici singoli che doppi: ```js 'questa è una stringa' -'anche questa è una stringa' +"anche questa è una stringa" ``` ## NOTA diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index 96829411..d237df91 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -5,7 +5,7 @@ ```js 'this is a string' -'this is also a string' +"this is also a string" ``` どちらかの引用符を使うルールを決め、守りましょう。 このワークショップでは一重引用符だけを使います。 diff --git a/problems/strings/problem_ko.md b/problems/strings/problem_ko.md index fca912a7..c506851d 100644 --- a/problems/strings/problem_ko.md +++ b/problems/strings/problem_ko.md @@ -5,7 +5,7 @@ ```js 'this is a string' -'this is also a string' +"this is also a string" ``` ## 주의 diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index b2f3457d..25a65731 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -3,7 +3,7 @@ En **string** er en verdi omgitt av anførselsteng eller apostrof: ```js 'dette er en string' -'dette er også en string' +"dette er også en string" ``` #OBS diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index 82c6f9c5..459372b9 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -5,7 +5,7 @@ Pode ser usado aspas simples ou aspas duplas: ```js 'this is a string' -'this is also a string' +"this is also a string" ``` # OBSERVAÇÃO diff --git a/problems/strings/problem_ru.md b/problems/strings/problem_ru.md index 5b0d213e..c00aca28 100644 --- a/problems/strings/problem_ru.md +++ b/problems/strings/problem_ru.md @@ -5,7 +5,7 @@ ```js 'this is a string' -'this is also a string' +"this is also a string" ``` ## НА ЗАМЕТКУ diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index 9de5a9e9..d7ecb876 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -5,7 +5,7 @@ ```js 'this is a string' -'this is also a string' +"this is also a string" ``` # ЗАУВАЖЕННЯ diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index 81162314..91070a6f 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -5,7 +5,7 @@ ```js 'this is a string' -'this is also a string' +"this is also a string" ``` # 注 diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md index 02d2ddcb..4ff967f8 100644 --- a/problems/strings/problem_zh-tw.md +++ b/problems/strings/problem_zh-tw.md @@ -5,7 +5,7 @@ ```js 'this is a string' -'this is also a string' +"this is also a string" ``` # 注 From 55b3925f28f435060ccdac5d6cbaec2546e8edac Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 12 Sep 2019 10:26:55 +0900 Subject: [PATCH 277/346] misc: Unify headline style --- problems/strings/problem_es.md | 3 ++- problems/strings/problem_ja.md | 2 ++ problems/strings/problem_nb-no.md | 3 ++- problems/strings/problem_pt-br.md | 3 ++- problems/strings/problem_uk.md | 3 ++- problems/strings/problem_zh-cn.md | 3 ++- problems/strings/problem_zh-tw.md | 3 ++- 7 files changed, 14 insertions(+), 6 deletions(-) diff --git a/problems/strings/problem_es.md b/problems/strings/problem_es.md index 4147d471..e28af53e 100644 --- a/problems/strings/problem_es.md +++ b/problems/strings/problem_es.md @@ -7,7 +7,8 @@ Por ejemplo: "this is also a string" ``` -#NOTA + +## NOTA Trata de permanecer consistente. En este workshop usaremos comillas simples. diff --git a/problems/strings/problem_ja.md b/problems/strings/problem_ja.md index d237df91..7ca378de 100644 --- a/problems/strings/problem_ja.md +++ b/problems/strings/problem_ja.md @@ -8,6 +8,8 @@ "this is also a string" ``` +## 注意 + どちらかの引用符を使うルールを決め、守りましょう。 このワークショップでは一重引用符だけを使います。 ## やってみよう diff --git a/problems/strings/problem_nb-no.md b/problems/strings/problem_nb-no.md index 25a65731..a72f0380 100644 --- a/problems/strings/problem_nb-no.md +++ b/problems/strings/problem_nb-no.md @@ -5,7 +5,8 @@ En **string** er en verdi omgitt av anførselsteng eller apostrof: "dette er også en string" ``` -#OBS + +## OBS Det lønner seg å være konsekvent på om du bruker anførselstegn eller apostrof. I denne oppgaven skal vi bare bruke apostrof. diff --git a/problems/strings/problem_pt-br.md b/problems/strings/problem_pt-br.md index 459372b9..a7919a1a 100644 --- a/problems/strings/problem_pt-br.md +++ b/problems/strings/problem_pt-br.md @@ -7,7 +7,8 @@ Pode ser usado aspas simples ou aspas duplas: "this is also a string" ``` -# OBSERVAÇÃO + +## OBSERVAÇÃO Tente ser consistente. Neste workshop usaremos apenas aspas simples. diff --git a/problems/strings/problem_uk.md b/problems/strings/problem_uk.md index d7ecb876..d4013448 100644 --- a/problems/strings/problem_uk.md +++ b/problems/strings/problem_uk.md @@ -7,7 +7,8 @@ "this is also a string" ``` -# ЗАУВАЖЕННЯ + +## ЗАУВАЖЕННЯ Спробуйте залишаться послідовними. У цьому воркшопі ми будемо використовувати лише одинарні лапки. diff --git a/problems/strings/problem_zh-cn.md b/problems/strings/problem_zh-cn.md index 91070a6f..d02a133d 100644 --- a/problems/strings/problem_zh-cn.md +++ b/problems/strings/problem_zh-cn.md @@ -7,7 +7,8 @@ "this is also a string" ``` -# 注 + +## 注 为了保持一致的风格,本教程中我们将只使用单引号。 diff --git a/problems/strings/problem_zh-tw.md b/problems/strings/problem_zh-tw.md index 4ff967f8..2a27e7eb 100644 --- a/problems/strings/problem_zh-tw.md +++ b/problems/strings/problem_zh-tw.md @@ -7,7 +7,8 @@ "this is also a string" ``` -# 注 + +## 注 為了保持一致的風格,本教學中我們將只使用單引號。 From 79787dc75817a2b2067a7186a04f3318b8e73f41 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 12 Sep 2019 10:33:38 +0900 Subject: [PATCH 278/346] If not translated, the English version is displayed by default --- problems/object-keys/problem_fr.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_ja.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_ko.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_nb-no.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_pt-br.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_ru.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_uk.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_zh-cn.md | 45 +++++++++++++++++++++++++-- problems/object-keys/problem_zh-tw.md | 45 +++++++++++++++++++++++++-- 9 files changed, 378 insertions(+), 27 deletions(-) diff --git a/problems/object-keys/problem_fr.md b/problems/object-keys/problem_fr.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_fr.md +++ b/problems/object-keys/problem_fr.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_ja.md b/problems/object-keys/problem_ja.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_ja.md +++ b/problems/object-keys/problem_ja.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_ko.md b/problems/object-keys/problem_ko.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_ko.md +++ b/problems/object-keys/problem_ko.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_nb-no.md b/problems/object-keys/problem_nb-no.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_nb-no.md +++ b/problems/object-keys/problem_nb-no.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_pt-br.md b/problems/object-keys/problem_pt-br.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_pt-br.md +++ b/problems/object-keys/problem_pt-br.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_ru.md b/problems/object-keys/problem_ru.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_ru.md +++ b/problems/object-keys/problem_ru.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_uk.md b/problems/object-keys/problem_uk.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_uk.md +++ b/problems/object-keys/problem_uk.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_zh-cn.md b/problems/object-keys/problem_zh-cn.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_zh-cn.md +++ b/problems/object-keys/problem_zh-cn.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/problem_zh-tw.md b/problems/object-keys/problem_zh-tw.md index 09d67ae1..1b07c63f 100644 --- a/problems/object-keys/problem_zh-tw.md +++ b/problems/object-keys/problem_zh-tw.md @@ -1,5 +1,44 @@ ---- +JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. -# +Here's an example of listing all object keys using the **Object.keys()** +prototype method. ---- +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` + +## The challenge: + +Create a file named `object-keys.js`. + +In that file, define a variable named `car` like this: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Then define another variable named `keys` like this: +```js +const keys = Object.keys(car) +``` + +Use `console.log()` to print the `keys` variable to the terminal. + +Check to see if your program is correct by running this command: + +```bash +javascripting verify object-keys.js +``` From 934e8df696864d6590e851b8c5050c3d1b3d4154 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 12 Sep 2019 10:38:03 +0900 Subject: [PATCH 279/346] If not translated, the English version is displayed by default --- problems/object-keys/solution_fr.md | 8 +++++++- problems/object-keys/solution_ja.md | 8 +++++++- problems/object-keys/solution_ko.md | 8 +++++++- problems/object-keys/solution_nb-no.md | 8 +++++++- problems/object-keys/solution_pt-br.md | 8 +++++++- problems/object-keys/solution_ru.md | 8 +++++++- problems/object-keys/solution_uk.md | 8 +++++++- problems/object-keys/solution_zh-cn.md | 8 +++++++- problems/object-keys/solution_zh-tw.md | 8 +++++++- 9 files changed, 63 insertions(+), 9 deletions(-) diff --git a/problems/object-keys/solution_fr.md b/problems/object-keys/solution_fr.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_fr.md +++ b/problems/object-keys/solution_fr.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_ja.md b/problems/object-keys/solution_ja.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_ja.md +++ b/problems/object-keys/solution_ja.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_ko.md b/problems/object-keys/solution_ko.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_ko.md +++ b/problems/object-keys/solution_ko.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_nb-no.md b/problems/object-keys/solution_nb-no.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_nb-no.md +++ b/problems/object-keys/solution_nb-no.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_pt-br.md b/problems/object-keys/solution_pt-br.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_pt-br.md +++ b/problems/object-keys/solution_pt-br.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_ru.md b/problems/object-keys/solution_ru.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_ru.md +++ b/problems/object-keys/solution_ru.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_uk.md b/problems/object-keys/solution_uk.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_uk.md +++ b/problems/object-keys/solution_uk.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_zh-cn.md b/problems/object-keys/solution_zh-cn.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_zh-cn.md +++ b/problems/object-keys/solution_zh-cn.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- diff --git a/problems/object-keys/solution_zh-tw.md b/problems/object-keys/solution_zh-tw.md index 09d67ae1..0f3540ea 100644 --- a/problems/object-keys/solution_zh-tw.md +++ b/problems/object-keys/solution_zh-tw.md @@ -1,5 +1,11 @@ --- -# +# CORRECT. + +Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. + +The next challenge is all about **functions**. + +Run `javascripting` in the console to choose the next challenge. --- From 22bf4833f1c7bb9363791a6fbceee3886e45b171 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 11 Sep 2019 20:24:58 -0700 Subject: [PATCH 280/346] Update package-lock.json --- package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14dd5361..e6cc15b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,9 +25,9 @@ } }, "@hapi/address": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz", - "integrity": "sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.1.tgz", + "integrity": "sha512-DYuHzu978pP1XW1GD3HGvLnAFjbQTIgc2+V153FGkbS2pgo9haigCdwBnUDrbhaOkgiJlbZvoEqDrcxSLHpiWA==" }, "@hapi/bourne": { "version": "1.3.2", @@ -35,9 +35,9 @@ "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" }, "@hapi/hoek": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.2.1.tgz", - "integrity": "sha512-JPiBy+oSmsq3St7XlipfN5pNA6bDJ1kpa73PrK/zR29CVClDVqy04AanM/M/qx5bSF+I61DdCfAvRrujau+zRg==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.2.4.tgz", + "integrity": "sha512-Ze5SDNt325yZvNO7s5C4fXDscjJ6dcqLFXJQ/M7dZRQCewuDj2iDUuBi6jLQt+APbW9RjjVEvLr35FXuOEqjow==" }, "@hapi/joi": { "version": "15.1.1", @@ -5894,9 +5894,9 @@ } }, "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" }, "is-stream": { "version": "1.1.0", From 0af3b8f575092eae3444bdff9440f12b9d09a125 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 11 Sep 2019 20:33:05 -0700 Subject: [PATCH 281/346] Fix remaining StandardJS errors --- lib/compare-solution.js | 2 ++ lib/get-file.js | 1 - lib/problem.js | 2 ++ lib/run-solution.js | 18 ++++++------------ package.json | 1 - solutions/scope/index.js | 2 ++ 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/compare-solution.js b/lib/compare-solution.js index 6a7dad0f..f850b766 100644 --- a/lib/compare-solution.js +++ b/lib/compare-solution.js @@ -1,3 +1,5 @@ +/* eslint-disable standard/no-callback-literal */ + require('colors') var path = require('path') diff --git a/lib/get-file.js b/lib/get-file.js index 02dde51c..b5da99d1 100644 --- a/lib/get-file.js +++ b/lib/get-file.js @@ -1,5 +1,4 @@ var fs = require('fs') -var path = require('path') module.exports = function (filepath) { return fs.readFileSync(filepath, 'utf8') diff --git a/lib/problem.js b/lib/problem.js index 76a97b17..dc011192 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -1,3 +1,5 @@ +/* eslint-disable standard/no-callback-literal */ + var path = require('path') var getFile = require('./get-file') var compare = require('./compare-solution') diff --git a/lib/run-solution.js b/lib/run-solution.js index 73d56e0f..2b48ab61 100644 --- a/lib/run-solution.js +++ b/lib/run-solution.js @@ -1,24 +1,18 @@ var fs = require('fs') -var path = require('path') -var docs = path.join(__dirname, 'docs') var exec = require('child_process').exec -if (typeof Promise === 'undefined') { - var Promise = require('promise') -} - /** * @param {!string} filePath * @return {Promise} */ function exists (filePath) { - return new Promise(function (res, rej) { + return new Promise(function (resolve, reject) { fs.stat(filePath, function (err, d) { if (err) { - res(false) + resolve(false) } - res(true) + resolve(true) }) }) } @@ -28,13 +22,13 @@ function exists (filePath) { * @return {Promise} */ function executeSolution (filePath) { - return new Promise(function (res, rej) { + return new Promise(function (resolve, reject) { exec('node "' + filePath + '"', function (err, stdout, stderr) { if (err) { - return rej(err) + return reject(err) } - return res(stdout) + return resolve(stdout) }) }) } diff --git a/package.json b/package.json index 2e7c141d..bec8f476 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "preferGlobal": true, "dependencies": { "colors": "^1.3.3", - "promise": "^8.0.3", "diff": "^4.0.1", "workshopper-adventure": "^6.0.4" }, diff --git a/solutions/scope/index.js b/solutions/scope/index.js index 99d7ae39..41e450f2 100644 --- a/solutions/scope/index.js +++ b/solutions/scope/index.js @@ -1,3 +1,5 @@ +/* eslint-disable no-unused-vars */ + const a = 1; const b = 2; const c = 3; (function firstFunction () { From 7f5b62f7332a334dce80250ce013b8286f51f216 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 11 Sep 2019 20:43:39 -0700 Subject: [PATCH 282/346] 2.7.0 --- 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 e6cc15b6..450fc371 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "javascripting", - "version": "2.6.3", + "version": "2.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bec8f476..576eed8b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.6.3", + "version": "2.7.0", "repository": { "url": "https://github.com/workshopper/javascripting" }, From 1026e523a12ae4a4910415f4f1754f2bfc6f0ac3 Mon Sep 17 00:00:00 2001 From: Ivan Smollet Date: Sat, 14 Sep 2019 17:39:44 +0300 Subject: [PATCH 283/346] Add RU translation of OBJECT KEYS --- i18n/ru.json | 1 + problems/object-keys/problem_ru.md | 17 ++++++++--------- problems/object-keys/solution_ru.md | 8 ++++---- problems/object-properties/solution_ru.md | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/i18n/ru.json b/i18n/ru.json index 8f0f8a8e..ac4b11a0 100644 --- a/i18n/ru.json +++ b/i18n/ru.json @@ -16,6 +16,7 @@ , "LOOPING THROUGH ARRAYS": "ОБХОД МАССИВА В ЦИКЛЕ" , "OBJECTS": "ОБЪЕКТЫ" , "OBJECT PROPERTIES": "СВОЙСТВА ОБЪЕКТОВ" + , "OBJECT KEYS": "КЛЮЧИ ОБЪЕКТОВ" , "FUNCTIONS": "ФУНКЦИИ" , "FUNCTION ARGUMENTS": "АРГУМЕНТЫ ФУНКЦИЙ" , "SCOPE": "ОБЛАСТЬ ВИДИМОСТИ" diff --git a/problems/object-keys/problem_ru.md b/problems/object-keys/problem_ru.md index 1b07c63f..f7dbce67 100644 --- a/problems/object-keys/problem_ru.md +++ b/problems/object-keys/problem_ru.md @@ -1,7 +1,6 @@ -JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. +JavaScript предоставляет собственный способ перечисления всех доступных ключей объекта. Это может быть полезно для перебора всех свойств объекта и соответственно манипулирования их значениями. -Here's an example of listing all object keys using the **Object.keys()** -prototype method. +Вот пример перечисления всех ключей объекта с использованием метода-прототипа **Object.keys()**. ```js const car = { @@ -14,13 +13,13 @@ const keys = Object.keys(car) console.log(keys) ``` -The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` +Код выше выведет массив строк, где каждая строка - ключ в объекте "авто". `['make', 'model', 'year']` ## The challenge: -Create a file named `object-keys.js`. +Создайте файл с именем `object-keys.js`. -In that file, define a variable named `car` like this: +В этом файле объявите переменную с именем `car` вот так: ```js const car = { @@ -30,14 +29,14 @@ const car = { } ``` -Then define another variable named `keys` like this: +Затем объявите другую переменную с именем `keys` вот так: ```js const keys = Object.keys(car) ``` -Use `console.log()` to print the `keys` variable to the terminal. +Используйте `console.log()` для вывода переменной `keys` в терминал. -Check to see if your program is correct by running this command: +Проверьте, правильна ли ваша программа, выполнив эту команду: ```bash javascripting verify object-keys.js diff --git a/problems/object-keys/solution_ru.md b/problems/object-keys/solution_ru.md index 0f3540ea..98a93de3 100644 --- a/problems/object-keys/solution_ru.md +++ b/problems/object-keys/solution_ru.md @@ -1,11 +1,11 @@ --- -# CORRECT. +# ВЕРНО. -Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. +Хорошая работа с использованием метода-прототипа Object.keys(). Не забывайте использовать его, когда вам нужно перечислить ключи объекта. -The next challenge is all about **functions**. +В следующем упражнении всё о **функциях**. -Run `javascripting` in the console to choose the next challenge. +Запустите `javascripting` в консоли и выберите следующую задачу. --- diff --git a/problems/object-properties/solution_ru.md b/problems/object-properties/solution_ru.md index 541a0149..16bc7968 100644 --- a/problems/object-properties/solution_ru.md +++ b/problems/object-properties/solution_ru.md @@ -4,7 +4,7 @@ Отличная работа по доступу к свойству объекта. -В следующем упражнении всё о **функциях**. +В следующем упражнении всё о **ключах объекта**. Запустите `javascripting` в консоли и выберите следующую задачу. From 216b5bc301ffea1d6fa505bfb9355b861a402826 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Sat, 14 Sep 2019 13:52:58 -0700 Subject: [PATCH 284/346] 2.7.1 --- 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 450fc371..46a80b67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "javascripting", - "version": "2.7.0", + "version": "2.7.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 576eed8b..db2a0807 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.7.0", + "version": "2.7.1", "repository": { "url": "https://github.com/workshopper/javascripting" }, From cefdb2b963bf1fe04823a35b2acdf5bb89db2a5f Mon Sep 17 00:00:00 2001 From: Ivan Smollet Date: Mon, 16 Sep 2019 13:56:27 +0300 Subject: [PATCH 285/346] Add UK translation of OBJECT KEYS --- i18n/uk.json | 3 ++- problems/object-keys/problem_uk.md | 17 ++++++++--------- problems/object-keys/solution_uk.md | 8 ++++---- problems/object-properties/solution_uk.md | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/i18n/uk.json b/i18n/uk.json index 598e0915..8c375848 100644 --- a/i18n/uk.json +++ b/i18n/uk.json @@ -1,4 +1,4 @@ -{ +{ "exercise": { "INTRODUCTION": "ВСТУП" , "VARIABLES": "ЗМІННІ" @@ -16,6 +16,7 @@ , "LOOPING THROUGH ARRAYS": "ПРОХІД ПО МАСИВАХ" , "OBJECTS": "ОБ'ЄКТИ" , "OBJECT PROPERTIES": "ВЛАСТИВОСТІ ОБ'ЄКТІВ" + , "OBJECT KEYS": "КЛЮЧІ ОБ'ЄКТІВ" , "FUNCTIONS": "ФУНКЦІЇ" , "FUNCTION ARGUMENTS": "АРГУМЕНТИ ФУНКЦІЙ" , "SCOPE": "ОБЛАСТЬ ВИДИМОСТІ" diff --git a/problems/object-keys/problem_uk.md b/problems/object-keys/problem_uk.md index 1b07c63f..a17c56cb 100644 --- a/problems/object-keys/problem_uk.md +++ b/problems/object-keys/problem_uk.md @@ -1,7 +1,6 @@ -JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. +JavaScript забезпечує власний спосіб перерахування всіх доступних ключів об'єкта. Це може бути корисно для перегляду всіх властивостей об'єкта та відповідного маніпулювання їх значеннями. -Here's an example of listing all object keys using the **Object.keys()** -prototype method. +Ось приклад перерахування всіх ключів об'єкта за допомогою методу-прототипу **Object.keys()**. ```js const car = { @@ -14,13 +13,13 @@ const keys = Object.keys(car) console.log(keys) ``` -The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` +Вищевказаний код надрукує масив рядків, де кожен рядок є ключем в об'єкті "авто". `['make', 'model', 'year']` ## The challenge: -Create a file named `object-keys.js`. +Створіть файл з назвою `object-keys.js`. -In that file, define a variable named `car` like this: +У цьому файлі задайте змінну з назвою `car` ось так: ```js const car = { @@ -30,14 +29,14 @@ const car = { } ``` -Then define another variable named `keys` like this: +Потім задайте змінну з назвою `keys` ось так: ```js const keys = Object.keys(car) ``` -Use `console.log()` to print the `keys` variable to the terminal. +Використовуйте `console.log()` для друку змінної `keys` до терміналу. -Check to see if your program is correct by running this command: +Перевірте, чи правильно працює ваша програма, виконавши цю команду: ```bash javascripting verify object-keys.js diff --git a/problems/object-keys/solution_uk.md b/problems/object-keys/solution_uk.md index 0f3540ea..87da95ba 100644 --- a/problems/object-keys/solution_uk.md +++ b/problems/object-keys/solution_uk.md @@ -1,11 +1,11 @@ --- -# CORRECT. +# ВІРНО. -Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. +Гарна робота з використанням методу прототипу Object.keys(). Не забувайте використовувати його, коли вам потрібно перелічити ключі об’єкта. -The next challenge is all about **functions**. +Наступне завдання буде виключно про **функції**. -Run `javascripting` in the console to choose the next challenge. +Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. --- diff --git a/problems/object-properties/solution_uk.md b/problems/object-properties/solution_uk.md index 08cc2ca0..097ae460 100644 --- a/problems/object-properties/solution_uk.md +++ b/problems/object-properties/solution_uk.md @@ -4,7 +4,7 @@ Гарна робота з доступом до властивостей. -Наступне завдання буде виключно про **функції**. +Наступне завдання буде виключно про **ключі об'єкта**. Запустіть 'javascripting' в консолі, щоб обрати наступне завдання. From 2df500722088d07b2f3f40a05359355634d61983 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Mon, 16 Sep 2019 15:11:35 -0700 Subject: [PATCH 286/346] 2.7.2 --- 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 46a80b67..d7c66e98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "javascripting", - "version": "2.7.1", + "version": "2.7.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index db2a0807..eaa6e261 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.7.1", + "version": "2.7.2", "repository": { "url": "https://github.com/workshopper/javascripting" }, From 902861419f6b36b9babc482d029db02c4b2ef877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Fri, 27 Sep 2019 12:50:33 -0500 Subject: [PATCH 287/346] add new challenge template --- .../ISSUE_TEMPLATE/new-challenge-proposal.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/new-challenge-proposal.md diff --git a/.github/ISSUE_TEMPLATE/new-challenge-proposal.md b/.github/ISSUE_TEMPLATE/new-challenge-proposal.md new file mode 100644 index 00000000..4ae86591 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/new-challenge-proposal.md @@ -0,0 +1,29 @@ +**Title** + + + +**Goal** + + +** Problem ** + + + +TODO From 253664c830341943acc82f86514a32f5e76f6172 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Tue, 1 Oct 2019 23:39:11 +0900 Subject: [PATCH 288/346] misc: Fix issue template format --- .github/ISSUE_TEMPLATE/new-challenge-proposal.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/new-challenge-proposal.md b/.github/ISSUE_TEMPLATE/new-challenge-proposal.md index 4ae86591..45faaaa1 100644 --- a/.github/ISSUE_TEMPLATE/new-challenge-proposal.md +++ b/.github/ISSUE_TEMPLATE/new-challenge-proposal.md @@ -1,3 +1,9 @@ +--- +name: New Challenge Proposal +about: Propose a new challenge for learning JavaScript + +--- + **Title** From 7fc25468a18b889633cddfe4f0a4a2bdb97a64e0 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Tue, 1 Oct 2019 23:47:11 +0900 Subject: [PATCH 289/346] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 32 +++++++++++++++++++ .../ISSUE_TEMPLATE/new-challenge-proposal.md | 3 ++ 2 files changed, 35 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..81b3a260 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Execution environment (please complete the following information):** + - OS: [e.g. iOS] + - Version [e.g. 2.7.2] + - Node Version [e.g. v12.10.0] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/new-challenge-proposal.md b/.github/ISSUE_TEMPLATE/new-challenge-proposal.md index 45faaaa1..645b99bf 100644 --- a/.github/ISSUE_TEMPLATE/new-challenge-proposal.md +++ b/.github/ISSUE_TEMPLATE/new-challenge-proposal.md @@ -1,6 +1,9 @@ --- name: New Challenge Proposal about: Propose a new challenge for learning JavaScript +title: '' +labels: '' +assignees: '' --- From 469230448dfd69f140461833296c464683db521f Mon Sep 17 00:00:00 2001 From: WerikG Date: Thu, 10 Oct 2019 21:13:16 -0300 Subject: [PATCH 290/346] Add PT-BR translation of OBJECT-KEYS --- problems/object-keys/problem_pt-br.md | 19 +++++++++---------- problems/object-keys/solution_pt-br.md | 8 ++++---- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/problems/object-keys/problem_pt-br.md b/problems/object-keys/problem_pt-br.md index 1b07c63f..b1362a4c 100644 --- a/problems/object-keys/problem_pt-br.md +++ b/problems/object-keys/problem_pt-br.md @@ -1,7 +1,6 @@ -JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. +JavaScript nos fornece uma maneira nativa de listar todas as _chaves_ (_keys_) disponiveis de um objeto. Isso pode ser util para iterar em todas as propriedades de um objeto e manipular seus valores. -Here's an example of listing all object keys using the **Object.keys()** -prototype method. +Vejamos um exemplo de como podemos listar todas as chaves de um objeto utilizando o método Object.keys(): ```js const car = { @@ -14,13 +13,13 @@ const keys = Object.keys(car) console.log(keys) ``` -The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` +O código acima imprime um array de _strings_, onde cada _string_ é uma _chave_ (_key_) do objeto `car`. `['make', 'model', 'year']` -## The challenge: +## Desafio: -Create a file named `object-keys.js`. +Crie um arquivo chamado `object-keys.js`. -In that file, define a variable named `car` like this: +Dentro desse arquivo, defina uma variavel chamada `car`: ```js const car = { @@ -30,14 +29,14 @@ const car = { } ``` -Then define another variable named `keys` like this: +Então defina outra variavel chamada `keys`: ```js const keys = Object.keys(car) ``` -Use `console.log()` to print the `keys` variable to the terminal. +Utilize `console.log()` para imprimir a variavel `keys` no terminal. -Check to see if your program is correct by running this command: +Verifique se seu programa está correto executando este comando: ```bash javascripting verify object-keys.js diff --git a/problems/object-keys/solution_pt-br.md b/problems/object-keys/solution_pt-br.md index 0f3540ea..52b56ae2 100644 --- a/problems/object-keys/solution_pt-br.md +++ b/problems/object-keys/solution_pt-br.md @@ -1,11 +1,11 @@ --- -# CORRECT. +# CORRETO. -Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. +Bom trabalho utilizando o método Object.keys(). Lembre-se de utilizar ele quando você precisar listas as propriedades de um objeto. -The next challenge is all about **functions**. +O próximo desafio será sobre **functions**. -Run `javascripting` in the console to choose the next challenge. +Execute `javascripting` no console para escolher o próximo desafio. --- From be4b23213c4063b9014a537fdf579f44c7fd1e6d Mon Sep 17 00:00:00 2001 From: WerikG Date: Thu, 10 Oct 2019 21:19:52 -0300 Subject: [PATCH 291/346] Add PT-BR translation of OBJECT-KEYS --- i18n/pt-br.json | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/pt-br.json b/i18n/pt-br.json index 2d219e00..a1a08fd4 100644 --- a/i18n/pt-br.json +++ b/i18n/pt-br.json @@ -16,6 +16,7 @@ , "LOOPING THROUGH ARRAYS": "VARRENDO ARRAYS COM LOOP" , "OBJECTS": "OBJETOS" , "OBJECT PROPERTIES": "PROPRIEDADES DE OBJETOS" + , "OBJECT KEYS": "CHAVES DE OBJETOS" , "FUNCTIONS": "FUNÇÕES" , "FUNCTION ARGUMENTS": "ARGUMENTOS DE FUNÇÕES" , "SCOPE": "ESCOPO" From 1171620aa10a069191b37cbe1a4afd8405b1045a Mon Sep 17 00:00:00 2001 From: WerikG Date: Fri, 11 Oct 2019 00:33:51 -0300 Subject: [PATCH 292/346] Fix portuguese confusing translation problem --- problems/if-statement/problem_pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/if-statement/problem_pt-br.md b/problems/if-statement/problem_pt-br.md index 494e3896..5f391931 100644 --- a/problems/if-statement/problem_pt-br.md +++ b/problems/if-statement/problem_pt-br.md @@ -20,7 +20,7 @@ Crie uma arquivo chamado `if-statement.js`. No arquivo criado, declare uma variável chamada `fruit`. -Faça a variável `fruit` referenciar o valor **orange** com o tipo **String**. +Faça a variável `fruit` referenciar a cadeia de caracteres **orange**. Depois use o `console.log()` para imprimir "**The fruit name has more than five characters."** se o tamanho do valor da variável `fruit` é maior do que cinco. Caso contrário, imprima "**The fruit name has five characters or less.**" From e5a68984eb18fbe938151a6de0afb5cdd6318561 Mon Sep 17 00:00:00 2001 From: Peterson JEAN Date: Tue, 15 Oct 2019 10:39:38 -0400 Subject: [PATCH 293/346] Adds french translation for object-keys exercise workshopper#267 * Adds translation of OBJECT KEYS in i18n/fr.json * Adds translation of problems/object-keys/problem.md in problems/object-keys/problem_fr.md * Adds translation of problems/object-keys/solution.md in problems/object-keys/solution_fr.md --- i18n/fr.json | 1 + problems/object-keys/problem_fr.md | 17 ++++++++--------- problems/object-keys/solution_fr.md | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/i18n/fr.json b/i18n/fr.json index 1efd5f1b..7b73febe 100644 --- a/i18n/fr.json +++ b/i18n/fr.json @@ -16,6 +16,7 @@ , "LOOPING THROUGH ARRAYS": "ITÉRER SUR UN TABLEAU" , "OBJECTS": "OBJETS" , "OBJECT PROPERTIES": "PROPRIÉTÉS D'OBJETS" + , "OBJECT KEYS": "CLÉS D'OBJETS" , "FUNCTIONS": "FONCTIONS" , "FUNCTION ARGUMENTS": "ARGUMENTS DE FONCTIONS" , "SCOPE": "SCOPE" diff --git a/problems/object-keys/problem_fr.md b/problems/object-keys/problem_fr.md index 1b07c63f..b0ce8563 100644 --- a/problems/object-keys/problem_fr.md +++ b/problems/object-keys/problem_fr.md @@ -1,7 +1,6 @@ -JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. +JavaScript fournit un moyen natif de lister toutes les clés disponibles d'un objet. Ceci peut être utile pour parcourir en boucle toutes les propriétés d'un objet et manipuler leurs valeurs en conséquence. -Here's an example of listing all object keys using the **Object.keys()** -prototype method. +Voici un exemple de liste de toutes les clés d'objets utilisant la méthode prototype **Object.keys()**. ```js const car = { @@ -14,13 +13,13 @@ const keys = Object.keys(car) console.log(keys) ``` -The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` +Le code ci-dessus imprimera un tableau de _strings_, où chaque _string_ est une _clé_ (_key_) dans l'objet `car`. `['make', 'model', 'year']` ## The challenge: -Create a file named `object-keys.js`. +Créez un fichier nommé `object-keys.js`. -In that file, define a variable named `car` like this: +Dans ce fichier, définissez une variable nommée `car` comme ceci: ```js const car = { @@ -30,14 +29,14 @@ const car = { } ``` -Then define another variable named `keys` like this: +Définissez ensuite une autre variable nommée `keys` comme ceci: ```js const keys = Object.keys(car) ``` -Use `console.log()` to print the `keys` variable to the terminal. +Utilisez `console.log()` pour imprimer la variable `keys` sur le terminal. -Check to see if your program is correct by running this command: +Vérifiez si votre programme est correct en exécutant cette commande: ```bash javascripting verify object-keys.js diff --git a/problems/object-keys/solution_fr.md b/problems/object-keys/solution_fr.md index 0f3540ea..3eb423b0 100644 --- a/problems/object-keys/solution_fr.md +++ b/problems/object-keys/solution_fr.md @@ -2,10 +2,10 @@ # CORRECT. -Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. +Bon travail avec la méthode du prototype Object.keys(). N'oubliez pas de l'utiliser lorsque vous devez lister les clés d'un objet. -The next challenge is all about **functions**. +Le prochain défi portera sur les **functions**. -Run `javascripting` in the console to choose the next challenge. +Exécutez `javascripting` dans la console pour choisir le prochain défi. --- From e20873dabfb8d95916ef5f2dcea330ac6ccd798c Mon Sep 17 00:00:00 2001 From: sethvincent Date: Tue, 15 Oct 2019 16:01:20 -0700 Subject: [PATCH 294/346] 2.7.3 --- 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 d7c66e98..745a64c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "javascripting", - "version": "2.7.2", + "version": "2.7.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index eaa6e261..faa914e8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.7.2", + "version": "2.7.3", "repository": { "url": "https://github.com/workshopper/javascripting" }, From c8a6835200793bd45c65ab2b4f6ca877681756d1 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Sat, 2 Nov 2019 17:22:28 +0900 Subject: [PATCH 295/346] refactor: Remove unnecessary function calls --- index.js | 10 ++++++---- problems/accessing-array-values/index.js | 1 - problems/array-filtering/index.js | 1 - problems/arrays/index.js | 1 - problems/for-loop/index.js | 1 - problems/function-arguments/index.js | 1 - problems/function-return-values/index.js | 1 - problems/functions/index.js | 1 - problems/if-statement/index.js | 1 - problems/introduction/index.js | 1 - problems/looping-through-arrays/index.js | 1 - problems/number-to-string/index.js | 1 - problems/numbers/index.js | 1 - problems/object-keys/index.js | 1 - problems/object-properties/index.js | 1 - problems/objects/index.js | 1 - problems/revising-strings/index.js | 1 - problems/rounding-numbers/index.js | 1 - problems/scope/index.js | 1 - problems/string-length/index.js | 1 - problems/strings/index.js | 1 - problems/this/index.js | 1 - problems/variables/index.js | 1 - 23 files changed, 6 insertions(+), 26 deletions(-) delete mode 100644 problems/accessing-array-values/index.js delete mode 100644 problems/array-filtering/index.js delete mode 100644 problems/arrays/index.js delete mode 100644 problems/for-loop/index.js delete mode 100644 problems/function-arguments/index.js delete mode 100644 problems/function-return-values/index.js delete mode 100644 problems/functions/index.js delete mode 100644 problems/if-statement/index.js delete mode 100644 problems/introduction/index.js delete mode 100644 problems/looping-through-arrays/index.js delete mode 100644 problems/number-to-string/index.js delete mode 100644 problems/numbers/index.js delete mode 100644 problems/object-keys/index.js delete mode 100644 problems/object-properties/index.js delete mode 100644 problems/objects/index.js delete mode 100644 problems/revising-strings/index.js delete mode 100644 problems/rounding-numbers/index.js delete mode 100644 problems/scope/index.js delete mode 100644 problems/string-length/index.js delete mode 100644 problems/strings/index.js delete mode 100644 problems/this/index.js delete mode 100644 problems/variables/index.js diff --git a/index.js b/index.js index 2ae3db48..28fdeeb7 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,5 @@ +const problem = require('./lib/problem') + var jsing = require('workshopper-adventure')({ appDir: __dirname, languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru', 'fr'], @@ -5,13 +7,13 @@ var jsing = require('workshopper-adventure')({ footer: require('./lib/footer.js') }) -jsing.addAll(require('./menu.json').map(function (problem) { +jsing.addAll(require('./menu.json').map(function (name) { return { - name: problem, + name, fn: function () { - var p = problem.toLowerCase().replace(/\s/g, '-') + var p = name.toLowerCase().replace(/\s/g, '-') var dir = require('path').join(__dirname, 'problems', p) - return require(dir) + return problem(dir) } } })) diff --git a/problems/accessing-array-values/index.js b/problems/accessing-array-values/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/accessing-array-values/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/array-filtering/index.js b/problems/array-filtering/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/array-filtering/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/arrays/index.js b/problems/arrays/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/arrays/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/for-loop/index.js b/problems/for-loop/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/for-loop/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/function-arguments/index.js b/problems/function-arguments/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/function-arguments/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/function-return-values/index.js b/problems/function-return-values/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/function-return-values/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/functions/index.js b/problems/functions/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/functions/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/if-statement/index.js b/problems/if-statement/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/if-statement/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/introduction/index.js b/problems/introduction/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/introduction/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/looping-through-arrays/index.js b/problems/looping-through-arrays/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/looping-through-arrays/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/number-to-string/index.js b/problems/number-to-string/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/number-to-string/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/numbers/index.js b/problems/numbers/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/numbers/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/object-keys/index.js b/problems/object-keys/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/object-keys/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/object-properties/index.js b/problems/object-properties/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/object-properties/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/objects/index.js b/problems/objects/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/objects/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/revising-strings/index.js b/problems/revising-strings/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/revising-strings/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/rounding-numbers/index.js b/problems/rounding-numbers/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/rounding-numbers/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/scope/index.js b/problems/scope/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/scope/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/string-length/index.js b/problems/string-length/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/string-length/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/strings/index.js b/problems/strings/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/strings/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/this/index.js b/problems/this/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/this/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) diff --git a/problems/variables/index.js b/problems/variables/index.js deleted file mode 100644 index 24dc941d..00000000 --- a/problems/variables/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../lib/problem')(__dirname) From b23664a19a45cd8a85c408546fc725ca686c7619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Wed, 6 Nov 2019 08:41:46 -0500 Subject: [PATCH 296/346] docs: remove todos from README fix #282 --- README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/README.md b/README.md index c4752fc2..c9c8fd3a 100644 --- a/README.md +++ b/README.md @@ -62,13 +62,6 @@ Include the name `javascripting` and the name of the challenge you're working on Code contributions welcome! Please check our [documentation on contributing](https://github.com/workshopper/javascripting/blob/master/CONTRIBUTING.md) to get started. -## TODOS: - -Add these challenges: - -- "FUNCTION RETURN VALUES" -- "THIS" - ## License MIT From 99549531d82352059582a19364e81a836f93a226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Mon, 2 Dec 2019 16:01:15 -0500 Subject: [PATCH 297/346] chore: add travis config --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..474f7403 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - 10 + - lts/* + - node From 1600b73c843b363d3af22165db5f876003116179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9?= Date: Mon, 20 Jan 2020 21:23:37 +0000 Subject: [PATCH 298/346] Missing semicolon --- problems/scope/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index e9d88c81..be42b55a 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -52,7 +52,7 @@ const a = 1; const b = 2; const c = 3; const a = 7; const c = 9; (function fourthFunction () { - const a = 1; const c = 8 + const a = 1; const c = 8; })() })() })() From 810f4811c81c634c8178b7e1543d4ac505b15531 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Wed, 5 Feb 2020 12:54:25 +0900 Subject: [PATCH 299/346] Fix strings solution Creating variables in problems and not using variables in solutions is confusing. --- solutions/strings/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/solutions/strings/index.js b/solutions/strings/index.js index e78048ca..5ae2503e 100644 --- a/solutions/strings/index.js +++ b/solutions/strings/index.js @@ -1 +1,2 @@ -console.log('this is a string') +const someString = 'this is a string' +console.log(someString) From 0f9559efae4082268c6e784bc0deec502b4d49c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2020 04:15:11 +0000 Subject: [PATCH 300/346] Bump acorn from 3.3.0 to 7.1.1 Bumps [acorn](https://github.com/acornjs/acorn) from 3.3.0 to 7.1.1. - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/3.3.0...7.1.1) Signed-off-by: dependabot[bot] --- package-lock.json | 37 ++++--------------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 745a64c3..465e414c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,9 +64,9 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.0.0.tgz", - "integrity": "sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", "dev": true }, "acorn-jsx": { @@ -135,11 +135,6 @@ "es-abstract": "^1.7.0" } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -1101,11 +1096,6 @@ "through": ">=2.2.7 <3" } }, - "acorn": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" - }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -2185,24 +2175,13 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", "requires": { - "acorn": "^5.0.1", "acorn-jsx": "^3.0.0" }, "dependencies": { "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "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=" - } - } + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=" } } }, @@ -6473,14 +6452,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", - "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==", - "requires": { - "asap": "~2.0.6" - } - }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", From 287f5c86036422c2a4327ad3819b3870230c34b5 Mon Sep 17 00:00:00 2001 From: "i.kosumi" Date: Sat, 21 Mar 2020 19:04:18 +0100 Subject: [PATCH 301/346] Fixes missing semicolon for scope exercie This fixes #2485 Problem with `scope` exercise when using backticks: https://github.com/nodeschool/discussions/issues/2485 --- problems/scope/problem.md | 2 +- problems/scope/problem_es.md | 2 +- problems/scope/problem_fr.md | 2 +- problems/scope/problem_it.md | 2 +- problems/scope/problem_ja.md | 2 +- problems/scope/problem_ko.md | 2 +- problems/scope/problem_nb-no.md | 2 +- problems/scope/problem_pt-br.md | 2 +- problems/scope/problem_ru.md | 2 +- problems/scope/problem_uk.md | 2 +- problems/scope/problem_zh-cn.md | 2 +- problems/scope/problem_zh-tw.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index be42b55a..21ab3bc3 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -62,7 +62,7 @@ const a = 1; const b = 2; const c = 3; Use your knowledge of the variables' `scope` and place the following code inside one of the functions in `scope.js` so the output is `a: 1, b: 8, c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Check to see if your program is correct by running this command: diff --git a/problems/scope/problem_es.md b/problems/scope/problem_es.md index ecea29ab..a380f778 100644 --- a/problems/scope/problem_es.md +++ b/problems/scope/problem_es.md @@ -59,5 +59,5 @@ const a = 1; const b = 2; const c = 3; Usa tu conocimiento sobre el ámbito de las variables y ubica el siguiente código dentro de alguna de las funciones en `scope.js` para que la salida sea `a: 1, b: 8, c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` diff --git a/problems/scope/problem_fr.md b/problems/scope/problem_fr.md index 7ca44f91..e6e0f298 100644 --- a/problems/scope/problem_fr.md +++ b/problems/scope/problem_fr.md @@ -61,7 +61,7 @@ const a = 1; const b = 2; const c = 3; Utilisez vos connaissances des `scopes` de variables et placez le code suivant à l'intérieur d'une fonction de `scope.js` afin d'obtenir la sortie `a: 1, b: 8, c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Vérifiez si votre programme est correct en exécutant la commande : diff --git a/problems/scope/problem_it.md b/problems/scope/problem_it.md index 36694788..17c8c103 100644 --- a/problems/scope/problem_it.md +++ b/problems/scope/problem_it.md @@ -59,7 +59,7 @@ const a = 1; const b = 2; const c = 3; Usa la tua comprensione dell'`ambito` delle variabili e posiziona il codice seguente dentro una delle funzioni in `scope.js` in maniera tale che il risultato sia `a: 1, b: 8,c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Verifica che il tuo programma sia corretto eseguendo questo comando: diff --git a/problems/scope/problem_ja.md b/problems/scope/problem_ja.md index 0667468a..d3523c53 100644 --- a/problems/scope/problem_ja.md +++ b/problems/scope/problem_ja.md @@ -66,5 +66,5 @@ const a = 1; const b = 2; const c = 3; そして、目指す出力は `a: 1, b: 8,c: 6` です。 ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` diff --git a/problems/scope/problem_ko.md b/problems/scope/problem_ko.md index 10797806..a53e2bdc 100644 --- a/problems/scope/problem_ko.md +++ b/problems/scope/problem_ko.md @@ -59,7 +59,7 @@ const a = 1; const b = 2; const c = 3; 변수의 `스코프`에 관한 지식을 활용해 다음 코드를 `scope.js` 안의 함수 안에 넣어 `a: 1, b: 8,c: 6`를 출력하게 하세요. ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` 이 명령어를 실행해 프로그램이 올바른지 확인하세요. diff --git a/problems/scope/problem_nb-no.md b/problems/scope/problem_nb-no.md index 9563246c..c7bf2645 100644 --- a/problems/scope/problem_nb-no.md +++ b/problems/scope/problem_nb-no.md @@ -58,7 +58,7 @@ const a = 1; const b = 2; const c = 3; Bruk din kunnskap om variablenes `scope` og sett inn følgende kode i en av funksjonene som finnes i 'scope.js' slik at det skrives ut `a: 1, b: 8, c: 6` på skjermen: ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Se om programmet ditt er riktig ved å kjøre kommandoen: diff --git a/problems/scope/problem_pt-br.md b/problems/scope/problem_pt-br.md index 56102077..75719812 100644 --- a/problems/scope/problem_pt-br.md +++ b/problems/scope/problem_pt-br.md @@ -60,7 +60,7 @@ const a = 1; const b = 2; const c = 3; Utilize seus conhecimentos sobre `escopo` de variáveis e posicione o seguinte código dentro de uma das funções no 'scope.js' fazendo o resultado ser `a: 1, b: 8,c: 6` ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Verifique se o seu programa está correto executando o comando: diff --git a/problems/scope/problem_ru.md b/problems/scope/problem_ru.md index 32a665e3..32c3f4c9 100644 --- a/problems/scope/problem_ru.md +++ b/problems/scope/problem_ru.md @@ -65,7 +65,7 @@ const a = 1; const b = 2; const c = 3; Используя полученные знания об `областях видимости`, разместите приведённый ниже код внутри одной из функций, объявленных в `scope.js` так, чтобы на выходе получилось `a: 1, b: 8, c: 6`. ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Чтобы удостовериться в правильности решения задачи, запустите следующую команду из терминала: diff --git a/problems/scope/problem_uk.md b/problems/scope/problem_uk.md index abf0075f..770553bf 100644 --- a/problems/scope/problem_uk.md +++ b/problems/scope/problem_uk.md @@ -58,7 +58,7 @@ const a = 1; const b = 2; const c = 3; Використайте ваші знання про `область видимості` змінних та помістіть код нижче в таку функцію зі 'scope.js', щоб результат був рядок `a: 1, b: 8,c: 6`: ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` Перевірте вашу відповідь запустивши команду: diff --git a/problems/scope/problem_zh-cn.md b/problems/scope/problem_zh-cn.md index 020ddfba..f8c2ab4f 100644 --- a/problems/scope/problem_zh-cn.md +++ b/problems/scope/problem_zh-cn.md @@ -58,5 +58,5 @@ const a = 1; const b = 2; const c = 3; 依你对 `作用域` 的理解,将下面这段代码插入上述代码里,使得代码的输出为 `a: 1, b: 8,c: 6`。 ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` diff --git a/problems/scope/problem_zh-tw.md b/problems/scope/problem_zh-tw.md index 4dd25a01..d544fd62 100644 --- a/problems/scope/problem_zh-tw.md +++ b/problems/scope/problem_zh-tw.md @@ -58,5 +58,5 @@ const a = 1; const b = 2; const c = 3; 依你對 `作用域` 的理解,將下面這段程式碼插入上述程式碼裡,使得程式碼的輸出為 `a: 1, b: 8,c: 6`。 ```js -console.log(`a: ${a}, b: ${b}, c: ${c}`) +console.log(`a: ${a}, b: ${b}, c: ${c}`); ``` From 1ad620f66c61eb00aa7bd1afad6fe3049ed55d5b Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Mon, 13 Apr 2020 23:45:09 +0900 Subject: [PATCH 302/346] misc: update dependencies --- package-lock.json | 1123 +++++++++++++++++++++++++++------------------ package.json | 8 +- 2 files changed, 692 insertions(+), 439 deletions(-) diff --git a/package-lock.json b/package-lock.json index 465e414c..b6dc34ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,29 +5,35 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@hapi/address": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.1.tgz", - "integrity": "sha512-DYuHzu978pP1XW1GD3HGvLnAFjbQTIgc2+V153FGkbS2pgo9haigCdwBnUDrbhaOkgiJlbZvoEqDrcxSLHpiWA==" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" }, "@hapi/bourne": { "version": "1.3.2", @@ -35,9 +41,9 @@ "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" }, "@hapi/hoek": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.2.4.tgz", - "integrity": "sha512-Ze5SDNt325yZvNO7s5C4fXDscjJ6dcqLFXJQ/M7dZRQCewuDj2iDUuBi6jLQt+APbW9RjjVEvLr35FXuOEqjow==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" }, "@hapi/joi": { "version": "15.1.1", @@ -51,13 +57,32 @@ } }, "@hapi/topo": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.3.tgz", - "integrity": "sha512-JmS9/vQK6dcUYn7wc2YZTqzIKubAQcJKu2KCKAru6es482U5RT5fP1EXCPtlXpiK7PR0On/kpQKI4fRKkzpZBQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", "requires": { - "@hapi/hoek": "8.x.x" + "@hapi/hoek": "^8.3.0" } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -70,9 +95,9 @@ "dev": true }, "acorn-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", - "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, "after": { @@ -81,22 +106,33 @@ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "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 + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } }, "ansi-regex": { "version": "3.0.0", @@ -126,13 +162,14 @@ } }, "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, "astral-regex": { @@ -155,17 +192,41 @@ "concat-map": "0.0.1" } }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" - }, "cardinal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", @@ -204,12 +265,12 @@ "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=" }, "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=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "^3.1.0" } }, "cli-width": { @@ -218,6 +279,14 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -232,9 +301,9 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "colors-tmpl": { "version": "1.0.0", @@ -285,14 +354,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -304,6 +365,14 @@ "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "debug": { @@ -321,6 +390,14 @@ "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -332,6 +409,11 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -369,9 +451,9 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, "doctrine": { "version": "3.0.0", @@ -419,11 +501,19 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", @@ -439,27 +529,28 @@ } }, "es-abstract": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", - "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", + "es-to-primitive": "^1.2.1", "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", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.0.0", - "string.prototype.trimright": "^2.0.0" + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "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==", + "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", @@ -473,9 +564,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.3.0.tgz", - "integrity": "sha512-ZvZTKaqDue+N8Y9g0kp6UPZtS4FSY3qARxBs7p4f0H0iof381XHduqVerFWtK8DPtKmemqbqCFENWSQgPR/Gow==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -485,19 +576,19 @@ "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.2", + "eslint-utils": "^1.4.3", "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.1", + "espree": "^6.1.2", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", - "globals": "^11.7.0", + "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.4.1", + "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", @@ -506,7 +597,7 @@ "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", + "optionator": "^0.8.3", "progress": "^2.0.0", "regexpp": "^2.0.1", "semver": "^6.1.2", @@ -517,31 +608,10 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true } } @@ -559,13 +629,13 @@ "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==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", "dev": true, "requires": { "debug": "^2.6.9", - "resolve": "^1.5.0" + "resolve": "^1.13.1" }, "dependencies": { "debug": { @@ -586,12 +656,12 @@ } }, "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==", + "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.8", + "debug": "^2.6.9", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -623,9 +693,9 @@ }, "dependencies": { "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true } } @@ -695,12 +765,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true } } }, @@ -755,12 +819,12 @@ } }, "eslint-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", - "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.0.0" + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { @@ -770,13 +834,13 @@ "dev": true }, "espree": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz", - "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "^7.0.0", - "acorn-jsx": "^5.0.2", + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" } }, @@ -786,12 +850,20 @@ "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", + "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.0.0" + }, + "dependencies": { + "estraverse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", + "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "dev": true + } } }, "esrecurse": { @@ -880,15 +952,15 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "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=", + "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": { @@ -898,9 +970,9 @@ "dev": true }, "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -953,9 +1025,9 @@ } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "fs.realpath": { @@ -982,14 +1054,17 @@ "dev": true }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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", @@ -1000,42 +1075,45 @@ } }, "glob-parent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", - "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "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" } }, "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 + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } }, "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "requires": { - "create-error-class": "^3.0.0", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" } }, "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, "has": { @@ -1068,17 +1146,22 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "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 }, "hosted-git-info": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", - "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", + "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 }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, "i18n-core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", @@ -1096,6 +1179,11 @@ "through": ">=2.2.7 <3" } }, + "acorn": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", + "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" + }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -2175,13 +2263,24 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", "requires": { + "acorn": "^5.0.1", "acorn-jsx": "^3.0.0" }, "dependencies": { "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=" + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "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=" + } + } } } }, @@ -5741,9 +5840,9 @@ "dev": true }, "import-fresh": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", - "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -5776,39 +5875,89 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -5820,15 +5969,15 @@ "dev": true }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "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=", + "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-extglob": { @@ -5838,9 +5987,9 @@ "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=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -5858,37 +6007,28 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "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.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "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.0" + "has-symbols": "^1.0.1" } }, "isarray": { @@ -5926,6 +6066,11 @@ } } }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -5945,21 +6090,29 @@ "dev": true }, "jsx-ast-utils": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", - "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", "dev": true, "requires": { "array-includes": "^3.0.3", "object.assign": "^4.1.0" } }, - "latest-version": { + "keyv": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "requires": { - "package-json": "^4.0.0" + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" } }, "levn": { @@ -6020,11 +6173,16 @@ "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" }, "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -6034,23 +6192,16 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, "ms": { @@ -6078,12 +6229,31 @@ "through2": "^2.0.3", "wcstring": "^2.1.0", "xtend": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "natural-compare": { @@ -6099,9 +6269,9 @@ "dev": true }, "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -6117,8 +6287,21 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6126,9 +6309,9 @@ "dev": true }, "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", "dev": true }, "object-keys": { @@ -6150,37 +6333,37 @@ } }, "object.entries": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", - "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" } }, "object.fromentries": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz", - "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.11.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", - "has": "^1.0.1" + "has": "^1.0.3" } }, "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" } @@ -6194,26 +6377,26 @@ } }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" } }, "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "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.4", + "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "word-wrap": "~1.2.3" } }, "os-homedir": { @@ -6235,6 +6418,11 @@ "os-tmpdir": "^1.0.0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -6260,14 +6448,14 @@ "dev": true }, "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" } }, "parent-module": { @@ -6369,9 +6557,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6407,6 +6595,12 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true } } }, @@ -6437,9 +6631,9 @@ "dev": true }, "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "process-nextick-args": { "version": "2.0.1", @@ -6463,6 +6657,15 @@ "react-is": "^16.8.1" } }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -6481,9 +6684,9 @@ } }, "react-is": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz", - "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, "read-pkg": { @@ -6508,9 +6711,9 @@ } }, "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==", + "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", @@ -6519,13 +6722,6 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, - "dependencies": { - "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==" - } } }, "redeyed": { @@ -6543,20 +6739,19 @@ "dev": true }, "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "^1.2.8" } }, "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "requires": { - "rc": "^1.0.1" + "rc": "^1.2.8" } }, "repeat-string": { @@ -6565,9 +6760,9 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -6579,13 +6774,21 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, @@ -6606,9 +6809,9 @@ } }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", "dev": true, "requires": { "is-promise": "^2.1.0" @@ -6621,18 +6824,18 @@ "dev": true }, "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", @@ -6641,9 +6844,9 @@ "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "shebang-command": { "version": "1.2.0", @@ -6661,9 +6864,9 @@ "dev": true }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "simple-terminal-menu": { @@ -6723,6 +6926,14 @@ "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } } }, "spdx-correct": { @@ -6772,12 +6983,12 @@ "dev": true }, "standard": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/standard/-/standard-14.2.0.tgz", - "integrity": "sha512-qVXM+iVRBJn7f9HhlH4MxioeCzevLSyMqVLTb48MXcwEtQwjhXKg4MVlWLfQtHxaNACRbtmr5l4D4/Ao1oNgYA==", + "version": "14.3.3", + "resolved": "https://registry.npmjs.org/standard/-/standard-14.3.3.tgz", + "integrity": "sha512-HBEAD5eVXrr2o/KZ3kU8Wwaxw90wzoq4dOQe6vlRnPoQ6stn4LCLRLBBDp0CjH/aOTL9bDZJbRUOZcBaBnNJ0A==", "dev": true, "requires": { - "eslint": "~6.3.0", + "eslint": "~6.8.0", "eslint-config-standard": "14.1.0", "eslint-config-standard-jsx": "8.1.0", "eslint-plugin-import": "~2.18.0", @@ -6801,42 +7012,93 @@ } }, "string-to-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz", - "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz", + "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.1.0" + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" } }, "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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string_decoder": { @@ -6845,21 +7107,21 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" - }, - "dependencies": { - "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==" - } } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } } }, "strip-bom": { @@ -6893,10 +7155,16 @@ "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "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": { @@ -6909,15 +7177,6 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } } } }, @@ -6940,19 +7199,13 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2 || 3" } }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -6962,10 +7215,15 @@ "os-tmpdir": "~1.0.2" } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "type-check": { @@ -6978,9 +7236,9 @@ } }, "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "uniq": { @@ -6989,11 +7247,6 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" - }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -7004,11 +7257,11 @@ } }, "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "^2.0.0" } }, "util-deprecate": { @@ -7060,30 +7313,30 @@ "isexe": "^2.0.0" } }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "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 }, "workshopper-adventure": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.0.4.tgz", - "integrity": "sha512-Sm6crfv3/BCoNfsYftYsrKJbpIOu+74GQD8URq4spYFtdyyYMpjud6mzAkMKNNhC09wLaLZnsNueb9V/YU3fyQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.1.0.tgz", + "integrity": "sha512-er+wGdVfFyv+WNH9IgTQvmKkaZfjL1XhplF44FV5dA/FxTKpLRUoyVzGbn9Y0sOmnIzb3cST+YP3vN4I4+vssg==", "requires": { "after": "^0.8.2", - "chalk": "^2.3.1", + "chalk": "^2.4.2", "colors-tmpl": "~1.0.0", "combined-stream-wait-for-it": "^1.1.0", - "commandico": "^2.0.2", + "commandico": "^2.0.4", "i18n-core": "^3.0.0", - "latest-version": "^3.0.0", + "latest-version": "^5.1.0", "msee": "^0.3.5", "simple-terminal-menu": "^1.1.3", "split": "^1.0.0", - "string-to-stream": "^1.1.0", - "strip-ansi": "^4.0.0", - "through2": "^2.0.3", + "string-to-stream": "^3.0.1", + "strip-ansi": "^5.2.0", + "through2": "^3.0.1", "workshopper-adventure-storage": "^3.0.0" } }, diff --git a/package.json b/package.json index faa914e8..06d924f4 100644 --- a/package.json +++ b/package.json @@ -12,13 +12,13 @@ "main": "./index.js", "preferGlobal": true, "dependencies": { - "colors": "^1.3.3", - "diff": "^4.0.1", - "workshopper-adventure": "^6.0.4" + "colors": "^1.4.0", + "diff": "^4.0.2", + "workshopper-adventure": "^6.1.0" }, "license": "MIT", "devDependencies": { - "standard": "^14.2.0" + "standard": "^14.3.3" }, "scripts": { "test": "standard" From ef5fe49e1c17453271a96d4908c97a3ba8bbb2da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Tue, 2 Jun 2020 00:50:16 -0500 Subject: [PATCH 303/346] chore: add workshopper-adventure-test --- .workshopper-test.config.js | 5 + package-lock.json | 586 ++++++++++++++++++++++++++++++++++++ package.json | 5 +- 3 files changed, 594 insertions(+), 2 deletions(-) create mode 100644 .workshopper-test.config.js diff --git a/.workshopper-test.config.js b/.workshopper-test.config.js new file mode 100644 index 00000000..4bc2865a --- /dev/null +++ b/.workshopper-test.config.js @@ -0,0 +1,5 @@ +module.exports = { + exercisesFolder: 'solutions', + testFileRegex: 'index.js', + spaceChar: '-' +} diff --git a/package-lock.json b/package-lock.json index b6dc34ec..d7a628e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -117,6 +117,12 @@ "uri-js": "^4.2.2" } }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, "ansi-escapes": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", @@ -152,6 +158,16 @@ "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -183,6 +199,12 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -192,6 +214,21 @@ "concat-map": "0.0.1" } }, + "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" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -227,6 +264,12 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, "cardinal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", @@ -264,6 +307,22 @@ "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=" }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -279,6 +338,42 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -390,6 +485,12 @@ "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -987,6 +1088,15 @@ "flat-cache": "^2.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" + } + }, "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -1002,6 +1112,15 @@ "locate-path": "^2.0.0" } }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -1035,6 +1154,13 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -1047,6 +1173,12 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "get-stdin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", @@ -1116,6 +1248,12 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1151,6 +1289,12 @@ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -5968,6 +6112,21 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, "is-callable": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", @@ -6001,6 +6160,12 @@ "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 + }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -6153,6 +6318,15 @@ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -6204,6 +6378,127 @@ "minimist": "^1.2.5" } }, + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "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" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6268,6 +6563,24 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "nopt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", @@ -6297,6 +6610,12 @@ } } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "normalize-url": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", @@ -6356,6 +6675,16 @@ "has": "^1.0.3" } }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, "object.values": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", @@ -6508,6 +6837,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", @@ -6724,6 +7059,15 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, "redeyed": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", @@ -6759,6 +7103,18 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "resolve": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", @@ -6848,6 +7204,12 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -7220,6 +7582,15 @@ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, + "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" + } + }, "tslib": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", @@ -7313,6 +7684,48 @@ "isexe": "^2.0.0" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -7349,6 +7762,66 @@ "rimraf": "^2.5.4" } }, + "workshopper-adventure-test": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure-test/-/workshopper-adventure-test-1.2.0.tgz", + "integrity": "sha512-Y4Vr8gi0/BYEjzz53rSpCbDuoDdm/thWq3gxpxrgsSbg5EnhPddQQw/+TUdtvissZKBt82IR+RptG1MNtlFg0A==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "lodash": "^4.17.15", + "mocha": "^7.1.1", + "rimraf": "^3.0.2", + "workshopper-adventure": "^6.1.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -7367,6 +7840,119 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "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 + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } } } } diff --git a/package.json b/package.json index 06d924f4..160a4c36 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,10 @@ }, "license": "MIT", "devDependencies": { - "standard": "^14.3.3" + "standard": "^14.3.3", + "workshopper-adventure-test": "^1.2.0" }, "scripts": { - "test": "standard" + "test": "standard && workshopper-adventure-test" } } From 4329579c821174c760e710b87b81dae4c377867a Mon Sep 17 00:00:00 2001 From: saccho Date: Mon, 15 Jun 2020 17:33:31 +0900 Subject: [PATCH 304/346] Fix object-keys solution --- solutions/object-keys/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solutions/object-keys/index.js b/solutions/object-keys/index.js index 26d4980f..1662f2b9 100644 --- a/solutions/object-keys/index.js +++ b/solutions/object-keys/index.js @@ -1,7 +1,7 @@ const car = { - make: 'Toyota', - model: 'Camry', - year: 2020 + make: "Honda", + model: "Accord", + year: 2020, } const keys = Object.keys(car) From ef73c4efc826e3343f6eb9e643bf4b96a4604077 Mon Sep 17 00:00:00 2001 From: saccho Date: Mon, 15 Jun 2020 17:37:08 +0900 Subject: [PATCH 305/346] Fix styles --- solutions/object-keys/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solutions/object-keys/index.js b/solutions/object-keys/index.js index 1662f2b9..14b4a38b 100644 --- a/solutions/object-keys/index.js +++ b/solutions/object-keys/index.js @@ -1,7 +1,7 @@ const car = { - make: "Honda", - model: "Accord", - year: 2020, + make: 'Honda', + model: 'Accord', + year: 2020 } const keys = Object.keys(car) From 2ec4db1c0eb30871996291976ec665d740de134e Mon Sep 17 00:00:00 2001 From: MikamiTetsuro365 Date: Mon, 29 Jun 2020 23:30:45 +0900 Subject: [PATCH 306/346] Added Japanese translation for object-keys --- problems/object-keys/problem_ja.md | 20 ++++++++++---------- problems/object-keys/solution_ja.md | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/problems/object-keys/problem_ja.md b/problems/object-keys/problem_ja.md index 1b07c63f..258fd452 100644 --- a/problems/object-keys/problem_ja.md +++ b/problems/object-keys/problem_ja.md @@ -1,7 +1,6 @@ -JavaScript provides a native way of listing all the available keys of an object. This can be helpful for looping through all the properties of an object and manipulating their values accordingly. +JavaScriptはオブジェクトの利用可能なキーを全て列挙する方法を提供しています.これは,ループ処理によってオブジェクトに応じた値の操作に役立ちます. -Here's an example of listing all object keys using the **Object.keys()** -prototype method. +これは **Object.keys()** を使って全てのオブジェクトのキーを列挙する例です. ```js const car = { @@ -14,13 +13,13 @@ const keys = Object.keys(car) console.log(keys) ``` -The above code will print an array of strings, where each string is a key in the car object. `['make', 'model', 'year']` +上記のコードでは,文字列の配列が表示されます.各文字列はオブジェクトのキーです. `['make', 'model', 'year']` -## The challenge: +## やってみよう -Create a file named `object-keys.js`. +`object-keys.js`ファイルを作りましょう. -In that file, define a variable named `car` like this: +ファイルの中で,変数`car`を定義します. ```js const car = { @@ -30,15 +29,16 @@ const car = { } ``` -Then define another variable named `keys` like this: +そして,別の変数`keys`を定義します. ```js const keys = Object.keys(car) ``` -Use `console.log()` to print the `keys` variable to the terminal. +`console.log()`を使って,変数`keys` をターミナルに表示しましょう. -Check to see if your program is correct by running this command: +次のコマンドを実行し,あなたのプログラムが正しく動くか確認しましょう. ```bash javascripting verify object-keys.js ``` + diff --git a/problems/object-keys/solution_ja.md b/problems/object-keys/solution_ja.md index 0f3540ea..94ed0138 100644 --- a/problems/object-keys/solution_ja.md +++ b/problems/object-keys/solution_ja.md @@ -1,11 +1,11 @@ --- -# CORRECT. +# よろしい. -Good job using the Object.keys() prototype method. Remember to use it when you need to list the keys of an object. +Object.keys()を使用することで,キーをうまく表示させることができました.オブジェクトのキーを列挙する必要があるときは,この方法を思い出してください. -The next challenge is all about **functions**. +次の課題は関数です. -Run `javascripting` in the console to choose the next challenge. +コンソールで `javascripting` コマンドを実行します.次の課題を選択しましょう. ---- +--- \ No newline at end of file From c321f0828f73973cea68df54f6b2ad2bd3b4e39a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2020 06:14:46 +0000 Subject: [PATCH 307/346] Bump lodash from 4.17.4 to 4.17.19 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.4 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.4...4.17.19) Signed-off-by: dependabot[bot] --- package-lock.json | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7a628e1..26df1aec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3127,11 +3127,6 @@ } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -4782,11 +4777,6 @@ } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -6313,10 +6303,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "log-symbols": { "version": "3.0.0", From 003f3cb9fe9d33386c89336b1d42b696fc60f744 Mon Sep 17 00:00:00 2001 From: Seth Date: Fri, 24 Jul 2020 10:01:00 -0500 Subject: [PATCH 308/346] docs: add node.js version info --- TROUBLESHOOTING.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 1a09bf91..4b9d3500 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -1,3 +1,7 @@ +# Troubleshooting + +### `EACCESS` error + If you get an `EACCESS` error, the simplest way to fix this is to rerun the command, in either of the following ways: - On unix shells, prefix the command with sudo @@ -7,3 +11,7 @@ If you get an `EACCESS` error, the simplest way to fix this is to rerun the comm You can also fix the permissions so that you don't have to use `sudo`. Take a look at this npm documentation: https://docs.npmjs.com/getting-started/fixing-npm-permissions + +### `EEXIST` error + +Make sure you are using an active version of Node.js. Active versions can be found [here](https://nodejs.org/en/about/releases/). From 2adccf65d913111cdd8cd70a610517cc16771e3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Dec 2020 18:38:59 +0000 Subject: [PATCH 309/346] Bump ini from 1.3.4 to 1.3.7 Bumps [ini](https://github.com/isaacs/ini) from 1.3.4 to 1.3.7. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.4...v1.3.7) Signed-off-by: dependabot[bot] --- package-lock.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26df1aec..c0cf083d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2825,11 +2825,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" - }, "inquirer": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", @@ -6004,9 +5999,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" }, "inquirer": { "version": "7.1.0", From 1a3b1d29db1fb9ae429be3246570816395b40ff3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Apr 2021 01:26:57 +0000 Subject: [PATCH 310/346] Bump y18n from 3.2.1 to 4.0.1 Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 4.0.1. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0cf083d..4e8facfd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5404,11 +5404,6 @@ "slide": "^1.1.5" } }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -5430,7 +5425,6 @@ "set-blocking": "^2.0.0", "string-width": "^2.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", "yargs-parser": "^7.0.0" }, "dependencies": { @@ -5835,11 +5829,6 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -5866,7 +5855,6 @@ "set-blocking": "^2.0.0", "string-width": "^1.0.2", "which-module": "^1.0.0", - "y18n": "^3.2.1", "yargs-parser": "^4.2.0" }, "dependencies": { @@ -7826,9 +7814,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { From 3e0c221c736533a625df5c65f1f4be171e1aac86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 May 2021 14:00:46 +0000 Subject: [PATCH 311/346] Bump lodash from 4.17.19 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e8facfd..637276fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6286,9 +6286,9 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "log-symbols": { "version": "3.0.0", From 224030ac97423f8808f7a1655db0b4b53ac519af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 May 2021 03:11:58 +0000 Subject: [PATCH 312/346] Bump hosted-git-info from 2.4.2 to 2.8.9 Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.4.2 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.4.2...v2.8.9) Signed-off-by: dependabot[bot] --- package-lock.json | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e8facfd..9d6e34d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1296,10 +1296,9 @@ "dev": true }, "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 + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, "http-cache-semantics": { "version": "4.1.0", @@ -2778,11 +2777,6 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, - "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" - }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", @@ -4496,11 +4490,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, - "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", From c9c9d78fd2f52b2ce2dadd3e3c5654920591f5f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Jun 2021 09:26:22 +0000 Subject: [PATCH 313/346] Bump glob-parent from 2.0.0 to 5.1.2 Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 2.0.0 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](https://github.com/gulpjs/glob-parent/compare/v2.0.0...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index f64e8f9e..f144875b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1207,9 +1207,9 @@ } }, "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==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -4433,15 +4433,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "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" } From a4cff72569dca05901759f768c7854c632493557 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 04:53:45 +0000 Subject: [PATCH 314/346] Bump normalize-url from 4.5.0 to 4.5.1 Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/sindresorhus/normalize-url/releases) - [Commits](https://github.com/sindresorhus/normalize-url/commits) --- updated-dependencies: - dependency-name: normalize-url dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f64e8f9e..7ddbba7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6578,9 +6578,9 @@ "dev": true }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "object-assign": { "version": "4.1.1", From 2e211dfa0d75f41c4481f5c624640aa94be632d4 Mon Sep 17 00:00:00 2001 From: Hidde Braun Date: Fri, 16 Jul 2021 00:00:30 +0200 Subject: [PATCH 315/346] Adding Dutch (nl) translation --- i18n/footer/nl.md | 1 + i18n/nl.json | 24 +++++++ i18n/troubleshooting_nl.md | 27 +++++++ index.js | 2 +- problems/accessing-array-values/problem_nl.md | 46 ++++++++++++ .../accessing-array-values/solution_nl.md | 11 +++ problems/array-filtering/problem_nl.md | 45 ++++++++++++ problems/array-filtering/solution_nl.md | 11 +++ problems/arrays/problem_nl.md | 19 +++++ problems/arrays/solution_nl.md | 11 +++ problems/for-loop/problem_nl.md | 42 +++++++++++ problems/for-loop/solution_nl.md | 11 +++ problems/function-arguments/problem_nl.md | 35 +++++++++ problems/function-arguments/solution_nl.md | 9 +++ problems/function-return-values/problem_nl.md | 5 ++ .../function-return-values/solution_nl.md | 5 ++ problems/functions/problem_nl.md | 37 ++++++++++ problems/functions/solution_nl.md | 9 +++ problems/if-statement/problem_nl.md | 34 +++++++++ problems/if-statement/solution_nl.md | 11 +++ problems/introduction/problem_nl.md | 44 ++++++++++++ problems/introduction/solution_nl.md | 19 +++++ problems/looping-through-arrays/problem_nl.md | 45 ++++++++++++ .../looping-through-arrays/solution_nl.md | 11 +++ problems/number-to-string/problem_nl.md | 24 +++++++ problems/number-to-string/solution_nl.md | 11 +++ problems/numbers/problem_nl.md | 16 +++++ problems/numbers/solution_nl.md | 11 +++ problems/object-keys/problem_nl.md | 43 +++++++++++ problems/object-keys/solution_nl.md | 11 +++ problems/object-properties/problem_nl.md | 43 +++++++++++ problems/object-properties/solution_nl.md | 11 +++ problems/objects/problem_nl.md | 32 +++++++++ problems/objects/solution_nl.md | 11 +++ problems/revising-strings/problem_nl.md | 28 ++++++++ problems/revising-strings/solution_nl.md | 11 +++ problems/rounding-numbers/problem_nl.md | 30 ++++++++ problems/rounding-numbers/solution_nl.md | 11 +++ problems/scope/problem_nl.md | 71 +++++++++++++++++++ problems/scope/solution_nl.md | 11 +++ problems/string-length/problem_nl.md | 30 ++++++++ problems/string-length/solution_nl.md | 9 +++ problems/strings/problem_nl.md | 30 ++++++++ problems/strings/solution_nl.md | 11 +++ problems/this/problem_nl.md | 5 ++ problems/this/solution_nl.md | 5 ++ problems/variables/problem_nl.md | 33 +++++++++ problems/variables/solution_nl.md | 11 +++ 48 files changed, 1022 insertions(+), 1 deletion(-) create mode 100644 i18n/footer/nl.md create mode 100755 i18n/nl.json create mode 100755 i18n/troubleshooting_nl.md create mode 100755 problems/accessing-array-values/problem_nl.md create mode 100644 problems/accessing-array-values/solution_nl.md create mode 100755 problems/array-filtering/problem_nl.md create mode 100644 problems/array-filtering/solution_nl.md create mode 100755 problems/arrays/problem_nl.md create mode 100644 problems/arrays/solution_nl.md create mode 100755 problems/for-loop/problem_nl.md create mode 100644 problems/for-loop/solution_nl.md create mode 100755 problems/function-arguments/problem_nl.md create mode 100644 problems/function-arguments/solution_nl.md create mode 100644 problems/function-return-values/problem_nl.md create mode 100644 problems/function-return-values/solution_nl.md create mode 100755 problems/functions/problem_nl.md create mode 100644 problems/functions/solution_nl.md create mode 100755 problems/if-statement/problem_nl.md create mode 100644 problems/if-statement/solution_nl.md create mode 100755 problems/introduction/problem_nl.md create mode 100644 problems/introduction/solution_nl.md create mode 100755 problems/looping-through-arrays/problem_nl.md create mode 100644 problems/looping-through-arrays/solution_nl.md create mode 100755 problems/number-to-string/problem_nl.md create mode 100644 problems/number-to-string/solution_nl.md create mode 100755 problems/numbers/problem_nl.md create mode 100644 problems/numbers/solution_nl.md create mode 100755 problems/object-keys/problem_nl.md create mode 100644 problems/object-keys/solution_nl.md create mode 100755 problems/object-properties/problem_nl.md create mode 100644 problems/object-properties/solution_nl.md create mode 100755 problems/objects/problem_nl.md create mode 100644 problems/objects/solution_nl.md create mode 100755 problems/revising-strings/problem_nl.md create mode 100644 problems/revising-strings/solution_nl.md create mode 100755 problems/rounding-numbers/problem_nl.md create mode 100644 problems/rounding-numbers/solution_nl.md create mode 100755 problems/scope/problem_nl.md create mode 100644 problems/scope/solution_nl.md create mode 100755 problems/string-length/problem_nl.md create mode 100644 problems/string-length/solution_nl.md create mode 100644 problems/strings/problem_nl.md create mode 100644 problems/strings/solution_nl.md create mode 100644 problems/this/problem_nl.md create mode 100644 problems/this/solution_nl.md create mode 100755 problems/variables/problem_nl.md create mode 100644 problems/variables/solution_nl.md diff --git a/i18n/footer/nl.md b/i18n/footer/nl.md new file mode 100644 index 00000000..0bb22037 --- /dev/null +++ b/i18n/footer/nl.md @@ -0,0 +1 @@ +__Hulp nodig? __ Lees de README voor deze workshop: https://github.com/workshopper/javascripting diff --git a/i18n/nl.json b/i18n/nl.json new file mode 100755 index 00000000..074b0625 --- /dev/null +++ b/i18n/nl.json @@ -0,0 +1,24 @@ +{ + "exercise": { + "INTRODUCTION": "INTRODUCTIE" + , "VARIABLES": "VARIABELEN" + , "STRINGS": "STRINGS" + , "STRING LENGTH": "LENGTE VAN STRINGS" + , "REVISING STRINGS": "AANPASSEN VAN STRINGS" + , "NUMBERS": "NUMMERS" + , "ROUNDING NUMBERS": "NUMMERS AFRONDEN" + , "NUMBER TO STRING": "NUMMER NAAR STRING" + , "IF STATEMENT": "IF STATEMENT" + , "FOR LOOP": "FOR LOOP" + , "ARRAYS": "ARRAYS" + , "ARRAY FILTERING": "ARRAYS FILTEREN" + , "ACCESSING ARRAY VALUES": "ARRAY WAARDEN OPVRAGEN" + , "LOOPING THROUGH ARRAYS": "LOOPEN DOOR ARRAYS" + , "OBJECTS": "OBJECTEN" + , "OBJECT PROPERTIES": "OBJECT EIGENSCHAPPEN" + , "OBJECT KEYS": "OBJECT KEYS" + , "FUNCTIONS": "FUNCTIES" + , "FUNCTION ARGUMENTS": "FUNCTIE ARGUMENTEN" + , "SCOPE": "SCOPE" + } +} diff --git a/i18n/troubleshooting_nl.md b/i18n/troubleshooting_nl.md new file mode 100755 index 00000000..40f9d139 --- /dev/null +++ b/i18n/troubleshooting_nl.md @@ -0,0 +1,27 @@ +--- +# Oeps, iets werkt nog niet. +# Maar... geen paniek! +--- + +## Controleer je oplossing: + +`Oplossing +===================` + +%solution% + +`Jouw oplossing +===================` + +%attempt% + +`Verschil +===================` + +%diff% + +## Aanvullende probleemoplossing:: + * Heb je de naam van het bestand correct getypt? Dit kun je controleren door dit command uit te voeren 'ls `%filename%`'. Als je dit ziet: 'ls: cannot access `%filename%`: No such file or directory,' bestaat het bestand misschien niet, heeft het een andere naam of bevindt het zich in een andere map. + * Zorg ervoor dat je geen haakjes hebt weggelaten, anders kan de compiler het niet ontcijferen. + * Zorg ervoor dat je geen typfouten in de tekst zelf hebt. + diff --git a/index.js b/index.js index 28fdeeb7..8f76f21d 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ const problem = require('./lib/problem') var jsing = require('workshopper-adventure')({ appDir: __dirname, - languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru', 'fr'], + languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru', 'fr', 'nl'], header: require('workshopper-adventure/default/header'), footer: require('./lib/footer.js') }) diff --git a/problems/accessing-array-values/problem_nl.md b/problems/accessing-array-values/problem_nl.md new file mode 100755 index 00000000..13cc1050 --- /dev/null +++ b/problems/accessing-array-values/problem_nl.md @@ -0,0 +1,46 @@ +Waarden in een Array kun je opvragen met een index numner. + +Het index nummer begint bij nul en loopt tot de *.length* eigenschap van de array min één. + +Hier is een voorbeeld: + + +```js +const pets = ['cat', 'dog', 'rat'] + +console.log(pets[0]) +``` + +De bovenstaande code print het eerste element van de `pets` array - dat is de string `cat`. + +Array elementen kun je benaderen via blokhaken [] + +Het gebruik van een punt is niet juist. + +Juiste notatie: + +```js +console.log(pets[0]) +``` + +Onjuiste notatie: +``` +console.log(pets.1); +``` + +## De uitdaging: + +Maak een nieuw bestand met de naam `accessing-array-values.js`. + +Definieer in dit bestand een array genaamd `food` : +```js +const food = ['apple', 'pizza', 'pear'] +``` + +Gebruik `console.log()` om de `tweede` waarde van de array naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify accessing-array-values.js +``` diff --git a/problems/accessing-array-values/solution_nl.md b/problems/accessing-array-values/solution_nl.md new file mode 100644 index 00000000..23b3936a --- /dev/null +++ b/problems/accessing-array-values/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# TWEEDE ELEMENT VAN DE ARRAY GEPRINT! + +Goed gedaan om toegang te krijgen tot dat element van de array. + +In de volgende uitdaging gaan we loopen door arrays + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- \ No newline at end of file diff --git a/problems/array-filtering/problem_nl.md b/problems/array-filtering/problem_nl.md new file mode 100755 index 00000000..1c3e2004 --- /dev/null +++ b/problems/array-filtering/problem_nl.md @@ -0,0 +1,45 @@ +Er zijn veel manieren om arrays aan te passen + +Een veelvookomende handeling is het filteren van arrays zodat alleen bepaalde waarden overblijven. + +Hiervoor kun je de `.filter()` method gebruiken. + +Hier is een voorbeeld: + +```js +const pets = ['cat', 'dog', 'elephant'] + +const filtered = pets.filter(function (pet) { + return (pet !== 'elephant') +}) +``` + +De `filtered` variabele bevat nu alleen `cat` en `dog`. + +## De uitdaging + +Maak een nieuw bestand met de naam `array-filtering.js`. + +Definieer in dit bestand een variabele met de naam `numbers` die verwijst naar deze array: + +```js +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +``` + +Zoals bovenaan is voorgedaan, maak nu een variabele genaamd `filtered` die verwijst naar het resultaat van `numbers.filter()`. + +De functie die je aan de `.filter()` method geeft ziet er zo uit: + +```js +function evenNumbers (number) { + return number % 2 === 0 +} +``` + +Let goed op de syntax die gebruikt wordt in deze uitdaging. Gebruik `console.log()` om de `filtered` array naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify array-filtering.js +``` diff --git a/problems/array-filtering/solution_nl.md b/problems/array-filtering/solution_nl.md new file mode 100644 index 00000000..ba2a920f --- /dev/null +++ b/problems/array-filtering/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# GEFILTERD! + +Goed bezig met het filteren van die array! + +In de volgende uitdaging gaan werken met code die waarden uit een array haalt. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/arrays/problem_nl.md b/problems/arrays/problem_nl.md new file mode 100755 index 00000000..dac73115 --- /dev/null +++ b/problems/arrays/problem_nl.md @@ -0,0 +1,19 @@ +Een array is een lijst met waarden. Hier is een voorbeeld: + +```js +const pets = ['cat', 'dog', 'rat'] +``` + +### De uitdaging: + +Maak een nieuw bestand met de naam `arrays.js`. + +Definieer in het bestand een variabele met de naam `pizzaToppings` die verwijst naar een array met drie strings in deze volgorde: `tomato sauce, cheese, pepperoni`. + +Gebruik `console.log()` om de `pizzaToppings` array naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify arrays.js +``` diff --git a/problems/arrays/solution_nl.md b/problems/arrays/solution_nl.md new file mode 100644 index 00000000..45b1b86c --- /dev/null +++ b/problems/arrays/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# YEET, EEN PIZZA ARRAY! + +Je hebt met succes een array gemaakt! + +In de volgende uitdaging gaan we kijken hoe we arrays kunt filteren. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/for-loop/problem_nl.md b/problems/for-loop/problem_nl.md new file mode 100755 index 00000000..162b0ead --- /dev/null +++ b/problems/for-loop/problem_nl.md @@ -0,0 +1,42 @@ +Met "For loops" kun je een blok code meerdere keren uitvoeren. Deze loop print tien keer iets naar de console. + +```js +for (let i = 0; i < 10; i++) { + // log the numbers 0 through 9 + console.log(i) +} +``` + +Het eerste deel, `let i = 0`, wordt één keer uitgevoerd aan het begin van de loop iteratie. De variabele `i` wordt gebruikt om bij te houden hoe veel keer de loop is uitgevoerd. + +Het tweede deel, `i < 10`, wordt voor het begin van elke loop iteratie gecontroleerd. Als het logische statement true is (waar) dan wordt de code in de loop uitgevoerd. Als het false (niet waar) is, dan is de loop klaar. Het logische statement `i < 10;` geeft aan dat de loop uitgevoerd zal worden zolang `i` kleiner is dan `10`. + +Het laatste deel, `i++`, wordt aan het einde van elke loop iteratie uitgevoerd. Dit verhoogt de variabele `i` met 1 na elke loop iteratie. Zodra `i` gelijk wordt aan `10`, zal de loop stoppen. + +## De uitdaging + +Maak een nieuw bestand met de naam`for-loop.js`. + +Definieer een nieuwe variabele met de naam `total` en maak deze gelijk aan het getal `0`. + +Definieer nu een tweede variabele met de naam `limit` en maak deze gelijk aan het getal `10`. + +Schrijf een for loop waarbij de variabele `i` start bij 0 en die na elke loop met 1 ophoogt. De loop moet uitgevoerd worden zo lang `i` kleiner is dan `limit`. + +Tel in elke loop iteratie het getal `i` op bij de `total` variabele. Dit kun je doen met dit statement: + +```js +total += i +``` + +Als dit statement wordt gebruikt in een for loop, wordt dit ook wel een _accumulator_ genoemd. Denk aan een kassa waar je elke keer een nieuw artikel scant en het bedrag optelt bij het totaal. + +Bij deze uitdaging heb je dus 10 artikelen waarvan de prijs elke keer met 1 wordt opgehoogd (en waarbij het eerste artikel gratis is!) + +Gebruik `console.log()` NA de for loop om de waarde van de `total` naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify for-loop.js +``` diff --git a/problems/for-loop/solution_nl.md b/problems/for-loop/solution_nl.md new file mode 100644 index 00000000..91e070c5 --- /dev/null +++ b/problems/for-loop/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# HET TOTAAL IS 45 + +Dit was een basis inleiding van for-loops, die in een aantal situaties handig zijn, vooral in combinatie met andere gegevenstypen zoals strings en arrays. + +In de volgende uitdaging beginnen we met het gebruiken van **arrays**, + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/function-arguments/problem_nl.md b/problems/function-arguments/problem_nl.md new file mode 100755 index 00000000..1e0fecbf --- /dev/null +++ b/problems/function-arguments/problem_nl.md @@ -0,0 +1,35 @@ +Je kunt een function zo declareren dat een willekeurig aantal argumenten kan ontvangen. Argumenten mogen van elk type zijn. Een argument kan dus een string, een number, een array, een object of zelfs een andere function zijn. + +Hier is een voorbeeld: + +```js +function example (firstArg, secondArg) { + console.log(firstArg, secondArg) +} +``` + +Je kunt deze function **aanroepen** met twee argumenten zoals hieronder: + +```js +example('hello', 'world') +``` + +Dit voorbeeld print `hello world` naar de console. + +## De uitdaging: + +Maak een nieuw bestand met de naam `function-arguments.js`. + +Definieer in dit bestand een function met de naam `math` die drie argumenten ontvangt. Het is belangrijk dat je begrijpt dat de namen van argumenten alleen worden gebruikt als verwijzing. + +Geef elk argument de naam die je zelf wilt. + +Binnen de `math` function vermenigvuldig je het tweede en derde argument met elkaar. Het resultaat van deze berekening tel je op bij het eerste argument. Geef het resultaat terug met `return`. + +Na de function roep je binnen de haakjes van `console.log()`, de `math()` function aan met het getal `53` als eerste argument, het getal `61` als tweede argument en het getal `67` als derde argument. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify function-arguments.js +``` diff --git a/problems/function-arguments/solution_nl.md b/problems/function-arguments/solution_nl.md new file mode 100644 index 00000000..070236ab --- /dev/null +++ b/problems/function-arguments/solution_nl.md @@ -0,0 +1,9 @@ +--- + +# JE HEBT CONTROLE OVER JE ARGUMENTEN! + +Complimenten voor het afronden van deze uitdaging. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/function-return-values/problem_nl.md b/problems/function-return-values/problem_nl.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/problem_nl.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/function-return-values/solution_nl.md b/problems/function-return-values/solution_nl.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/function-return-values/solution_nl.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/functions/problem_nl.md b/problems/functions/problem_nl.md new file mode 100755 index 00000000..c7505aa3 --- /dev/null +++ b/problems/functions/problem_nl.md @@ -0,0 +1,37 @@ +Een function is een blok met code die input ontvangt, deze input verwerkt, en een output teruggeeft. + +Een voorbeeld: + +```js +function example (x) { + return x * 2 +} +``` + +Je kunt deze function **aanroepen** zoals hieronder om het getal 10 te krijgen: + +```js +example(5) +``` + +Dit voorbeeld gaat er van uit dat de `example` function een number als argument krijgt –– als input –– en als output (return) het number vermenigvuldigt met 2 teruggeeft. + +## De uitdaging + +Maak een nieuw bestand met de naam `functions.js`. + +Definieer in dit bestand een function met de naam `eat` die een argument genaamd `food` krijgt (waarvan we verwachten dat het een string is). + +Geef het `food` argument in de function terug zoals hier: + +```js +return food + ' tasted really good.' +``` + +Roep nu de binnen de haakjes van `console.log()`, de `eat()` function aan met de string `bananas` als argument. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify functions.js +``` diff --git a/problems/functions/solution_nl.md b/problems/functions/solution_nl.md new file mode 100644 index 00000000..6aadc055 --- /dev/null +++ b/problems/functions/solution_nl.md @@ -0,0 +1,9 @@ +--- + +# WOOO BANANAS + +Het is je gelukt! Je hebt een function gemaakt die input ontvangt, deze input verwerkt, en output teruggeeft. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/if-statement/problem_nl.md b/problems/if-statement/problem_nl.md new file mode 100755 index 00000000..44dd4434 --- /dev/null +++ b/problems/if-statement/problem_nl.md @@ -0,0 +1,34 @@ +Conditional statements worden gebruikt om de flow van een programma aan te passen, afhankelijk van een boolean voorwaarde. + +Een conditional statement ziet er zo uit: + +```js +if (n > 1) { + console.log('the variable n is greater than 1.') +} else { + console.log('the variable n is less than or equal to 1.') +} +``` + +Tussen de haakjes moet je een logische test schrijven, dit betekent dat de logische test of true (waar) is, of false (niet waar). + +Het else block is optioneel en bevat de code die uitgevoerd wordt als de logische test *false* is. + +## De uitdaging: + +Maak een nieuw bestand met de naam `if-statement.js`. + +Declareer in dit bestand een nieuwe variabele met de naam `fruit`. + +Laat de variabele `fruit` verwijzen naar de string **"orange"**. + +Gebruik nu `console.log()`. + +Als de lengte van de string `fruit` groter is dan vijf print je "**The fruit name has more than five characters."** naar de console. +Anders print je "**The fruit name has five characters or less.**" naar de console. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify if-statement.js +``` diff --git a/problems/if-statement/solution_nl.md b/problems/if-statement/solution_nl.md new file mode 100644 index 00000000..ca7441c9 --- /dev/null +++ b/problems/if-statement/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# MASTER VAN CONDITIONALS + +You got it! De string `orange` heeft meer dan vijf characters. + +Zorg dat je klaar zit om met **for loops** aan de slag te gaan! + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/introduction/problem_nl.md b/problems/introduction/problem_nl.md new file mode 100755 index 00000000..bed9c0f8 --- /dev/null +++ b/problems/introduction/problem_nl.md @@ -0,0 +1,44 @@ +Om alles overzichtelijk te houden, maken we een map voor deze workshop. + +Voer dit commando uit om een folder te maken met de naam `javascripting` (of een naam die je zelf kiest): + +```bash +mkdir javascripting +``` + +Ga nu naar de `javascripting` folder: + +```bash +cd javascripting +``` + +Maak een nieuw bestand met de naam `introduction.js`: + +```bash +touch introduction.js +``` + +Of, als je op Windows werkt: +```bash +type NUL > introduction.js +``` +(`type` is deel van het commando!) + +Open thet bestand in je favoriete editor en voeg deze tekst toe: + +```js +console.log('hello') +``` + +Bewaar het bestand en controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify introduction.js +``` + +Trouwens, in deze tutorial kun je het bestand waarmee je werkt elke naam geven die je wilt, dus als je iets als `catsAreAwesome.js` voor elke oefening wilt gebruiken, kun je dat doen. Zorg ervoor dat je dan dit commando gebruikt: + +```bash +javascripting verify catsAreAwesome.js +``` + diff --git a/problems/introduction/solution_nl.md b/problems/introduction/solution_nl.md new file mode 100644 index 00000000..a702676c --- /dev/null +++ b/problems/introduction/solution_nl.md @@ -0,0 +1,19 @@ +--- + +# HET IS JE GELUKT! + +Alles wat je tussen de haakjes van `console.log()` zet, wordt naar de console (terminal) geprint. + +Dus dit: + +```js +console.log('hallo') +``` + +print `hallo` naar de terminal. + +Nu printen we nog en **string** bestaande uit characters naar de terminal: `hallo`. + +In de volgende uitdaging gaan we leren over **variabele**. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. diff --git a/problems/looping-through-arrays/problem_nl.md b/problems/looping-through-arrays/problem_nl.md new file mode 100755 index 00000000..e8ba4e51 --- /dev/null +++ b/problems/looping-through-arrays/problem_nl.md @@ -0,0 +1,45 @@ +In deze uitdaging gebruik je een **for loop** om een lijst met waarden in een array te lezen en aan te passen. + +Waarden in een array opvragen kan alleen door gebruik te maken van hele getallen (integers) + +Elke waarde in een array heeft een eigen index nummer, deze start altijd bij `0`. + +In deze array heeft `hi` het index nummer `1`: + +```js +const greetings = ['hello', 'hi', 'good morning'] +``` + +Zo benader je die waarde in de array: + +```js +greetings[1] +``` + +In een **for loop** kun je de `i` variabele binnen de blokhaken gebruiken in plaats van een direct getal. + +## De uitdaging: + +Maak een nieuw bestand met de naam `looping-through-arrays.js`. + +Definieer in dit bestand een variabele met de naam `pets` die verwijst naar deze array: + +```js +['cat', 'dog', 'rat'] +``` + +Schrijf een for loop die elke string in de array verandert, zodat de woorden in het meervoud veranderen. + +Binnen de for loop gebruik je daarvoor dit statement: + +```js +pets[i] = pets[i] + 's' +``` + +Na de for loop gebruik je `console.log()` om de `pets` array naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify looping-through-arrays.js +``` diff --git a/problems/looping-through-arrays/solution_nl.md b/problems/looping-through-arrays/solution_nl.md new file mode 100644 index 00000000..908cd0fd --- /dev/null +++ b/problems/looping-through-arrays/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# SUCCES! DIEREN IN MEERVOUD! + +Alle items in de `pets` array zijn nu in meervoud! + +In de volgende uitdaging gaan we van arrays naar het werken met objecten. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/number-to-string/problem_nl.md b/problems/number-to-string/problem_nl.md new file mode 100755 index 00000000..a7c96426 --- /dev/null +++ b/problems/number-to-string/problem_nl.md @@ -0,0 +1,24 @@ +Soms moet je een number omzetten in een string. + +In dat geval gebruik je de `.toString()` method. Hier is een voorbeeld: + +```js +let n = 256 +n = n.toString() +``` + +## De uitdaging + +Maak een bestand met de naam `number-to-string.js`. + +Definieer in het bestand een variabele met de naam `n` die verwijst naar het getal `128`; + +Roep de `.toString()` method aan op de variabele `n`. + +Gebruik `console.log()` om de uitvoer van de `.toString()` method naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify number-to-string.js +``` diff --git a/problems/number-to-string/solution_nl.md b/problems/number-to-string/solution_nl.md new file mode 100644 index 00000000..ea6959ee --- /dev/null +++ b/problems/number-to-string/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# HET NUMMER IS NU EEN STRING! + +Geweldig. Je hebt het nummer veranderd in een string! + +In volgende uitdaging gaan we kijken naar **if statements**. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/numbers/problem_nl.md b/problems/numbers/problem_nl.md new file mode 100755 index 00000000..530b7556 --- /dev/null +++ b/problems/numbers/problem_nl.md @@ -0,0 +1,16 @@ +Numbers kunnen hele getallen zijn, zoals `2`, `14`, or `4353`, of getallen met cijfers achter de komma, ook wel +floats genoemd, zoals `3.14`, `1.5`, of `100.7893423`. + +Numbers declareer je altijd zonder aanhalingstekens. + +## De uitdaging + +Maak een bestand met de naam `numbers.js`. + +Maak in dit bestand een variabele met de naam `example` die verwijst naar het hele getal `123456789`. + +Gebruik `console.log()` om dit getal naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +`javascripting verify numbers.js` diff --git a/problems/numbers/solution_nl.md b/problems/numbers/solution_nl.md new file mode 100644 index 00000000..0b6c818d --- /dev/null +++ b/problems/numbers/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# YEAH! NUMBERS! + +Cool, je hebt met succes een number variabele gedefinieerd met het getal `123456789`. + +In volgende uitdaging gaan we nummers aanpassen. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/object-keys/problem_nl.md b/problems/object-keys/problem_nl.md new file mode 100755 index 00000000..f1a03f96 --- /dev/null +++ b/problems/object-keys/problem_nl.md @@ -0,0 +1,43 @@ +JavaScript heeft een ingebouwde manier om alle beschikbare keys van een object weer te geven. Dit kan handig zijn als je alle eigenschappen van een object wilt doorlopen en de waarden wilt manipuleren. + +Hier is een voorbeeld dat alle object keys ophaalt door gebruik te maken van de **Object.keys()** method. + +```js +const car = { + make: 'Toyota', + model: 'Camry', + year: 2020 +} +const keys = Object.keys(car) + +console.log(keys) +``` + +De code hierboven print een array met strings, elke string is een key in het car object. `['make', 'model', 'year']` + +## De uitdaging: + +Maak een nieuw bestand met de naam `object-keys.js`. + +Definieer in dit bestand een nieuwe variabele `car` zoals hieronder: + +```js +const car = { + make: 'Honda', + model: 'Accord', + year: 2020 +} +``` + +Definieer nu een andere variabele met de naam `keys` zoals hieronder: +```js +const keys = Object.keys(car) +``` + +Gebruik `console.log()` om de `keys` variabele naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify object-keys.js +``` diff --git a/problems/object-keys/solution_nl.md b/problems/object-keys/solution_nl.md new file mode 100644 index 00000000..1e2d385b --- /dev/null +++ b/problems/object-keys/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# CORRECT. + +Je hebt de Object.keys() prototype method correct gebruikt. Onthoud dat je deze method kunt gebruiken als je de keys van object wilt opvragen. + +De volgende uitdaging gaat over **functions**. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/object-properties/problem_nl.md b/problems/object-properties/problem_nl.md new file mode 100755 index 00000000..b731d17a --- /dev/null +++ b/problems/object-properties/problem_nl.md @@ -0,0 +1,43 @@ +Het benaderen en aanpassen van object eigenschappen –– de keys en values die het object bevat –– doe je met een methode die lijkt op de array manier. + +Hier is een voorbeeld met **blokhaken**: + +```js +const example = { + pizza: 'yummy' +} + +console.log(example['pizza']) +``` + +Deze code print de string `'yummy'` naar de console. + +Daarnaast kun je ook de **dot notatie** gebruiken met hetzelfde resultaat. + +```js +example.pizza + +example['pizza'] +``` + +Deze twee regels code geven allebei `yummy` als resultaat. + +## De uitdaging + +Maak een nieuw bestand met de naam `object-properties.js`. + +Definieer in dit bestand een nieuwe variabele met de naam `food` zoals hieronder: + +```js +const food = { + types: 'only pizza' +} +``` + +Gebruik `console.log()` om de `types` eigenschap van het `food` object naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify object-properties.js +``` diff --git a/problems/object-properties/solution_nl.md b/problems/object-properties/solution_nl.md new file mode 100644 index 00000000..c45baa1e --- /dev/null +++ b/problems/object-properties/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# CORRECT. PIZZA IS THE ONLY FOOD. + +Goed gedaan. Je hebt de eigenschap van het object juist opgevraagd. + +De volgende uitdaging gaat over **object keys**. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/objects/problem_nl.md b/problems/objects/problem_nl.md new file mode 100755 index 00000000..cd40872f --- /dev/null +++ b/problems/objects/problem_nl.md @@ -0,0 +1,32 @@ +Objecten zijn lijsten met waarden die lijken op arrays, alleen worden de waarden niet met een numerieke index opgevraagd maar met een key (sleutel). + +Hier is een voorbeeld: + +```js +const foodPreferences = { + pizza: 'yum', + salad: 'gross' +} +``` + +## De uitdaging: + +Maak een nieuw bestand met de naam `objects.js`. + +Definieer in dit bestand een variable met de naam `pizza`: + +```js +const pizza = { + toppings: ['cheese', 'sauce', 'pepperoni'], + crust: 'deep dish', + serves: 2 +} +``` + +Gebruik `console.log()` om het `pizza` object naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify objects.js +``` diff --git a/problems/objects/solution_nl.md b/problems/objects/solution_nl.md new file mode 100644 index 00000000..8ecd0e4d --- /dev/null +++ b/problems/objects/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# PIZZA OBJECT IS GEMAAKT! + +Je hebt met succes een (pizza) object gemaakt! + +In de volgende uitdaging gaan we de properties van objecten onder de loep nemen. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/revising-strings/problem_nl.md b/problems/revising-strings/problem_nl.md new file mode 100755 index 00000000..bd51f7c3 --- /dev/null +++ b/problems/revising-strings/problem_nl.md @@ -0,0 +1,28 @@ +Je zult vaak de inhoud van een string moeten wijzigen. + +Strings hebben ingebouwde functionaliteit waarmee je hun inhoud kunt inspecteren en aanpassen. + +Hier is een voorbeeld waarbij de method`.replace()` wordt gebruikt: + +```js +let example = 'this example exists' +example = example.replace('exists', 'is awesome') +console.log(example) +``` + +Onthoud dat als je de waarde wilt aanpassen waar de `example` variabele naar verwijst, je opnieuw een "=" teken +moet gebruiken met de `example.replace()` method aan de rechterkant van het "=" teken. + +## De uitdaging: + +Maak een nieuw bestand met de naam `revising-strings.js`. + +Definieer een variabele met de naam `pizza` die verwijst naar de string: `'pizza is alright'` + +Gebruik de `.replace()` method om `alright` te veranderen in `wonderful`. + +Gebruik `console.log()` om het resultaat van de `.replace()` method naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +`javascripting verify revising-strings.js` diff --git a/problems/revising-strings/solution_nl.md b/problems/revising-strings/solution_nl.md new file mode 100644 index 00000000..1e79c1cc --- /dev/null +++ b/problems/revising-strings/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# YES, PIZZA _IS_ HEERLIJK. + +Knap gedaan met die `.replace()` method! + +Nu gaan we verder met **numbers**. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/rounding-numbers/problem_nl.md b/problems/rounding-numbers/problem_nl.md new file mode 100755 index 00000000..92b6488a --- /dev/null +++ b/problems/rounding-numbers/problem_nl.md @@ -0,0 +1,30 @@ +We kunnen simpele wiskundige bewerkingen doen met bekende operatoren zoals `+`, `-`, `*`, `/`, en `%`. + +Voor meer ingewikkelde wiskunde, gebruiken we het `Math` object. + +In deze uitdaging gebruiken we het `Math` object om nummers af te ronden. + +## De uitdaging: + +Maak een bestand met de naam `rounding-numbers.js`. + +Definieer in dit bestand een variabele met de naam `roundUp` die verwijst naar de float `1.5`. + +We gebruiken de `Math.round()` method om het getal naar boven af te ronden. +Deze method rond een getal met cijfers achter de komma naar boven of naar beneden af tot een geheel getal. + +Voorbeeld van hoe je `Math.round()` gebruikt: + +```js +Math.round(0.5) +``` + +Maak nu een tweede variabele met de naam `rounded` die verwijst naar de uitvoer van de `Math.round()` method, waar bij je de variabele `roundUp` geeft als argument. + +Gebruik `console.log()` om het resultaat naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify rounding-numbers.js +``` diff --git a/problems/rounding-numbers/solution_nl.md b/problems/rounding-numbers/solution_nl.md new file mode 100644 index 00000000..c7e8c979 --- /dev/null +++ b/problems/rounding-numbers/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# DAT GETAL IS AFGEROND + +Yep, je hebt net een getal afgerond van `1.5` naar `2`. Lekker bezig. + +In de volgende uitdaging gaan we een number in een string veranderen. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/scope/problem_nl.md b/problems/scope/problem_nl.md new file mode 100755 index 00000000..5c82e602 --- /dev/null +++ b/problems/scope/problem_nl.md @@ -0,0 +1,71 @@ +`Scope` noem je de variabele, objecten en functions waar je toegang toe hebt. + +JavaScript kent twee scopes: `global` en `local`. Een variabele die is gedeclareerd buiten een function definitie is een `globale` variabele, en die variabele is toegankelijk en aanpasbaar in alle programma code. Een variabele die is gedefinieerd binnen een function is `local`. De variabele wordt elke keer aangemaakt en weer verwijderd als de function wordt uitgevoerd, en kan niet worden benaderd door code buiten de function. + +Functions die worden gedefinieerd binnen andere functions, we noemen dat nested functions, hebben toegang tot de scope van de bovenliggende function. + +Let goed op de opmerkingen in de onderstaande code: + +```js +const a = 4 // a is een globale variabele, deze is toegankelijk via de onderstaande functions: + +function foo () { + const b = a * 3 // b is niet toegankelijk buiten de foo-function, maar is toegankelijk via functions + // die gedefinieerd zijn binnen foo + function bar (c) { + const b = 2 // een andere `b` variable is gedefinieerd in de bar function scope + // de veranderingen aan deze nieuwe `b` variabele hebben geen effect op de andere `b` variabele + console.log(a, b, c) + } + + bar(b * 4) +} + +foo() // 4, 2, 48 +``` + + +IIFE, Immediately Invoked Function Expression, is een veelgebruikte manier om een local scope te maken. + +Voorbeeld +```js +(function () { // de function (zonder naam) bevindt zich binnen haakjes. + // variabelen die hier worden gedefinieerd + // kunnen niet worden benaderd van buiten de function +})() // de function wordt direct aangeroepen / uitgevoerd +``` +## De uitdaging: + +Maak een nieuw bestand met de naam `scope.js`. + +Kopieer onderstaande code in je nieuwe bestand: +```js +const a = 1; const b = 2; const c = 3; + +(function firstFunction () { + const b = 5; const c = 6; + + (function secondFunction () { + const b = 8; + + (function thirdFunction () { + const a = 7; const c = 9; + + (function fourthFunction () { + const a = 1; const c = 8; + })() + })() + })() +})() +``` + +Gebruik je nieuwe kennis over de `scope` van variabelen en zet onderstaande code binnen één van de functions in je `scope.js` zodat dit de uitvoer wordt: `a: 1, b: 8, c: 6` +```js +console.log(`a: ${a}, b: ${b}, c: ${c}`); +``` + +Controleer of je programma goed werkt met dit commando: + +```bash +javascripting verify scope.js +``` diff --git a/problems/scope/solution_nl.md b/problems/scope/solution_nl.md new file mode 100644 index 00000000..b1fd79d4 --- /dev/null +++ b/problems/scope/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# EXCELLENT! + +Goed gedaan! De tweede function heeft de scope die we zochten. + +Ga nu verder met een meer uitdagende Javascript workshopper **Functional Javascript**: + +npm install -g functional-javascript-workshop + +--- diff --git a/problems/string-length/problem_nl.md b/problems/string-length/problem_nl.md new file mode 100755 index 00000000..25cfe354 --- /dev/null +++ b/problems/string-length/problem_nl.md @@ -0,0 +1,30 @@ + +Je moet vaak weten hoeveel tekens er in een string zitten. + +Daarvoor gebruik je de `.length` eigenschap. Hier is een voorbeeld: + +```js +const example = 'example string' +example.length +``` + +## LET OP + +Zorg ervoor dat er een punt staat tussen `example` en `length`. + +De code hierboven geeft een **number** met het totaal aantal karakters in de **string**. + + +## De uitdaging: + +Maak een bestand met de naam `string-length.js`. + +Maak in dat bestand een variabele met de naam `example`. + +**Wijs de string `'example string'` toe aan de variabele `example`.** + +Gebruik `console.log` om de **length** van de string naar de console te printen. + +**Controleer of je programma goed werkt met dit commando:** + +`javascripting verify string-length.js` diff --git a/problems/string-length/solution_nl.md b/problems/string-length/solution_nl.md new file mode 100644 index 00000000..61ad9293 --- /dev/null +++ b/problems/string-length/solution_nl.md @@ -0,0 +1,9 @@ +--- + +# WIN: 14 CHARACTERS + +Inderdaad! De string `example string` heeft 14 characters. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/strings/problem_nl.md b/problems/strings/problem_nl.md new file mode 100644 index 00000000..40964729 --- /dev/null +++ b/problems/strings/problem_nl.md @@ -0,0 +1,30 @@ +Een **string** is een reeks characters. Een ***character*** is, ruwweg gezegd +een geschreven symbool. Voorbeelden van characters zijn letters, cijfers, leestekens en spaties. + +Strings worden omgeven door enkele of dubbele aanhalingstekens. + +```js +'this is a string' + +"this is also a string" +``` + +## NOTE + +Probeer consistent te zijn. In deze workshop gebruiken we alleen enkele aanhalingstekens. + +## De uitdaging: + +Maak voor deze uitdaging een nieuw bestand met de naam `strings.js`. + +Definieer in dit bestand een nieuwe variabele `someString` zoals hieronder: + +```js +const someString = 'this is a string' +``` + +Gebruik `console.log` om de variabele **someString** naar de console te printen. + +Controleer of je programma goed werkt met dit commando: + +`javascripting verify strings.js` diff --git a/problems/strings/solution_nl.md b/problems/strings/solution_nl.md new file mode 100644 index 00000000..a934ea93 --- /dev/null +++ b/problems/strings/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# SUCCESS. + +Je raakt al lekker gewend aan die strings! + +In volgende uitdagingen behandelen we hoe je strings kunt manipuleren. + +Run `javascripting` in de console om de volgende uitdaging te kiezen. + +--- diff --git a/problems/this/problem_nl.md b/problems/this/problem_nl.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/problem_nl.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/this/solution_nl.md b/problems/this/solution_nl.md new file mode 100644 index 00000000..09d67ae1 --- /dev/null +++ b/problems/this/solution_nl.md @@ -0,0 +1,5 @@ +--- + +# + +--- diff --git a/problems/variables/problem_nl.md b/problems/variables/problem_nl.md new file mode 100755 index 00000000..456f700e --- /dev/null +++ b/problems/variables/problem_nl.md @@ -0,0 +1,33 @@ +Een variabele is een naam die kan verwijzen naar een specifieke waarde. Variabelen worden gedeclareerd met `let` gevolgd door de naam van de variabele. + +Hier is een voorbeeld: + +```js +let example +``` + +De variabele hierboven is **gedeclareerd**, maar nog niet gedefinieerd (de variabel verwijst nog niet naar een specifieke waarde). + +Hier is een voorbeeld van het definiëren van een variabele die naar een specifieke waarde verwijst: + +```js +const example = 'some string' +``` + +# OPMERKING + +Een variabele wordt **gedeclareerd** met `let` en gebruikt "=" om de waarde te **definiëren** waar het naar verwijst. Dit noem je ook wel "Een variabele gelijk maken aan een waarde". + +## De uitdaging: + +Maak een bestand met de naam `variables.js`. + +Declareer een variabele in dit bestand met de naam `example`. + +**Maak de variabele `example` gelijk aan de waarde `'some string'`.** + +Gebruik nu `console.log()` om de `example` variable naar console te printen. + +Controleer of je programma goed werkt met dit commando: + +`javascripting verify variables.js` diff --git a/problems/variables/solution_nl.md b/problems/variables/solution_nl.md new file mode 100644 index 00000000..045d2280 --- /dev/null +++ b/problems/variables/solution_nl.md @@ -0,0 +1,11 @@ +--- + +# JE HEBT EEN VARIABELE GEMAAKT! + +Goed gedaan. + +In de volgende uitdaging gaan we *strings* nog verder bekijken. + +Voer het commando `javascripting` in de console uit om de volgende uitdaging te kiezen. + +--- From e2353beb17061f4f05f15f043f7cdc04990126f0 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Sun, 18 Jul 2021 23:07:19 +0900 Subject: [PATCH 316/346] Get languages automatically --- index.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 8f76f21d..1b235367 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,15 @@ +const path = require('path') +const fs = require('fs') const problem = require('./lib/problem') +const i18nDir = path.join(__dirname, 'i18n') +const languages = ['en'].concat(fs.readdirSync(i18nDir) + .filter((f) => f.match(/\w+\.json/)) + .map((f) => f.replace('.json', '')) +) var jsing = require('workshopper-adventure')({ appDir: __dirname, - languages: ['en', 'ja', 'ko', 'es', 'zh-cn', 'zh-tw', 'pt-br', 'nb-no', 'uk', 'it', 'ru', 'fr', 'nl'], + languages, header: require('workshopper-adventure/default/header'), footer: require('./lib/footer.js') }) From 695a91708914a60e0bb5eabedf7c5aecddfff16f Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Sun, 18 Jul 2021 23:11:00 +0900 Subject: [PATCH 317/346] It is no longer necessary to manually add language options for localization --- LOCALIZING.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/LOCALIZING.md b/LOCALIZING.md index 456a2d2a..c7e15e61 100644 --- a/LOCALIZING.md +++ b/LOCALIZING.md @@ -4,25 +4,6 @@ In computing, localization is the process of adapting software to different lang This guide explains how to contribute a new localization to this workshopper. If you are an international user and would like to bring Nodeschool workshops to a broader audience, please consider contributing a localization! It is simple, fun, and enables more people to learn and practice. -## Add the language option - -In the `index.js` file, the workshopper is instantiated with a list of supported translations. In order to add a new language, add its code to the array: - -```js -const workshopper = require('workshopper-adventure')({ - appDir: __dirname, - languages: ['en', 'ja', 'zh-cn'], - header: require('workshopper-adventure/default/header'), - footer: require('./lib/footer.js') -}) -``` - -If you want to add a new language, e.g. Spanish, add an entry `'es'` to the array: - -```js - , languages: ['en', 'es', 'ja', 'zh-cn'] -``` - ## Menu The menu of the workshopper greets the user with a list of problem names. The strings for these names are contained in the top level `menu.json` file. Translations of problem names should be placed in a JSON file inside the `i18n` folder named with the language code, e.g. `es.json`. Use an existing translation file as reference, ensuring it's up to date with the contents of `menu.json`. From a7146ea89a40924416ff73607c0d75c7076394a0 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Wed, 4 Aug 2021 22:53:43 +0900 Subject: [PATCH 318/346] Run CI test on the Github Actions --- .github/workflows/node.js.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/node.js.yml diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 00000000..ae398124 --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,31 @@ +# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12.x, 14.x, 16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + - run: npm run build --if-present + - run: npm test From d570a191cc601655456bf319a50b85264656b811 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Wed, 4 Aug 2021 23:00:09 +0900 Subject: [PATCH 319/346] misc: Delete config file for travis-ci --- .travis.yml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 474f7403..00000000 --- a/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 10 - - lts/* - - node From f7938e31c13836d9911a0d6d9626c0d9749e469d Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Wed, 4 Aug 2021 23:05:26 +0900 Subject: [PATCH 320/346] misc: fixpack the package.json --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 160a4c36..e80a4dd2 100644 --- a/package.json +++ b/package.json @@ -2,25 +2,25 @@ "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", "version": "2.7.3", - "repository": { - "url": "https://github.com/workshopper/javascripting" - }, "author": "sethvincent", "bin": { "javascripting": "./bin/javascripting" }, - "main": "./index.js", - "preferGlobal": true, "dependencies": { "colors": "^1.4.0", "diff": "^4.0.2", "workshopper-adventure": "^6.1.0" }, - "license": "MIT", "devDependencies": { "standard": "^14.3.3", "workshopper-adventure-test": "^1.2.0" }, + "license": "MIT", + "main": "./index.js", + "preferGlobal": true, + "repository": { + "url": "https://github.com/workshopper/javascripting" + }, "scripts": { "test": "standard && workshopper-adventure-test" } From 13d8d14b18d1004defdec4aa2ba6aad013139802 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Wed, 4 Aug 2021 23:08:01 +0900 Subject: [PATCH 321/346] misc: Specify the lowest version of the Node.js to support --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index e80a4dd2..c1a79763 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,9 @@ "standard": "^14.3.3", "workshopper-adventure-test": "^1.2.0" }, + "engines": { + "node": ">=12.22.4" + }, "license": "MIT", "main": "./index.js", "preferGlobal": true, From d28441c7e6cc24728a3dbfcd1aedff727ccd129f Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Wed, 4 Aug 2021 23:29:38 +0900 Subject: [PATCH 322/346] misc: Remove the package-lock.json --- .gitignore | 1 + package-lock.json | 7910 --------------------------------------------- 2 files changed, 1 insertion(+), 7910 deletions(-) delete mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index b666e34b..bd2b23d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store node_modules .settings +package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 70a8a87c..00000000 --- a/package-lock.json +++ /dev/null @@ -1,7910 +0,0 @@ -{ - "name": "javascripting", - "version": "2.7.3", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "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" - } - }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - } - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": 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": "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" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cardinal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", - "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", - "requires": { - "ansicolors": "~0.2.1", - "redeyed": "~1.0.0" - }, - "dependencies": { - "ansicolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "charm_inheritance-fix": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", - "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=" - }, - "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.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 - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^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==", - "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=" - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "colors-tmpl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-1.0.0.tgz", - "integrity": "sha1-tgrEr4FlVdnt8a0kczfrMCQbbS4=", - "requires": { - "colors": "~1.0.2" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - } - } - }, - "combined-stream-wait-for-it": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", - "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commandico": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/commandico/-/commandico-2.0.4.tgz", - "integrity": "sha512-QF9HmgaY/k9o/7hTbLeH3eP9cjKmz8QHGnqTAZ6KQ4BHt3h2m7+S2+OzSbR5Zs1qBdKMjWxOGufd/wX/pXEhew==", - "requires": { - "@hapi/joi": "^15.1.0", - "explicit": "^0.1.1", - "minimist": "^1.1.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "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 - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "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" - } - }, - "deglob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-4.0.1.tgz", - "integrity": "sha512-/g+RDZ7yf2HvoW+E5Cy+K94YhgcFgr6C8LuHZD1O5HoNPkf3KY6RfXJ0DBGlB/NkLi5gml+G9zqRzk9S0mHZCg==", - "dev": true, - "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^5.0.0", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" - }, - "dependencies": { - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", - "dev": true - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "requires": { - "readable-stream": "~1.1.9" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "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.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "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" - } - }, - "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": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", - "dev": true - } - } - }, - "eslint-config-standard": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz", - "integrity": "sha512-EF6XkrrGVbvv8hL/kYa/m6vnvmUT+K82pJJc4JJVMM6+Qgqh0pnwprSxdduDLB9p/7bIxD+YV5O0wfb8lmcPbA==", - "dev": true - }, - "eslint-config-standard-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-8.1.0.tgz", - "integrity": "sha512-ULVC8qH8qCqbU792ZOO6DaiaZyHNS/5CZt3hKqHkEhVlhPEPN3nfBqqxJCyp59XrjIBZPu1chMYe9T2DXZ7TMw==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-es": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz", - "integrity": "sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ==", - "dev": true, - "requires": { - "eslint-utils": "^1.4.2", - "regexpp": "^3.0.0" - }, - "dependencies": { - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - } - } - }, - "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": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", - "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", - "dev": true, - "requires": { - "eslint-plugin-es": "^2.0.0", - "eslint-utils": "^1.4.2", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", - "dev": true - } - } - }, - "eslint-plugin-promise": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", - "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", - "dev": true - }, - "eslint-plugin-react": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", - "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.1.0", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0", - "object.values": "^1.1.0", - "prop-types": "^15.7.2", - "resolve": "^1.10.1" - }, - "dependencies": { - "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" - } - } - } - }, - "eslint-plugin-standard": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz", - "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==", - "dev": true - }, - "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "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": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "esprima": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" - }, - "esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", - "dev": true, - "requires": { - "estraverse": "^5.0.0" - }, - "dependencies": { - "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", - "dev": true - } - } - }, - "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==", - "dev": true - }, - "explicit": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", - "integrity": "sha512-Y1xrJFdIwhLwKTHDuk7IGp0iMbLlctk7tEjo3hvKvjnWaUaze5lGZf/u0IfanYVbtNogbSIdLlOmuCKP46Td7g==", - "requires": { - "@hapi/joi": "^15.1.0" - } - }, - "extended-terminal-menu": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-2.1.4.tgz", - "integrity": "sha1-GoKVOkOYQvVDsVS0YxgJ/aMs3hM=", - "requires": { - "charm_inheritance-fix": "^1.0.1", - "duplexer2": "0.0.2", - "inherits": "~2.0.0", - "resumer": "~0.0.0", - "through2": "^0.6.3", - "wcstring": "^2.1.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "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 - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.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" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "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": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "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" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": 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": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": 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 - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stdin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", - "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "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-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "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==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "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" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "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 - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "i18n-core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", - "integrity": "sha512-4tNStjxSyIcmOip3Ry6OHhHLPNuNjXtl5TCnFCXMO10kbjLA6SV4ZCkzTCK4vN3NyD7kOEwmbI9uHgXdiHk0hw==", - "requires": { - "escape-html": "^1.0.3" - }, - "dependencies": { - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "acorn": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "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=" - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "optional": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" - }, - "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=" - }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" - }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "requires": { - "chalk": "^1.1.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bind-obj-methods": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz", - "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=" - }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.x.x" - } - }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "requires": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "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=" - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "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" - } - }, - "circular-json": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", - "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=" - }, - "clean-yaml-object": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", - "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=" - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "requires": { - "restore-cursor": "^1.0.1" - } - }, - "cli-width": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "optional": true - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "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=" - }, - "codeclimate-test-reporter": { - "version": "github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", - "from": "codeclimate-test-reporter@github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", - "requires": { - "async": "~1.5.2", - "commander": "2.9.0", - "lcov-parse": "0.0.10", - "request": "~2.79.0" - }, - "dependencies": { - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" - } - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - } - } - }, - "color-support": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.2.tgz", - "integrity": "sha1-ScyZuJ0b3vEpLp2TI8ZpcaM+uJ0=" - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "requires": { - "safe-buffer": "^5.0.1" - } - } - } - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "conventional-changelog": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.3.tgz", - "integrity": "sha1-JigweKw4wJTfKvFgSwpGu8AWXE0=", - "requires": { - "conventional-changelog-angular": "^1.3.3", - "conventional-changelog-atom": "^0.1.0", - "conventional-changelog-codemirror": "^0.1.0", - "conventional-changelog-core": "^1.8.0", - "conventional-changelog-ember": "^0.2.5", - "conventional-changelog-eslint": "^0.1.0", - "conventional-changelog-express": "^0.1.0", - "conventional-changelog-jquery": "^0.1.0", - "conventional-changelog-jscs": "^0.1.0", - "conventional-changelog-jshint": "^0.1.0" - } - }, - "conventional-changelog-angular": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.3.3.tgz", - "integrity": "sha1-586AeoXdR1DhtBf3ZgRUl1EeByY=", - "requires": { - "compare-func": "^1.3.1", - "github-url-from-git": "^1.4.0", - "q": "^1.4.1" - } - }, - "conventional-changelog-atom": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz", - "integrity": "sha1-Z6R8ZqQrL4kJ7xWHyZia4d5zC5I=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-codemirror": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz", - "integrity": "sha1-dXelkdv5tTjnoVCn7mL2WihyszQ=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.8.0.tgz", - "integrity": "sha1-l3hItBbK8V+wnyCxKmLUDvFFuVc=", - "requires": { - "conventional-changelog-writer": "^1.1.0", - "conventional-commits-parser": "^1.0.0", - "dateformat": "^1.0.12", - "get-pkg-repo": "^1.0.0", - "git-raw-commits": "^1.2.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^1.2.0", - "lodash": "^4.0.0", - "normalize-package-data": "^2.3.5", - "q": "^1.4.1", - "read-pkg": "^1.1.0", - "read-pkg-up": "^1.0.1", - "through2": "^2.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "conventional-changelog-ember": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.5.tgz", - "integrity": "sha1-ziHVz4PNXr4F0j/fIy2IRPS1ak8=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-eslint": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz", - "integrity": "sha1-pSQR6ZngUBzlALhWsKZD0DMJB+I=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-express": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz", - "integrity": "sha1-VcbIQcgRliA2wDe9vZZKVK4xD84=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-jquery": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", - "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-jscs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", - "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-jshint": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz", - "integrity": "sha1-AMq46aMxdIer2UxNhGcTQpGNKgc=", - "requires": { - "compare-func": "^1.3.1", - "q": "^1.4.1" - } - }, - "conventional-changelog-writer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz", - "integrity": "sha1-P0y00APrtWmJ0w00WJO1KkNjnI4=", - "requires": { - "compare-func": "^1.3.1", - "conventional-commits-filter": "^1.0.0", - "dateformat": "^1.0.11", - "handlebars": "^4.0.2", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.0.0", - "meow": "^3.3.0", - "semver": "^5.0.1", - "split": "^1.0.0", - "through2": "^2.0.0" - } - }, - "conventional-commits-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", - "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=", - "requires": { - "is-subset": "^0.1.1", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz", - "integrity": "sha1-4ye1MZThp61dxjR57pCZpSsCSGU=", - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^3.3.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" - } - }, - "conventional-recommended-bump": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-0.3.0.tgz", - "integrity": "sha1-6Dnej1fLtDRFyLSWdAHeBkTEJdg=", - "requires": { - "concat-stream": "^1.4.10", - "conventional-commits-filter": "^1.0.0", - "conventional-commits-parser": "^1.0.1", - "git-latest-semver-tag": "^1.0.0", - "git-raw-commits": "^1.0.0", - "meow": "^3.3.0", - "object-assign": "^4.0.1" - } - }, - "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=" - }, - "coveralls": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz", - "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=", - "requires": { - "js-yaml": "3.6.1", - "lcov-parse": "0.0.10", - "log-driver": "1.2.5", - "minimist": "1.2.0", - "request": "2.79.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "js-yaml": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", - "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", - "requires": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" - } - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - } - } - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.x.x" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "^1.0.1" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "^0.10.9" - } - }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "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=" - }, - "deeper": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", - "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=" - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "diff": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", - "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" - }, - "doctrine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", - "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "requires": { - "is-obj": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.21", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.21.tgz", - "integrity": "sha1-Gacl+eUdAwC7wejoIRCf2dr1WSU=", - "requires": { - "es6-iterator": "2", - "es6-symbol": "~3.1" - } - }, - "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-symbol": "^3.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "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" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "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=", - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", - "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" - } - }, - "eslint-config-standard": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", - "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=" - }, - "eslint-import-resolver-node": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", - "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", - "requires": { - "debug": "^2.2.0", - "object-assign": "^4.0.1", - "resolve": "^1.1.6" - } - }, - "eslint-module-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz", - "integrity": "sha1-pvjCHZATWHWc3DXbrBmCrh7li84=", - "requires": { - "debug": "2.2.0", - "pkg-dir": "^1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - } - } - }, - "eslint-plugin-import": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.3.0.tgz", - "integrity": "sha1-N8gB4K2g4pbL3yDD85OstbUq82s=", - "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.2.0", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.2.0", - "eslint-module-utils": "^2.0.0", - "has": "^1.0.1", - "lodash.cond": "^4.3.0", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.0.0.tgz", - "integrity": "sha512-9xERRx9V/8ciUHlTDlz9S4JiTL6Dc5oO+jKTy2mvQpxjhycpYZXzTT1t90IXjf+nAYw6/8sDnZfkeixJHxromA==", - "requires": { - "ignore": "^3.3.3", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "5.3.0" - } - }, - "eslint-plugin-promise": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", - "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=" - }, - "eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" - }, - "espree": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", - "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", - "requires": { - "acorn": "^5.0.1", - "acorn-jsx": "^3.0.0" - }, - "dependencies": { - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "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=" - } - } - } - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", - "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", - "requires": { - "estraverse": "~4.1.0", - "object-assign": "^4.0.1" - }, - "dependencies": { - "estraverse": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", - "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=" - } - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "events-to-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", - "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=" - }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "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=", - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", - "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "requires": { - "null-check": "^1.0.0" - } - }, - "fs-exists-cached": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" - }, - "function-loop": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz", - "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=" - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" - }, - "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=", - "requires": { - "is-property": "^1.0.0" - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "get-pkg-repo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.3.0.tgz", - "integrity": "sha1-Q8a0wEi3XdYE/FOI7ezeVX9jNd8=", - "requires": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", - "through2": "^2.0.0" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "git-latest-semver-tag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/git-latest-semver-tag/-/git-latest-semver-tag-1.0.2.tgz", - "integrity": "sha1-BhEwy/QnQRHMa+RhKz/zptk+JmA=", - "requires": { - "git-semver-tags": "^1.1.2", - "meow": "^3.3.0" - } - }, - "git-raw-commits": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", - "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=", - "requires": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^3.3.0", - "split2": "^2.0.0", - "through2": "^2.0.0" - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - } - }, - "git-semver-tags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.0.tgz", - "integrity": "sha1-sx/QLIq1eL1sm1ysyl4cZMEXesE=", - "requires": { - "meow": "^3.3.0", - "semver": "^5.0.1" - } - }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "requires": { - "ini": "^1.3.2" - } - }, - "github-url-from-git": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", - "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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" - } - }, - "globals": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", - "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - } - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "requires": { - "chalk": "^1.1.1", - "commander": "^2.9.0", - "is-my-json-valid": "^2.12.4", - "pinkie-promise": "^2.0.0" - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "requires": { - "function-bind": "^1.0.2" - } - }, - "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" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "ignore": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", - "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", - "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.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "optional": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "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=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-my-json-valid": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "jsonpointer": "^4.0.0", - "xtend": "^4.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, - "is-resolvable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", - "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", - "requires": { - "tryit": "^1.0.1" - } - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", - "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" - }, - "js-yaml": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", - "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", - "requires": { - "argparse": "^1.0.7", - "esprima": "^3.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "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" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lcov-parse": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", - "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "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=", - "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=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.cond": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", - "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, - "log-driver": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", - "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "optional": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "requires": { - "mime-db": "~1.27.0" - } - }, - "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=" - }, - "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" - } - }, - "mockery": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.0.0.tgz", - "integrity": "sha1-BWmhGhhIRh/cNHz4zKLfLzEpvAM=" - }, - "modify-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", - "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=" - }, - "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=" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "normalize-package-data": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=" - }, - "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=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "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=" - }, - "only-shallow": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", - "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=" - }, - "opener": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "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-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "own-or": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", - "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=" - }, - "own-or-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz", - "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=" - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "parse-github-repo-url": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz", - "integrity": "sha1-KGxT4smWLgZBZJ7jrJUI/KTdlZw=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "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=" - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - } - }, - "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "q": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "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=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", - "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=", - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "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-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "resolve": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", - "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", - "requires": { - "path-parse": "^1.0.5" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "requires": { - "glob": "^7.0.5" - } - }, - "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", - "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=" - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "shelljs": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", - "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.x.x" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": ">=0.0.4" - } - }, - "source-map-support": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", - "requires": { - "source-map": "^0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - } - } - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "requires": { - "spdx-license-ids": "^1.0.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" - }, - "split": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", - "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", - "requires": { - "through": "2" - } - }, - "split2": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz", - "integrity": "sha1-eh9VHhdqkOzTNF9yRqDP4XXvT9A=", - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jodid25519": "^1.0.0", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" - }, - "standard-version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-4.0.0.tgz", - "integrity": "sha1-5XjO/UOrewKUS9dWlSUFLqwbl4c=", - "requires": { - "chalk": "^1.1.3", - "conventional-changelog": "^1.1.0", - "conventional-recommended-bump": "^0.3.0", - "figures": "^1.5.0", - "fs-access": "^1.0.0", - "object-assign": "^4.1.0", - "semver": "^5.1.0", - "yargs": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, - "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=" - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - }, - "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=" - }, - "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=", - "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": { - "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=" - }, - "string-width": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", - "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "tap": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/tap/-/tap-10.3.3.tgz", - "integrity": "sha512-ELPgkGOlrS4fj2iX7CFg9oJ4kGcA8xYurvtJhRN+O/CI52X+vSpHdahjx71ABX3Y774XcPKouU+DYB9lqrR2uQ==", - "requires": { - "bind-obj-methods": "^1.0.0", - "bluebird": "^3.3.1", - "clean-yaml-object": "^0.1.0", - "color-support": "^1.1.0", - "coveralls": "^2.11.2", - "deeper": "^2.1.0", - "foreground-child": "^1.3.3", - "fs-exists-cached": "^1.0.0", - "function-loop": "^1.0.1", - "glob": "^7.0.0", - "isexe": "^1.0.0", - "js-yaml": "^3.3.1", - "nyc": "^11.0.2-candidate.0", - "only-shallow": "^1.0.2", - "opener": "^1.4.1", - "os-homedir": "1.0.1", - "own-or": "^1.0.0", - "own-or-env": "^1.0.0", - "readable-stream": "^2.0.2", - "signal-exit": "^3.0.0", - "source-map-support": "^0.4.3", - "stack-utils": "^1.0.0", - "tap-mocha-reporter": "^3.0.1", - "tap-parser": "^5.3.1", - "tmatch": "^3.0.0", - "trivial-deferred": "^1.0.1", - "yapool": "^1.0.0" - }, - "dependencies": { - "nyc": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.0.2.tgz", - "integrity": "sha512-31rRd6ME9NM17w0oPKqi51a6fzJAqYarnzQXK+iL8XaX+3H6VH0BQut7qHIgrv2mBASRic4oNi2KRgcbFODrsQ==", - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.3.0", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.1", - "istanbul-lib-hook": "^1.0.7", - "istanbul-lib-instrument": "^1.7.2", - "istanbul-lib-report": "^1.1.1", - "istanbul-lib-source-maps": "^1.2.1", - "istanbul-reports": "^1.1.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.0.2", - "micromatch": "^2.3.11", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.5.4", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.3.6", - "test-exclude": "^4.1.1", - "yargs": "^8.0.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "optional": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "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=" - }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "requires": { - "default-require-extensions": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "arr-flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=" - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "requires": { - "chalk": "^1.1.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "babel-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", - "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.2.0", - "source-map": "^0.5.0", - "trim-right": "^1.0.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-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.10.0" - } - }, - "babel-template": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", - "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1", - "babylon": "^6.11.0", - "lodash": "^4.2.0" - } - }, - "babel-traverse": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", - "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", - "requires": { - "babel-code-frame": "^6.22.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "babylon": "^6.15.0", - "debug": "^2.2.0", - "globals": "^9.0.0", - "invariant": "^2.2.0", - "lodash": "^4.2.0" - } - }, - "babel-types": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", - "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", - "requires": { - "babel-runtime": "^6.22.0", - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^1.0.1" - } - }, - "babylon": { - "version": "6.17.2", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.2.tgz", - "integrity": "sha1-IB0l71+JLEG65JSIsI2w3Udun1w=" - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "requires": { - "balanced-match": "^0.4.1", - "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=", - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caching-transform": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - } - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "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" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "optional": 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=" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" - }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "requires": { - "strip-bom": "^2.0.0" - } - }, - "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" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "^0.2.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=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "execa": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz", - "integrity": "sha1-3j+4XLjW6RyFvLzrFkWBeFy1ezY=", - "requires": { - "cross-spawn": "^4.0.0", - "get-stream": "^2.2.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "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=", - "requires": { - "fill-range": "^2.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "requires": { - "is-extglob": "^1.0.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "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=", - "requires": { - "for-in": "^1.0.1" - } - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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=", - "requires": { - "is-glob": "^2.0.0" - } - }, - "globals": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", - "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "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": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" - }, - "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=", - "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=", - "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-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "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=" - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "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=" - }, - "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" - } - }, - "istanbul-lib-coverage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==" - }, - "istanbul-lib-hook": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", - "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.2.tgz", - "integrity": "sha512-lPgUY+Pa5dlq2/l0qs1PJZ54QPSfo+s4+UZdkb2d0hbOyrEIAbUJphBLFjEyXBdeCONgGRADFzs3ojfFtmuwFA==", - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.13.0", - "istanbul-lib-coverage": "^1.1.1", - "semver": "^5.3.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", - "requires": { - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", - "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", - "requires": { - "debug": "^2.6.3", - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - } - }, - "istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-P8G873A0kW24XRlxHVGhMJBhQ8gWAec+dae7ZxOBzxT4w+a9ATSPvRVK3LB1RAJ9S8bg2tOyWHAGW40Zd2dKfw==", - "requires": { - "handlebars": "^4.0.3" - } - }, - "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "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" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "optional": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "requires": { - "js-tokens": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "md5-hex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.3.tgz", - "integrity": "sha1-2hQV8nIqURnbB7FMT5c0EIY6Kr8=", - "requires": { - "source-map": "^0.5.3" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "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.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" - }, - "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=" - }, - "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=" - }, - "normalize-package-data": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.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" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "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.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz", - "integrity": "sha1-FZGN7VEFIrge565aMJ1U9jn8OaQ=", - "requires": { - "execa": "^0.5.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "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=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "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-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "randomatic": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", - "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", - "requires": { - "is-number": "^2.0.2", - "kind-of": "^3.0.2" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "requires": { - "is-equal-shallow": "^0.1.3", - "is-primitive": "^2.0.0" - } - }, - "remove-trailing-separator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", - "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=" - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" - }, - "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-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "requires": { - "glob": "^7.0.5" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - }, - "spawn-wrap": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.3.6.tgz", - "integrity": "sha512-5bEhZ11kqwoECJwfbur2ALU1NBnnCNbFzdWGHEXCiSsVhH+Ubz6eesa1DuQcm05pk38HknqP556f3CFhqws2ZA==", - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.3.3", - "signal-exit": "^3.0.2", - "which": "^1.2.4" - } - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "requires": { - "spdx-license-ids": "^1.0.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" - }, - "string-width": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", - "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } - } - }, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "test-exclude": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", - "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - } - }, - "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=" - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "uglify-js": { - "version": "2.8.27", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", - "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.1.tgz", - "integrity": "sha1-Qg73XoQMFFeoCtzKm8b6OEneUao=", - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "yargs-parser": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "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=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "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=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^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=" - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } - } - } - } - }, - "os-homedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", - "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=" - } - } - }, - "tap-mocha-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.3.tgz", - "integrity": "sha1-5ZF/rT2acJV/m3xzbnk764fX2vE=", - "requires": { - "color-support": "^1.1.0", - "debug": "^2.1.3", - "diff": "^1.3.2", - "escape-string-regexp": "^1.0.3", - "glob": "^7.0.5", - "js-yaml": "^3.3.1", - "readable-stream": "^2.1.5", - "tap-parser": "^5.1.0", - "unicode-length": "^1.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "optional": true, - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - } - } - }, - "tap-parser": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.3.3.tgz", - "integrity": "sha1-U+yKkPJ11v/0PxaeVqZ5UCp0EYU=", - "requires": { - "events-to-array": "^1.0.1", - "js-yaml": "^3.2.7", - "readable-stream": "^2" - } - }, - "text-extensions": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.4.0.tgz", - "integrity": "sha1-w4XS6Ah5/m75eJPhcJ2I2UU3Juk=" - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "requires": { - "safe-buffer": "^5.0.1" - } - } - } - }, - "tmatch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.0.0.tgz", - "integrity": "sha1-fSBx3tu8WH8ZSs2jBnvQdHtnCZE=" - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "requires": { - "punycode": "^1.4.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=" - }, - "trivial-deferred": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", - "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=" - }, - "tryit": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", - "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=" - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "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=" - }, - "uglify-js": { - "version": "2.8.27", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", - "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "optional": true - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "unicode-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", - "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", - "requires": { - "punycode": "^1.3.2", - "strip-ansi": "^3.0.1" - } - }, - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", - "requires": { - "os-homedir": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "requires": { - "extsprintf": "1.0.2" - } - }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "requires": { - "isexe": "^2.0.0" - }, - "dependencies": { - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - } - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "optional": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "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=", - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yapool": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", - "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=" - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "yargs-parser": "^4.2.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } - } - } - } - }, - "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": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "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==" - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "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-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-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "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 - }, - "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.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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" - } - }, - "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 - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "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" - }, - "dependencies": { - "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 - } - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "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 - }, - "jsx-ast-utils": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", - "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, - "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.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2" - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "marked": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", - "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "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==" - }, - "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" - } - }, - "mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "dependencies": { - "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" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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 - }, - "msee": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", - "integrity": "sha512-4ujQAsunNBX8AVN6nyiIj4jW3uHQsY3xpFVKTzbjKiq57C6GXh0h12qYehXwLYItmhpgWRB3W8PnzODKWxwXxA==", - "requires": { - "ansi-regex": "^3.0.0", - "ansicolors": "^0.3.2", - "cardinal": "^1.0.0", - "chalk": "^2.3.1", - "combined-stream-wait-for-it": "^1.1.0", - "entities": "^1.1.1", - "marked": "0.3.12", - "nopt": "^4.0.1", - "strip-ansi": "^4.0.0", - "table-header": "^0.2.2", - "text-table": "^0.2.0", - "through2": "^2.0.3", - "wcstring": "^2.1.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": 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 - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "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.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", - "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "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": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.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=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "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 - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.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" - } - }, - "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-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "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-conf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", - "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "load-json-file": "^5.2.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true - } - } - }, - "pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", - "dev": true, - "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "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" - } - }, - "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 - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "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 - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "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": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "requires": { - "picomatch": "^2.0.4" - } - }, - "redeyed": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", - "requires": { - "esprima": "~3.0.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "registry-auth-token": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", - "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "~2.3.4" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true - }, - "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "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==" - }, - "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": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "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 - }, - "simple-terminal-menu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", - "integrity": "sha1-apqmscQd9T/AsCB4DHZNvN7Egf8=", - "requires": { - "chalk": "^1.1.1", - "extended-terminal-menu": "^2.1.2", - "wcstring": "^2.1.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "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=" - }, - "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" - } - }, - "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" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "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": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { - "through": "2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "standard": { - "version": "14.3.3", - "resolved": "https://registry.npmjs.org/standard/-/standard-14.3.3.tgz", - "integrity": "sha512-HBEAD5eVXrr2o/KZ3kU8Wwaxw90wzoq4dOQe6vlRnPoQ6stn4LCLRLBBDp0CjH/aOTL9bDZJbRUOZcBaBnNJ0A==", - "dev": true, - "requires": { - "eslint": "~6.8.0", - "eslint-config-standard": "14.1.0", - "eslint-config-standard-jsx": "8.1.0", - "eslint-plugin-import": "~2.18.0", - "eslint-plugin-node": "~10.0.0", - "eslint-plugin-promise": "~4.2.1", - "eslint-plugin-react": "~7.14.2", - "eslint-plugin-standard": "~4.0.0", - "standard-engine": "^12.0.0" - } - }, - "standard-engine": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-12.0.0.tgz", - "integrity": "sha512-gJIIRb0LpL7AHyGbN9+hJ4UJns37lxmNTnMGRLC8CFrzQ+oB/K60IQjKNgPBCB2VP60Ypm6f8DFXvhVWdBOO+g==", - "dev": true, - "requires": { - "deglob": "^4.0.0", - "get-stdin": "^7.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^3.1.0" - } - }, - "string-to-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz", - "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", - "requires": { - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "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": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - } - } - }, - "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=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "table-header": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", - "integrity": "sha1-fJrbQg6laftHF95dj1xFFIBNLAo=", - "requires": { - "repeat-string": "^1.5.2" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "requires": { - "readable-stream": "2 || 3" - } - }, - "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-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "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" - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "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.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "varsize-string": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", - "integrity": "sha1-7xs7bHLbCDXqL4TN+R/sMMUgaIs=" - }, - "wcsize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wcsize/-/wcsize-1.0.0.tgz", - "integrity": "sha1-qKLhXmqKdHkdulgPaaV9J+hQ6h4=" - }, - "wcstring": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/wcstring/-/wcstring-2.1.1.tgz", - "integrity": "sha1-3tUtdFycceJNCkidKCbSKjZe0Gc=", - "requires": { - "varsize-string": "^2.2.1", - "wcsize": "^1.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" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "workshopper-adventure": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.1.0.tgz", - "integrity": "sha512-er+wGdVfFyv+WNH9IgTQvmKkaZfjL1XhplF44FV5dA/FxTKpLRUoyVzGbn9Y0sOmnIzb3cST+YP3vN4I4+vssg==", - "requires": { - "after": "^0.8.2", - "chalk": "^2.4.2", - "colors-tmpl": "~1.0.0", - "combined-stream-wait-for-it": "^1.1.0", - "commandico": "^2.0.4", - "i18n-core": "^3.0.0", - "latest-version": "^5.1.0", - "msee": "^0.3.5", - "simple-terminal-menu": "^1.1.3", - "split": "^1.0.0", - "string-to-stream": "^3.0.1", - "strip-ansi": "^5.2.0", - "through2": "^3.0.1", - "workshopper-adventure-storage": "^3.0.0" - } - }, - "workshopper-adventure-storage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.0.tgz", - "integrity": "sha1-AXTFsve4DXLJG8Upv70H9HnCY6A=", - "requires": { - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4" - } - }, - "workshopper-adventure-test": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/workshopper-adventure-test/-/workshopper-adventure-test-1.2.0.tgz", - "integrity": "sha512-Y4Vr8gi0/BYEjzz53rSpCbDuoDdm/thWq3gxpxrgsSbg5EnhPddQQw/+TUdtvissZKBt82IR+RptG1MNtlFg0A==", - "dev": true, - "requires": { - "glob": "^7.1.6", - "lodash": "^4.17.15", - "mocha": "^7.1.1", - "rimraf": "^3.0.2", - "workshopper-adventure": "^6.1.0" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "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==" - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "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 - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" - } - } - } -} From 3a3c9d3c405a19d3d9bdb7c029aff4dc9a37bdaa Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Wed, 4 Aug 2021 23:45:14 +0900 Subject: [PATCH 323/346] refactor: Support standard/no-callback-literal in the lib/compare-solution.js --- lib/compare-solution.js | 10 ++++------ lib/problem.js | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/compare-solution.js b/lib/compare-solution.js index f850b766..9fec9ef7 100644 --- a/lib/compare-solution.js +++ b/lib/compare-solution.js @@ -1,5 +1,3 @@ -/* eslint-disable standard/no-callback-literal */ - require('colors') var path = require('path') @@ -10,20 +8,20 @@ module.exports = function (solution, attempt, i18n, cb) { run(solution, i18n, function (err, solutionResult) { if (err) { console.error(err) - return cb(false) + return cb(err, false) } run(attempt, i18n, function (err, attemptResult) { if (err && err.code !== 8) { console.error(err) - return cb(false) + return cb(err, false) } if (solutionResult === attemptResult) { - return cb(true) + return cb(err, true) } - cb(false, { + cb(null, false, { solution: solutionResult, attempt: err || attemptResult, diff: generateDiff(solutionResult, attemptResult) diff --git a/lib/problem.js b/lib/problem.js index dc011192..f69136b3 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -23,7 +23,7 @@ module.exports = function createProblem (dirname) { exports.verify = function (args, cb) { var attemptPath = path.resolve(process.cwd(), args[0]) - compare(this.solutionPath, attemptPath, i18n, function (match, obj) { + compare(this.solutionPath, attemptPath, i18n, function (_, match, obj) { if (match) { return cb(true) } From dbd7586b1f17c21c2401cc0981811702287c7a91 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 5 Aug 2021 00:07:32 +0900 Subject: [PATCH 324/346] refactor: Support standard/no-callback-literal in the lib/compare-solution.js --- lib/problem.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/problem.js b/lib/problem.js index f69136b3..005059c8 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -1,5 +1,3 @@ -/* eslint-disable standard/no-callback-literal */ - var path = require('path') var getFile = require('./get-file') var compare = require('./compare-solution') @@ -25,7 +23,7 @@ module.exports = function createProblem (dirname) { var attemptPath = path.resolve(process.cwd(), args[0]) compare(this.solutionPath, attemptPath, i18n, function (_, match, obj) { if (match) { - return cb(true) + return cb(null, true) } if (!obj) { @@ -45,7 +43,7 @@ module.exports = function createProblem (dirname) { require('./footer.js') ] - cb(false) + cb(null, false) }.bind(this)) } From e2c2c850757e0c1a692b907b73b1e5df78b02311 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 5 Aug 2021 00:11:27 +0900 Subject: [PATCH 325/346] misc: Update the standard --- index.js | 6 +++--- lib/compare-solution.js | 10 +++++----- lib/footer.js | 2 +- lib/get-file.js | 2 +- lib/problem.js | 18 +++++++++--------- lib/run-solution.js | 4 ++-- package.json | 4 ++-- solutions/numbers/index.js | 2 +- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/index.js b/index.js index 1b235367..01611fc9 100644 --- a/index.js +++ b/index.js @@ -7,7 +7,7 @@ const languages = ['en'].concat(fs.readdirSync(i18nDir) .filter((f) => f.match(/\w+\.json/)) .map((f) => f.replace('.json', '')) ) -var jsing = require('workshopper-adventure')({ +const jsing = require('workshopper-adventure')({ appDir: __dirname, languages, header: require('workshopper-adventure/default/header'), @@ -18,8 +18,8 @@ jsing.addAll(require('./menu.json').map(function (name) { return { name, fn: function () { - var p = name.toLowerCase().replace(/\s/g, '-') - var dir = require('path').join(__dirname, 'problems', p) + const p = name.toLowerCase().replace(/\s/g, '-') + const dir = require('path').join(__dirname, 'problems', p) return problem(dir) } } diff --git a/lib/compare-solution.js b/lib/compare-solution.js index 9fec9ef7..fba0dc0b 100644 --- a/lib/compare-solution.js +++ b/lib/compare-solution.js @@ -1,8 +1,8 @@ require('colors') -var path = require('path') -var diff = require('diff') -var run = require(path.join(__dirname, 'run-solution')) +const path = require('path') +const diff = require('diff') +const run = require(path.join(__dirname, 'run-solution')) module.exports = function (solution, attempt, i18n, cb) { run(solution, i18n, function (err, solutionResult) { @@ -31,9 +31,9 @@ module.exports = function (solution, attempt, i18n, cb) { } function generateDiff (solution, attempt) { - var parts = diff.diffChars(solution, attempt) + const parts = diff.diffChars(solution, attempt) - var result = '' + let result = '' parts.forEach(function (part) { if (part.added) { diff --git a/lib/footer.js b/lib/footer.js index 2b314bac..b51c5442 100644 --- a/lib/footer.js +++ b/lib/footer.js @@ -1,4 +1,4 @@ -var path = require('path') +const path = require('path') module.exports = [ { text: '---', type: 'md' }, { file: path.join(__dirname, '..', 'i18n', 'footer', '{lang}.md') }, diff --git a/lib/get-file.js b/lib/get-file.js index b5da99d1..84b79dc2 100644 --- a/lib/get-file.js +++ b/lib/get-file.js @@ -1,4 +1,4 @@ -var fs = require('fs') +const fs = require('fs') module.exports = function (filepath) { return fs.readFileSync(filepath, 'utf8') diff --git a/lib/problem.js b/lib/problem.js index 005059c8..b1986af2 100644 --- a/lib/problem.js +++ b/lib/problem.js @@ -1,18 +1,18 @@ -var path = require('path') -var getFile = require('./get-file') -var compare = require('./compare-solution') +const path = require('path') +const getFile = require('./get-file') +const compare = require('./compare-solution') module.exports = function createProblem (dirname) { - var exports = {} + const exports = {} - var problemName = dirname.split(path.sep) - var i18n + let problemName = dirname.split(path.sep) + let i18n problemName = problemName[problemName.length - 1] exports.init = function (workshopper) { i18n = workshopper.i18n - var postfix = workshopper.i18n.lang() === 'en' ? '' : '_' + workshopper.i18n.lang() + const postfix = workshopper.i18n.lang() === 'en' ? '' : '_' + workshopper.i18n.lang() this.problem = { file: path.join(dirname, 'problem' + postfix + '.md') } this.solution = { file: path.join(dirname, 'solution' + postfix + '.md') } this.solutionPath = path.resolve(__dirname, '..', 'solutions', problemName, 'index.js') @@ -20,7 +20,7 @@ module.exports = function createProblem (dirname) { } exports.verify = function (args, cb) { - var attemptPath = path.resolve(process.cwd(), args[0]) + const attemptPath = path.resolve(process.cwd(), args[0]) compare(this.solutionPath, attemptPath, i18n, function (_, match, obj) { if (match) { return cb(null, true) @@ -31,7 +31,7 @@ module.exports = function createProblem (dirname) { return } - var message = getFile(this.troubleshootingPath) + let message = getFile(this.troubleshootingPath) message = message.replace(/%solution%/g, obj.solution) message = message.replace(/%attempt%/g, obj.attempt) diff --git a/lib/run-solution.js b/lib/run-solution.js index 2b48ab61..fea8a877 100644 --- a/lib/run-solution.js +++ b/lib/run-solution.js @@ -1,5 +1,5 @@ -var fs = require('fs') -var exec = require('child_process').exec +const fs = require('fs') +const exec = require('child_process').exec /** * @param {!string} filePath diff --git a/package.json b/package.json index c1a79763..eded6cbf 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,10 @@ "dependencies": { "colors": "^1.4.0", "diff": "^4.0.2", - "workshopper-adventure": "^6.1.0" + "workshopper-adventure": "^6.1.1" }, "devDependencies": { - "standard": "^14.3.3", + "standard": "^16.0.3", "workshopper-adventure-test": "^1.2.0" }, "engines": { diff --git a/solutions/numbers/index.js b/solutions/numbers/index.js index 07c9a7bf..c9ff8ee7 100644 --- a/solutions/numbers/index.js +++ b/solutions/numbers/index.js @@ -1,2 +1,2 @@ -var example = 123456789 +const example = 123456789 console.log(example) From 34e8d120b6c1e0ec61072e097424248fc8ea5c9b Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 5 Aug 2021 00:13:08 +0900 Subject: [PATCH 326/346] misc: Update the diff --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eded6cbf..5b8628ce 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "colors": "^1.4.0", - "diff": "^4.0.2", + "diff": "^5.0.0", "workshopper-adventure": "^6.1.1" }, "devDependencies": { From 99f9c68fde4468420d16e1c67b78353397d86dbe Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 5 Aug 2021 00:15:45 +0900 Subject: [PATCH 327/346] misc: Update the workshopper-adventure --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5b8628ce..c9ab2324 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "dependencies": { "colors": "^1.4.0", "diff": "^5.0.0", - "workshopper-adventure": "^6.1.1" + "workshopper-adventure": "^7.0.0" }, "devDependencies": { "standard": "^16.0.3", From 63e7e11f656ba4539a9bd443e67c6b0eca535ad2 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Thu, 5 Aug 2021 00:20:40 +0900 Subject: [PATCH 328/346] misc: Add the package-lock.json --- .gitignore | 1 - package-lock.json | 7961 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 7961 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index bd2b23d5..b666e34b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .DS_Store node_modules .settings -package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..7e631fac --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7961 @@ +{ + "name": "javascripting", + "version": "2.7.3", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "2.7.3", + "license": "MIT", + "dependencies": { + "colors": "^1.4.0", + "diff": "^5.0.0", + "workshopper-adventure": "^7.0.0" + }, + "bin": { + "javascripting": "bin/javascripting" + }, + "devDependencies": { + "standard": "^16.0.3", + "workshopper-adventure-test": "^1.2.0" + }, + "engines": { + "node": ">=12.22.4" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "node_modules/@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "node_modules/@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "node_modules/@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dependencies": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "node_modules/@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dependencies": { + "@hapi/hoek": "^8.3.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/charm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/charm/-/charm-1.0.2.tgz", + "integrity": "sha512-8nrGGRpu/OZKpDxpuloLlZ6g9t4+DZW057RgpWrzOHiqt/1kbPvSiMDJa5G8Z635By9fMXEoGvWZ5bO/A6dv/w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "16.4.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.11.tgz", + "integrity": "sha512-nWSFUbuNiPKJEe1IViuodSI+9cM+vpM8SWF/O6dJK7wmGRNq55U7XavJHrlRrPkSMuUZUFzg1xaZ1B+ZZCrRWw==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cardinal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", + "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", + "dependencies": { + "ansicolors": "~0.2.1", + "redeyed": "~1.0.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/cardinal/node_modules/ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", + "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", + "dependencies": { + "inherits": "^2.0.1" + } + }, + "node_modules/charm_inheritance-fix": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", + "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.1" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/colors-tmpl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-1.0.0.tgz", + "integrity": "sha1-tgrEr4FlVdnt8a0kczfrMCQbbS4=", + "dependencies": { + "colors": "~1.0.2" + } + }, + "node_modules/colors-tmpl/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream-wait-for-it": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", + "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commandico": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/commandico/-/commandico-2.0.4.tgz", + "integrity": "sha512-QF9HmgaY/k9o/7hTbLeH3eP9cjKmz8QHGnqTAZ6KQ4BHt3h2m7+S2+OzSbR5Zs1qBdKMjWxOGufd/wX/pXEhew==", + "dependencies": { + "@hapi/joi": "^15.1.0", + "explicit": "^0.1.1", + "minimist": "^1.1.1" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/enquirer/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract/node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz", + "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-standard": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", + "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^7.12.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.2.1" + } + }, + "node_modules/eslint-config-standard-jsx": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz", + "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^7.12.1", + "eslint-plugin-react": "^7.21.5" + } + }, + "node_modules/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, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-module-utils": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "dependencies": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-node/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", + "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.18.1", + "string.prototype.matchall": "^4.0.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", + "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/explicit": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", + "integrity": "sha512-Y1xrJFdIwhLwKTHDuk7IGp0iMbLlctk7tEjo3hvKvjnWaUaze5lGZf/u0IfanYVbtNogbSIdLlOmuCKP46Td7g==", + "dependencies": { + "@hapi/joi": "^15.1.0" + } + }, + "node_modules/extended-terminal-menu": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-3.0.3.tgz", + "integrity": "sha512-Qo99b68FeJyNCHYSLuVLP9RX9d3sTeo/Hfe8Bck/KSJ6okkduyGs08327GjztC/yCL4RtsTn5f8DwI2Mywqu4w==", + "dependencies": { + "@types/charm": "^1.0.2", + "charm": "^1.0.2", + "color-convert": "^2.0.1", + "duplexer2": "^0.1.4", + "resumer": "~0.0.0", + "supports-color": "^7.1.0", + "through2": "^4.0.2", + "wcstring": "^2.1.0" + } + }, + "node_modules/extended-terminal-menu/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/extended-terminal-menu/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/extended-terminal-menu/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/extended-terminal-menu/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/extended-terminal-menu/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/extended-terminal-menu/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "dependencies": { + "flat-cache": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/i18n-core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", + "integrity": "sha512-4tNStjxSyIcmOip3Ry6OHhHLPNuNjXtl5TCnFCXMO10kbjLA6SV4ZCkzTCK4vN3NyD7kOEwmbI9uHgXdiHk0hw==", + "dependencies": { + "escape-html": "^1.0.3" + } + }, + "node_modules/i18n-core/node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "engines": { + "node": "*" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jsx-ast-utils/node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/marked": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", + "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==", + "bin": { + "marked": "bin/marked" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 8.10.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/msee": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", + "integrity": "sha512-4ujQAsunNBX8AVN6nyiIj4jW3uHQsY3xpFVKTzbjKiq57C6GXh0h12qYehXwLYItmhpgWRB3W8PnzODKWxwXxA==", + "dependencies": { + "ansi-regex": "^3.0.0", + "ansicolors": "^0.3.2", + "cardinal": "^1.0.0", + "chalk": "^2.3.1", + "combined-stream-wait-for-it": "^1.1.0", + "entities": "^1.1.1", + "marked": "0.3.12", + "nopt": "^4.0.1", + "strip-ansi": "^4.0.0", + "table-header": "^0.2.2", + "text-table": "^0.2.0", + "through2": "^2.0.3", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + }, + "bin": { + "msee": "bin/msee" + } + }, + "node_modules/msee/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/msee/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-environment-flags/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.entries": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/redeyed": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", + "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", + "dependencies": { + "esprima": "~3.0.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-terminal-menu": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-2.0.0.tgz", + "integrity": "sha512-m9TpPbiYkHnq0FktmYpvcELiHFP7I9TF9hDxa37nv8CODKDHdCUxHoAa1krso3ULtAexhrlAI5UjEUA/DDbpNg==", + "dependencies": { + "ansi-styles": "^4.2.1", + "extended-terminal-menu": "^3.0.3", + "wcstring": "^2.1.0" + } + }, + "node_modules/simple-terminal-menu/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/simple-terminal-menu/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/simple-terminal-menu/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "dev": true + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", + "integrity": "sha512-70F7NH0hSkNXosXRltjSv6KpTAOkUkSfyu3ynyM5dtRUiLtR+yX9EGZ7RKwuGUqCJiX/cnkceVM6HTZ4JpaqDg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "eslint": "~7.13.0", + "eslint-config-standard": "16.0.2", + "eslint-config-standard-jsx": "10.0.0", + "eslint-plugin-import": "~2.22.1", + "eslint-plugin-node": "~11.1.0", + "eslint-plugin-promise": "~4.2.1", + "eslint-plugin-react": "~7.21.5", + "standard-engine": "^14.0.1" + }, + "bin": { + "standard": "bin/cmd.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/standard-engine": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-14.0.1.tgz", + "integrity": "sha512-7FEzDwmHDOGva7r9ifOzD3BGdTbA7ujJ50afLVdW/tK14zQEptJjbFuUfn50irqdHDcTbNh0DTIoMPynMCXb0Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "get-stdin": "^8.0.0", + "minimist": "^1.2.5", + "pkg-conf": "^3.1.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8.10" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-to-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz", + "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", + "dependencies": { + "readable-stream": "^3.4.0" + } + }, + "node_modules/string-to-stream/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", + "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "dependencies": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/table-header": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", + "integrity": "sha1-fJrbQg6laftHF95dj1xFFIBNLAo=", + "dependencies": { + "repeat-string": "^1.5.2" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "dependencies": { + "readable-stream": "2 || 3" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", + "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", + "dev": true, + "dependencies": { + "json5": "^2.2.0", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/varsize-string": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", + "integrity": "sha1-7xs7bHLbCDXqL4TN+R/sMMUgaIs=" + }, + "node_modules/wcsize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wcsize/-/wcsize-1.0.0.tgz", + "integrity": "sha1-qKLhXmqKdHkdulgPaaV9J+hQ6h4=" + }, + "node_modules/wcstring": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/wcstring/-/wcstring-2.1.1.tgz", + "integrity": "sha1-3tUtdFycceJNCkidKCbSKjZe0Gc=", + "dependencies": { + "varsize-string": "^2.2.1", + "wcsize": "^1.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-7.0.0.tgz", + "integrity": "sha512-G1NuuxtT+AMg+ybxvhhv9J67NRsLLCy3erM3m4fErOS+MdcwrqKejrlAz8K7T/Q/SYxR/gMNZFX+xV01Ejxskg==", + "license": "MIT", + "dependencies": { + "after": "^0.8.2", + "chalk": "^3.0.0", + "colors-tmpl": "~1.0.0", + "combined-stream-wait-for-it": "^1.1.0", + "commandico": "^2.0.4", + "i18n-core": "^3.0.0", + "latest-version": "^5.1.0", + "msee": "^0.3.5", + "simple-terminal-menu": "^2.0.0", + "split": "^1.0.0", + "string-to-stream": "^3.0.1", + "strip-ansi": "^6.0.0", + "through2": "^3.0.1", + "workshopper-adventure-storage": "^3.0.0" + } + }, + "node_modules/workshopper-adventure-storage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.0.tgz", + "integrity": "sha1-AXTFsve4DXLJG8Upv70H9HnCY6A=", + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" + } + }, + "node_modules/workshopper-adventure-test": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure-test/-/workshopper-adventure-test-1.2.0.tgz", + "integrity": "sha512-Y4Vr8gi0/BYEjzz53rSpCbDuoDdm/thWq3gxpxrgsSbg5EnhPddQQw/+TUdtvissZKBt82IR+RptG1MNtlFg0A==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "lodash": "^4.17.15", + "mocha": "^7.1.1", + "rimraf": "^3.0.2", + "workshopper-adventure": "^6.1.0" + }, + "bin": { + "workshopper-adventure-test": "bin/workshopper-adventure-test" + } + }, + "node_modules/workshopper-adventure-test/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure-test/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/workshopper-adventure-test/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure-test/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/workshopper-adventure-test/node_modules/duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "dependencies": { + "readable-stream": "~1.1.9" + } + }, + "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-2.1.4.tgz", + "integrity": "sha1-GoKVOkOYQvVDsVS0YxgJ/aMs3hM=", + "dev": true, + "dependencies": { + "charm_inheritance-fix": "^1.0.1", + "duplexer2": "0.0.2", + "inherits": "~2.0.0", + "resumer": "~0.0.0", + "through2": "^0.6.3", + "wcstring": "^2.1.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure-test/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/workshopper-adventure-test/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/workshopper-adventure-test/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", + "integrity": "sha1-apqmscQd9T/AsCB4DHZNvN7Egf8=", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "extended-terminal-menu": "^2.1.2", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/workshopper-adventure-test/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure-test/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure-test/node_modules/workshopper-adventure": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.1.1.tgz", + "integrity": "sha512-Ny0LfUW4HeU4XlQyYYgqFzQoK39Un4XQSl/D3RUS2gW1BU8FDufnQu9IYVN9DYt6hzM+kaD7EumC7BXHEpPWFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "after": "^0.8.2", + "chalk": "^3.0.0", + "colors-tmpl": "~1.0.0", + "combined-stream-wait-for-it": "^1.1.0", + "commandico": "^2.0.4", + "i18n-core": "^3.0.0", + "latest-version": "^5.1.0", + "msee": "^0.3.5", + "simple-terminal-menu": "^1.1.3", + "split": "^1.0.0", + "string-to-stream": "^3.0.1", + "strip-ansi": "^6.0.0", + "through2": "^3.0.1", + "workshopper-adventure-storage": "^3.0.0" + } + }, + "node_modules/workshopper-adventure/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/workshopper-adventure/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/workshopper-adventure/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/workshopper-adventure/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@eslint/eslintrc": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/charm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/charm/-/charm-1.0.2.tgz", + "integrity": "sha512-8nrGGRpu/OZKpDxpuloLlZ6g9t4+DZW057RgpWrzOHiqt/1kbPvSiMDJa5G8Z635By9fMXEoGvWZ5bO/A6dv/w==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "16.4.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.11.tgz", + "integrity": "sha512-nWSFUbuNiPKJEe1IViuodSI+9cM+vpM8SWF/O6dJK7wmGRNq55U7XavJHrlRrPkSMuUZUFzg1xaZ1B+ZZCrRWw==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "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==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "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" + } + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "requires": { + "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" + } + }, + "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" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": 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": "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" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cardinal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", + "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~1.0.0" + }, + "dependencies": { + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "charm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", + "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", + "requires": { + "inherits": "^2.0.1" + } + }, + "charm_inheritance-fix": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", + "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=", + "dev": true + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^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==", + "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=" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "colors-tmpl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-1.0.0.tgz", + "integrity": "sha1-tgrEr4FlVdnt8a0kczfrMCQbbS4=", + "requires": { + "colors": "~1.0.2" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } + } + }, + "combined-stream-wait-for-it": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", + "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commandico": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/commandico/-/commandico-2.0.4.tgz", + "integrity": "sha512-QF9HmgaY/k9o/7hTbLeH3eP9cjKmz8QHGnqTAZ6KQ4BHt3h2m7+S2+OzSbR5Zs1qBdKMjWxOGufd/wX/pXEhew==", + "requires": { + "@hapi/joi": "^15.1.0", + "explicit": "^0.1.1", + "minimist": "^1.1.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "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 + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "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" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + } + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "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": "7.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz", + "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-config-standard": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", + "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", + "dev": true, + "requires": {} + }, + "eslint-config-standard-jsx": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz", + "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==", + "dev": true, + "requires": {} + }, + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.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": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.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 + } + } + }, + "eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", + "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.18.1", + "string.prototype.matchall": "^4.0.2" + }, + "dependencies": { + "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" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "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 + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "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 + } + } + }, + "esprima": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", + "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "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==", + "dev": true + }, + "explicit": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", + "integrity": "sha512-Y1xrJFdIwhLwKTHDuk7IGp0iMbLlctk7tEjo3hvKvjnWaUaze5lGZf/u0IfanYVbtNogbSIdLlOmuCKP46Td7g==", + "requires": { + "@hapi/joi": "^15.1.0" + } + }, + "extended-terminal-menu": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-3.0.3.tgz", + "integrity": "sha512-Qo99b68FeJyNCHYSLuVLP9RX9d3sTeo/Hfe8Bck/KSJ6okkduyGs08327GjztC/yCL4RtsTn5f8DwI2Mywqu4w==", + "requires": { + "@types/charm": "^1.0.2", + "charm": "^1.0.2", + "color-convert": "^2.0.1", + "duplexer2": "^0.1.4", + "resumer": "~0.0.0", + "supports-color": "^7.1.0", + "through2": "^4.0.2", + "wcstring": "^2.1.0" + }, + "dependencies": { + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "requires": { + "readable-stream": "3" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "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 + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.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" + } + }, + "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": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": 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": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": 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 + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "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-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "i18n-core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", + "integrity": "sha512-4tNStjxSyIcmOip3Ry6OHhHLPNuNjXtl5TCnFCXMO10kbjLA6SV4ZCkzTCK4vN3NyD7kOEwmbI9uHgXdiHk0hw==", + "requires": { + "escape-html": "^1.0.3" + }, + "dependencies": { + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + } + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "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==" + }, + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "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-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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-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-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": "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-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": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true + }, + "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" + } + }, + "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 + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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" + }, + "dependencies": { + "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 + } + } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "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": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + }, + "dependencies": { + "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" + } + } + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "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.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "marked": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", + "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "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==" + }, + "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" + } + }, + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "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" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "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 + }, + "msee": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", + "integrity": "sha512-4ujQAsunNBX8AVN6nyiIj4jW3uHQsY3xpFVKTzbjKiq57C6GXh0h12qYehXwLYItmhpgWRB3W8PnzODKWxwXxA==", + "requires": { + "ansi-regex": "^3.0.0", + "ansicolors": "^0.3.2", + "cardinal": "^1.0.0", + "chalk": "^2.3.1", + "combined-stream-wait-for-it": "^1.1.0", + "entities": "^1.1.1", + "marked": "0.3.12", + "nopt": "^4.0.1", + "strip-ansi": "^4.0.0", + "table-header": "^0.2.2", + "text-table": "^0.2.0", + "through2": "^2.0.3", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true + }, + "object-keys": { + "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.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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" + } + }, + "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=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "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 + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.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" + } + }, + "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-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "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-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "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" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "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 + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "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": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "redeyed": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", + "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", + "requires": { + "esprima": "~3.0.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-terminal-menu": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-2.0.0.tgz", + "integrity": "sha512-m9TpPbiYkHnq0FktmYpvcELiHFP7I9TF9hDxa37nv8CODKDHdCUxHoAa1krso3ULtAexhrlAI5UjEUA/DDbpNg==", + "requires": { + "ansi-styles": "^4.2.1", + "extended-terminal-menu": "^3.0.3", + "wcstring": "^2.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "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.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "dev": true + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "requires": { + "through": "2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", + "integrity": "sha512-70F7NH0hSkNXosXRltjSv6KpTAOkUkSfyu3ynyM5dtRUiLtR+yX9EGZ7RKwuGUqCJiX/cnkceVM6HTZ4JpaqDg==", + "dev": true, + "requires": { + "eslint": "~7.13.0", + "eslint-config-standard": "16.0.2", + "eslint-config-standard-jsx": "10.0.0", + "eslint-plugin-import": "~2.22.1", + "eslint-plugin-node": "~11.1.0", + "eslint-plugin-promise": "~4.2.1", + "eslint-plugin-react": "~7.21.5", + "standard-engine": "^14.0.1" + } + }, + "standard-engine": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-14.0.1.tgz", + "integrity": "sha512-7FEzDwmHDOGva7r9ifOzD3BGdTbA7ujJ50afLVdW/tK14zQEptJjbFuUfn50irqdHDcTbNh0DTIoMPynMCXb0Q==", + "dev": true, + "requires": { + "get-stdin": "^8.0.0", + "minimist": "^1.2.5", + "pkg-conf": "^3.1.0", + "xdg-basedir": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-to-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz", + "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", + "requires": { + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", + "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "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=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + } + }, + "table-header": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", + "integrity": "sha1-fJrbQg6laftHF95dj1xFFIBNLAo=", + "requires": { + "repeat-string": "^1.5.2" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "requires": { + "readable-stream": "2 || 3" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "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" + } + }, + "tsconfig-paths": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", + "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", + "dev": true, + "requires": { + "json5": "^2.2.0", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "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" + } + }, + "varsize-string": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", + "integrity": "sha1-7xs7bHLbCDXqL4TN+R/sMMUgaIs=" + }, + "wcsize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wcsize/-/wcsize-1.0.0.tgz", + "integrity": "sha1-qKLhXmqKdHkdulgPaaV9J+hQ6h4=" + }, + "wcstring": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/wcstring/-/wcstring-2.1.1.tgz", + "integrity": "sha1-3tUtdFycceJNCkidKCbSKjZe0Gc=", + "requires": { + "varsize-string": "^2.2.1", + "wcsize": "^1.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" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "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" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "workshopper-adventure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-7.0.0.tgz", + "integrity": "sha512-G1NuuxtT+AMg+ybxvhhv9J67NRsLLCy3erM3m4fErOS+MdcwrqKejrlAz8K7T/Q/SYxR/gMNZFX+xV01Ejxskg==", + "requires": { + "after": "^0.8.2", + "chalk": "^3.0.0", + "colors-tmpl": "~1.0.0", + "combined-stream-wait-for-it": "^1.1.0", + "commandico": "^2.0.4", + "i18n-core": "^3.0.0", + "latest-version": "^5.1.0", + "msee": "^0.3.5", + "simple-terminal-menu": "^2.0.0", + "split": "^1.0.0", + "string-to-stream": "^3.0.1", + "strip-ansi": "^6.0.0", + "through2": "^3.0.1", + "workshopper-adventure-storage": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "workshopper-adventure-storage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.0.tgz", + "integrity": "sha1-AXTFsve4DXLJG8Upv70H9HnCY6A=", + "requires": { + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" + } + }, + "workshopper-adventure-test": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/workshopper-adventure-test/-/workshopper-adventure-test-1.2.0.tgz", + "integrity": "sha512-Y4Vr8gi0/BYEjzz53rSpCbDuoDdm/thWq3gxpxrgsSbg5EnhPddQQw/+TUdtvissZKBt82IR+RptG1MNtlFg0A==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "lodash": "^4.17.15", + "mocha": "^7.1.1", + "rimraf": "^3.0.2", + "workshopper-adventure": "^6.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9" + } + }, + "extended-terminal-menu": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-2.1.4.tgz", + "integrity": "sha1-GoKVOkOYQvVDsVS0YxgJ/aMs3hM=", + "dev": true, + "requires": { + "charm_inheritance-fix": "^1.0.1", + "duplexer2": "0.0.2", + "inherits": "~2.0.0", + "resumer": "~0.0.0", + "through2": "^0.6.3", + "wcstring": "^2.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "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" + } + }, + "simple-terminal-menu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", + "integrity": "sha1-apqmscQd9T/AsCB4DHZNvN7Egf8=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "extended-terminal-menu": "^2.1.2", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "workshopper-adventure": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.1.1.tgz", + "integrity": "sha512-Ny0LfUW4HeU4XlQyYYgqFzQoK39Un4XQSl/D3RUS2gW1BU8FDufnQu9IYVN9DYt6hzM+kaD7EumC7BXHEpPWFw==", + "dev": true, + "requires": { + "after": "^0.8.2", + "chalk": "^3.0.0", + "colors-tmpl": "~1.0.0", + "combined-stream-wait-for-it": "^1.1.0", + "commandico": "^2.0.4", + "i18n-core": "^3.0.0", + "latest-version": "^5.1.0", + "msee": "^0.3.5", + "simple-terminal-menu": "^1.1.3", + "split": "^1.0.0", + "string-to-stream": "^3.0.1", + "strip-ansi": "^6.0.0", + "through2": "^3.0.1", + "workshopper-adventure-storage": "^3.0.0" + } + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + } + } +} From f62d534a9df71f29baa29a79d43b9e3bae0dadf5 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Mon, 10 Jan 2022 20:28:59 +0900 Subject: [PATCH 329/346] fix: pinning colors.js version to 1.4.0 as it was compromised. Closes #327 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c9ab2324..240ef35d 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "javascripting": "./bin/javascripting" }, "dependencies": { - "colors": "^1.4.0", + "colors": "1.4.0", "diff": "^5.0.0", "workshopper-adventure": "^7.0.0" }, From fe6199344268ad4aebfa91af32e0837a964f1e13 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Mon, 10 Jan 2022 20:29:56 +0900 Subject: [PATCH 330/346] chore: updating package-lock json --- package-lock.json | 11360 +++++++++++++++++++++++--------------------- 1 file changed, 5839 insertions(+), 5521 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e631fac..97164fea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,69 +1,93 @@ { "name": "javascripting", "version": "2.7.3", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "version": "2.7.3", - "license": "MIT", - "dependencies": { - "colors": "^1.4.0", - "diff": "^5.0.0", - "workshopper-adventure": "^7.0.0" - }, - "bin": { - "javascripting": "bin/javascripting" - }, - "devDependencies": { - "standard": "^16.0.3", - "workshopper-adventure-test": "^1.2.0" - }, - "engines": { - "node": ">=12.22.4" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "@babel/highlight": "^7.16.7" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true }, - "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "@babel/highlight": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, - "engines": { - "node": ">=6.9.0" + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "node_modules/@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "@eslint/eslintrc": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, - "dependencies": { + "requires": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", @@ -71,303 +95,243 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } } }, - "node_modules/@hapi/address": { + "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" }, - "node_modules/@hapi/bourne": { + "@hapi/bourne": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" }, - "node_modules/@hapi/hoek": { + "@hapi/hoek": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" }, - "node_modules/@hapi/joi": { + "@hapi/joi": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "dependencies": { + "requires": { "@hapi/address": "2.x.x", "@hapi/bourne": "1.x.x", "@hapi/hoek": "8.x.x", "@hapi/topo": "3.x.x" } }, - "node_modules/@hapi/topo": { + "@hapi/topo": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "dependencies": { + "requires": { "@hapi/hoek": "^8.3.0" } }, - "node_modules/@sindresorhus/is": { + "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, - "node_modules/@szmarczak/http-timer": { + "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { + "requires": { "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" } }, - "node_modules/@types/charm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/charm/-/charm-1.0.2.tgz", - "integrity": "sha512-8nrGGRpu/OZKpDxpuloLlZ6g9t4+DZW057RgpWrzOHiqt/1kbPvSiMDJa5G8Z635By9fMXEoGvWZ5bO/A6dv/w==", - "dependencies": { + "@types/charm": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/charm/-/charm-1.0.3.tgz", + "integrity": "sha512-FpNoSOkloETr+ZJ0RsZpB+a/tqJkniIN+9Enn6uPIbhiNptOWtZzV7FkaqxTRjvvlHeUKMR331Wj9tOmqG10TA==", + "requires": { "@types/node": "*" } }, - "node_modules/@types/node": { - "version": "16.4.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.11.tgz", - "integrity": "sha512-nWSFUbuNiPKJEe1IViuodSI+9cM+vpM8SWF/O6dJK7wmGRNq55U7XavJHrlRrPkSMuUZUFzg1xaZ1B+ZZCrRWw==" + "@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 + }, + "@types/node": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", + "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" }, - "node_modules/abbrev": { + "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "node_modules/acorn": { + "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "dev": true }, - "node_modules/acorn-jsx": { + "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "dev": true }, - "node_modules/after": { + "after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, - "node_modules/ajv": { + "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "dependencies": { + "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true, - "engines": { - "node": ">=6" - } + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true }, - "node_modules/ansi-regex": { + "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" } }, - "node_modules/ansicolors": { + "ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" }, - "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, - "dependencies": { + "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/argparse": { + "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "dependencies": { + "requires": { "sprintf-js": "~1.0.2" } }, - "node_modules/array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "is-string": "^1.0.7" } }, - "node_modules/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==", + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.0", + "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "es-abstract": "^1.19.0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "es-abstract": "^1.19.0" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true, - "engines": { - "node": ">=8" - } + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, - "node_modules/brace-expansion": { + "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { + "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/braces": { + "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "dependencies": { + "requires": { "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/browser-stdout": { + "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/cacheable-request": { + "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { + "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", @@ -376,487 +340,399 @@ "normalize-url": "^4.1.0", "responselike": "^1.0.2" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } } }, - "node_modules/call-bind": { + "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "dependencies": { + "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { + "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/camelcase": { + "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/cardinal": { + "cardinal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", - "dependencies": { + "requires": { "ansicolors": "~0.2.1", "redeyed": "~1.0.0" }, - "bin": { - "cdl": "bin/cdl.js" + "dependencies": { + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + } } }, - "node_modules/cardinal/node_modules/ansicolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "node_modules/charm": { + "charm": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", - "dependencies": { + "requires": { "inherits": "^2.0.1" } }, - "node_modules/charm_inheritance-fix": { + "charm_inheritance-fix": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=", "dev": true }, - "node_modules/chokidar": { + "chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, - "dependencies": { + "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", + "fsevents": "~2.1.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.2.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.1" } }, - "node_modules/cliui": { + "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, - "dependencies": { + "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + }, "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/colors": { + "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "engines": { - "node": ">=0.1.90" - } + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, - "node_modules/colors-tmpl": { + "colors-tmpl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-1.0.0.tgz", "integrity": "sha1-tgrEr4FlVdnt8a0kczfrMCQbbS4=", - "dependencies": { + "requires": { "colors": "~1.0.2" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } } }, - "node_modules/colors-tmpl/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream-wait-for-it": { + "combined-stream-wait-for-it": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", - "dependencies": { + "requires": { "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" } }, - "node_modules/commandico": { + "commandico": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/commandico/-/commandico-2.0.4.tgz", "integrity": "sha512-QF9HmgaY/k9o/7hTbLeH3eP9cjKmz8QHGnqTAZ6KQ4BHt3h2m7+S2+OzSbR5Zs1qBdKMjWxOGufd/wX/pXEhew==", - "dependencies": { + "requires": { "@hapi/joi": "^15.1.0", "explicit": "^0.1.1", "minimist": "^1.1.1" } }, - "node_modules/concat-map": { + "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/cross-spawn": { + "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "dependencies": { + "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, - "dependencies": { + "requires": { "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } } }, - "node_modules/decamelize": { + "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/decompress-response": { + "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { + "requires": { "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" } }, - "node_modules/deep-extend": { + "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/defer-to-connect": { + "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "node_modules/define-properties": { + "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "dependencies": { + "requires": { "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/delayed-stream": { + "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, - "node_modules/diff": { + "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "engines": { - "node": ">=0.3.1" - } + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" }, - "node_modules/doctrine": { + "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "dependencies": { + "requires": { "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" } }, - "node_modules/duplexer2": { + "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dependencies": { + "requires": { "readable-stream": "^2.0.2" } }, - "node_modules/duplexer3": { + "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/end-of-stream": { + "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { + "requires": { "once": "^1.4.0" } }, - "node_modules/enquirer": { + "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, - "dependencies": { + "requires": { "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" } }, - "node_modules/entities": { + "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, - "node_modules/error-ex": { + "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "dependencies": { + "requires": { "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-abstract/node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-to-primitive": { + "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "dependencies": { + "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/escape-string-regexp": { + "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=", - "engines": { - "node": ">=0.8.0" - } + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "node_modules/eslint": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz", - "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==", + "eslint": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, - "dependencies": { + "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.1", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -866,10 +742,10 @@ "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", + "espree": "^7.3.1", "esquery": "^1.2.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", @@ -880,7 +756,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -889,197 +765,157 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-standard": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", - "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true } - ], - "peerDependencies": { - "eslint": "^7.12.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1" } }, - "node_modules/eslint-config-standard-jsx": { + "eslint-config-standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", + "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", + "dev": true + }, + "eslint-config-standard-jsx": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz", "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": "^7.12.1", - "eslint-plugin-react": "^7.21.5" - } - }, - "node_modules/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, - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, - "dependencies": { + "requires": { "debug": "^3.2.7", - "pkg-dir": "^2.0.0" + "resolve": "^1.20.0" }, - "engines": { - "node": ">=4" + "dependencies": { + "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" + } + } } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "eslint-module-utils": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, "dependencies": { - "ms": "^2.1.1" + "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" + } + } } }, - "node_modules/eslint-plugin-es": { + "eslint-plugin-es": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", "dev": true, - "dependencies": { + "requires": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" } }, - "node_modules/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==", + "eslint-plugin-import": { + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", "dev": true, - "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.6.2", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.6.0", "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "engines": { - "node": ">=4" + "object.values": "^1.1.4", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-plugin-node": { + "eslint-plugin-node": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, - "dependencies": { + "requires": { "eslint-plugin-es": "^3.0.0", "eslint-utils": "^2.0.0", "ignore": "^5.1.1", @@ -1087,340 +923,185 @@ "resolve": "^1.10.1", "semver": "^6.1.0" }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + } } }, - "node_modules/eslint-plugin-promise": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", - "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", - "dev": true, - "engines": { - "node": ">=6" - } + "eslint-plugin-promise": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz", + "integrity": "sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==", + "dev": true }, - "node_modules/eslint-plugin-react": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", - "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", + "eslint-plugin-react": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.3.tgz", + "integrity": "sha512-ZMbFvZ1WAYSZKY662MBVEWR45VaBT6KSJCiupjrNlcdakB90juaZeDCbJq19e73JZQubqFtgETohwgAt8u5P6w==", "dev": true, - "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", - "has": "^1.0.3", + "estraverse": "^5.2.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", + "minimatch": "^3.0.4", + "object.entries": "^1.1.4", + "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", + "object.values": "^1.1.4", "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" - }, - "engines": { - "node": ">=4" + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.5" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.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" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } } }, - "node_modules/eslint-scope": { + "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "dependencies": { + "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { + "eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "dependencies": { + "requires": { "eslint-visitor-keys": "^1.1.0" }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "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 + } } }, - "node_modules/eslint-visitor-keys": { + "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { + "espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, - "dependencies": { + "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "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 + } } }, - "node_modules/esprima": { + "esprima": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" }, - "node_modules/esquery": { + "esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "dependencies": { + "requires": { "estraverse": "^5.1.0" }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, - "node_modules/esrecurse": { + "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "dependencies": { + "requires": { "estraverse": "^5.2.0" }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, - "node_modules/estraverse": { + "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } + "dev": true }, - "node_modules/esutils": { + "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/explicit": { + "explicit": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", "integrity": "sha512-Y1xrJFdIwhLwKTHDuk7IGp0iMbLlctk7tEjo3hvKvjnWaUaze5lGZf/u0IfanYVbtNogbSIdLlOmuCKP46Td7g==", - "dependencies": { + "requires": { "@hapi/joi": "^15.1.0" } }, - "node_modules/extended-terminal-menu": { + "extended-terminal-menu": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-3.0.3.tgz", "integrity": "sha512-Qo99b68FeJyNCHYSLuVLP9RX9d3sTeo/Hfe8Bck/KSJ6okkduyGs08327GjztC/yCL4RtsTn5f8DwI2Mywqu4w==", - "dependencies": { + "requires": { "@types/charm": "^1.0.2", "charm": "^1.0.2", "color-convert": "^2.0.1", @@ -1429,286 +1110,199 @@ "supports-color": "^7.1.0", "through2": "^4.0.2", "wcstring": "^2.1.0" - } - }, - "node_modules/extended-terminal-menu/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/extended-terminal-menu/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/extended-terminal-menu/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/extended-terminal-menu/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/extended-terminal-menu/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/extended-terminal-menu/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dependencies": { - "readable-stream": "3" + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "requires": { + "readable-stream": "3" + } + } } }, - "node_modules/fast-deep-equal": { + "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-json-stable-stringify": { + "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/fast-levenshtein": { + "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" + "requires": { + "flat-cache": "^3.0.4" } }, - "node_modules/fill-range": { + "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "dependencies": { + "requires": { "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/find-up": { + "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "dependencies": { + "requires": { "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" } }, - "node_modules/flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "dev": true, - "dependencies": { + "requires": { "is-buffer": "~2.0.3" - }, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" } }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, - "node_modules/fs.realpath": { + "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "node_modules/fsevents": { + "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "optional": true }, - "node_modules/function-bind": { + "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/functional-red-black-tree": { + "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "node_modules/get-caller-file": { + "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } + "dev": true }, - "node_modules/get-intrinsic": { + "get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "dependencies": { + "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stdin": { + "get-stdin": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true }, - "node_modules/get-stream": { + "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { + "requires": { "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" } }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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" - }, - "engines": { - "node": "*" } }, - "node_modules/glob-parent": { + "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "dependencies": { + "requires": { "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" } }, - "node_modules/globals": { + "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, - "dependencies": { + "requires": { "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got": { + "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { + "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", "cacheable-request": "^6.0.0", @@ -1720,4169 +1314,4748 @@ "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" } }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, - "node_modules/growl": { + "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } + "dev": true }, - "node_modules/has": { + "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "dependencies": { + "requires": { "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" } }, - "node_modules/has-ansi": { + "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, - "dependencies": { + "requires": { "ansi-regex": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } } }, - "node_modules/has-bigints": { + "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "node_modules/has-symbols": { + "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "has-symbols": "^1.0.2" } }, - "node_modules/he": { + "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } + "dev": true }, - "node_modules/hosted-git-info": { + "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "node_modules/http-cache-semantics": { + "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, - "node_modules/i18n-core": { + "i18n-core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", "integrity": "sha512-4tNStjxSyIcmOip3Ry6OHhHLPNuNjXtl5TCnFCXMO10kbjLA6SV4ZCkzTCK4vN3NyD7kOEwmbI9uHgXdiHk0hw==", - "dependencies": { + "requires": { "escape-html": "^1.0.3" - } - }, - "node_modules/i18n-core/node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "engines": { - "node": "*" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "dev": true, "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/jsx-ast-utils/node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/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, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/marked": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", - "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==", - "bin": { - "marked": "bin/marked" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "dev": true, - "dependencies": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 8.10.0" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/mocha/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/msee": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", - "integrity": "sha512-4ujQAsunNBX8AVN6nyiIj4jW3uHQsY3xpFVKTzbjKiq57C6GXh0h12qYehXwLYItmhpgWRB3W8PnzODKWxwXxA==", - "dependencies": { - "ansi-regex": "^3.0.0", - "ansicolors": "^0.3.2", - "cardinal": "^1.0.0", - "chalk": "^2.3.1", - "combined-stream-wait-for-it": "^1.1.0", - "entities": "^1.1.1", - "marked": "0.3.12", - "nopt": "^4.0.1", - "strip-ansi": "^4.0.0", - "table-header": "^0.2.2", - "text-table": "^0.2.0", - "through2": "^2.0.3", - "wcstring": "^2.1.0", - "xtend": "^4.0.0" - }, - "bin": { - "msee": "bin/msee" - } - }, - "node_modules/msee/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/msee/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node_modules/node-environment-flags/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-conf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", - "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0", - "load-json-file": "^5.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-conf/node_modules/load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-conf/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-conf/node_modules/type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/redeyed": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", - "dependencies": { - "esprima": "~3.0.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/registry-auth-token": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", - "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "dependencies": { - "through": "~2.3.4" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-terminal-menu": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-2.0.0.tgz", - "integrity": "sha512-m9TpPbiYkHnq0FktmYpvcELiHFP7I9TF9hDxa37nv8CODKDHdCUxHoAa1krso3ULtAexhrlAI5UjEUA/DDbpNg==", - "dependencies": { - "ansi-styles": "^4.2.1", - "extended-terminal-menu": "^3.0.3", - "wcstring": "^2.1.0" - } - }, - "node_modules/simple-terminal-menu/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/simple-terminal-menu/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/simple-terminal-menu/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/standard": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", - "integrity": "sha512-70F7NH0hSkNXosXRltjSv6KpTAOkUkSfyu3ynyM5dtRUiLtR+yX9EGZ7RKwuGUqCJiX/cnkceVM6HTZ4JpaqDg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "eslint": "~7.13.0", - "eslint-config-standard": "16.0.2", - "eslint-config-standard-jsx": "10.0.0", - "eslint-plugin-import": "~2.22.1", - "eslint-plugin-node": "~11.1.0", - "eslint-plugin-promise": "~4.2.1", - "eslint-plugin-react": "~7.21.5", - "standard-engine": "^14.0.1" - }, - "bin": { - "standard": "bin/cmd.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/standard-engine": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-14.0.1.tgz", - "integrity": "sha512-7FEzDwmHDOGva7r9ifOzD3BGdTbA7ujJ50afLVdW/tK14zQEptJjbFuUfn50irqdHDcTbNh0DTIoMPynMCXb0Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "get-stdin": "^8.0.0", - "minimist": "^1.2.5", - "pkg-conf": "^3.1.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8.10" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-to-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz", - "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", - "dependencies": { - "readable-stream": "^3.4.0" - } - }, - "node_modules/string-to-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table-header": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", - "integrity": "sha1-fJrbQg6laftHF95dj1xFFIBNLAo=", - "dependencies": { - "repeat-string": "^1.5.2" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dependencies": { - "readable-stream": "2 || 3" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", - "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", - "dev": true, - "dependencies": { - "json5": "^2.2.0", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/varsize-string": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", - "integrity": "sha1-7xs7bHLbCDXqL4TN+R/sMMUgaIs=" - }, - "node_modules/wcsize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wcsize/-/wcsize-1.0.0.tgz", - "integrity": "sha1-qKLhXmqKdHkdulgPaaV9J+hQ6h4=" - }, - "node_modules/wcstring": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/wcstring/-/wcstring-2.1.1.tgz", - "integrity": "sha1-3tUtdFycceJNCkidKCbSKjZe0Gc=", - "dependencies": { - "varsize-string": "^2.2.1", - "wcsize": "^1.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workshopper-adventure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-7.0.0.tgz", - "integrity": "sha512-G1NuuxtT+AMg+ybxvhhv9J67NRsLLCy3erM3m4fErOS+MdcwrqKejrlAz8K7T/Q/SYxR/gMNZFX+xV01Ejxskg==", - "license": "MIT", - "dependencies": { - "after": "^0.8.2", - "chalk": "^3.0.0", - "colors-tmpl": "~1.0.0", - "combined-stream-wait-for-it": "^1.1.0", - "commandico": "^2.0.4", - "i18n-core": "^3.0.0", - "latest-version": "^5.1.0", - "msee": "^0.3.5", - "simple-terminal-menu": "^2.0.0", - "split": "^1.0.0", - "string-to-stream": "^3.0.1", - "strip-ansi": "^6.0.0", - "through2": "^3.0.1", - "workshopper-adventure-storage": "^3.0.0" - } - }, - "node_modules/workshopper-adventure-storage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.0.tgz", - "integrity": "sha1-AXTFsve4DXLJG8Upv70H9HnCY6A=", - "dependencies": { - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4" - } - }, - "node_modules/workshopper-adventure-test": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/workshopper-adventure-test/-/workshopper-adventure-test-1.2.0.tgz", - "integrity": "sha512-Y4Vr8gi0/BYEjzz53rSpCbDuoDdm/thWq3gxpxrgsSbg5EnhPddQQw/+TUdtvissZKBt82IR+RptG1MNtlFg0A==", - "dev": true, - "dependencies": { - "glob": "^7.1.6", - "lodash": "^4.17.15", - "mocha": "^7.1.1", - "rimraf": "^3.0.2", - "workshopper-adventure": "^6.1.0" - }, - "bin": { - "workshopper-adventure-test": "bin/workshopper-adventure-test" - } - }, - "node_modules/workshopper-adventure-test/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure-test/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/workshopper-adventure-test/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure-test/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/workshopper-adventure-test/node_modules/duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "dependencies": { - "readable-stream": "~1.1.9" - } - }, - "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-2.1.4.tgz", - "integrity": "sha1-GoKVOkOYQvVDsVS0YxgJ/aMs3hM=", - "dev": true, - "dependencies": { - "charm_inheritance-fix": "^1.0.1", - "duplexer2": "0.0.2", - "inherits": "~2.0.0", - "resumer": "~0.0.0", - "through2": "^0.6.3", - "wcstring": "^2.1.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu/node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure-test/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/workshopper-adventure-test/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/workshopper-adventure-test/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", - "integrity": "sha1-apqmscQd9T/AsCB4DHZNvN7Egf8=", - "dev": true, - "dependencies": { - "chalk": "^1.1.1", - "extended-terminal-menu": "^2.1.2", - "wcstring": "^2.1.0", - "xtend": "^4.0.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/workshopper-adventure-test/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/workshopper-adventure-test/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure-test/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure-test/node_modules/workshopper-adventure": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.1.1.tgz", - "integrity": "sha512-Ny0LfUW4HeU4XlQyYYgqFzQoK39Un4XQSl/D3RUS2gW1BU8FDufnQu9IYVN9DYt6hzM+kaD7EumC7BXHEpPWFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "after": "^0.8.2", - "chalk": "^3.0.0", - "colors-tmpl": "~1.0.0", - "combined-stream-wait-for-it": "^1.1.0", - "commandico": "^2.0.4", - "i18n-core": "^3.0.0", - "latest-version": "^5.1.0", - "msee": "^0.3.5", - "simple-terminal-menu": "^1.1.3", - "split": "^1.0.0", - "string-to-stream": "^3.0.1", - "strip-ansi": "^6.0.0", - "through2": "^3.0.1", - "workshopper-adventure-storage": "^3.0.0" - } - }, - "node_modules/workshopper-adventure/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/workshopper-adventure/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/workshopper-adventure/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/workshopper-adventure/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/workshopper-adventure/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, - "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } - } - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/charm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/charm/-/charm-1.0.2.tgz", - "integrity": "sha512-8nrGGRpu/OZKpDxpuloLlZ6g9t4+DZW057RgpWrzOHiqt/1kbPvSiMDJa5G8Z635By9fMXEoGvWZ5bO/A6dv/w==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "16.4.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.11.tgz", - "integrity": "sha512-nWSFUbuNiPKJEe1IViuodSI+9cM+vpM8SWF/O6dJK7wmGRNq55U7XavJHrlRrPkSMuUZUFzg1xaZ1B+ZZCrRWw==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "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" - } - }, - "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", - "dev": true, - "requires": { - "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" - } - }, - "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" - } - }, - "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - } - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": 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": "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" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", + "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "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=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" + }, + "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=" + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "requires": { + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bind-obj-methods": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz", + "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=" + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "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=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "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" + } + }, + "circular-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=" + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=" + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "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=" + }, + "codeclimate-test-reporter": { + "version": "github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", + "from": "codeclimate-test-reporter@github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", + "requires": { + "async": "~1.5.2", + "commander": "2.9.0", + "lcov-parse": "0.0.10", + "request": "~2.79.0" + }, + "dependencies": { + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" + } + } + }, + "color-support": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.2.tgz", + "integrity": "sha1-ScyZuJ0b3vEpLp2TI8ZpcaM+uJ0=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "compare-func": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", + "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "requires": { + "safe-buffer": "^5.0.1" + } + } + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "conventional-changelog": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.3.tgz", + "integrity": "sha1-JigweKw4wJTfKvFgSwpGu8AWXE0=", + "requires": { + "conventional-changelog-angular": "^1.3.3", + "conventional-changelog-atom": "^0.1.0", + "conventional-changelog-codemirror": "^0.1.0", + "conventional-changelog-core": "^1.8.0", + "conventional-changelog-ember": "^0.2.5", + "conventional-changelog-eslint": "^0.1.0", + "conventional-changelog-express": "^0.1.0", + "conventional-changelog-jquery": "^0.1.0", + "conventional-changelog-jscs": "^0.1.0", + "conventional-changelog-jshint": "^0.1.0" + } + }, + "conventional-changelog-angular": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.3.3.tgz", + "integrity": "sha1-586AeoXdR1DhtBf3ZgRUl1EeByY=", + "requires": { + "compare-func": "^1.3.1", + "github-url-from-git": "^1.4.0", + "q": "^1.4.1" + } + }, + "conventional-changelog-atom": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz", + "integrity": "sha1-Z6R8ZqQrL4kJ7xWHyZia4d5zC5I=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-codemirror": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz", + "integrity": "sha1-dXelkdv5tTjnoVCn7mL2WihyszQ=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.8.0.tgz", + "integrity": "sha1-l3hItBbK8V+wnyCxKmLUDvFFuVc=", + "requires": { + "conventional-changelog-writer": "^1.1.0", + "conventional-commits-parser": "^1.0.0", + "dateformat": "^1.0.12", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "^1.2.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^1.2.0", + "lodash": "^4.0.0", + "normalize-package-data": "^2.3.5", + "q": "^1.4.1", + "read-pkg": "^1.1.0", + "read-pkg-up": "^1.0.1", + "through2": "^2.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "conventional-changelog-ember": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.5.tgz", + "integrity": "sha1-ziHVz4PNXr4F0j/fIy2IRPS1ak8=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-eslint": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz", + "integrity": "sha1-pSQR6ZngUBzlALhWsKZD0DMJB+I=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-express": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz", + "integrity": "sha1-VcbIQcgRliA2wDe9vZZKVK4xD84=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-jquery": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", + "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-jscs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", + "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", + "requires": { + "q": "^1.4.1" + } + }, + "conventional-changelog-jshint": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz", + "integrity": "sha1-AMq46aMxdIer2UxNhGcTQpGNKgc=", + "requires": { + "compare-func": "^1.3.1", + "q": "^1.4.1" + } + }, + "conventional-changelog-writer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz", + "integrity": "sha1-P0y00APrtWmJ0w00WJO1KkNjnI4=", + "requires": { + "compare-func": "^1.3.1", + "conventional-commits-filter": "^1.0.0", + "dateformat": "^1.0.11", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.0.0", + "meow": "^3.3.0", + "semver": "^5.0.1", + "split": "^1.0.0", + "through2": "^2.0.0" + } + }, + "conventional-commits-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", + "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=", + "requires": { + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz", + "integrity": "sha1-4ye1MZThp61dxjR57pCZpSsCSGU=", + "requires": { + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^3.3.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" + } + }, + "conventional-recommended-bump": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-0.3.0.tgz", + "integrity": "sha1-6Dnej1fLtDRFyLSWdAHeBkTEJdg=", + "requires": { + "concat-stream": "^1.4.10", + "conventional-commits-filter": "^1.0.0", + "conventional-commits-parser": "^1.0.1", + "git-latest-semver-tag": "^1.0.0", + "git-raw-commits": "^1.0.0", + "meow": "^3.3.0", + "object-assign": "^4.0.1" + } + }, + "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=" + }, + "coveralls": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz", + "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=", + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" + } + } + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.x.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "^0.10.9" + } + }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "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=" + }, + "deeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", + "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "requires": { + "is-obj": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.21", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.21.tgz", + "integrity": "sha1-Gacl+eUdAwC7wejoIRCf2dr1WSU=", + "requires": { + "es6-iterator": "2", + "es6-symbol": "~3.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-symbol": "^3.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "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" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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=", + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", + "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" + } + }, + "eslint-config-standard": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", + "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=" + }, + "eslint-import-resolver-node": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", + "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", + "requires": { + "debug": "^2.2.0", + "object-assign": "^4.0.1", + "resolve": "^1.1.6" + } + }, + "eslint-module-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz", + "integrity": "sha1-pvjCHZATWHWc3DXbrBmCrh7li84=", + "requires": { + "debug": "2.2.0", + "pkg-dir": "^1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "eslint-plugin-import": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.3.0.tgz", + "integrity": "sha1-N8gB4K2g4pbL3yDD85OstbUq82s=", + "requires": { + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.2.0", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.2.0", + "eslint-module-utils": "^2.0.0", + "has": "^1.0.1", + "lodash.cond": "^4.3.0", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + } + } + }, + "eslint-plugin-node": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.0.0.tgz", + "integrity": "sha512-9xERRx9V/8ciUHlTDlz9S4JiTL6Dc5oO+jKTy2mvQpxjhycpYZXzTT1t90IXjf+nAYw6/8sDnZfkeixJHxromA==", + "requires": { + "ignore": "^3.3.3", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "5.3.0" + } + }, + "eslint-plugin-promise": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", + "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=" + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" + }, + "espree": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", + "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", + "requires": { + "acorn": "^5.0.1", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "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=" + } + } + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", + "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", + "requires": { + "estraverse": "~4.1.0", + "object-assign": "^4.0.1" + }, + "dependencies": { + "estraverse": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", + "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=" + } + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=" + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "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=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-exists-cached": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", + "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + }, + "function-loop": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz", + "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=" + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "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=", + "requires": { + "is-property": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-pkg-repo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.3.0.tgz", + "integrity": "sha1-Q8a0wEi3XdYE/FOI7ezeVX9jNd8=", + "requires": { + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "git-latest-semver-tag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/git-latest-semver-tag/-/git-latest-semver-tag-1.0.2.tgz", + "integrity": "sha1-BhEwy/QnQRHMa+RhKz/zptk+JmA=", + "requires": { + "git-semver-tags": "^1.1.2", + "meow": "^3.3.0" + } + }, + "git-raw-commits": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", + "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=", + "requires": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^3.3.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + } + }, + "git-semver-tags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.0.tgz", + "integrity": "sha1-sx/QLIq1eL1sm1ysyl4cZMEXesE=", + "requires": { + "meow": "^3.3.0", + "semver": "^5.0.1" + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "requires": { + "ini": "^1.3.2" + } + }, + "github-url-from-git": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", + "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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" + } + }, + "globals": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", + "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "requires": { + "function-bind": "^1.0.2" + } + }, + "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" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "hosted-git-info": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", + "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "ignore": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", + "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + }, + "inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "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.0.3", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "optional": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "pump": "^3.0.0" + "number-is-nan": "^1.0.0" } }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cardinal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", - "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", - "requires": { - "ansicolors": "~0.2.1", - "redeyed": "~1.0.0" - }, - "dependencies": { - "ansicolors": { + "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=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "requires": { + "tryit": "^1.0.1" + } + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "charm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", - "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", - "requires": { - "inherits": "^2.0.1" - } - }, - "charm_inheritance-fix": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", - "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=", - "dev": true - }, - "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^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==", - "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=" - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "colors-tmpl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-1.0.0.tgz", - "integrity": "sha1-tgrEr4FlVdnt8a0kczfrMCQbbS4=", - "requires": { - "colors": "~1.0.2" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - } - } - }, - "combined-stream-wait-for-it": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", - "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commandico": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/commandico/-/commandico-2.0.4.tgz", - "integrity": "sha512-QF9HmgaY/k9o/7hTbLeH3eP9cjKmz8QHGnqTAZ6KQ4BHt3h2m7+S2+OzSbR5Zs1qBdKMjWxOGufd/wX/pXEhew==", - "requires": { - "@hapi/joi": "^15.1.0", - "explicit": "^0.1.1", - "minimist": "^1.1.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jodid25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "js-yaml": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", + "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^3.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "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=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "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" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "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=", + "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=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.cond": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" + }, + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "requires": { + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "requires": { + "lodash._reinterpolate": "~3.0.0" + } + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "optional": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { - "isexe": "^2.0.0" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } - } - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "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 - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "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" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - }, - "dependencies": { - "ansi-colors": { + }, + "lru-cache": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", + "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + }, + "mime-types": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "requires": { + "mime-db": "~1.27.0" + } + }, + "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=" + }, + "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" + } + }, + "mockery": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.0.0.tgz", + "integrity": "sha1-BWmhGhhIRh/cNHz4zKLfLzEpvAM=" + }, + "modify-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", + "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=" + }, + "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=" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "normalize-package-data": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", + "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=" + }, + "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=" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - } - } - }, - "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.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "dependencies": { - "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, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "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=" + }, + "only-shallow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", + "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=" + }, + "opener": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", + "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "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-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "own-or": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", + "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=" + }, + "own-or-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz", + "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=" + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "parse-github-repo-url": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz", + "integrity": "sha1-KGxT4smWLgZBZJ7jrJUI/KTdlZw=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "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=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + } + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } - } - } - }, - "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" - } - }, - "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": "7.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz", - "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "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=", "requires": { - "color-convert": "^2.0.1" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + } } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, - "color-convert": { + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "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=", + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "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/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "color-name": "~1.1.4" + "is-finite": "^1.0.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "lru-cache": "^6.0.0" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", "requires": { - "ansi-regex": "^5.0.0" + "path-parse": "^1.0.5" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "requires": { - "has-flag": "^4.0.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } - } - } - }, - "eslint-config-standard": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", - "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", - "dev": true, - "requires": {} - }, - "eslint-config-standard-jsx": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz", - "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==", - "dev": true, - "requires": {} - }, - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, "requires": { - "ms": "2.0.0" + "align-text": "^0.1.1" } }, - "ms": { + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "requires": { + "glob": "^7.0.5" + } + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "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=" + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + }, + "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "shelljs": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", + "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=", "requires": { - "ms": "^2.1.1" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } - } - } - }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.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": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.x.x" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "^1.0.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "split": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", + "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", + "requires": { + "through": "2" + } + }, + "split2": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz", + "integrity": "sha1-eh9VHhdqkOzTNF9yRqDP4XXvT9A=", + "requires": { + "through2": "^2.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" + }, + "standard-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-4.0.0.tgz", + "integrity": "sha1-5XjO/UOrewKUS9dWlSUFLqwbl4c=", + "requires": { + "chalk": "^1.1.3", + "conventional-changelog": "^1.1.0", + "conventional-recommended-bump": "^0.3.0", + "figures": "^1.5.0", + "fs-access": "^1.0.0", + "object-assign": "^4.1.0", + "semver": "^5.1.0", + "yargs": "^6.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ms": "2.0.0" + "ansi-regex": "^2.0.0" } }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "get-stdin": "^4.0.1" } }, - "ms": { + "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=" + }, + "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.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 - } - } - }, - "eslint-plugin-promise": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", - "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", - "dev": true - }, - "eslint-plugin-react": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", - "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, + "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=", "requires": { - "esutils": "^2.0.2" + "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": { + "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=" + }, + "string-width": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^3.0.0" + } + } } - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "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 - } - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "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 - } - } - }, - "esprima": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "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==", - "dev": true - }, - "explicit": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", - "integrity": "sha512-Y1xrJFdIwhLwKTHDuk7IGp0iMbLlctk7tEjo3hvKvjnWaUaze5lGZf/u0IfanYVbtNogbSIdLlOmuCKP46Td7g==", - "requires": { - "@hapi/joi": "^15.1.0" - } - }, - "extended-terminal-menu": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-3.0.3.tgz", - "integrity": "sha512-Qo99b68FeJyNCHYSLuVLP9RX9d3sTeo/Hfe8Bck/KSJ6okkduyGs08327GjztC/yCL4RtsTn5f8DwI2Mywqu4w==", - "requires": { - "@types/charm": "^1.0.2", - "charm": "^1.0.2", - "color-convert": "^2.0.1", - "duplexer2": "^0.1.4", - "resumer": "~0.0.0", - "supports-color": "^7.1.0", - "through2": "^4.0.2", - "wcstring": "^2.1.0" - }, - "dependencies": { - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + }, + "tap": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/tap/-/tap-10.3.3.tgz", + "integrity": "sha512-ELPgkGOlrS4fj2iX7CFg9oJ4kGcA8xYurvtJhRN+O/CI52X+vSpHdahjx71ABX3Y774XcPKouU+DYB9lqrR2uQ==", "requires": { - "color-name": "~1.1.4" + "bind-obj-methods": "^1.0.0", + "bluebird": "^3.3.1", + "clean-yaml-object": "^0.1.0", + "color-support": "^1.1.0", + "coveralls": "^2.11.2", + "deeper": "^2.1.0", + "foreground-child": "^1.3.3", + "fs-exists-cached": "^1.0.0", + "function-loop": "^1.0.1", + "glob": "^7.0.0", + "isexe": "^1.0.0", + "js-yaml": "^3.3.1", + "nyc": "^11.0.2-candidate.0", + "only-shallow": "^1.0.2", + "opener": "^1.4.1", + "os-homedir": "1.0.1", + "own-or": "^1.0.0", + "own-or-env": "^1.0.0", + "readable-stream": "^2.0.2", + "signal-exit": "^3.0.0", + "source-map-support": "^0.4.3", + "stack-utils": "^1.0.0", + "tap-mocha-reporter": "^3.0.1", + "tap-parser": "^5.3.1", + "tmatch": "^3.0.0", + "trivial-deferred": "^1.0.1", + "yapool": "^1.0.0" + }, + "dependencies": { + "nyc": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.0.2.tgz", + "integrity": "sha512-31rRd6ME9NM17w0oPKqi51a6fzJAqYarnzQXK+iL8XaX+3H6VH0BQut7qHIgrv2mBASRic4oNi2KRgcbFODrsQ==", + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-hook": "^1.0.7", + "istanbul-lib-instrument": "^1.7.2", + "istanbul-lib-report": "^1.1.1", + "istanbul-lib-source-maps": "^1.2.1", + "istanbul-reports": "^1.1.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.0.2", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.3.6", + "test-exclude": "^4.1.1", + "yargs": "^8.0.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "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=" + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", + "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "requires": { + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "babel-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", + "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.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-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" + } + }, + "babel-template": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", + "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1", + "babylon": "^6.11.0", + "lodash": "^4.2.0" + } + }, + "babel-traverse": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", + "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", + "requires": { + "babel-code-frame": "^6.22.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1", + "babylon": "^6.15.0", + "debug": "^2.2.0", + "globals": "^9.0.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "babel-types": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", + "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", + "requires": { + "babel-runtime": "^6.22.0", + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^1.0.1" + } + }, + "babylon": { + "version": "6.17.2", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.2.tgz", + "integrity": "sha1-IB0l71+JLEG65JSIsI2w3Udun1w=" + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "requires": { + "balanced-match": "^0.4.1", + "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=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "caching-transform": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "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" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": 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=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" + }, + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "requires": { + "strip-bom": "^2.0.0" + } + }, + "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" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "^0.2.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=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "execa": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz", + "integrity": "sha1-3j+4XLjW6RyFvLzrFkWBeFy1ezY=", + "requires": { + "cross-spawn": "^4.0.0", + "get-stream": "^2.2.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "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=", + "requires": { + "fill-range": "^2.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "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=", + "requires": { + "for-in": "^1.0.1" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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=", + "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.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", + "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "hosted-git-info": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", + "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "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=", + "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=", + "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-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "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=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "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=" + }, + "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" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==" + }, + "istanbul-lib-hook": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", + "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.2.tgz", + "integrity": "sha512-lPgUY+Pa5dlq2/l0qs1PJZ54QPSfo+s4+UZdkb2d0hbOyrEIAbUJphBLFjEyXBdeCONgGRADFzs3ojfFtmuwFA==", + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.13.0", + "istanbul-lib-coverage": "^1.1.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", + "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "requires": { + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", + "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "requires": { + "debug": "^2.6.3", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz", + "integrity": "sha512-P8G873A0kW24XRlxHVGhMJBhQ8gWAec+dae7ZxOBzxT4w+a9ATSPvRVK3LB1RAJ9S8bg2tOyWHAGW40Zd2dKfw==", + "requires": { + "handlebars": "^4.0.3" + } + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "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" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "optional": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", + "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "md5-hex": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.3.tgz", + "integrity": "sha1-2hQV8nIqURnbB7FMT5c0EIY6Kr8=", + "requires": { + "source-map": "^0.5.3" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "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=" + }, + "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=" + }, + "normalize-package-data": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", + "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.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" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "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.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz", + "integrity": "sha1-FZGN7VEFIrge565aMJ1U9jn8OaQ=", + "requires": { + "execa": "^0.5.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "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=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "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-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "randomatic": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", + "requires": { + "is-number": "^2.0.2", + "kind-of": "^3.0.2" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "requires": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + } + }, + "remove-trailing-separator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", + "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=" + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "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-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "requires": { + "glob": "^7.0.5" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + }, + "spawn-wrap": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.3.6.tgz", + "integrity": "sha512-5bEhZ11kqwoECJwfbur2ALU1NBnnCNbFzdWGHEXCiSsVhH+Ubz6eesa1DuQcm05pk38HknqP556f3CFhqws2ZA==", + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.3.3", + "signal-exit": "^3.0.2", + "which": "^1.2.4" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "^1.0.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "string-width": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "requires": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "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=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "uglify-js": { + "version": "2.8.27", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", + "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.1.tgz", + "integrity": "sha1-Qg73XoQMFFeoCtzKm8b6OEneUao=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "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=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "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=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^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=" + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + } + } + }, + "os-homedir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", + "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=" + } } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "tap-mocha-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.3.tgz", + "integrity": "sha1-5ZF/rT2acJV/m3xzbnk764fX2vE=", + "requires": { + "color-support": "^1.1.0", + "debug": "^2.1.3", + "diff": "^1.3.2", + "escape-string-regexp": "^1.0.3", + "glob": "^7.0.5", + "js-yaml": "^3.3.1", + "readable-stream": "^2.1.5", + "tap-parser": "^5.1.0", + "unicode-length": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "optional": true, + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + } + } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "tap-parser": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.3.3.tgz", + "integrity": "sha1-U+yKkPJ11v/0PxaeVqZ5UCp0EYU=", + "requires": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7", + "readable-stream": "^2" + } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "text-extensions": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.4.0.tgz", + "integrity": "sha1-w4XS6Ah5/m75eJPhcJ2I2UU3Juk=" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "requires": { + "safe-buffer": "^5.0.1" + } + } + } + }, + "tmatch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.0.0.tgz", + "integrity": "sha1-fSBx3tu8WH8ZSs2jBnvQdHtnCZE=" + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "requires": { + "punycode": "^1.4.1" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=" + }, + "trivial-deferred": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", + "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=" + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "has-flag": "^4.0.0" + "prelude-ls": "~1.1.2" } }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { - "readable-stream": "3" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "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 - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.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" - } - }, - "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": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "2.8.27", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", + "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", + "optional": true, "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": 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": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": 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 - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "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-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "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=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "i18n-core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", - "integrity": "sha512-4tNStjxSyIcmOip3Ry6OHhHLPNuNjXtl5TCnFCXMO10kbjLA6SV4ZCkzTCK4vN3NyD7kOEwmbI9uHgXdiHk0hw==", - "requires": { - "escape-html": "^1.0.3" - }, - "dependencies": { - "escape-html": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "unicode-length": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", + "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", + "requires": { + "punycode": "^1.3.2", + "strip-ansi": "^3.0.1" + } + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "requires": { + "os-homedir": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "requires": { + "extsprintf": "1.0.2" + } + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "requires": { + "isexe": "^2.0.0" + }, + "dependencies": { + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + } + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "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=", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yapool": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", + "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=" + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } } } }, @@ -5923,9 +6096,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "internal-slot": { "version": "1.0.3", @@ -5945,10 +6118,13 @@ "dev": true }, "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } }, "is-binary-path": { "version": "2.1.0", @@ -5960,40 +6136,44 @@ } }, "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true }, "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" } }, "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 + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-extglob": { "version": "2.1.1", @@ -6002,24 +6182,24 @@ "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=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -6029,34 +6209,55 @@ "dev": true }, "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" + "has-tostringtag": "^1.0.0" } }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", "dev": true }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" } }, "isarray": { @@ -6077,9 +6278,9 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.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", @@ -6118,36 +6319,22 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "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.5" + "minimist": "^1.2.0" } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "dev": true, "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" - }, - "dependencies": { - "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" - } - } } }, "keyv": { @@ -6177,14 +6364,14 @@ } }, "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=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, @@ -6204,6 +6391,12 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", @@ -6211,6 +6404,58 @@ "dev": true, "requires": { "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "loose-envify": { @@ -6263,6 +6508,7 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "requires": { "minimist": "^1.2.5" } @@ -6299,6 +6545,12 @@ "yargs-unparser": "1.6.0" }, "dependencies": { + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -6314,6 +6566,12 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "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 + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -6337,6 +6595,22 @@ "path-is-absolute": "^1.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 + }, + "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" + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -6353,6 +6627,18 @@ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -6385,6 +6671,15 @@ "requires": { "has-flag": "^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" + } } } }, @@ -6415,6 +6710,42 @@ "xtend": "^4.0.0" }, "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==", + "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==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "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=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -6423,6 +6754,14 @@ "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==", + "requires": { + "has-flag": "^3.0.0" + } + }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -6505,9 +6844,9 @@ "dev": true }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "object-keys": { @@ -6517,59 +6856,69 @@ "dev": true }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "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": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.19.1" } }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.19.1" } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "once": { @@ -6663,12 +7012,13 @@ } }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-exists": { @@ -6695,24 +7045,24 @@ "dev": true }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "^3.0.0" } }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pkg-conf": { @@ -6781,16 +7131,6 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -6805,10 +7145,10 @@ } } }, - "pkg-dir": { + "pkg-up": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { "find-up": "^2.1.0" @@ -6837,14 +7177,14 @@ "dev": true }, "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "react-is": "^16.13.1" } }, "pump": { @@ -6880,24 +7220,24 @@ "dev": true }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.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=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "read-pkg": "^3.0.0" } }, "readable-stream": { @@ -6948,9 +7288,9 @@ "dev": true }, "registry-auth-token": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", - "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", "requires": { "rc": "^1.2.8" } @@ -6974,6 +7314,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -6981,13 +7327,14 @@ "dev": true }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-from": { @@ -7013,9 +7360,9 @@ } }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } @@ -7070,40 +7417,17 @@ "ansi-styles": "^4.2.1", "extended-terminal-menu": "^3.0.3", "wcstring": "^2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } } }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "spdx-correct": { @@ -7133,9 +7457,9 @@ } }, "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "split": { @@ -7153,18 +7477,18 @@ "dev": true }, "standard": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", - "integrity": "sha512-70F7NH0hSkNXosXRltjSv6KpTAOkUkSfyu3ynyM5dtRUiLtR+yX9EGZ7RKwuGUqCJiX/cnkceVM6HTZ4JpaqDg==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.4.tgz", + "integrity": "sha512-2AGI874RNClW4xUdM+bg1LRXVlYLzTNEkHmTG5mhyn45OhbgwA+6znowkOGYy+WMb5HRyELvtNy39kcdMQMcYQ==", "dev": true, "requires": { - "eslint": "~7.13.0", - "eslint-config-standard": "16.0.2", + "eslint": "~7.18.0", + "eslint-config-standard": "16.0.3", "eslint-config-standard-jsx": "10.0.0", - "eslint-plugin-import": "~2.22.1", + "eslint-plugin-import": "~2.24.2", "eslint-plugin-node": "~11.1.0", - "eslint-plugin-promise": "~4.2.1", - "eslint-plugin-react": "~7.21.5", + "eslint-plugin-promise": "~5.1.0", + "eslint-plugin-react": "~7.25.1", "standard-engine": "^14.0.1" } }, @@ -7180,14 +7504,6 @@ "xdg-basedir": "^4.0.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, "string-to-stream": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz", @@ -7209,25 +7525,25 @@ } }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -7255,20 +7571,26 @@ "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": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" } } }, @@ -7284,23 +7606,50 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "table-header": { @@ -7322,10 +7671,11 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "requires": { + "inherits": "^2.0.4", "readable-stream": "2 || 3" } }, @@ -7344,12 +7694,13 @@ } }, "tsconfig-paths": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", - "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", "dev": true, "requires": { - "json5": "^2.2.0", + "@types/json5": "^0.0.29", + "json5": "^1.0.1", "minimist": "^1.2.0", "strip-bom": "^3.0.0" } @@ -7439,9 +7790,9 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -7475,6 +7826,12 @@ "string-width": "^1.0.2 || 2" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -7521,73 +7878,14 @@ "strip-ansi": "^6.0.0", "through2": "^3.0.1", "workshopper-adventure-storage": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "workshopper-adventure-storage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.0.tgz", - "integrity": "sha1-AXTFsve4DXLJG8Upv70H9HnCY6A=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.1.tgz", + "integrity": "sha512-IyJOlz6Ihzj+S4uFhI9esVRpkKWmZT65LvLB0JT4Hq4jHnxpS+ml7EMX0CxTcN3QAoUUOEDu6D30g9qSMXXREg==", "requires": { - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4" + "rimraf": "^3.0.2" } }, "workshopper-adventure-test": { @@ -7604,43 +7902,15 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "duplexer2": { @@ -7690,12 +7960,6 @@ } } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -7714,15 +7978,6 @@ "string_decoder": "~0.10.x" } }, - "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" - } - }, "simple-terminal-menu": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", @@ -7735,18 +7990,6 @@ "xtend": "^4.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -7768,12 +8011,6 @@ "requires": { "ansi-regex": "^2.0.0" } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true } } }, @@ -7783,23 +8020,11 @@ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true }, "workshopper-adventure": { "version": "6.1.1", @@ -7834,6 +8059,70 @@ "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "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" + } + }, + "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 + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "wrappy": { @@ -7841,15 +8130,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", @@ -7862,9 +8142,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { @@ -7891,6 +8171,18 @@ "yargs-parser": "^13.1.2" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -7900,6 +8192,12 @@ "locate-path": "^3.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 + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -7933,6 +8231,26 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, From 722fbb84b1b0b7b1cdd07f98915df5f659e85cc4 Mon Sep 17 00:00:00 2001 From: Martin Heidegger Date: Mon, 10 Jan 2022 20:30:31 +0900 Subject: [PATCH 331/346] v2.7.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 240ef35d..7e7bde6b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "javascripting", "description": "Learn JavaScript by adventuring around in the terminal.", - "version": "2.7.3", + "version": "2.7.4", "author": "sethvincent", "bin": { "javascripting": "./bin/javascripting" From 72e2bf0bbde46b077dfe36f9c11d657b2fa75b61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 12:37:26 +0000 Subject: [PATCH 332/346] build(deps): bump minimist from 0.0.8 to 1.2.6 Bumps [minimist](https://github.com/substack/minimist) from 0.0.8 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/0.0.8...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 41 ++++++----------------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97164fea..c97a32aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "javascripting", - "version": "2.7.3", + "version": "2.7.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2060,7 +2060,6 @@ "js-yaml": "3.6.1", "lcov-parse": "0.0.10", "log-driver": "1.2.5", - "minimist": "1.2.0", "request": "2.79.0" }, "dependencies": { @@ -2088,11 +2087,6 @@ "esprima": "^2.6.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, "qs": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", @@ -3313,11 +3307,6 @@ "strip-bom": "^2.0.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -3378,18 +3367,10 @@ "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=" - }, "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" - } + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" }, "mockery": { "version": "2.0.0", @@ -3475,7 +3456,6 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "~0.0.1", "wordwrap": "~0.0.2" }, "dependencies": { @@ -4963,18 +4943,10 @@ "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=" - }, "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" - } + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" }, "ms": { "version": "2.0.0", @@ -5040,7 +5012,6 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "~0.0.1", "wordwrap": "~0.0.2" } }, @@ -6500,9 +6471,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mkdirp": { "version": "0.5.5", From 765d474ca83ff3cc939bd1cedf0cd08e8f35c764 Mon Sep 17 00:00:00 2001 From: Daniel Tinsley Date: Sun, 7 Aug 2022 17:35:10 -0500 Subject: [PATCH 333/346] Fix typo The correct word to use is "parentheses" since there is more than one parenthesis surrounding the function expression. "Parentheses" is the plural form of "parenthesis." --- problems/scope/problem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/scope/problem.md b/problems/scope/problem.md index 21ab3bc3..f6303e98 100644 --- a/problems/scope/problem.md +++ b/problems/scope/problem.md @@ -29,7 +29,7 @@ IIFE, Immediately Invoked Function Expression, is a common pattern for creating Example: ```js -(function () { // the function expression is surrounded by parenthesis +(function () { // the function expression is surrounded by parentheses // variables defined here // can't be accessed outside })() // the function is immediately invoked From 655c245f30aca3ddc8afb9c51dd436ebd98fe1e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 01:47:47 +0000 Subject: [PATCH 334/346] build(deps): bump lodash from 4.17.4 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.4 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.4...4.17.21) --- updated-dependencies: - dependency-name: lodash dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index c97a32aa..0fec8edd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3212,11 +3212,6 @@ } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -4853,11 +4848,6 @@ } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -6359,8 +6349,7 @@ "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.truncate": { "version": "4.4.2", From b985facd712e3fc34b98151bbe9175dedd6d1d25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 02:02:00 +0000 Subject: [PATCH 335/346] build(deps): bump path-parse from 1.0.5 to 1.0.7 Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.5 to 1.0.7. - [Release notes](https://github.com/jbgutierrez/path-parse/releases) - [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7) --- updated-dependencies: - dependency-name: path-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0fec8edd..b333deaf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3541,11 +3541,6 @@ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, "path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", @@ -5075,11 +5070,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -7001,8 +6991,7 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-type": { "version": "3.0.0", From 71e8377149d1d55fb726f13755c05f6507acaa1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Carruitero?= Date: Fri, 18 Nov 2022 00:40:12 -0500 Subject: [PATCH 336/346] chore(ci): update github workflow --- .github/workflows/node.js.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index ae398124..62a41c10 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -16,13 +16,13 @@ jobs: strategy: matrix: - node-version: [12.x, 14.x, 16.x] + node-version: [19.x, 18.x, 16.x, 14.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'npm' From 1195e5123998fecc7257f26a961d49d0f33f72c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 Jan 2023 01:17:00 +0000 Subject: [PATCH 337/346] build(deps): bump json5 from 1.0.1 to 1.0.2 Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b333deaf..8613b516 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6270,9 +6270,9 @@ "dev": true }, "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" From 89ade1ea23383f4df4fc039c45a4a8acbde03b72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Jan 2023 03:53:13 +0000 Subject: [PATCH 338/346] build(deps): bump debug from 2.2.0 to 2.6.9 Bumps [debug](https://github.com/debug-js/debug) from 2.2.0 to 2.6.9. - [Release notes](https://github.com/debug-js/debug/releases) - [Changelog](https://github.com/debug-js/debug/blob/2.6.9/CHANGELOG.md) - [Commits](https://github.com/debug-js/debug/compare/2.2.0...2.6.9) --- updated-dependencies: - dependency-name: debug dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 37 +++---------------------------------- 1 file changed, 3 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8613b516..2b1bc05e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -565,9 +565,9 @@ } }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -2191,14 +2191,6 @@ "meow": "^3.3.0" } }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "requires": { - "ms": "2.0.0" - } - }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -2365,7 +2357,6 @@ "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", @@ -2409,7 +2400,6 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", "requires": { - "debug": "^2.2.0", "object-assign": "^4.0.1", "resolve": "^1.1.6" } @@ -2419,18 +2409,9 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz", "integrity": "sha1-pvjCHZATWHWc3DXbrBmCrh7li84=", "requires": { - "debug": "2.2.0", "pkg-dir": "^1.0.0" }, "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } - }, "ms": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", @@ -2445,7 +2426,6 @@ "requires": { "builtin-modules": "^1.1.1", "contains-path": "^0.1.0", - "debug": "^2.2.0", "doctrine": "1.5.0", "eslint-import-resolver-node": "^0.2.0", "eslint-module-utils": "^2.0.0", @@ -4191,7 +4171,6 @@ "babel-runtime": "^6.22.0", "babel-types": "^6.24.1", "babylon": "^6.15.0", - "debug": "^2.2.0", "globals": "^9.0.0", "invariant": "^2.2.0", "lodash": "^4.2.0" @@ -4327,14 +4306,6 @@ "which": "^1.2.9" } }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "requires": { - "ms": "2.0.0" - } - }, "debug-log": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", @@ -4768,7 +4739,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", "requires": { - "debug": "^2.6.3", "istanbul-lib-coverage": "^1.1.1", "mkdirp": "^0.5.1", "rimraf": "^2.6.1", @@ -5601,7 +5571,6 @@ "integrity": "sha1-5ZF/rT2acJV/m3xzbnk764fX2vE=", "requires": { "color-support": "^1.1.0", - "debug": "^2.1.3", "diff": "^1.3.2", "escape-string-regexp": "^1.0.3", "glob": "^7.0.5", From 28f65955238f1a44acbde25733f218f75f0bb2a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 Feb 2023 05:48:09 +0000 Subject: [PATCH 339/346] build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/kornelski/http-cache-semantics/releases) - [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: http-cache-semantics dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8613b516..af3b7334 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1393,9 +1393,9 @@ "dev": true }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "i18n-core": { "version": "3.2.0", From 99cd31bfcb6ebe2a981bcfb60281973ae1a185ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 07:13:41 +0000 Subject: [PATCH 340/346] build(deps): bump ms from 0.7.1 to 2.0.0 Bumps [ms](https://github.com/vercel/ms) from 0.7.1 to 2.0.0. - [Release notes](https://github.com/vercel/ms/releases) - [Commits](https://github.com/vercel/ms/compare/0.7.1...2.0.0) --- updated-dependencies: - dependency-name: ms dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index c55d6fbe..12d7ba5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -905,7 +905,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -2410,13 +2410,6 @@ "integrity": "sha1-pvjCHZATWHWc3DXbrBmCrh7li84=", "requires": { "pkg-dir": "^1.0.0" - }, - "dependencies": { - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - } } }, "eslint-plugin-import": { @@ -3357,11 +3350,6 @@ "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=" }, - "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", @@ -4903,11 +4891,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "normalize-package-data": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", From 8c7eafae41caffeb2ac0370361407dc75742a78f Mon Sep 17 00:00:00 2001 From: ledsun Date: Tue, 27 Jun 2023 14:56:57 +0900 Subject: [PATCH 341/346] misc: Update npm packages --- package-lock.json | 10221 +++++++++++++++----------------------------- package.json | 4 +- 2 files changed, 3493 insertions(+), 6732 deletions(-) diff --git a/package-lock.json b/package-lock.json index 12d7ba5c..cd2ce13e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,337 +1,514 @@ { "name": "javascripting", "version": "2.7.4", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" + "packages": { + "": { + "name": "javascripting", + "version": "2.7.4", + "license": "MIT", + "dependencies": { + "colors": "1.4.0", + "diff": "^5.1.0", + "workshopper-adventure": "^7.0.0" + }, + "bin": { + "javascripting": "bin/javascripting" + }, + "devDependencies": { + "standard": "^17.1.0", + "workshopper-adventure-test": "^1.2.0" + }, + "engines": { + "node": ">=12.22.4" } }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } }, - "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "@eslint/eslintrc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", - "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, - "requires": { + "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, - "dependencies": { - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", + "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "@hapi/address": { + "node_modules/@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "deprecated": "Moved to 'npm install @sideway/address'" }, - "@hapi/bourne": { + "node_modules/@hapi/bourne": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "deprecated": "This version has been deprecated and is no longer supported or maintained" }, - "@hapi/hoek": { + "node_modules/@hapi/hoek": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "deprecated": "This version has been deprecated and is no longer supported or maintained" }, - "@hapi/joi": { + "node_modules/@hapi/joi": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { + "deprecated": "Switch to 'npm install joi'", + "dependencies": { "@hapi/address": "2.x.x", "@hapi/bourne": "1.x.x", "@hapi/hoek": "8.x.x", "@hapi/topo": "3.x.x" } }, - "@hapi/topo": { + "node_modules/@hapi/topo": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "dependencies": { "@hapi/hoek": "^8.3.0" } }, - "@sindresorhus/is": { + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } }, - "@szmarczak/http-timer": { + "node_modules/@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { + "dependencies": { "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" } }, - "@types/charm": { + "node_modules/@types/charm": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/charm/-/charm-1.0.3.tgz", "integrity": "sha512-FpNoSOkloETr+ZJ0RsZpB+a/tqJkniIN+9Enn6uPIbhiNptOWtZzV7FkaqxTRjvvlHeUKMR331Wj9tOmqG10TA==", - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/json5": { + "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" + "node_modules/@types/node": { + "version": "20.3.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", + "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==" }, - "abbrev": { + "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "node_modules/acorn": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-jsx": { + "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "after": { + "node_modules/after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==" }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { + "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { + "dependencies": { "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "ansicolors": { + "node_modules/ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==" }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, - "requires": { - "sprintf-js": "~1.0.2" + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "browser-stdout": { + "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "cacheable-request": { + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { + "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", @@ -340,768 +517,1035 @@ "normalize-url": "^4.1.0", "responselike": "^1.0.2" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" } }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "camelcase": { + "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "cardinal": { + "node_modules/cardinal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", - "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", - "requires": { + "integrity": "sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg==", + "dependencies": { "ansicolors": "~0.2.1", "redeyed": "~1.0.0" }, - "dependencies": { - "ansicolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" - } + "bin": { + "cdl": "bin/cdl.js" } }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { + "node_modules/cardinal/node_modules/ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "charm": { + "node_modules/charm": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", - "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", - "requires": { + "integrity": "sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==", + "dependencies": { "inherits": "^2.0.1" } }, - "charm_inheritance-fix": { + "node_modules/charm_inheritance-fix": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/charm_inheritance-fix/-/charm_inheritance-fix-1.0.1.tgz", - "integrity": "sha1-rZgaoFy+wAhV9BdUlJYYa4Km+To=", + "integrity": "sha512-+uv5rxSxgmOA4sdUKFkH5/gd2CD+UKmVhXvyBz78hgrH1xU7Rr6p9Z2tLAoaMuLukwOuvAp2VOveg3Oas2LGsA==", "dev": true }, - "chokidar": { + "node_modules/chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, - "requires": { + "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.2.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.1" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "cliui": { + "node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, - "requires": { + "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "color-convert": { + "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { + "dependencies": { "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colors": { + "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "engines": { + "node": ">=0.1.90" + } }, - "colors-tmpl": { + "node_modules/colors-tmpl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-1.0.0.tgz", - "integrity": "sha1-tgrEr4FlVdnt8a0kczfrMCQbbS4=", - "requires": { - "colors": "~1.0.2" - }, + "integrity": "sha512-Hx00BVcaD10ckpechE7C4ULM4BNF0TaOJKDatpomNy0qERK9yeDgokcKmpbdtBQS1dYJdtSn71BORjyMzm6IrQ==", + "deprecated": "no longer maintained", "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - } + "colors": "~1.0.2" + } + }, + "node_modules/colors-tmpl/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "engines": { + "node": ">=0.1.90" } }, - "combined-stream-wait-for-it": { + "node_modules/combined-stream-wait-for-it": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", - "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", - "requires": { + "integrity": "sha512-lYbu2S3FRbV3C5anEiuESrHhN92ZoC/aKUmD6yiOwx5zun508hAkIHVOTg+uBrql/rvp/IrSc/1ccFkguA/9bA==", + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "commandico": { + "node_modules/commandico": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/commandico/-/commandico-2.0.4.tgz", "integrity": "sha512-QF9HmgaY/k9o/7hTbLeH3eP9cjKmz8QHGnqTAZ6KQ4BHt3h2m7+S2+OzSbR5Zs1qBdKMjWxOGufd/wX/pXEhew==", - "requires": { + "dependencies": { "@hapi/joi": "^15.1.0", "explicit": "^0.1.1", "minimist": "^1.1.1" } }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "requires": { + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "debug": { + "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "decompress-response": { + "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "deep-extend": { + "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } }, - "deep-is": { + "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "defer-to-connect": { + "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "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==", + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "engines": { + "node": ">=0.3.1" + } }, - "doctrine": { + "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "requires": { + "dependencies": { "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dependencies": { "readable-stream": "^2.0.2" } }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { + "node_modules/entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", "dev": true, - "requires": { + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" } }, - "es-to-primitive": { + "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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=" + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "eslint": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", - "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", + "node_modules/eslint": { + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", + "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.3.0", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.43.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.2.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.4", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-config-standard": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", - "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", - "dev": true + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } }, - "eslint-config-standard-jsx": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz", - "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==", - "dev": true + "node_modules/eslint-config-standard-jsx": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz", + "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^8.8.0", + "eslint-plugin-react": "^7.28.0" + } }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, - "requires": { + "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" - }, + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "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" - } - } + "ms": "^2.1.1" } }, - "eslint-module-utils": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", - "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, "dependencies": { - "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" - } + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true } } }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "requires": { + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "dependencies": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" } }, - "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.6.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "eslint-plugin-promise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz", - "integrity": "sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==", - "dev": true + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } }, - "eslint-plugin-react": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.3.tgz", - "integrity": "sha512-ZMbFvZ1WAYSZKY662MBVEWR45VaBT6KSJCiupjrNlcdakB90juaZeDCbJq19e73JZQubqFtgETohwgAt8u5P6w==", + "node_modules/eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", - "estraverse": "^5.2.0", + "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.4", - "object.fromentries": "^2.0.4", - "object.hasown": "^1.0.0", - "object.values": "^1.1.4", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.5" - }, - "dependencies": { - "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" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, "dependencies": { - "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 - } + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "dev": true, "dependencies": { - "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 - } + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "esprima": { + "node_modules/esprima": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" + "integrity": "sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.1.0" }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "engines": { + "node": ">=0.10" } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.2.0" }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "engines": { + "node": ">=4.0" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "explicit": { + "node_modules/explicit": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/explicit/-/explicit-0.1.3.tgz", "integrity": "sha512-Y1xrJFdIwhLwKTHDuk7IGp0iMbLlctk7tEjo3hvKvjnWaUaze5lGZf/u0IfanYVbtNogbSIdLlOmuCKP46Td7g==", - "requires": { + "dependencies": { "@hapi/joi": "^15.1.0" } }, - "extended-terminal-menu": { + "node_modules/extended-terminal-menu": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-3.0.3.tgz", "integrity": "sha512-Qo99b68FeJyNCHYSLuVLP9RX9d3sTeo/Hfe8Bck/KSJ6okkduyGs08327GjztC/yCL4RtsTn5f8DwI2Mywqu4w==", - "requires": { + "dependencies": { "@types/charm": "^1.0.2", "charm": "^1.0.2", "color-convert": "^2.0.1", @@ -1110,199 +1554,330 @@ "supports-color": "^7.1.0", "through2": "^4.0.2", "wcstring": "^2.1.0" + } + }, + "node_modules/extended-terminal-menu/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/extended-terminal-menu/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { - "readable-stream": "3" - } - } + "readable-stream": "3" } }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "file-entry-cache": { + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "requires": { + "dependencies": { "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "fill-range": { + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "requires": { - "locate-path": "^2.0.0" + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "flat": { + "node_modules/flat": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "dev": true, - "requires": { + "dependencies": { "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" } }, - "flat-cache": { + "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "requires": { + "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "fs.realpath": { + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "fsevents": { + "node_modules/fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", "dev": true, - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-stdin": { + "node_modules/get-stdin": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "get-stream": { + "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { + "dependencies": { "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "get-symbol-description": { + "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "requires": { - "is-glob": "^4.0.1" + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, - "requires": { - "type-fest": "^0.8.1" + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "got": { + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { + "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", "cacheable-request": "^6.0.0", @@ -1314,5288 +1889,1101 @@ "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" } }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "growl": { + "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.x" + } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-ansi": { + "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-flag": { + "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "he": { + "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "bin": { + "he": "bin/he" + } }, - "http-cache-semantics": { + "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, - "i18n-core": { + "node_modules/i18n-core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/i18n-core/-/i18n-core-3.2.0.tgz", "integrity": "sha512-4tNStjxSyIcmOip3Ry6OHhHLPNuNjXtl5TCnFCXMO10kbjLA6SV4ZCkzTCK4vN3NyD7kOEwmbI9uHgXdiHk0hw==", - "requires": { - "escape-html": "^1.0.3" - }, "dependencies": { - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "acorn": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "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=" - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "optional": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" - }, - "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=" - }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" - }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "requires": { - "chalk": "^1.1.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bind-obj-methods": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz", - "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=" - }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.x.x" - } - }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "requires": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "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=" - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "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" - } - }, - "circular-json": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", - "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=" - }, - "clean-yaml-object": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", - "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=" - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "requires": { - "restore-cursor": "^1.0.1" - } - }, - "cli-width": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "optional": true - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "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=" - }, - "codeclimate-test-reporter": { - "version": "github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", - "from": "codeclimate-test-reporter@github:codeclimate/javascript-test-reporter#97f1ff2cf18cd5f03191d3d53e671c47e954f2fa", - "requires": { - "async": "~1.5.2", - "commander": "2.9.0", - "lcov-parse": "0.0.10", - "request": "~2.79.0" - }, - "dependencies": { - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" - } - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - } - } - }, - "color-support": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.2.tgz", - "integrity": "sha1-ScyZuJ0b3vEpLp2TI8ZpcaM+uJ0=" - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "requires": { - "safe-buffer": "^5.0.1" - } - } - } - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "conventional-changelog": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.3.tgz", - "integrity": "sha1-JigweKw4wJTfKvFgSwpGu8AWXE0=", - "requires": { - "conventional-changelog-angular": "^1.3.3", - "conventional-changelog-atom": "^0.1.0", - "conventional-changelog-codemirror": "^0.1.0", - "conventional-changelog-core": "^1.8.0", - "conventional-changelog-ember": "^0.2.5", - "conventional-changelog-eslint": "^0.1.0", - "conventional-changelog-express": "^0.1.0", - "conventional-changelog-jquery": "^0.1.0", - "conventional-changelog-jscs": "^0.1.0", - "conventional-changelog-jshint": "^0.1.0" - } - }, - "conventional-changelog-angular": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.3.3.tgz", - "integrity": "sha1-586AeoXdR1DhtBf3ZgRUl1EeByY=", - "requires": { - "compare-func": "^1.3.1", - "github-url-from-git": "^1.4.0", - "q": "^1.4.1" - } - }, - "conventional-changelog-atom": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz", - "integrity": "sha1-Z6R8ZqQrL4kJ7xWHyZia4d5zC5I=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-codemirror": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz", - "integrity": "sha1-dXelkdv5tTjnoVCn7mL2WihyszQ=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.8.0.tgz", - "integrity": "sha1-l3hItBbK8V+wnyCxKmLUDvFFuVc=", - "requires": { - "conventional-changelog-writer": "^1.1.0", - "conventional-commits-parser": "^1.0.0", - "dateformat": "^1.0.12", - "get-pkg-repo": "^1.0.0", - "git-raw-commits": "^1.2.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^1.2.0", - "lodash": "^4.0.0", - "normalize-package-data": "^2.3.5", - "q": "^1.4.1", - "read-pkg": "^1.1.0", - "read-pkg-up": "^1.0.1", - "through2": "^2.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "conventional-changelog-ember": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.5.tgz", - "integrity": "sha1-ziHVz4PNXr4F0j/fIy2IRPS1ak8=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-eslint": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz", - "integrity": "sha1-pSQR6ZngUBzlALhWsKZD0DMJB+I=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-express": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz", - "integrity": "sha1-VcbIQcgRliA2wDe9vZZKVK4xD84=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-jquery": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", - "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-jscs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", - "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", - "requires": { - "q": "^1.4.1" - } - }, - "conventional-changelog-jshint": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz", - "integrity": "sha1-AMq46aMxdIer2UxNhGcTQpGNKgc=", - "requires": { - "compare-func": "^1.3.1", - "q": "^1.4.1" - } - }, - "conventional-changelog-writer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz", - "integrity": "sha1-P0y00APrtWmJ0w00WJO1KkNjnI4=", - "requires": { - "compare-func": "^1.3.1", - "conventional-commits-filter": "^1.0.0", - "dateformat": "^1.0.11", - "handlebars": "^4.0.2", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.0.0", - "meow": "^3.3.0", - "semver": "^5.0.1", - "split": "^1.0.0", - "through2": "^2.0.0" - } - }, - "conventional-commits-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", - "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=", - "requires": { - "is-subset": "^0.1.1", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz", - "integrity": "sha1-4ye1MZThp61dxjR57pCZpSsCSGU=", - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^3.3.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" - } - }, - "conventional-recommended-bump": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-0.3.0.tgz", - "integrity": "sha1-6Dnej1fLtDRFyLSWdAHeBkTEJdg=", - "requires": { - "concat-stream": "^1.4.10", - "conventional-commits-filter": "^1.0.0", - "conventional-commits-parser": "^1.0.1", - "git-latest-semver-tag": "^1.0.0", - "git-raw-commits": "^1.0.0", - "meow": "^3.3.0", - "object-assign": "^4.0.1" - } - }, - "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=" - }, - "coveralls": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz", - "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=", - "requires": { - "js-yaml": "3.6.1", - "lcov-parse": "0.0.10", - "log-driver": "1.2.5", - "request": "2.79.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "js-yaml": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", - "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", - "requires": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - } - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" - } - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - } - } - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.x.x" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "^1.0.1" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "^0.10.9" - } - }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "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=" - }, - "deeper": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", - "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=" - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "diff": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", - "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" - }, - "doctrine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", - "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "requires": { - "is-obj": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.21", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.21.tgz", - "integrity": "sha1-Gacl+eUdAwC7wejoIRCf2dr1WSU=", - "requires": { - "es6-iterator": "2", - "es6-symbol": "~3.1" - } - }, - "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-symbol": "^3.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "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" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "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=", - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", - "requires": { - "babel-code-frame": "^6.16.0", - "chalk": "^1.1.3", - "concat-stream": "^1.5.2", - "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" - } - }, - "eslint-config-standard": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", - "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=" - }, - "eslint-import-resolver-node": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", - "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", - "requires": { - "object-assign": "^4.0.1", - "resolve": "^1.1.6" - } - }, - "eslint-module-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz", - "integrity": "sha1-pvjCHZATWHWc3DXbrBmCrh7li84=", - "requires": { - "pkg-dir": "^1.0.0" - } - }, - "eslint-plugin-import": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.3.0.tgz", - "integrity": "sha1-N8gB4K2g4pbL3yDD85OstbUq82s=", - "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.2.0", - "eslint-module-utils": "^2.0.0", - "has": "^1.0.1", - "lodash.cond": "^4.3.0", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.0.0.tgz", - "integrity": "sha512-9xERRx9V/8ciUHlTDlz9S4JiTL6Dc5oO+jKTy2mvQpxjhycpYZXzTT1t90IXjf+nAYw6/8sDnZfkeixJHxromA==", - "requires": { - "ignore": "^3.3.3", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "5.3.0" - } - }, - "eslint-plugin-promise": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", - "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=" - }, - "eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" - }, - "espree": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", - "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", - "requires": { - "acorn": "^5.0.1", - "acorn-jsx": "^3.0.0" - }, - "dependencies": { - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "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=" - } - } - } - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", - "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", - "requires": { - "estraverse": "~4.1.0", - "object-assign": "^4.0.1" - }, - "dependencies": { - "estraverse": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", - "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=" - } - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "events-to-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", - "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=" - }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "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=", - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", - "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "requires": { - "null-check": "^1.0.0" - } - }, - "fs-exists-cached": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" - }, - "function-loop": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz", - "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=" - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" - }, - "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=", - "requires": { - "is-property": "^1.0.0" - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "get-pkg-repo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.3.0.tgz", - "integrity": "sha1-Q8a0wEi3XdYE/FOI7ezeVX9jNd8=", - "requires": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", - "through2": "^2.0.0" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "git-latest-semver-tag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/git-latest-semver-tag/-/git-latest-semver-tag-1.0.2.tgz", - "integrity": "sha1-BhEwy/QnQRHMa+RhKz/zptk+JmA=", - "requires": { - "git-semver-tags": "^1.1.2", - "meow": "^3.3.0" - } - }, - "git-raw-commits": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", - "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=", - "requires": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^3.3.0", - "split2": "^2.0.0", - "through2": "^2.0.0" - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - } - }, - "git-semver-tags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.0.tgz", - "integrity": "sha1-sx/QLIq1eL1sm1ysyl4cZMEXesE=", - "requires": { - "meow": "^3.3.0", - "semver": "^5.0.1" - } - }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "requires": { - "ini": "^1.3.2" - } - }, - "github-url-from-git": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", - "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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" - } - }, - "globals": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", - "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - } - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "requires": { - "chalk": "^1.1.1", - "commander": "^2.9.0", - "is-my-json-valid": "^2.12.4", - "pinkie-promise": "^2.0.0" - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "requires": { - "function-bind": "^1.0.2" - } - }, - "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" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "ignore": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", - "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" - }, - "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", - "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.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "optional": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "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=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-my-json-valid": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "jsonpointer": "^4.0.0", - "xtend": "^4.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, - "is-resolvable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", - "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", - "requires": { - "tryit": "^1.0.1" - } - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", - "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" - }, - "js-yaml": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", - "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", - "requires": { - "argparse": "^1.0.7", - "esprima": "^3.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "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" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lcov-parse": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", - "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "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=", - "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=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.cond": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", - "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, - "log-driver": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", - "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "optional": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "requires": { - "mime-db": "~1.27.0" - } - }, - "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" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" - }, - "mockery": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.0.0.tgz", - "integrity": "sha1-BWmhGhhIRh/cNHz4zKLfLzEpvAM=" - }, - "modify-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", - "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=" - }, - "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "normalize-package-data": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=" - }, - "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=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "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=" - }, - "only-shallow": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", - "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=" - }, - "opener": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "wordwrap": "~0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "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-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "own-or": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", - "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=" - }, - "own-or-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz", - "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=" - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "parse-github-repo-url": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz", - "integrity": "sha1-KGxT4smWLgZBZJ7jrJUI/KTdlZw=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "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=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - } - }, - "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "q": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "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=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", - "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=", - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "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-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "resolve": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", - "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", - "requires": { - "path-parse": "^1.0.5" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "requires": { - "glob": "^7.0.5" - } - }, - "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", - "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=" - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "shelljs": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", - "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.x.x" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": ">=0.0.4" - } - }, - "source-map-support": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", - "requires": { - "source-map": "^0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - } - } - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "requires": { - "spdx-license-ids": "^1.0.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" - }, - "split": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", - "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", - "requires": { - "through": "2" - } - }, - "split2": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz", - "integrity": "sha1-eh9VHhdqkOzTNF9yRqDP4XXvT9A=", - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jodid25519": "^1.0.0", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" - }, - "standard-version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-4.0.0.tgz", - "integrity": "sha1-5XjO/UOrewKUS9dWlSUFLqwbl4c=", - "requires": { - "chalk": "^1.1.3", - "conventional-changelog": "^1.1.0", - "conventional-recommended-bump": "^0.3.0", - "figures": "^1.5.0", - "fs-access": "^1.0.0", - "object-assign": "^4.1.0", - "semver": "^5.1.0", - "yargs": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, - "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=" - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - }, - "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=" - }, - "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=", - "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": { - "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=" - }, - "string-width": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", - "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "tap": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/tap/-/tap-10.3.3.tgz", - "integrity": "sha512-ELPgkGOlrS4fj2iX7CFg9oJ4kGcA8xYurvtJhRN+O/CI52X+vSpHdahjx71ABX3Y774XcPKouU+DYB9lqrR2uQ==", - "requires": { - "bind-obj-methods": "^1.0.0", - "bluebird": "^3.3.1", - "clean-yaml-object": "^0.1.0", - "color-support": "^1.1.0", - "coveralls": "^2.11.2", - "deeper": "^2.1.0", - "foreground-child": "^1.3.3", - "fs-exists-cached": "^1.0.0", - "function-loop": "^1.0.1", - "glob": "^7.0.0", - "isexe": "^1.0.0", - "js-yaml": "^3.3.1", - "nyc": "^11.0.2-candidate.0", - "only-shallow": "^1.0.2", - "opener": "^1.4.1", - "os-homedir": "1.0.1", - "own-or": "^1.0.0", - "own-or-env": "^1.0.0", - "readable-stream": "^2.0.2", - "signal-exit": "^3.0.0", - "source-map-support": "^0.4.3", - "stack-utils": "^1.0.0", - "tap-mocha-reporter": "^3.0.1", - "tap-parser": "^5.3.1", - "tmatch": "^3.0.0", - "trivial-deferred": "^1.0.1", - "yapool": "^1.0.0" - }, - "dependencies": { - "nyc": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.0.2.tgz", - "integrity": "sha512-31rRd6ME9NM17w0oPKqi51a6fzJAqYarnzQXK+iL8XaX+3H6VH0BQut7qHIgrv2mBASRic4oNi2KRgcbFODrsQ==", - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.3.0", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.1", - "istanbul-lib-hook": "^1.0.7", - "istanbul-lib-instrument": "^1.7.2", - "istanbul-lib-report": "^1.1.1", - "istanbul-lib-source-maps": "^1.2.1", - "istanbul-reports": "^1.1.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.0.2", - "micromatch": "^2.3.11", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.5.4", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.3.6", - "test-exclude": "^4.1.1", - "yargs": "^8.0.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "optional": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "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=" - }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "requires": { - "default-require-extensions": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "arr-flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=" - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "requires": { - "chalk": "^1.1.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "babel-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", - "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.2.0", - "source-map": "^0.5.0", - "trim-right": "^1.0.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-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.10.0" - } - }, - "babel-template": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", - "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1", - "babylon": "^6.11.0", - "lodash": "^4.2.0" - } - }, - "babel-traverse": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", - "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", - "requires": { - "babel-code-frame": "^6.22.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "babylon": "^6.15.0", - "globals": "^9.0.0", - "invariant": "^2.2.0", - "lodash": "^4.2.0" - } - }, - "babel-types": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", - "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", - "requires": { - "babel-runtime": "^6.22.0", - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^1.0.1" - } - }, - "babylon": { - "version": "6.17.2", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.2.tgz", - "integrity": "sha1-IB0l71+JLEG65JSIsI2w3Udun1w=" - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "requires": { - "balanced-match": "^0.4.1", - "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=", - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caching-transform": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - } - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "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" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "optional": 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=" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" - }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "requires": { - "strip-bom": "^2.0.0" - } - }, - "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" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "^0.2.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=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "execa": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz", - "integrity": "sha1-3j+4XLjW6RyFvLzrFkWBeFy1ezY=", - "requires": { - "cross-spawn": "^4.0.0", - "get-stream": "^2.2.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "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=", - "requires": { - "fill-range": "^2.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "requires": { - "is-extglob": "^1.0.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "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=", - "requires": { - "for-in": "^1.0.1" - } - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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=", - "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.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", - "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=" - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "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": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" - }, - "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=", - "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=", - "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-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "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=" - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "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=" - }, - "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" - } - }, - "istanbul-lib-coverage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==" - }, - "istanbul-lib-hook": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", - "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.2.tgz", - "integrity": "sha512-lPgUY+Pa5dlq2/l0qs1PJZ54QPSfo+s4+UZdkb2d0hbOyrEIAbUJphBLFjEyXBdeCONgGRADFzs3ojfFtmuwFA==", - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.13.0", - "istanbul-lib-coverage": "^1.1.1", - "semver": "^5.3.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", - "requires": { - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", - "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", - "requires": { - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - } - }, - "istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-P8G873A0kW24XRlxHVGhMJBhQ8gWAec+dae7ZxOBzxT4w+a9ATSPvRVK3LB1RAJ9S8bg2tOyWHAGW40Zd2dKfw==", - "requires": { - "handlebars": "^4.0.3" - } - }, - "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "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" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "optional": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "requires": { - "js-tokens": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "md5-hex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.3.tgz", - "integrity": "sha1-2hQV8nIqURnbB7FMT5c0EIY6Kr8=", - "requires": { - "source-map": "^0.5.3" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "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.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" - }, - "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" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" - }, - "normalize-package-data": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.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" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "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.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz", - "integrity": "sha1-FZGN7VEFIrge565aMJ1U9jn8OaQ=", - "requires": { - "execa": "^0.5.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "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=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "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-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "randomatic": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", - "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", - "requires": { - "is-number": "^2.0.2", - "kind-of": "^3.0.2" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "requires": { - "is-equal-shallow": "^0.1.3", - "is-primitive": "^2.0.0" - } - }, - "remove-trailing-separator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", - "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=" - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" - }, - "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-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "requires": { - "glob": "^7.0.5" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - }, - "spawn-wrap": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.3.6.tgz", - "integrity": "sha512-5bEhZ11kqwoECJwfbur2ALU1NBnnCNbFzdWGHEXCiSsVhH+Ubz6eesa1DuQcm05pk38HknqP556f3CFhqws2ZA==", - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.3.3", - "signal-exit": "^3.0.2", - "which": "^1.2.4" - } - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "requires": { - "spdx-license-ids": "^1.0.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" - }, - "string-width": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", - "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } - } - }, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "test-exclude": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", - "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - } - }, - "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=" - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "uglify-js": { - "version": "2.8.27", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", - "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.1.tgz", - "integrity": "sha1-Qg73XoQMFFeoCtzKm8b6OEneUao=", - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "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=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "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=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^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=" - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } - } - } - } - }, - "os-homedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", - "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=" - } - } - }, - "tap-mocha-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.3.tgz", - "integrity": "sha1-5ZF/rT2acJV/m3xzbnk764fX2vE=", - "requires": { - "color-support": "^1.1.0", - "diff": "^1.3.2", - "escape-string-regexp": "^1.0.3", - "glob": "^7.0.5", - "js-yaml": "^3.3.1", - "readable-stream": "^2.1.5", - "tap-parser": "^5.1.0", - "unicode-length": "^1.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "optional": true, - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - } - } - }, - "tap-parser": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.3.3.tgz", - "integrity": "sha1-U+yKkPJ11v/0PxaeVqZ5UCp0EYU=", - "requires": { - "events-to-array": "^1.0.1", - "js-yaml": "^3.2.7", - "readable-stream": "^2" - } - }, - "text-extensions": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.4.0.tgz", - "integrity": "sha1-w4XS6Ah5/m75eJPhcJ2I2UU3Juk=" - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "requires": { - "safe-buffer": "^5.0.1" - } - } - } - }, - "tmatch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.0.0.tgz", - "integrity": "sha1-fSBx3tu8WH8ZSs2jBnvQdHtnCZE=" - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "requires": { - "punycode": "^1.4.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=" - }, - "trivial-deferred": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", - "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=" - }, - "tryit": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", - "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=" - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "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=" - }, - "uglify-js": { - "version": "2.8.27", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", - "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "optional": true - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "unicode-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", - "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", - "requires": { - "punycode": "^1.3.2", - "strip-ansi": "^3.0.1" - } - }, - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", - "requires": { - "os-homedir": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "requires": { - "extsprintf": "1.0.2" - } - }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "requires": { - "isexe": "^2.0.0" - }, - "dependencies": { - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - } - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "optional": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "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=", - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yapool": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", - "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=" - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^4.2.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } - } - } + "escape-html": "^1.0.3" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { + "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", + "dependencies": { + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-bigint": { + "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "requires": { + "dependencies": { "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-boolean-object": { + "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-buffer": { + "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dev": true, - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "is-glob": { + "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-negative-zero": { + "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true - }, - "is-string": { + "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { + "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-weakref": { + "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "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==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, "dependencies": { - "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 - } + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "json-buffer": { + "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stable-stringify-without-jsonify": { + "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "json5": { + "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, - "requires": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" } }, - "keyv": { + "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { + "dependencies": { "json-buffer": "3.0.0" } }, - "latest-version": { + "node_modules/latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { + "dependencies": { "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "levn": { + "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "requires": { + "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "node_modules/load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", + "dependencies": { + "graceful-fs": "^4.1.15", "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "log-symbols": { + "node_modules/log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, - "requires": { + "dependencies": { "chalk": "^2.4.2" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "loose-envify": { + "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/marked": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", + "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==", + "bin": { + "marked": "bin/marked" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mocha/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/mocha/node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/mocha/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "requires": { - "yallist": "^4.0.0" + "engines": { + "node": ">=4" } }, - "marked": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", - "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "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" + "node_modules/mocha/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/mocha/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, - "requires": { - "minimist": "^1.2.5" + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "node_modules/mocha/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, "dependencies": { - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "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" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "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 - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "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" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^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" - } - } + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "msee": { + "node_modules/msee": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", "integrity": "sha512-4ujQAsunNBX8AVN6nyiIj4jW3uHQsY3xpFVKTzbjKiq57C6GXh0h12qYehXwLYItmhpgWRB3W8PnzODKWxwXxA==", - "requires": { + "dependencies": { "ansi-regex": "^3.0.0", "ansicolors": "^0.3.2", "cardinal": "^1.0.0", @@ -6611,541 +2999,648 @@ "wcstring": "^2.1.0", "xtend": "^4.0.0" }, + "bin": { + "msee": "bin/msee" + } + }, + "node_modules/msee/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/msee/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "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==", - "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==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "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=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "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==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/msee/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/msee/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/msee/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/msee/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/msee/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/msee/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/msee/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/msee/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node-environment-flags": { + "node_modules/node-environment-flags": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", "dev": true, - "requires": { + "dependencies": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, - "nopt": { + "node_modules/node-environment-flags/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { + "dependencies": { "abbrev": "1", "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "bin": { + "nopt": "bin/nopt.js" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-url": { + "node_modules/normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "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==", + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" } }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", + "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", "dev": true, - "requires": { + "dependencies": { + "array.prototype.reduce": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "safe-array-concat": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { "wrappy": "1" } }, - "optionator": { + "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, - "requires": { + "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "os-homedir": { + "node_modules/os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "engines": { + "node": ">=0.10.0" + } }, - "os-tmpdir": { + "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } }, - "osenv": { + "node_modules/osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { + "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" } }, - "p-cancelable": { + "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "p-try": "^1.0.0" + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "requires": { - "p-limit": "^1.1.0" + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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 + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "package-json": { + "node_modules/package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { + "dependencies": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" } }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-json": { + "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "requires": { + "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "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 + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "pify": "^3.0.0" + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { + "node_modules/pkg-conf/node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-conf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", - "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, - "requires": { - "find-up": "^3.0.0", - "load-json-file": "^5.2.0" - }, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true - } + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "requires": { - "find-up": "^2.1.0" + "engines": { + "node": ">=4" } }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "prepend-http": { + "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prop-types": { + "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, - "requires": { + "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, - "pump": { + "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { + "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "rc": { + "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { + "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" } }, - "react-is": { + "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.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": { + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", @@ -7155,616 +3650,801 @@ "util-deprecate": "~1.0.1" } }, - "readdirp": { + "node_modules/readdirp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, - "requires": { + "dependencies": { "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "redeyed": { + "node_modules/redeyed": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", - "requires": { + "integrity": "sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==", + "dependencies": { "esprima": "~3.0.0" } }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "regexpp": { + "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "requires": { - "rc": "^1.2.8" + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" } }, - "registry-url": { + "node_modules/registry-url": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { + "dependencies": { "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" } }, - "repeat-string": { + "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "require-main-filename": { + "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, - "requires": { - "is-core-module": "^2.8.0", + "dependencies": { + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "responselike": { + "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { "lowercase-keys": "^1.0.0" } }, - "resumer": { + "node_modules/resumer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { + "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", + "dependencies": { "through": "~2.3.4" } }, - "rimraf": { + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-buffer": { + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "semver": { + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } }, - "set-blocking": { + "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "simple-terminal-menu": { + "node_modules/simple-terminal-menu": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-2.0.0.tgz", "integrity": "sha512-m9TpPbiYkHnq0FktmYpvcELiHFP7I9TF9hDxa37nv8CODKDHdCUxHoAa1krso3ULtAexhrlAI5UjEUA/DDbpNg==", - "requires": { + "dependencies": { "ansi-styles": "^4.2.1", "extended-terminal-menu": "^3.0.3", "wcstring": "^2.1.0" } }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "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.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "split": { + "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { + "dependencies": { "through": "2" + }, + "engines": { + "node": "*" } }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "standard": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.4.tgz", - "integrity": "sha512-2AGI874RNClW4xUdM+bg1LRXVlYLzTNEkHmTG5mhyn45OhbgwA+6znowkOGYy+WMb5HRyELvtNy39kcdMQMcYQ==", + "node_modules/standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.0.tgz", + "integrity": "sha512-jaDqlNSzLtWYW4lvQmU0EnxWMUGQiwHasZl5ZEIwx3S/ijZDjZOzs1y1QqKwKs5vqnFpGtizo4NOYX2s0Voq/g==", "dev": true, - "requires": { - "eslint": "~7.18.0", - "eslint-config-standard": "16.0.3", - "eslint-config-standard-jsx": "10.0.0", - "eslint-plugin-import": "~2.24.2", - "eslint-plugin-node": "~11.1.0", - "eslint-plugin-promise": "~5.1.0", - "eslint-plugin-react": "~7.25.1", - "standard-engine": "^14.0.1" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "eslint": "^8.41.0", + "eslint-config-standard": "17.1.0", + "eslint-config-standard-jsx": "^11.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.32.2", + "standard-engine": "^15.0.0", + "version-guard": "^1.1.1" + }, + "bin": { + "standard": "bin/cmd.cjs" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "standard-engine": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-14.0.1.tgz", - "integrity": "sha512-7FEzDwmHDOGva7r9ifOzD3BGdTbA7ujJ50afLVdW/tK14zQEptJjbFuUfn50irqdHDcTbNh0DTIoMPynMCXb0Q==", + "node_modules/standard-engine": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz", + "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==", "dev": true, - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "get-stdin": "^8.0.0", - "minimist": "^1.2.5", + "minimist": "^1.2.6", "pkg-conf": "^3.1.0", "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "string-to-stream": { + "node_modules/string-to-stream": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz", "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", - "requires": { + "dependencies": { "readable-stream": "^3.4.0" + } + }, + "node_modules/string-to-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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" + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - } + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "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=" + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "supports-color": { + "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "table-header": { + "node_modules/table-header": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", - "integrity": "sha1-fJrbQg6laftHF95dj1xFFIBNLAo=", - "requires": { + "integrity": "sha512-CD2ls9F2Y3f2dHcpJTg1OHUE/JqOIsjCbetroRT7W/vbRsjMnpmo6HR2Jz5EQgEgrjIfbV5pcQpZZFLIsWcDnw==", + "dependencies": { "repeat-string": "^1.5.2" } }, - "text-table": { + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "through2": { + "node_modules/through2": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "requires": { + "dependencies": { "inherits": "^2.0.4", "readable-stream": "2 || 3" } }, - "to-readable-stream": { + "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, - "requires": { + "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", + "json5": "^1.0.2", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, - "type-check": { + "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { + "dependencies": { "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "url-parse-lax": { + "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "node_modules/varsize-string": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", + "integrity": "sha512-Wuq8/cNzDSWYYQ1KlTk6IyGrRJOMU1YX21RSgEl3psbAGdExTBOIDWd80Z1n74A/24kStNT9QgylJHVjqgRpsQ==" }, - "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==", + "node_modules/version-guard": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.1.tgz", + "integrity": "sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ==", "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "engines": { + "node": ">=0.10.48" } }, - "varsize-string": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", - "integrity": "sha1-7xs7bHLbCDXqL4TN+R/sMMUgaIs=" - }, - "wcsize": { + "node_modules/wcsize": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wcsize/-/wcsize-1.0.0.tgz", - "integrity": "sha1-qKLhXmqKdHkdulgPaaV9J+hQ6h4=" + "integrity": "sha512-80ziCk3Z+iLfhgAbMBMU+PjoSFi9dg0FIKYd9xRiF15wfwJlzxu1mdIUdIv9iE1gpkX/4hV2QBbkNlydXgEFMA==" }, - "wcstring": { + "node_modules/wcstring": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/wcstring/-/wcstring-2.1.1.tgz", - "integrity": "sha1-3tUtdFycceJNCkidKCbSKjZe0Gc=", - "requires": { + "integrity": "sha512-81yoFUY/2Fw4RFzIkrlC47g7023/XkKofj62CNFT1kdZn6z7o2xhz8ffR7Wat76SuJTmrFNLmGDd7FLaZsIo5A==", + "dependencies": { "varsize-string": "^2.2.1", "wcsize": "^1.0.0" } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-boxed-primitive": { + "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "requires": { + "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, - "wide-align": { + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^1.0.2 || 2" } }, - "word-wrap": { + "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "workshopper-adventure": { + "node_modules/workshopper-adventure": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-7.0.0.tgz", "integrity": "sha512-G1NuuxtT+AMg+ybxvhhv9J67NRsLLCy3erM3m4fErOS+MdcwrqKejrlAz8K7T/Q/SYxR/gMNZFX+xV01Ejxskg==", - "requires": { + "dependencies": { "after": "^0.8.2", "chalk": "^3.0.0", "colors-tmpl": "~1.0.0", @@ -7781,285 +4461,338 @@ "workshopper-adventure-storage": "^3.0.0" } }, - "workshopper-adventure-storage": { + "node_modules/workshopper-adventure-storage": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/workshopper-adventure-storage/-/workshopper-adventure-storage-3.0.1.tgz", "integrity": "sha512-IyJOlz6Ihzj+S4uFhI9esVRpkKWmZT65LvLB0JT4Hq4jHnxpS+ml7EMX0CxTcN3QAoUUOEDu6D30g9qSMXXREg==", - "requires": { + "dependencies": { "rimraf": "^3.0.2" } }, - "workshopper-adventure-test": { + "node_modules/workshopper-adventure-test": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/workshopper-adventure-test/-/workshopper-adventure-test-1.2.0.tgz", "integrity": "sha512-Y4Vr8gi0/BYEjzz53rSpCbDuoDdm/thWq3gxpxrgsSbg5EnhPddQQw/+TUdtvissZKBt82IR+RptG1MNtlFg0A==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.6", "lodash": "^4.17.15", "mocha": "^7.1.1", "rimraf": "^3.0.2", "workshopper-adventure": "^6.1.0" }, + "bin": { + "workshopper-adventure-test": "bin/workshopper-adventure-test" + } + }, + "node_modules/workshopper-adventure-test/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9" - } - }, - "extended-terminal-menu": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-2.1.4.tgz", - "integrity": "sha1-GoKVOkOYQvVDsVS0YxgJ/aMs3hM=", - "dev": true, - "requires": { - "charm_inheritance-fix": "^1.0.1", - "duplexer2": "0.0.2", - "inherits": "~2.0.0", - "resumer": "~0.0.0", - "through2": "^0.6.3", - "wcstring": "^2.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "simple-terminal-menu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", - "integrity": "sha1-apqmscQd9T/AsCB4DHZNvN7Egf8=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "extended-terminal-menu": "^2.1.2", - "wcstring": "^2.1.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "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=", - "dev": true - }, - "workshopper-adventure": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.1.1.tgz", - "integrity": "sha512-Ny0LfUW4HeU4XlQyYYgqFzQoK39Un4XQSl/D3RUS2gW1BU8FDufnQu9IYVN9DYt6hzM+kaD7EumC7BXHEpPWFw==", - "dev": true, - "requires": { - "after": "^0.8.2", - "chalk": "^3.0.0", - "colors-tmpl": "~1.0.0", - "combined-stream-wait-for-it": "^1.1.0", - "commandico": "^2.0.4", - "i18n-core": "^3.0.0", - "latest-version": "^5.1.0", - "msee": "^0.3.5", - "simple-terminal-menu": "^1.1.3", - "split": "^1.0.0", - "string-to-stream": "^3.0.1", - "strip-ansi": "^6.0.0", - "through2": "^3.0.1", - "workshopper-adventure-storage": "^3.0.0" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/workshopper-adventure-test/node_modules/duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", + "dev": true, + "dependencies": { + "readable-stream": "~1.1.9" + } + }, + "node_modules/workshopper-adventure-test/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/extended-terminal-menu/-/extended-terminal-menu-2.1.4.tgz", + "integrity": "sha512-Jn/mlam8C8cW3KOpv5cwc01EtwcUiHtJTzgHemj+G53hmmpIJDFQOmOfgpRErmejudzdT5ajAZF6342isucBVw==", + "dev": true, + "dependencies": { + "charm_inheritance-fix": "^1.0.1", + "duplexer2": "0.0.2", + "inherits": "~2.0.0", + "resumer": "~0.0.0", + "through2": "^0.6.3", + "wcstring": "^2.1.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/workshopper-adventure-test/node_modules/extended-terminal-menu/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "dev": true, + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/workshopper-adventure-test/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/simple-terminal-menu/-/simple-terminal-menu-1.1.3.tgz", + "integrity": "sha512-UxbdVZ2qKPq5AZ3ZxWvkiUZjn5glDgMh5uMjBYBenhXsp0WQOYGUJtz8DTwVcoEnCC6Mhwr33E4aFd6XNgxh5w==", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "extended-terminal-menu": "^2.1.2", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/simple-terminal-menu/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/workshopper-adventure-test/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/workshopper-adventure-test/node_modules/workshopper-adventure": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/workshopper-adventure/-/workshopper-adventure-6.1.1.tgz", + "integrity": "sha512-Ny0LfUW4HeU4XlQyYYgqFzQoK39Un4XQSl/D3RUS2gW1BU8FDufnQu9IYVN9DYt6hzM+kaD7EumC7BXHEpPWFw==", + "dev": true, + "dependencies": { + "after": "^0.8.2", + "chalk": "^3.0.0", + "colors-tmpl": "~1.0.0", + "combined-stream-wait-for-it": "^1.1.0", + "commandico": "^2.0.4", + "i18n-core": "^3.0.0", + "latest-version": "^5.1.0", + "msee": "^0.3.5", + "simple-terminal-menu": "^1.1.3", + "split": "^1.0.0", + "string-to-stream": "^3.0.1", + "strip-ansi": "^6.0.0", + "through2": "^3.0.1", + "workshopper-adventure-storage": "^3.0.0" + } + }, + "node_modules/workshopper-adventure/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" } }, - "wrap-ansi": { + "node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "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" - } - }, - "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 - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "xdg-basedir": { + "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "yargs": { + "node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, - "requires": { + "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", @@ -8070,110 +4803,138 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "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 - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, - "requires": { + "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, - "yargs-unparser": { + "node_modules/yargs-unparser": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, - "requires": { + "dependencies": { "flat": "^4.1.0", "lodash": "^4.17.15", "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } } } diff --git a/package.json b/package.json index 7e7bde6b..84a1c14b 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,11 @@ }, "dependencies": { "colors": "1.4.0", - "diff": "^5.0.0", + "diff": "^5.1.0", "workshopper-adventure": "^7.0.0" }, "devDependencies": { - "standard": "^16.0.3", + "standard": "^17.1.0", "workshopper-adventure-test": "^1.2.0" }, "engines": { From fe2b57b7fb95a2bd70930aa4d2f2a52e59a46000 Mon Sep 17 00:00:00 2001 From: ledsun Date: Tue, 27 Jun 2023 15:03:33 +0900 Subject: [PATCH 342/346] Stop supporting Node 14. --- .github/workflows/node.js.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 62a41c10..1aae01e5 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - node-version: [19.x, 18.x, 16.x, 14.x] + node-version: [20.x, 19.x, 18.x, 16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: diff --git a/package.json b/package.json index 84a1c14b..ed2ca1c7 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "workshopper-adventure-test": "^1.2.0" }, "engines": { - "node": ">=12.22.4" + "node": ">=16.20.1" }, "license": "MIT", "main": "./index.js", From aef09eb0355d9f9da20a8d2c496c62e9b16d5e39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jul 2023 01:08:45 +0000 Subject: [PATCH 343/346] build(deps): bump semver from 5.7.1 to 5.7.2 Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd2ce13e..1ee9d6e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "workshopper-adventure-test": "^1.2.0" }, "engines": { - "node": ">=12.22.4" + "node": ">=16.20.1" } }, "node_modules/@eslint-community/eslint-utils": { @@ -490,9 +490,9 @@ } }, "node_modules/builtins/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1323,9 +1323,9 @@ } }, "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3112,9 +3112,9 @@ } }, "node_modules/node-environment-flags/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -3877,9 +3877,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } From 830de5c86104d2539aea87e0eaf754e8ce657784 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 21:42:37 +0000 Subject: [PATCH 344/346] build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1ee9d6e4..538bbedd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4432,9 +4432,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "dev": true, "engines": { "node": ">=0.10.0" From 83c925c2254d470de79cfb8a8d6498780f2442e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 12:05:26 +0000 Subject: [PATCH 345/346] build(deps-dev): bump braces from 3.0.2 to 3.0.3 Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3. - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3) --- updated-dependencies: - dependency-name: braces dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 538bbedd..ba4c2d5a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -463,12 +463,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1617,9 +1617,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" From 6b054f61be0db0c0570503edf76cbe3c3db8d964 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jul 2025 17:59:16 +0000 Subject: [PATCH 346/346] build(deps): bump brace-expansion from 1.1.11 to 1.1.12 Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12. - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.12 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ba4c2d5a..8b80a6e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -454,9 +454,10 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1"