├── .gitignore
├── README.md
├── app
├── examples
│ ├── classes
│ │ └── classes.js
│ ├── functionsMethodsAndObjects
│ │ ├── arrayDestructuring.js
│ │ ├── enhancedObjectProperties.js
│ │ ├── functionDefaultParameters.js
│ │ └── objectDescruting.js
│ ├── generators
│ │ ├── generatorsWithPromises.js
│ │ ├── ourFirstGenerator.js
│ │ └── secondGenerator.js
│ ├── modules
│ │ ├── Animal.js
│ │ ├── Math.js
│ │ └── Math2.js
│ ├── newSyntax
│ │ ├── arrowFunctions.js
│ │ ├── constKeyword.js
│ │ ├── letKeyword.js
│ │ ├── lexicalThis.js
│ │ ├── spreadOnArrays.js
│ │ ├── spreadOnObjects.js
│ │ └── templateLiterals.js
│ ├── promises
│ │ ├── fetch.js
│ │ ├── promise.js
│ │ └── promisesAll.js
│ └── react
│ │ └── yourFirstComponent.js
├── files
│ ├── arrayDestructuring.js
│ ├── arrowFunctions.js
│ └── objectDesctructuring.js
├── index.html
├── js
│ ├── index.js
│ └── logger
│ │ └── index.js
└── styles
│ └── main.scss
├── package-lock.json
├── package.json
├── webpack.config.js
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | .DS_Store
3 | /node_modules
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # es6-course-updated
2 | This course was completely recorded from scratched to make all students happy.
3 | ## Installation
4 |
5 | 1. Install node & yarn
6 | 2. cd es6-course-updated
7 | 3. yarn install
8 | 4. yarn run devserver
9 | 5. Enjoy
10 |
--------------------------------------------------------------------------------
/app/examples/classes/classes.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('ES6 Classes');
7 |
8 | class Animal {
9 | constructor(name, age) {
10 | log(`${name} is an animal and was created`);
11 | this.name = name;
12 | this.age = age;
13 | }
14 |
15 | static iAmAstaticMethod() {
16 | log('I am a static method inside of an Animal class');
17 | }
18 |
19 | eat() {
20 | log(`${this.name} is eating`);
21 | }
22 |
23 | sleep() {
24 | log(`${this.name} is sleeping`);
25 | }
26 |
27 | wakeUp() {
28 | log(`${this.name} is waking up`);
29 | }
30 |
31 | logAge() {
32 | log(`${this.name} is ${this.age} year old`);
33 | }
34 | }
35 |
36 | class Dog extends Animal {
37 | constructor(name, age, breed) {
38 | super(name, age)
39 | this.breed = breed;
40 | }
41 |
42 | logBreed() {
43 | log(`${this.name} is a ${this.breed}`);
44 | }
45 |
46 | logAgeFromDog() {
47 | super.logAge();
48 | }
49 | }
50 |
51 | class Cat extends Animal {
52 | constructor(name, age) {
53 | super(name, age)
54 | }
55 |
56 | logAgeFromCat() {
57 | super.logAge();
58 | }
59 | }
60 |
61 | const mike = new Dog('Mike', 4, 'Bulldog');
62 | mike.logBreed();
63 | mike.logAgeFromDog();
64 |
65 | log('----------')
66 |
67 | const josh = new Cat('Josh', 1);
68 | josh.logAgeFromCat();
69 | josh.eat();
70 | josh.sleep();
71 | josh.wakeUp();
72 | josh.logAge();
73 |
74 | /*
75 | Animal.iAmAstaticMethod();
76 |
77 | const bobby = new Animal("bobby", 2);
78 | bobby.eat();
79 | bobby.sleep();
80 | bobby.wakeUp();
81 | bobby.sleep();
82 | bobby.wakeUp();
83 | bobby.logAge();
84 |
85 | log('---------------');
86 |
87 | const marshall = new Animal("marshall", 3);
88 | marshall.eat();
89 | marshall.sleep();
90 | marshall.wakeUp();
91 | marshall.sleep();
92 | marshall.wakeUp();
93 | marshall.logAge();
94 | */
95 |
--------------------------------------------------------------------------------
/app/examples/functionsMethodsAndObjects/arrayDestructuring.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Array Destructuring');
7 |
8 | const names = ['Anna', 'Mariam', 'Joe', 'Mark', 'Matt'];
9 |
10 | // const anna = names[0];
11 | // const mariam = names[1];
12 | // const joe = names[2];
13 |
14 | const [anna, , joe, ...restOfNames] = names;
15 |
16 | log(`${anna} ${joe}`);
17 | log(restOfNames);
18 | log(restOfNames.length);
19 |
--------------------------------------------------------------------------------
/app/examples/functionsMethodsAndObjects/enhancedObjectProperties.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Enhanced Object Properties');
7 |
8 | const pricePropName = "PRICE";
9 |
10 | const calculator = (name, price) => {
11 | return {
12 | name,
13 | add(n1, n2) {
14 | return n1 + n2;
15 | },
16 | [pricePropName.toLowerCase()] : price
17 | }
18 | }
19 |
20 | const calc = calculator('casio', 19.99);
21 |
22 | log(calc.name);
23 | log(calc.add(20, 20));
24 | log(calc.price);
25 |
--------------------------------------------------------------------------------
/app/examples/functionsMethodsAndObjects/functionDefaultParameters.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Function Default Parameters');
7 |
8 | const calculatePay = (yearSalary, bonus = {
9 | teamBonus: 0,
10 | employeeBonus: 0
11 | }) => {
12 | return yearSalary + bonus.teamBonus + bonus.employeeBonus;
13 | }
14 |
15 | log(calculatePay(22000, {teamBonus: 10000, employeeBonus: 6000 }));
16 |
--------------------------------------------------------------------------------
/app/examples/functionsMethodsAndObjects/objectDescruting.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Object Descruturing');
7 |
8 | const getUser = () => {
9 | return {
10 | name: 'John',
11 | surname: 'Doe',
12 | gender: 'male',
13 | address: {
14 | country: 'United States',
15 | city: 'California',
16 | postCode: 'CA',
17 | fullAddress: {
18 | doorNumber: 22,
19 | street: 'LA st'
20 | }
21 | },
22 | age: 29
23 | }
24 | };
25 |
26 | const user = getUser();
27 |
28 | // const name = user.name;
29 | // const age = user.age;
30 | // const country = user.address.country;
31 | const doorNumber = user.address.fullAddress.doorNumber;
32 |
33 | const { name : theName, age : theAge, address : { country : theCountry } } = user;
34 | const { address : { fullAddress : { doorNumber : number } } } = user;
35 |
36 | log(theName);
37 | log(theAge);
38 | log(theCountry);
39 | log(number);
40 |
--------------------------------------------------------------------------------
/app/examples/generators/generatorsWithPromises.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 |
7 | import { coroutine as co } from 'bluebird';
8 |
9 | logTitle('Generators & Promises');
10 |
11 |
12 | const getRandomUsers = co(function* (n) {
13 | const fetchRandomUsers = yield fetch(`https://randomuser.me/api/?results=${n}`)
14 | const data = yield fetchRandomUsers.json();
15 | return data;
16 | });
17 |
18 | getRandomUsers(10).then(randomUsers => {
19 | randomUsers.results.forEach(user => {
20 | const {gender, email} = user;
21 | log(`${gender} - ${email}`);
22 | });
23 | }).catch(err => log);
24 |
--------------------------------------------------------------------------------
/app/examples/generators/ourFirstGenerator.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Generators');
7 |
8 | const getNumbers = function* () {
9 | yield 1;
10 | yield "hello";
11 | yield true;
12 | yield { name: 'Alex'};
13 | return "i am done";
14 | }
15 |
16 | const numbersGen = getNumbers();
17 |
18 | log(numbersGen.next().value);
19 | log(numbersGen.next().value);
20 | log(numbersGen.next().value);
21 | log(JSON.stringify(numbersGen.next().value));
22 | log(numbersGen.next().value);
23 |
--------------------------------------------------------------------------------
/app/examples/generators/secondGenerator.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Generators');
7 |
8 | const getNumbers = function* (numbers) {
9 | for (var i = 0; i < numbers.length; i++) {
10 | yield numbers[i];
11 | }
12 | }
13 |
14 | const getNumbersGen = getNumbers([1,2,3,4,5]);
15 |
16 | const interval = setInterval(()=> {
17 | const next = getNumbersGen.next();
18 | if(next.done) {
19 | log("this generator is done");
20 | clearInterval(interval);
21 | }else{
22 | const number = next.value;
23 | log(number);
24 | }
25 | }, 1000);
26 |
--------------------------------------------------------------------------------
/app/examples/modules/Animal.js:
--------------------------------------------------------------------------------
1 | export default class Animal{
2 | constructor() {
3 | console.log("i am an animal");
4 | }
5 | getClassType() {
6 | return "Animal";
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/app/examples/modules/Math.js:
--------------------------------------------------------------------------------
1 | export var add = function(n1, n2) {
2 | return n1 + n2;
3 | }
4 |
5 | export var divide = function(n1, n2) {
6 | return n1 / n2;
7 | }
8 |
9 | export var subtract = function(n1, n2) {
10 | return n1 - n2;
11 | }
12 |
13 | export var multiply = function(n1, n2) {
14 | return n1 * n2;
15 | }
16 |
17 | export var PI = 3.1415;
18 |
--------------------------------------------------------------------------------
/app/examples/modules/Math2.js:
--------------------------------------------------------------------------------
1 | var add = function(n1, n2) {
2 | return n1 + n2;
3 | }
4 |
5 | var divide = function(n1, n2) {
6 | return n1 / n2;
7 | }
8 |
9 | var subtract = function(n1, n2) {
10 | return n1 - n2;
11 | }
12 |
13 | var multiply = function(n1, n2) {
14 | return n1 * n2;
15 | }
16 |
17 | var PI = 3.1415;
18 |
19 | export {
20 | add,
21 | divide,
22 | subtract,
23 | multiply,
24 | PI
25 | }
26 |
--------------------------------------------------------------------------------
/app/examples/newSyntax/arrowFunctions.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Arrow Functions');
7 |
8 | const hello = () => {
9 | const es6 = 'ES6';
10 | return `Hello ${es6}`;
11 | };
12 |
13 | const powers =
14 | [1,2,3,4,5].map((number, index) => Math.pow(number, index));
15 |
16 |
17 | const add = (n1, n2) => n1 + n2;
18 |
19 | const milesToKm = miles => miles * 1.60934;
20 |
21 |
22 | log(hello());
23 | log(powers);
24 | log(add(100,100));
25 | log(milesToKm(300));
26 |
--------------------------------------------------------------------------------
/app/examples/newSyntax/constKeyword.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Const keyword');
7 |
8 | let name = 'Maria';
9 | name = {};
10 | name = 2;
11 |
12 | log(name);
13 |
14 | /* ************************* */
15 |
16 | const person = {};
17 |
18 | person['name'] = 'Maria';
19 |
20 | log(person.name);
21 |
22 | const array = [];
23 | array.push('Maria from Array');
24 |
25 | log(array[0]);
26 |
--------------------------------------------------------------------------------
/app/examples/newSyntax/letKeyword.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Let keyword');
7 |
8 | for(var i = 0; i<10; i++){
9 | log(i);
10 | }
11 |
12 | log(i);
13 |
14 | for(let i = 0; i<10; i++){
15 | log(i);
16 | }
17 |
18 | log(i);
19 |
--------------------------------------------------------------------------------
/app/examples/newSyntax/lexicalThis.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Lexical this');
7 |
8 | const person = {
9 | name: 'Alex',
10 | cars: ['ferrari', 'lambo'],
11 | toString: function() {
12 | // log(`${this.name} has ${this.cars}`)
13 | this.cars.forEach(car => {
14 | log(`${this.name} has ${car}`);
15 | });
16 | }
17 | }
18 |
19 | person.toString();
20 |
--------------------------------------------------------------------------------
/app/examples/newSyntax/spreadOnArrays.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Spread on Arrays');
7 |
8 | const arrayOne = ['Marian', 'Anna', 'Alex'];
9 | const arrayTwo = ['Said', 'Ismail', 'Aisha'];
10 |
11 | const concatArray = [...arrayOne, ...arrayTwo];
12 |
13 | concatArray.forEach(function(name) {
14 | log(name);
15 | });
16 |
17 | const name = 'Marian';
18 | const nameToArray = [...name];
19 | nameToArray.forEach(function(letter) {
20 | log(letter);
21 | });
22 |
23 | const addNumbers = function(n1, n2, n3) {
24 | return n1 + n2 + n3;
25 | }
26 |
27 | const numbers = [1,5,19];
28 |
29 | //const addition = addNumbers(numbers[0], numbers[1], numbers[2]);
30 | const addition = addNumbers(...numbers);
31 |
32 | log(addition);
33 |
--------------------------------------------------------------------------------
/app/examples/newSyntax/spreadOnObjects.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Spread on Objects');
7 |
8 | const address = {
9 | city: 'LA',
10 | country: 'USA',
11 | postCode: 'LA44'
12 | };
13 |
14 | const name = {
15 | firstName: 'Andy',
16 | lastName: 'Jones'
17 | };
18 |
19 | const person = { ...address, ...name };
20 |
21 | log(JSON.stringify(person, null, 2));
22 |
--------------------------------------------------------------------------------
/app/examples/newSyntax/templateLiterals.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Template Literals');
7 |
8 | const name = 'Anna';
9 | const country = 'Canada';
10 | const age = 33;
11 |
12 | log("Name: " + name + " Country" + country + " age "+ age);
13 | log(`Name ${name} Country ${country} Age ${age}`);
14 | log(`Name ${name.length} Country ${country} Age ${age}`);
15 |
--------------------------------------------------------------------------------
/app/examples/promises/fetch.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Promises & Fetch Api');
7 |
8 | const getRandomUsers = n => {
9 | const fetchRandomUsers = fetch(`https://randomuser.me/api/?results=${n}`)
10 | fetchRandomUsers.then(data => {
11 | data.json().then(randomUsers => {
12 | log(JSON.stringify(randomUsers.results.length));
13 | randomUsers.results.forEach(user => {
14 | const {gender, email} = user;
15 | log(`${gender} - ${email}`);
16 | });
17 | })
18 | });
19 | }
20 |
21 | getRandomUsers(100);
22 |
--------------------------------------------------------------------------------
/app/examples/promises/promise.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Promises');
7 |
8 | const promise = new Promise((resolve, reject) => {
9 | setTimeout(() => {
10 | resolve("data back from the server");
11 | }, 3000);
12 |
13 | setTimeout(() => {
14 | reject("no data back from the server, there was an error");
15 | }, 5000);
16 | });
17 |
18 | promise.then(response => {
19 | log(response);
20 | }).catch(error => {
21 | log(error);
22 | })
23 |
--------------------------------------------------------------------------------
/app/examples/promises/promisesAll.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 | logTitle('Promises');
7 |
8 | const namesPromise = new Promise((resolve, reject) => {
9 | setTimeout(() => {
10 | resolve(['Anna', 'Jones', 'Ali', 'Jake']);
11 | }, 3000);
12 |
13 | setTimeout(() => {
14 | reject("no data back from the server, there was an error");
15 | }, 5000);
16 | });
17 |
18 | const surnamesPromise = new Promise((resolve, reject) => {
19 | setTimeout(() => {
20 | resolve(['Williams', 'Bravo', 'Mohammado', 'Smith']);
21 | }, 3000);
22 |
23 | setTimeout(() => {
24 | reject("no data back from the server, there was an error");
25 | }, 5000);
26 | });
27 |
28 | Promise.all([namesPromise, surnamesPromise]).then(data => {
29 | const [names, surnames] = data;
30 | for (var i = 0; i < names.length; i++) {
31 | const name = names[i];
32 | const surname = surnames[i];
33 | log(`${name} ${surname}`);
34 | }
35 |
36 | }).catch(error => {
37 | log(error);
38 | });
39 |
--------------------------------------------------------------------------------
/app/examples/react/yourFirstComponent.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require('styles/main.scss');
3 | /* js */
4 | import { log, logTitle } from 'logger';
5 | /* your imports */
6 |
7 | import React, { Component } from 'react';
8 | import { render } from 'react-dom';
9 |
10 | logTitle('React & ES6');
11 |
12 | class MainComponent extends Component {
13 | constructor(props) {
14 | super(props);
15 | }
16 |
17 | render() {
18 | return (
19 |
Hello world
20 | );
21 | }
22 | }
23 |
24 | const mountNode = document.getElementById('mountNode');
25 |
26 | render(, mountNode);
27 |
--------------------------------------------------------------------------------
/app/files/arrayDestructuring.js:
--------------------------------------------------------------------------------
1 | const names = ['Anna', 'Mariam', 'Joe', 'Mark', 'Matt'];
2 | const anna = names[0];
3 | const mariam = names[1];
4 | const joe = names[2];
5 |
6 | log(`${anna} ${mariam} ${joe}`);
7 |
--------------------------------------------------------------------------------
/app/files/arrowFunctions.js:
--------------------------------------------------------------------------------
1 | const hello = function() {
2 | const es6 = 'ES6';
3 | return `Hello ${es6}`;
4 | };
5 |
6 | const powers = [1,2,3,4,5].map(function(number, index) {
7 | return Math.pow(number, index);
8 | });
9 |
10 |
11 | const add = function(n1, n2) {
12 | return n1 + n2;
13 | };
14 |
15 | const milesToKm = function(miles) {
16 | return miles * 1.60934;
17 | };
18 |
19 | log(hello());
20 | log(powers);
21 | log(add(100,100));
22 | log(milesToKm(100));
23 |
--------------------------------------------------------------------------------
/app/files/objectDesctructuring.js:
--------------------------------------------------------------------------------
1 | const getUser = () => {
2 | return {
3 | name: 'John',
4 | surname: 'Doe',
5 | gender: 'male',
6 | address: {
7 | country: 'United States',
8 | city: 'California',
9 | postCode: 'CA',
10 | fullAddress: {
11 | doorNumber: 22,
12 | street: 'LA st'
13 | }
14 | },
15 | age: 29
16 | }
17 | };
18 |
19 | const user = getUser();
20 |
21 | const name = user.name;
22 | const age = user.age;
23 | const country = user.address.country;
24 | const doorNumber = user.address.fullAddress.doorNumber;
25 |
26 | log(name);
27 | log(age);
28 | log(country);
29 | log(doorNumber);
30 |
--------------------------------------------------------------------------------
/app/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | es2015 Course
7 |
8 |
9 |
10 |
11 |
12 |

13 |
14 |
15 |
16 | ES6 / ECMAScript2015 COURSE
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/js/index.js:
--------------------------------------------------------------------------------
1 | /* styling */
2 | require("styles/main.scss");
3 | /* js */
4 | import $ from "jquery";
5 | import { log, logTitle } from "logger";
6 | /* your imports */
7 | logTitle("Title");
8 | /* coding examples */
9 |
--------------------------------------------------------------------------------
/app/js/logger/index.js:
--------------------------------------------------------------------------------
1 | import $ from 'jquery';
2 | export const log = content => $('#content').append(" " + content + "
" );
3 | export const logTitle = title => $('#title').append(title);
4 |
--------------------------------------------------------------------------------
/app/styles/main.scss:
--------------------------------------------------------------------------------
1 | @import "../../node_modules/bootstrap/dist/css/bootstrap.min.css";
2 | @import "../../node_modules/font-awesome/css/font-awesome.min.css";
3 |
4 | body{
5 | margin-top: 40px;
6 | }
7 |
8 | #content{
9 | font-size: 1.4em;
10 | color: gray;
11 | }
12 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "reactUserInterfaces",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "abbrev": {
8 | "version": "1.1.1",
9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
10 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
11 | "dev": true
12 | },
13 | "ajv": {
14 | "version": "6.11.0",
15 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
16 | "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
17 | "dev": true,
18 | "requires": {
19 | "fast-deep-equal": "^3.1.1",
20 | "fast-json-stable-stringify": "^2.0.0",
21 | "json-schema-traverse": "^0.4.1",
22 | "uri-js": "^4.2.2"
23 | }
24 | },
25 | "amdefine": {
26 | "version": "1.0.1",
27 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
28 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
29 | "dev": true
30 | },
31 | "ansi-regex": {
32 | "version": "2.1.1",
33 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
34 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
35 | "dev": true
36 | },
37 | "ansi-styles": {
38 | "version": "2.2.1",
39 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
40 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
41 | "dev": true
42 | },
43 | "aproba": {
44 | "version": "1.2.0",
45 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
46 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
47 | "dev": true
48 | },
49 | "are-we-there-yet": {
50 | "version": "1.1.5",
51 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
52 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
53 | "dev": true,
54 | "requires": {
55 | "delegates": "^1.0.0",
56 | "readable-stream": "^2.0.6"
57 | }
58 | },
59 | "array-find-index": {
60 | "version": "1.0.2",
61 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
62 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
63 | "dev": true
64 | },
65 | "asn1": {
66 | "version": "0.2.4",
67 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
68 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
69 | "dev": true,
70 | "requires": {
71 | "safer-buffer": "~2.1.0"
72 | }
73 | },
74 | "assert-plus": {
75 | "version": "1.0.0",
76 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
77 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
78 | "dev": true
79 | },
80 | "async-foreach": {
81 | "version": "0.1.3",
82 | "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
83 | "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
84 | "dev": true
85 | },
86 | "asynckit": {
87 | "version": "0.4.0",
88 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
89 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
90 | "dev": true
91 | },
92 | "aws-sign2": {
93 | "version": "0.7.0",
94 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
95 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
96 | "dev": true
97 | },
98 | "aws4": {
99 | "version": "1.9.1",
100 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
101 | "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==",
102 | "dev": true
103 | },
104 | "balanced-match": {
105 | "version": "1.0.0",
106 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
107 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
108 | "dev": true
109 | },
110 | "bcrypt-pbkdf": {
111 | "version": "1.0.2",
112 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
113 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
114 | "dev": true,
115 | "requires": {
116 | "tweetnacl": "^0.14.3"
117 | }
118 | },
119 | "block-stream": {
120 | "version": "0.0.9",
121 | "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
122 | "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
123 | "dev": true,
124 | "requires": {
125 | "inherits": "~2.0.0"
126 | }
127 | },
128 | "brace-expansion": {
129 | "version": "1.1.11",
130 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
131 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
132 | "dev": true,
133 | "requires": {
134 | "balanced-match": "^1.0.0",
135 | "concat-map": "0.0.1"
136 | }
137 | },
138 | "camelcase": {
139 | "version": "2.1.1",
140 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
141 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
142 | "dev": true
143 | },
144 | "camelcase-keys": {
145 | "version": "2.1.0",
146 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
147 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
148 | "dev": true,
149 | "requires": {
150 | "camelcase": "^2.0.0",
151 | "map-obj": "^1.0.0"
152 | }
153 | },
154 | "caseless": {
155 | "version": "0.12.0",
156 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
157 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
158 | "dev": true
159 | },
160 | "chalk": {
161 | "version": "1.1.3",
162 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
163 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
164 | "dev": true,
165 | "requires": {
166 | "ansi-styles": "^2.2.1",
167 | "escape-string-regexp": "^1.0.2",
168 | "has-ansi": "^2.0.0",
169 | "strip-ansi": "^3.0.0",
170 | "supports-color": "^2.0.0"
171 | }
172 | },
173 | "cliui": {
174 | "version": "3.2.0",
175 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
176 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
177 | "dev": true,
178 | "requires": {
179 | "string-width": "^1.0.1",
180 | "strip-ansi": "^3.0.1",
181 | "wrap-ansi": "^2.0.0"
182 | }
183 | },
184 | "code-point-at": {
185 | "version": "1.1.0",
186 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
187 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
188 | "dev": true
189 | },
190 | "combined-stream": {
191 | "version": "1.0.8",
192 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
193 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
194 | "dev": true,
195 | "requires": {
196 | "delayed-stream": "~1.0.0"
197 | }
198 | },
199 | "concat-map": {
200 | "version": "0.0.1",
201 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
202 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
203 | "dev": true
204 | },
205 | "console-control-strings": {
206 | "version": "1.1.0",
207 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
208 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
209 | "dev": true
210 | },
211 | "core-util-is": {
212 | "version": "1.0.2",
213 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
214 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
215 | "dev": true
216 | },
217 | "cross-spawn": {
218 | "version": "3.0.1",
219 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
220 | "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
221 | "dev": true,
222 | "requires": {
223 | "lru-cache": "^4.0.1",
224 | "which": "^1.2.9"
225 | }
226 | },
227 | "currently-unhandled": {
228 | "version": "0.4.1",
229 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
230 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
231 | "dev": true,
232 | "requires": {
233 | "array-find-index": "^1.0.1"
234 | }
235 | },
236 | "dashdash": {
237 | "version": "1.14.1",
238 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
239 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
240 | "dev": true,
241 | "requires": {
242 | "assert-plus": "^1.0.0"
243 | }
244 | },
245 | "decamelize": {
246 | "version": "1.2.0",
247 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
248 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
249 | "dev": true
250 | },
251 | "delayed-stream": {
252 | "version": "1.0.0",
253 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
254 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
255 | "dev": true
256 | },
257 | "delegates": {
258 | "version": "1.0.0",
259 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
260 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
261 | "dev": true
262 | },
263 | "ecc-jsbn": {
264 | "version": "0.1.2",
265 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
266 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
267 | "dev": true,
268 | "requires": {
269 | "jsbn": "~0.1.0",
270 | "safer-buffer": "^2.1.0"
271 | }
272 | },
273 | "error-ex": {
274 | "version": "1.3.2",
275 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
276 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
277 | "dev": true,
278 | "requires": {
279 | "is-arrayish": "^0.2.1"
280 | }
281 | },
282 | "escape-string-regexp": {
283 | "version": "1.0.5",
284 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
285 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
286 | "dev": true
287 | },
288 | "extend": {
289 | "version": "3.0.2",
290 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
291 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
292 | "dev": true
293 | },
294 | "extsprintf": {
295 | "version": "1.3.0",
296 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
297 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
298 | "dev": true
299 | },
300 | "fast-deep-equal": {
301 | "version": "3.1.1",
302 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
303 | "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
304 | "dev": true
305 | },
306 | "fast-json-stable-stringify": {
307 | "version": "2.1.0",
308 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
309 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
310 | "dev": true
311 | },
312 | "find-up": {
313 | "version": "1.1.2",
314 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
315 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
316 | "dev": true,
317 | "requires": {
318 | "path-exists": "^2.0.0",
319 | "pinkie-promise": "^2.0.0"
320 | }
321 | },
322 | "forever-agent": {
323 | "version": "0.6.1",
324 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
325 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
326 | "dev": true
327 | },
328 | "form-data": {
329 | "version": "2.3.3",
330 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
331 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
332 | "dev": true,
333 | "requires": {
334 | "asynckit": "^0.4.0",
335 | "combined-stream": "^1.0.6",
336 | "mime-types": "^2.1.12"
337 | }
338 | },
339 | "fs.realpath": {
340 | "version": "1.0.0",
341 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
342 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
343 | "dev": true
344 | },
345 | "fstream": {
346 | "version": "1.0.12",
347 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
348 | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
349 | "dev": true,
350 | "requires": {
351 | "graceful-fs": "^4.1.2",
352 | "inherits": "~2.0.0",
353 | "mkdirp": ">=0.5 0",
354 | "rimraf": "2"
355 | }
356 | },
357 | "gauge": {
358 | "version": "2.7.4",
359 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
360 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
361 | "dev": true,
362 | "requires": {
363 | "aproba": "^1.0.3",
364 | "console-control-strings": "^1.0.0",
365 | "has-unicode": "^2.0.0",
366 | "object-assign": "^4.1.0",
367 | "signal-exit": "^3.0.0",
368 | "string-width": "^1.0.1",
369 | "strip-ansi": "^3.0.1",
370 | "wide-align": "^1.1.0"
371 | }
372 | },
373 | "gaze": {
374 | "version": "1.1.3",
375 | "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
376 | "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
377 | "dev": true,
378 | "requires": {
379 | "globule": "^1.0.0"
380 | }
381 | },
382 | "get-caller-file": {
383 | "version": "1.0.3",
384 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
385 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
386 | "dev": true
387 | },
388 | "get-stdin": {
389 | "version": "4.0.1",
390 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
391 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
392 | "dev": true
393 | },
394 | "getpass": {
395 | "version": "0.1.7",
396 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
397 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
398 | "dev": true,
399 | "requires": {
400 | "assert-plus": "^1.0.0"
401 | }
402 | },
403 | "glob": {
404 | "version": "7.1.6",
405 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
406 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
407 | "dev": true,
408 | "requires": {
409 | "fs.realpath": "^1.0.0",
410 | "inflight": "^1.0.4",
411 | "inherits": "2",
412 | "minimatch": "^3.0.4",
413 | "once": "^1.3.0",
414 | "path-is-absolute": "^1.0.0"
415 | }
416 | },
417 | "globule": {
418 | "version": "1.3.1",
419 | "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz",
420 | "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==",
421 | "dev": true,
422 | "requires": {
423 | "glob": "~7.1.1",
424 | "lodash": "~4.17.12",
425 | "minimatch": "~3.0.2"
426 | }
427 | },
428 | "graceful-fs": {
429 | "version": "4.2.3",
430 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
431 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
432 | "dev": true
433 | },
434 | "har-schema": {
435 | "version": "2.0.0",
436 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
437 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
438 | "dev": true
439 | },
440 | "har-validator": {
441 | "version": "5.1.3",
442 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
443 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
444 | "dev": true,
445 | "requires": {
446 | "ajv": "^6.5.5",
447 | "har-schema": "^2.0.0"
448 | }
449 | },
450 | "has-ansi": {
451 | "version": "2.0.0",
452 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
453 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
454 | "dev": true,
455 | "requires": {
456 | "ansi-regex": "^2.0.0"
457 | }
458 | },
459 | "has-unicode": {
460 | "version": "2.0.1",
461 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
462 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
463 | "dev": true
464 | },
465 | "hosted-git-info": {
466 | "version": "2.8.5",
467 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
468 | "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
469 | "dev": true
470 | },
471 | "http-signature": {
472 | "version": "1.2.0",
473 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
474 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
475 | "dev": true,
476 | "requires": {
477 | "assert-plus": "^1.0.0",
478 | "jsprim": "^1.2.2",
479 | "sshpk": "^1.7.0"
480 | }
481 | },
482 | "in-publish": {
483 | "version": "2.0.0",
484 | "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
485 | "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
486 | "dev": true
487 | },
488 | "indent-string": {
489 | "version": "2.1.0",
490 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
491 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
492 | "dev": true,
493 | "requires": {
494 | "repeating": "^2.0.0"
495 | }
496 | },
497 | "inflight": {
498 | "version": "1.0.6",
499 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
500 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
501 | "dev": true,
502 | "requires": {
503 | "once": "^1.3.0",
504 | "wrappy": "1"
505 | }
506 | },
507 | "inherits": {
508 | "version": "2.0.4",
509 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
510 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
511 | "dev": true
512 | },
513 | "invert-kv": {
514 | "version": "1.0.0",
515 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
516 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
517 | "dev": true
518 | },
519 | "is-arrayish": {
520 | "version": "0.2.1",
521 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
522 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
523 | "dev": true
524 | },
525 | "is-finite": {
526 | "version": "1.1.0",
527 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
528 | "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
529 | "dev": true
530 | },
531 | "is-fullwidth-code-point": {
532 | "version": "1.0.0",
533 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
534 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
535 | "dev": true,
536 | "requires": {
537 | "number-is-nan": "^1.0.0"
538 | }
539 | },
540 | "is-typedarray": {
541 | "version": "1.0.0",
542 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
543 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
544 | "dev": true
545 | },
546 | "is-utf8": {
547 | "version": "0.2.1",
548 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
549 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
550 | "dev": true
551 | },
552 | "isarray": {
553 | "version": "1.0.0",
554 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
555 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
556 | "dev": true
557 | },
558 | "isexe": {
559 | "version": "2.0.0",
560 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
561 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
562 | "dev": true
563 | },
564 | "isstream": {
565 | "version": "0.1.2",
566 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
567 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
568 | "dev": true
569 | },
570 | "js-base64": {
571 | "version": "2.5.2",
572 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz",
573 | "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==",
574 | "dev": true
575 | },
576 | "jsbn": {
577 | "version": "0.1.1",
578 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
579 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
580 | "dev": true
581 | },
582 | "json-schema": {
583 | "version": "0.2.3",
584 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
585 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
586 | "dev": true
587 | },
588 | "json-schema-traverse": {
589 | "version": "0.4.1",
590 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
591 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
592 | "dev": true
593 | },
594 | "json-stringify-safe": {
595 | "version": "5.0.1",
596 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
597 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
598 | "dev": true
599 | },
600 | "jsprim": {
601 | "version": "1.4.1",
602 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
603 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
604 | "dev": true,
605 | "requires": {
606 | "assert-plus": "1.0.0",
607 | "extsprintf": "1.3.0",
608 | "json-schema": "0.2.3",
609 | "verror": "1.10.0"
610 | }
611 | },
612 | "lcid": {
613 | "version": "1.0.0",
614 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
615 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
616 | "dev": true,
617 | "requires": {
618 | "invert-kv": "^1.0.0"
619 | }
620 | },
621 | "load-json-file": {
622 | "version": "1.1.0",
623 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
624 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
625 | "dev": true,
626 | "requires": {
627 | "graceful-fs": "^4.1.2",
628 | "parse-json": "^2.2.0",
629 | "pify": "^2.0.0",
630 | "pinkie-promise": "^2.0.0",
631 | "strip-bom": "^2.0.0"
632 | }
633 | },
634 | "lodash": {
635 | "version": "4.17.15",
636 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
637 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
638 | "dev": true
639 | },
640 | "loud-rejection": {
641 | "version": "1.6.0",
642 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
643 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
644 | "dev": true,
645 | "requires": {
646 | "currently-unhandled": "^0.4.1",
647 | "signal-exit": "^3.0.0"
648 | }
649 | },
650 | "lru-cache": {
651 | "version": "4.1.5",
652 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
653 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
654 | "dev": true,
655 | "requires": {
656 | "pseudomap": "^1.0.2",
657 | "yallist": "^2.1.2"
658 | }
659 | },
660 | "map-obj": {
661 | "version": "1.0.1",
662 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
663 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
664 | "dev": true
665 | },
666 | "meow": {
667 | "version": "3.7.0",
668 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
669 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
670 | "dev": true,
671 | "requires": {
672 | "camelcase-keys": "^2.0.0",
673 | "decamelize": "^1.1.2",
674 | "loud-rejection": "^1.0.0",
675 | "map-obj": "^1.0.1",
676 | "minimist": "^1.1.3",
677 | "normalize-package-data": "^2.3.4",
678 | "object-assign": "^4.0.1",
679 | "read-pkg-up": "^1.0.1",
680 | "redent": "^1.0.0",
681 | "trim-newlines": "^1.0.0"
682 | }
683 | },
684 | "mime-db": {
685 | "version": "1.43.0",
686 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
687 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
688 | "dev": true
689 | },
690 | "mime-types": {
691 | "version": "2.1.26",
692 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
693 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
694 | "dev": true,
695 | "requires": {
696 | "mime-db": "1.43.0"
697 | }
698 | },
699 | "minimatch": {
700 | "version": "3.0.4",
701 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
702 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
703 | "dev": true,
704 | "requires": {
705 | "brace-expansion": "^1.1.7"
706 | }
707 | },
708 | "minimist": {
709 | "version": "1.2.0",
710 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
711 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
712 | "dev": true
713 | },
714 | "mkdirp": {
715 | "version": "0.5.1",
716 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
717 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
718 | "dev": true,
719 | "requires": {
720 | "minimist": "0.0.8"
721 | },
722 | "dependencies": {
723 | "minimist": {
724 | "version": "0.0.8",
725 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
726 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
727 | "dev": true
728 | }
729 | }
730 | },
731 | "nan": {
732 | "version": "2.14.0",
733 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
734 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
735 | "dev": true
736 | },
737 | "node-gyp": {
738 | "version": "3.8.0",
739 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
740 | "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
741 | "dev": true,
742 | "requires": {
743 | "fstream": "^1.0.0",
744 | "glob": "^7.0.3",
745 | "graceful-fs": "^4.1.2",
746 | "mkdirp": "^0.5.0",
747 | "nopt": "2 || 3",
748 | "npmlog": "0 || 1 || 2 || 3 || 4",
749 | "osenv": "0",
750 | "request": "^2.87.0",
751 | "rimraf": "2",
752 | "semver": "~5.3.0",
753 | "tar": "^2.0.0",
754 | "which": "1"
755 | },
756 | "dependencies": {
757 | "semver": {
758 | "version": "5.3.0",
759 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
760 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
761 | "dev": true
762 | }
763 | }
764 | },
765 | "node-sass": {
766 | "version": "4.13.1",
767 | "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz",
768 | "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==",
769 | "dev": true,
770 | "requires": {
771 | "async-foreach": "^0.1.3",
772 | "chalk": "^1.1.1",
773 | "cross-spawn": "^3.0.0",
774 | "gaze": "^1.0.0",
775 | "get-stdin": "^4.0.1",
776 | "glob": "^7.0.3",
777 | "in-publish": "^2.0.0",
778 | "lodash": "^4.17.15",
779 | "meow": "^3.7.0",
780 | "mkdirp": "^0.5.1",
781 | "nan": "^2.13.2",
782 | "node-gyp": "^3.8.0",
783 | "npmlog": "^4.0.0",
784 | "request": "^2.88.0",
785 | "sass-graph": "^2.2.4",
786 | "stdout-stream": "^1.4.0",
787 | "true-case-path": "^1.0.2"
788 | }
789 | },
790 | "nopt": {
791 | "version": "3.0.6",
792 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
793 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
794 | "dev": true,
795 | "requires": {
796 | "abbrev": "1"
797 | }
798 | },
799 | "normalize-package-data": {
800 | "version": "2.5.0",
801 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
802 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
803 | "dev": true,
804 | "requires": {
805 | "hosted-git-info": "^2.1.4",
806 | "resolve": "^1.10.0",
807 | "semver": "2 || 3 || 4 || 5",
808 | "validate-npm-package-license": "^3.0.1"
809 | }
810 | },
811 | "npmlog": {
812 | "version": "4.1.2",
813 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
814 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
815 | "dev": true,
816 | "requires": {
817 | "are-we-there-yet": "~1.1.2",
818 | "console-control-strings": "~1.1.0",
819 | "gauge": "~2.7.3",
820 | "set-blocking": "~2.0.0"
821 | }
822 | },
823 | "number-is-nan": {
824 | "version": "1.0.1",
825 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
826 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
827 | "dev": true
828 | },
829 | "oauth-sign": {
830 | "version": "0.9.0",
831 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
832 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
833 | "dev": true
834 | },
835 | "object-assign": {
836 | "version": "4.1.1",
837 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
838 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
839 | "dev": true
840 | },
841 | "once": {
842 | "version": "1.4.0",
843 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
844 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
845 | "dev": true,
846 | "requires": {
847 | "wrappy": "1"
848 | }
849 | },
850 | "os-homedir": {
851 | "version": "1.0.2",
852 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
853 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
854 | "dev": true
855 | },
856 | "os-locale": {
857 | "version": "1.4.0",
858 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
859 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
860 | "dev": true,
861 | "requires": {
862 | "lcid": "^1.0.0"
863 | }
864 | },
865 | "os-tmpdir": {
866 | "version": "1.0.2",
867 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
868 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
869 | "dev": true
870 | },
871 | "osenv": {
872 | "version": "0.1.5",
873 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
874 | "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
875 | "dev": true,
876 | "requires": {
877 | "os-homedir": "^1.0.0",
878 | "os-tmpdir": "^1.0.0"
879 | }
880 | },
881 | "parse-json": {
882 | "version": "2.2.0",
883 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
884 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
885 | "dev": true,
886 | "requires": {
887 | "error-ex": "^1.2.0"
888 | }
889 | },
890 | "path-exists": {
891 | "version": "2.1.0",
892 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
893 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
894 | "dev": true,
895 | "requires": {
896 | "pinkie-promise": "^2.0.0"
897 | }
898 | },
899 | "path-is-absolute": {
900 | "version": "1.0.1",
901 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
902 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
903 | "dev": true
904 | },
905 | "path-parse": {
906 | "version": "1.0.6",
907 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
908 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
909 | "dev": true
910 | },
911 | "path-type": {
912 | "version": "1.1.0",
913 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
914 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
915 | "dev": true,
916 | "requires": {
917 | "graceful-fs": "^4.1.2",
918 | "pify": "^2.0.0",
919 | "pinkie-promise": "^2.0.0"
920 | }
921 | },
922 | "performance-now": {
923 | "version": "2.1.0",
924 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
925 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
926 | "dev": true
927 | },
928 | "pify": {
929 | "version": "2.3.0",
930 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
931 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
932 | "dev": true
933 | },
934 | "pinkie": {
935 | "version": "2.0.4",
936 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
937 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
938 | "dev": true
939 | },
940 | "pinkie-promise": {
941 | "version": "2.0.1",
942 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
943 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
944 | "dev": true,
945 | "requires": {
946 | "pinkie": "^2.0.0"
947 | }
948 | },
949 | "process-nextick-args": {
950 | "version": "2.0.1",
951 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
952 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
953 | "dev": true
954 | },
955 | "pseudomap": {
956 | "version": "1.0.2",
957 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
958 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
959 | "dev": true
960 | },
961 | "psl": {
962 | "version": "1.7.0",
963 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
964 | "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==",
965 | "dev": true
966 | },
967 | "punycode": {
968 | "version": "2.1.1",
969 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
970 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
971 | "dev": true
972 | },
973 | "qs": {
974 | "version": "6.5.2",
975 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
976 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
977 | "dev": true
978 | },
979 | "read-pkg": {
980 | "version": "1.1.0",
981 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
982 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
983 | "dev": true,
984 | "requires": {
985 | "load-json-file": "^1.0.0",
986 | "normalize-package-data": "^2.3.2",
987 | "path-type": "^1.0.0"
988 | }
989 | },
990 | "read-pkg-up": {
991 | "version": "1.0.1",
992 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
993 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
994 | "dev": true,
995 | "requires": {
996 | "find-up": "^1.0.0",
997 | "read-pkg": "^1.0.0"
998 | }
999 | },
1000 | "readable-stream": {
1001 | "version": "2.3.7",
1002 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1003 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1004 | "dev": true,
1005 | "requires": {
1006 | "core-util-is": "~1.0.0",
1007 | "inherits": "~2.0.3",
1008 | "isarray": "~1.0.0",
1009 | "process-nextick-args": "~2.0.0",
1010 | "safe-buffer": "~5.1.1",
1011 | "string_decoder": "~1.1.1",
1012 | "util-deprecate": "~1.0.1"
1013 | }
1014 | },
1015 | "redent": {
1016 | "version": "1.0.0",
1017 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
1018 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
1019 | "dev": true,
1020 | "requires": {
1021 | "indent-string": "^2.1.0",
1022 | "strip-indent": "^1.0.1"
1023 | }
1024 | },
1025 | "repeating": {
1026 | "version": "2.0.1",
1027 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
1028 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
1029 | "dev": true,
1030 | "requires": {
1031 | "is-finite": "^1.0.0"
1032 | }
1033 | },
1034 | "request": {
1035 | "version": "2.88.2",
1036 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1037 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1038 | "dev": true,
1039 | "requires": {
1040 | "aws-sign2": "~0.7.0",
1041 | "aws4": "^1.8.0",
1042 | "caseless": "~0.12.0",
1043 | "combined-stream": "~1.0.6",
1044 | "extend": "~3.0.2",
1045 | "forever-agent": "~0.6.1",
1046 | "form-data": "~2.3.2",
1047 | "har-validator": "~5.1.3",
1048 | "http-signature": "~1.2.0",
1049 | "is-typedarray": "~1.0.0",
1050 | "isstream": "~0.1.2",
1051 | "json-stringify-safe": "~5.0.1",
1052 | "mime-types": "~2.1.19",
1053 | "oauth-sign": "~0.9.0",
1054 | "performance-now": "^2.1.0",
1055 | "qs": "~6.5.2",
1056 | "safe-buffer": "^5.1.2",
1057 | "tough-cookie": "~2.5.0",
1058 | "tunnel-agent": "^0.6.0",
1059 | "uuid": "^3.3.2"
1060 | }
1061 | },
1062 | "require-directory": {
1063 | "version": "2.1.1",
1064 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1065 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1066 | "dev": true
1067 | },
1068 | "require-main-filename": {
1069 | "version": "1.0.1",
1070 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
1071 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
1072 | "dev": true
1073 | },
1074 | "resolve": {
1075 | "version": "1.15.1",
1076 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
1077 | "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
1078 | "dev": true,
1079 | "requires": {
1080 | "path-parse": "^1.0.6"
1081 | }
1082 | },
1083 | "rimraf": {
1084 | "version": "2.7.1",
1085 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1086 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1087 | "dev": true,
1088 | "requires": {
1089 | "glob": "^7.1.3"
1090 | }
1091 | },
1092 | "safe-buffer": {
1093 | "version": "5.1.2",
1094 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1095 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1096 | "dev": true
1097 | },
1098 | "safer-buffer": {
1099 | "version": "2.1.2",
1100 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1101 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1102 | "dev": true
1103 | },
1104 | "sass-graph": {
1105 | "version": "2.2.4",
1106 | "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
1107 | "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
1108 | "dev": true,
1109 | "requires": {
1110 | "glob": "^7.0.0",
1111 | "lodash": "^4.0.0",
1112 | "scss-tokenizer": "^0.2.3",
1113 | "yargs": "^7.0.0"
1114 | }
1115 | },
1116 | "scss-tokenizer": {
1117 | "version": "0.2.3",
1118 | "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
1119 | "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
1120 | "dev": true,
1121 | "requires": {
1122 | "js-base64": "^2.1.8",
1123 | "source-map": "^0.4.2"
1124 | }
1125 | },
1126 | "semver": {
1127 | "version": "5.7.1",
1128 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1129 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1130 | "dev": true
1131 | },
1132 | "set-blocking": {
1133 | "version": "2.0.0",
1134 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1135 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
1136 | "dev": true
1137 | },
1138 | "signal-exit": {
1139 | "version": "3.0.2",
1140 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1141 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1142 | "dev": true
1143 | },
1144 | "source-map": {
1145 | "version": "0.4.4",
1146 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
1147 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
1148 | "dev": true,
1149 | "requires": {
1150 | "amdefine": ">=0.0.4"
1151 | }
1152 | },
1153 | "spdx-correct": {
1154 | "version": "3.1.0",
1155 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
1156 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
1157 | "dev": true,
1158 | "requires": {
1159 | "spdx-expression-parse": "^3.0.0",
1160 | "spdx-license-ids": "^3.0.0"
1161 | }
1162 | },
1163 | "spdx-exceptions": {
1164 | "version": "2.2.0",
1165 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
1166 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
1167 | "dev": true
1168 | },
1169 | "spdx-expression-parse": {
1170 | "version": "3.0.0",
1171 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
1172 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
1173 | "dev": true,
1174 | "requires": {
1175 | "spdx-exceptions": "^2.1.0",
1176 | "spdx-license-ids": "^3.0.0"
1177 | }
1178 | },
1179 | "spdx-license-ids": {
1180 | "version": "3.0.5",
1181 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
1182 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
1183 | "dev": true
1184 | },
1185 | "sshpk": {
1186 | "version": "1.16.1",
1187 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
1188 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
1189 | "dev": true,
1190 | "requires": {
1191 | "asn1": "~0.2.3",
1192 | "assert-plus": "^1.0.0",
1193 | "bcrypt-pbkdf": "^1.0.0",
1194 | "dashdash": "^1.12.0",
1195 | "ecc-jsbn": "~0.1.1",
1196 | "getpass": "^0.1.1",
1197 | "jsbn": "~0.1.0",
1198 | "safer-buffer": "^2.0.2",
1199 | "tweetnacl": "~0.14.0"
1200 | }
1201 | },
1202 | "stdout-stream": {
1203 | "version": "1.4.1",
1204 | "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
1205 | "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
1206 | "dev": true,
1207 | "requires": {
1208 | "readable-stream": "^2.0.1"
1209 | }
1210 | },
1211 | "string-width": {
1212 | "version": "1.0.2",
1213 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
1214 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
1215 | "dev": true,
1216 | "requires": {
1217 | "code-point-at": "^1.0.0",
1218 | "is-fullwidth-code-point": "^1.0.0",
1219 | "strip-ansi": "^3.0.0"
1220 | }
1221 | },
1222 | "string_decoder": {
1223 | "version": "1.1.1",
1224 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1225 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1226 | "dev": true,
1227 | "requires": {
1228 | "safe-buffer": "~5.1.0"
1229 | }
1230 | },
1231 | "strip-ansi": {
1232 | "version": "3.0.1",
1233 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1234 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1235 | "dev": true,
1236 | "requires": {
1237 | "ansi-regex": "^2.0.0"
1238 | }
1239 | },
1240 | "strip-bom": {
1241 | "version": "2.0.0",
1242 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
1243 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
1244 | "dev": true,
1245 | "requires": {
1246 | "is-utf8": "^0.2.0"
1247 | }
1248 | },
1249 | "strip-indent": {
1250 | "version": "1.0.1",
1251 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
1252 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
1253 | "dev": true,
1254 | "requires": {
1255 | "get-stdin": "^4.0.1"
1256 | }
1257 | },
1258 | "supports-color": {
1259 | "version": "2.0.0",
1260 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1261 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1262 | "dev": true
1263 | },
1264 | "tar": {
1265 | "version": "2.2.2",
1266 | "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
1267 | "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
1268 | "dev": true,
1269 | "requires": {
1270 | "block-stream": "*",
1271 | "fstream": "^1.0.12",
1272 | "inherits": "2"
1273 | }
1274 | },
1275 | "tough-cookie": {
1276 | "version": "2.5.0",
1277 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1278 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1279 | "dev": true,
1280 | "requires": {
1281 | "psl": "^1.1.28",
1282 | "punycode": "^2.1.1"
1283 | }
1284 | },
1285 | "trim-newlines": {
1286 | "version": "1.0.0",
1287 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
1288 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
1289 | "dev": true
1290 | },
1291 | "true-case-path": {
1292 | "version": "1.0.3",
1293 | "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
1294 | "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
1295 | "dev": true,
1296 | "requires": {
1297 | "glob": "^7.1.2"
1298 | }
1299 | },
1300 | "tunnel-agent": {
1301 | "version": "0.6.0",
1302 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1303 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1304 | "dev": true,
1305 | "requires": {
1306 | "safe-buffer": "^5.0.1"
1307 | }
1308 | },
1309 | "tweetnacl": {
1310 | "version": "0.14.5",
1311 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1312 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
1313 | "dev": true
1314 | },
1315 | "uri-js": {
1316 | "version": "4.2.2",
1317 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1318 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1319 | "dev": true,
1320 | "requires": {
1321 | "punycode": "^2.1.0"
1322 | }
1323 | },
1324 | "util-deprecate": {
1325 | "version": "1.0.2",
1326 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1327 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1328 | "dev": true
1329 | },
1330 | "uuid": {
1331 | "version": "3.4.0",
1332 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1333 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
1334 | "dev": true
1335 | },
1336 | "validate-npm-package-license": {
1337 | "version": "3.0.4",
1338 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
1339 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
1340 | "dev": true,
1341 | "requires": {
1342 | "spdx-correct": "^3.0.0",
1343 | "spdx-expression-parse": "^3.0.0"
1344 | }
1345 | },
1346 | "verror": {
1347 | "version": "1.10.0",
1348 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1349 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
1350 | "dev": true,
1351 | "requires": {
1352 | "assert-plus": "^1.0.0",
1353 | "core-util-is": "1.0.2",
1354 | "extsprintf": "^1.2.0"
1355 | }
1356 | },
1357 | "which": {
1358 | "version": "1.3.1",
1359 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1360 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1361 | "dev": true,
1362 | "requires": {
1363 | "isexe": "^2.0.0"
1364 | }
1365 | },
1366 | "which-module": {
1367 | "version": "1.0.0",
1368 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
1369 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
1370 | "dev": true
1371 | },
1372 | "wide-align": {
1373 | "version": "1.1.3",
1374 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
1375 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
1376 | "dev": true,
1377 | "requires": {
1378 | "string-width": "^1.0.2 || 2"
1379 | }
1380 | },
1381 | "wrap-ansi": {
1382 | "version": "2.1.0",
1383 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
1384 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
1385 | "dev": true,
1386 | "requires": {
1387 | "string-width": "^1.0.1",
1388 | "strip-ansi": "^3.0.1"
1389 | }
1390 | },
1391 | "wrappy": {
1392 | "version": "1.0.2",
1393 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1394 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1395 | "dev": true
1396 | },
1397 | "y18n": {
1398 | "version": "3.2.1",
1399 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
1400 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
1401 | "dev": true
1402 | },
1403 | "yallist": {
1404 | "version": "2.1.2",
1405 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
1406 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
1407 | "dev": true
1408 | },
1409 | "yargs": {
1410 | "version": "7.1.0",
1411 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
1412 | "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
1413 | "dev": true,
1414 | "requires": {
1415 | "camelcase": "^3.0.0",
1416 | "cliui": "^3.2.0",
1417 | "decamelize": "^1.1.1",
1418 | "get-caller-file": "^1.0.1",
1419 | "os-locale": "^1.4.0",
1420 | "read-pkg-up": "^1.0.1",
1421 | "require-directory": "^2.1.1",
1422 | "require-main-filename": "^1.0.1",
1423 | "set-blocking": "^2.0.0",
1424 | "string-width": "^1.0.2",
1425 | "which-module": "^1.0.0",
1426 | "y18n": "^3.2.1",
1427 | "yargs-parser": "^5.0.0"
1428 | },
1429 | "dependencies": {
1430 | "camelcase": {
1431 | "version": "3.0.0",
1432 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
1433 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
1434 | "dev": true
1435 | }
1436 | }
1437 | },
1438 | "yargs-parser": {
1439 | "version": "5.0.0",
1440 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
1441 | "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
1442 | "dev": true,
1443 | "requires": {
1444 | "camelcase": "^3.0.0"
1445 | },
1446 | "dependencies": {
1447 | "camelcase": {
1448 | "version": "3.0.0",
1449 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
1450 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
1451 | "dev": true
1452 | }
1453 | }
1454 | },
1455 | "yarn": {
1456 | "version": "1.22.0",
1457 | "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.0.tgz",
1458 | "integrity": "sha512-KMHP/Jq53jZKTY9iTUt3dIVl/be6UPs2INo96+BnZHLKxYNTfwMmlgHTaMWyGZoO74RI4AIFvnWhYrXq2USJkg=="
1459 | }
1460 | }
1461 | }
1462 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "reactUserInterfaces",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "license": "MIT",
6 | "dependencies": {
7 | "bootstrap": "4.0.0-alpha.6",
8 | "font-awesome": "^4.7.0",
9 | "jquery": "^3.1.1",
10 | "react": "^15.4.2",
11 | "react-dom": "^15.4.2"
12 | },
13 | "devDependencies": {
14 | "babel": "^6.23.0",
15 | "babel-core": "^6.23.1",
16 | "babel-loader": "^6.4.0",
17 | "babel-plugin-transform-function-bind": "^6.22.0",
18 | "babel-polyfill": "^6.23.0",
19 | "babel-preset-es2015": "^6.22.0",
20 | "babel-preset-react": "^6.23.0",
21 | "babel-preset-stage-3": "^6.24.1",
22 | "bluebird": "^3.5.0",
23 | "css-loader": "^0.27.1",
24 | "extract-text-webpack-plugin": "^2.1.0",
25 | "file-loader": "^0.10.1",
26 | "html-loader": "^0.4.5",
27 | "html-webpack-plugin": "^2.28.0",
28 | "node-sass": "^4.13.1",
29 | "sass-loader": "^6.0.3",
30 | "style-loader": "^0.13.2",
31 | "url-loader": "^0.5.8",
32 | "webpack": "^2.2.1",
33 | "webpack-dev-server": "^2.4.1"
34 | },
35 | "scripts": {
36 | "devserver": "webpack-dev-server"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const webpack = require('webpack');
3 | const htmlWebpackPlugin = require('html-webpack-plugin');
4 |
5 | module.exports = env => {
6 | return {
7 | entry: ['babel-polyfill', __dirname + '/app/js'],
8 | output: {
9 | path: path.join(__dirname ,'build'),
10 | filename: 'bundle.js'
11 | },
12 | module: {
13 | rules: [
14 | {
15 | test: /\.js$/,
16 | loader: 'babel-loader',
17 | exclude: /node_modules/,
18 | options: {
19 | presets: ['react', 'stage-3', ['es2015', { 'modules': false }]],
20 | plugins: ['transform-function-bind']
21 | }
22 | },
23 | {
24 | test: /\.css$/,
25 | use: ['style-loader', 'css-loader']
26 | },
27 | {
28 | test: /\.scss$/,
29 | use: ['style-loader', 'css-loader', 'sass-loader']
30 | },
31 | {
32 | test: /\.(png|woff|woff2|eot|ttf|svg|jpg)(\?.*$|$)/,
33 | use: 'url-loader?limit=100000'
34 | }
35 | ]
36 | },
37 | resolve: {
38 | extensions: ['.js', '.css', '.scss', '.json'],
39 | alias: {
40 | components: path.resolve(__dirname, 'app', 'js', 'components'),
41 | logger$: path.resolve(__dirname, 'app', 'js','logger', 'index.js'),
42 | styles: path.resolve(__dirname, 'app', 'styles')
43 | }
44 | },
45 | plugins: [
46 | new webpack.ProvidePlugin({
47 | $: 'jquery',
48 | jQuery: 'jquery',
49 | Tether: 'tether'
50 | }),
51 | new htmlWebpackPlugin({
52 | template: path.resolve(__dirname, 'app', 'index.html')
53 | })
54 | ],
55 | devServer: {
56 | contentBase: path.resolve(__dirname, 'build'),
57 | inline: true,
58 | port: 3000
59 | },
60 | devtool: 'source-map'
61 | }
62 | }
63 |
--------------------------------------------------------------------------------