├── .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 | --------------------------------------------------------------------------------