diff --git a/.gitignore b/.gitignore index 1dffcfe..13a8ce0 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ testem.log # System Files .DS_Store Thumbs.db +*~ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a8fc865..92b487b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,9 @@ build_job: script: - yarn install - yarn run build + - yarn run lint - yarn run test + - yarn run e2e tags: - javascript except: @@ -25,7 +27,9 @@ build_job_production: script: - yarn install - yarn run build-prod + - yarn run lint - yarn run test + - yarn run e2e tags: - javascript only: diff --git a/README.md b/README.md index de51136..2c01592 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,14 @@ -# Convertorizr +# convertorizr - Convert whatever you want! + +This is a short introduction to the awesome Convertorizr hosted at [https://conv.friedli.info/]. + +Deployment is automated with Gitlab CI. Usage is self-explanatory. What else do you need to know? + +Contact the author at manuel-convertorizr|at|fritteli.ch. + +Cheers! + +# Technical stuff This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.0.0. diff --git a/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts index f20dbe0..eec75ee 100644 --- a/e2e/app.e2e-spec.ts +++ b/e2e/app.e2e-spec.ts @@ -1,4 +1,4 @@ -import { ConvertorizrPage } from './app.po'; +import {ConvertorizrPage} from './app.po'; describe('convertorizr App', () => { let page: ConvertorizrPage; @@ -9,6 +9,6 @@ describe('convertorizr App', () => { it('should display message saying app works', () => { page.navigateTo(); - expect(page.getParagraphText()).toEqual('app works!'); + expect(page.getInputfieldContent(0)).toEqual(''); }); }); diff --git a/e2e/app.po.ts b/e2e/app.po.ts index 22c07a0..89c646b 100644 --- a/e2e/app.po.ts +++ b/e2e/app.po.ts @@ -1,11 +1,25 @@ -import { browser, element, by } from 'protractor'; +import {browser, by, element} from 'protractor'; export class ConvertorizrPage { navigateTo() { return browser.get('/'); } - getParagraphText() { - return element(by.css('app-root h1')).getText(); + public foo() { + return 'bar'; + } + + public getInputfieldContent(index: number): Promise { + const css1 = by.css('app-root div.inputwrapper'); + console.log(css1); + const el1 = element.all(css1)[index]; + console.log(el1); + const css2 = by.css('.textwrapper textarea'); + console.log(css2); + const el2 = el1.findElement(css2); + console.log(el2); + const t = el2.getText(); + console.log(t); + return t; } } diff --git a/karma.conf.js b/karma.conf.js index 84b4cd5..3806d5f 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -7,38 +7,42 @@ module.exports = function (config) { frameworks: ['jasmine', '@angular/cli'], plugins: [ require('karma-jasmine'), - require('karma-chrome-launcher'), + require('karma-phantomjs-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular/cli/plugins/karma') ], - client:{ + client: { + captureConsole: true, clearContext: false // leave Jasmine Spec Runner output visible in browser }, files: [ - { pattern: './src/test.ts', watched: false } + { + pattern: './src/test.ts', + watched: false + } ], preprocessors: { './src/test.ts': ['@angular/cli'] }, mime: { - 'text/x-typescript': ['ts','tsx'] + 'text/x-typescript': ['ts', 'tsx'] }, coverageIstanbulReporter: { - reports: [ 'html', 'lcovonly' ], + reports: ['html', 'lcovonly'], fixWebpackSourcePaths: true }, angularCli: { environment: 'dev' }, reporters: config.angularCli && config.angularCli.codeCoverage - ? ['progress', 'coverage-istanbul'] - : ['progress', 'kjhtml'], + ? ['progress', 'coverage-istanbul'] + : ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Chrome'], + browsers: ['PhantomJS'], singleRun: false }); }; diff --git a/package.json b/package.json index a703542..234a22f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "convertorizr", - "version": "1.0.1-dev", + "version": "1.1.1-dev", "description": "Decode or encode base64, punycode, HTML entities, URI components, ...", "keywords": [ "encode", @@ -15,7 +15,7 @@ }, "license": "MIT", "homepage": "https://manuel.pages.gittr.ch/dencode.org", - "repository": { + "repository": { "type": "git", "url": "https://gittr.ch/manuel/dencode.org.git" }, @@ -24,7 +24,8 @@ "start": "ng serve", "build": "ng build", "build-prod": "ng build --env=prod", - "test": "ng test", + "test": "ng test --single-run", + "test-continuous": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, @@ -37,12 +38,13 @@ "@angular/http": "^4.0.0", "@angular/platform-browser": "^4.0.0", "@angular/platform-browser-dynamic": "^4.0.0", + "@angular/router": "^4.0.0", "core-js": "^2.4.1", - "rxjs": "^5.1.0", - "zone.js": "^0.8.4", + "punycode": "^2.1.0", "quoted-printable": "^1.0.0", + "rxjs": "^5.1.0", "utf8": "^2.1.0", - "punycode": "^1.4.0" + "zone.js": "^0.8.4" }, "devDependencies": { "@angular/cli": "^1.0.0", @@ -51,14 +53,16 @@ "@types/node": "^7.0.0", "codelyzer": "^2.0.0", "jasmine-core": "^2.5.2", - "jasmine-spec-reporter": "^3.2.0", + "jasmine-spec-reporter": "^4.0.0", "karma": "^1.4.1", "karma-chrome-launcher": "^2.0.0", "karma-cli": "^1.0.1", - "karma-coverage-istanbul-reporter": "^1.0.0", + "karma-coverage-istanbul-reporter": "^1.2.0", "karma-jasmine": "^1.1.0", "karma-jasmine-html-reporter": "^0.2.2", + "karma-phantomjs-launcher": "^1.0.4", "protractor": "^5.1.0", + "protractor-console": "^2.0.1", "ts-node": "^3.0.0", "tslint": "^5.0.0", "typescript": "^2.2.0" diff --git a/protractor.conf.js b/protractor.conf.js index 1c5e1e5..0e21e34 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -1,7 +1,7 @@ // Protractor configuration file, see link for more information // https://github.com/angular/protractor/blob/master/lib/config.ts -const { SpecReporter } = require('jasmine-spec-reporter'); +const {SpecReporter} = require('jasmine-spec-reporter'); exports.config = { allScriptsTimeout: 11000, @@ -25,6 +25,10 @@ exports.config = { }); }, onPrepare() { - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } + jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}})); + }, + plugins: [{ + package: 'protractor-console', + logLevels: ['debug', 'info', 'warning', 'severe'] + }] }; diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts new file mode 100644 index 0000000..66ce429 --- /dev/null +++ b/src/app/app-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; + +const routes: Routes = [ + { + path: '', + children: [] + } +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { +} diff --git a/src/app/app.component.html b/src/app/app.component.html index 7b949d2..4c88d65 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -12,5 +12,6 @@ -
{{step.message}}
+
+ diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 4037de8..9a81a0c 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -12,53 +12,45 @@ position: relative; background: #fff; border: 1px solid #aaa; -} - -.arrow_box:focus { - border-color: #888; -} - -.arrow_box:hover { - border-color: #333; -} - -.arrow_box:after, .arrow_box:before { - top: 100%; - left: 50%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; -} - -.arrow_box:after { - border-color: rgba(255, 255, 255, 0); - border-top-color: #fff; - border-width: 1em; - margin-left: -1em; -} - -.arrow_box:before { - border-color: rgba(170, 170, 170, 0); - border-top-color: #aaa; - border-width: calc(1em + 1px); - margin-left: calc(-1em - 1px); -} - -.arrow_box:focus:before { - border-color: rgba(136, 136, 136, 0); - border-top-color: #888; -} - -.arrow_box:hover:before { - border-color: rgba(51, 51, 51, 0); - border-top-color: #333; -} - -.selectwrapper > .arrow_box { - display: inline-block; + &:focus { + border-color: #888; + } + &:hover { + border-color: #333; + } + &:after, &:before { + top: 100%; + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + } + &:after { + border-color: rgba(255, 255, 255, 0); + border-top-color: #fff; + border-width: 1em; + margin-left: -1em; + } + &:before { + border-color: rgba(170, 170, 170, 0); + border-top-color: #aaa; + border-width: calc(1em + 1px); + margin-left: calc(-1em - 1px); + } + &:focus:before { + border-color: rgba(136, 136, 136, 0); + border-top-color: #888; + } + &:hover:before { + border-color: rgba(51, 51, 51, 0); + border-top-color: #333; + } + .selectwrapper > & { + display: inline-block; + } } .textinput { @@ -71,20 +63,29 @@ padding: 0.5em; resize: vertical; width: 100%; -} - -.textinput:focus { - border-color: #888; -} - -.textinput:hover { - border-color: #333; + &:focus { + border-color: #888; + } + &:hover { + border-color: #333; + } } .selectwrapper { margin: 0 0 1em 0; padding: 0; text-align: center; + &.error { + > .arrow_box { + border-color: red; + &:before { + border-top-color: red; + } + } + select { + color: red; + } + } } .select { @@ -100,18 +101,6 @@ /* font-family: "ABeeZee", sans-serif;*/ } -.selectwrapper.error > .arrow_box { - border-color: red; -} - -.selectwrapper.error > .arrow_box:before { - border-top-color: red; -} - -.selectwrapper.error select { - color: red; -} - .errormessage { color: red; text-align: center; diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index c2d3559..0340bf1 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -1,32 +1,54 @@ -import {async, TestBed} from "@angular/core/testing"; - -import {AppComponent} from "./app.component"; +import {AppComponent} from './app.component'; +import {async, ComponentFixture, TestBed} from '@angular/core/testing'; +import {InputComponentManagerService} from './inputcomponentmanager.service'; +import {Step} from './step'; describe('AppComponent', () => { + let sut: AppComponent; + let fixture: ComponentFixture; + const firstStep: Step = new Step(0); + + const inputComponentManagerServiceStub = { + getFirst: () => { + return firstStep; + } + }; + beforeEach(async(() => { + /*return */ TestBed.configureTestingModule({ - declarations: [ - AppComponent - ], - }).compileComponents(); + declarations: [AppComponent], + providers: [{ + provide: InputComponentManagerService, useValue: inputComponentManagerServiceStub + }] + }) + .compileComponents(); })); - it('should create the app', async(() => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.debugElement.componentInstance; - expect(app).toBeTruthy(); - })); + beforeEach(() => { + fixture = TestBed.createComponent(AppComponent); + sut = fixture.componentInstance; + }); + // beforeEach(async(() => { + // TestBed.configureTestingModule({ + // imports: [ + // RouterTestingModule + // ], + // declarations: [ + // AppComponent + // ], + // }).compileComponents(); + // })); - // it(`should have as title 'app works!'`, async(() => { + it('should be true that true is true', () => { + expect(true).toBe(true); + }); + + // it('should create the app', async(() => { // const fixture = TestBed.createComponent(AppComponent); // const app = fixture.debugElement.componentInstance; - // expect(app.title).toEqual('app works!'); + // expect(app).toBeTruthy(); // })); - // it('should render title in a h1 tag', async(() => { - // const fixture = TestBed.createComponent(AppComponent); - // fixture.detectChanges(); - // const compiled = fixture.debugElement.nativeElement; - // expect(compiled.querySelector('h1').textContent).toContain('app works!'); - // })); + }); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index e3b4a92..f0b4034 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,9 +1,9 @@ -import {Component, OnInit} from "@angular/core"; -import {NativeLibraryWrapperService} from "./nativelibrarywrapper.service"; -import {InputComponentManagerService} from "./inputcomponentmanager.service"; -import {ConverterRegistryService} from "./converterregistry.service"; -import {Step} from "./step"; -import {Converter} from "./converter/converter"; +import {Component, OnInit} from '@angular/core'; +import {ConverterRegistryService} from './converterregistry.service'; +import {InputComponentManagerService} from './inputcomponentmanager.service'; +import {NativeLibraryWrapperService} from './nativelibrarywrapper.service'; +import {Step} from './step'; +import {Converter} from './converter/converter'; @Component({ selector: 'app-root', @@ -15,7 +15,8 @@ export class AppComponent implements OnInit { public steps: Step[] = []; public converters: Converter[] = []; - constructor(private converterRegistryService: ConverterRegistryService, private inputComponentManagerService: InputComponentManagerService) { + constructor(private converterRegistryService: ConverterRegistryService, + private inputComponentManagerService: InputComponentManagerService) { } convert(step: Step, $event: any): void { @@ -24,15 +25,15 @@ export class AppComponent implements OnInit { } update(step: Step): void { - let converter: Converter = step.selectedConverter; + const converter: Converter = step.selectedConverter; if (converter !== undefined) { - let content: string = step.content; + const content: string = step.content; let result: string; try { result = converter.convert(content); } catch (error) { - if (typeof console === "object" && typeof console.log === "function") { + if (typeof console === 'object' && typeof console.log === 'function') { console.log(error); } step.message = error.message; @@ -40,10 +41,10 @@ export class AppComponent implements OnInit { result = null; } if (result !== null) { - step.message = ""; + step.message = ''; step.error = false; - if (result !== "") { - let nextComponent: Step = this.inputComponentManagerService.getNext(step); + if (result !== '') { + const nextComponent: Step = this.inputComponentManagerService.getNext(step); nextComponent.content = result; this.update(nextComponent); } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 8eba967..09fae0b 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,8 +1,10 @@ -import {BrowserModule} from "@angular/platform-browser"; -import {NgModule} from "@angular/core"; -import {FormsModule} from "@angular/forms"; +import {BrowserModule} from '@angular/platform-browser'; +import {NgModule} from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import {HttpModule} from '@angular/http'; -import {AppComponent} from "./app.component"; +import {AppRoutingModule} from './app-routing.module'; +import {AppComponent} from './app.component'; @NgModule({ declarations: [ @@ -10,7 +12,9 @@ import {AppComponent} from "./app.component"; ], imports: [ BrowserModule, - FormsModule + FormsModule, + HttpModule, + AppRoutingModule ], providers: [], bootstrap: [AppComponent] diff --git a/src/app/converter/base64decoder.ts b/src/app/converter/base64decoder.ts index 2f9c630..6856c2b 100644 --- a/src/app/converter/base64decoder.ts +++ b/src/app/converter/base64decoder.ts @@ -1,19 +1,19 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class Base64Decoder implements Converter { getDisplayname(): string { - return "Decode Base 64"; + return 'Decode Base 64'; } getId(): string { - return "base64decode"; + return 'base64decode'; } convert(input: string): string { try { return atob(input); } catch (exception) { - throw new Error("Could not decode base64 string. Maybe corrupt input?"); + throw new Error('Could not decode base64 string. Maybe corrupt input?'); } } } diff --git a/src/app/converter/base64encoder.ts b/src/app/converter/base64encoder.ts index 9d684a4..c9e3513 100644 --- a/src/app/converter/base64encoder.ts +++ b/src/app/converter/base64encoder.ts @@ -1,19 +1,22 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class Base64Encoder implements Converter { getDisplayname(): string { - return "Encode Base 64"; + return 'Encode Base 64'; } getId(): string { - return "base64encode"; + return 'base64encode'; } convert(input: string): string { try { return btoa(input); } catch (exception) { - throw new Error("Could not encode base64 string. This should not happen, so why don't you just try again?"); + console.error(exception); + throw new Error('Ouch! Looks like you\'ve got a UTF-8 character there. Too bad, this is not supported yet. ' + + 'We\'re working on it and hope to be ready soon! Why don\'t you ' + + 'enjoy some kittens meanwhile?'); } } } diff --git a/src/app/converter/bintodecconverter.ts b/src/app/converter/bintodecconverter.ts index 8042f13..3315882 100644 --- a/src/app/converter/bintodecconverter.ts +++ b/src/app/converter/bintodecconverter.ts @@ -1,18 +1,18 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class BinToDecConverter implements Converter { getDisplayname(): string { - return "Convert binary to decimal"; + return 'Convert binary to decimal'; } getId(): string { - return "bintodec"; + return 'bintodec'; } convert(input: string): string { - let n: number = parseInt(input, 2); + const n: number = parseInt(input, 2); if (isNaN(n)) { - throw new Error("The input seems not to be a valid binary number."); + throw new Error('The input seems not to be a valid binary number.'); } return n.toString(10); } diff --git a/src/app/converter/dectobinconverter.ts b/src/app/converter/dectobinconverter.ts index a1689f7..5102546 100644 --- a/src/app/converter/dectobinconverter.ts +++ b/src/app/converter/dectobinconverter.ts @@ -1,18 +1,18 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class DecToBinConverter implements Converter { getDisplayname(): string { - return "Convert decimal to binary"; + return 'Convert decimal to binary'; } getId(): string { - return "dectobin"; + return 'dectobin'; } convert(input: string): string { - let n: number = parseInt(input, 10); + const n: number = parseInt(input, 10); if (isNaN(n)) { - throw new Error("The input seems not to be a valid integer."); + throw new Error('The input seems not to be a valid integer.'); } return n.toString(2); } diff --git a/src/app/converter/dectohexconverter.ts b/src/app/converter/dectohexconverter.ts index 17781c3..3097864 100644 --- a/src/app/converter/dectohexconverter.ts +++ b/src/app/converter/dectohexconverter.ts @@ -1,18 +1,18 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class DecToHexConverter implements Converter { getDisplayname(): string { - return "Convert decimal to hexadecimal"; + return 'Convert decimal to hexadecimal'; } getId(): string { - return "dectohex"; + return 'dectohex'; } convert(input: string): string { - let n: number = parseInt(input, 10); + const n: number = parseInt(input, 10); if (isNaN(n)) { - throw new Error("The input seems not to be a valid integer."); + throw new Error('The input seems not to be a valid integer.'); } return n.toString(16); } diff --git a/src/app/converter/hextodecconverter.ts b/src/app/converter/hextodecconverter.ts index c9eb07d..4b78345 100644 --- a/src/app/converter/hextodecconverter.ts +++ b/src/app/converter/hextodecconverter.ts @@ -1,18 +1,18 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class HexToDecConverter implements Converter { getDisplayname(): string { - return "Convert hexadecimal to decimal"; + return 'Convert hexadecimal to decimal'; } getId(): string { - return "hextodec"; + return 'hextodec'; } convert(input: string): string { - let n: number = parseInt(input, 16); + const n: number = parseInt(input, 16); if (isNaN(n)) { - throw new Error("The input seems not to be a valid hexadecimal number.") + throw new Error('The input seems not to be a valid hexadecimal number.'); } return n.toString(10); } diff --git a/src/app/converter/htmlentitiesdecoder.ts b/src/app/converter/htmlentitiesdecoder.ts index 7671f94..050a3f4 100644 --- a/src/app/converter/htmlentitiesdecoder.ts +++ b/src/app/converter/htmlentitiesdecoder.ts @@ -1,19 +1,19 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class HTMLEntitiesDecoder implements Converter { getDisplayname(): string { - return "Decode HTML entities"; + return 'Decode HTML entities'; } getId(): string { - return "decodehtmlentities"; + return 'decodehtmlentities'; } convert(input: string): string { return input - .replace(/\"\;/g, "\"") - .replace(/\>\;/g, ">") - .replace(/\<\;/g, "<") - .replace(/\&\;/g, "&"); + .replace(/\"\;/g, '"') + .replace(/\>\;/g, '>') + .replace(/\<\;/g, '<') + .replace(/\&\;/g, '&'); } } diff --git a/src/app/converter/htmlentitiesencoder.ts b/src/app/converter/htmlentitiesencoder.ts index 69234c5..70bd105 100644 --- a/src/app/converter/htmlentitiesencoder.ts +++ b/src/app/converter/htmlentitiesencoder.ts @@ -1,19 +1,19 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class HTMLEntitiesEncoder implements Converter { getDisplayname(): string { - return "Encode HTML entities"; + return 'Encode HTML entities'; } getId(): string { - return "encodehtmlentities"; + return 'encodehtmlentities'; } convert(input: string): string { return input - .replace(/\&/g, "&") - .replace(/\/g, ">") - .replace(/\"/g, """); + .replace(/\&/g, '&') + .replace(/\/g, '>') + .replace(/\"/g, '"'); } } diff --git a/src/app/converter/punycodedecoder.ts b/src/app/converter/punycodedecoder.ts index cd111a4..5f68ec6 100644 --- a/src/app/converter/punycodedecoder.ts +++ b/src/app/converter/punycodedecoder.ts @@ -1,5 +1,5 @@ -import {Converter} from "./converter"; -import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; +import {Converter} from './converter'; +import {NativeLibraryWrapperService} from '../nativelibrarywrapper.service'; export class PunycodeDecoder implements Converter { @@ -7,11 +7,11 @@ export class PunycodeDecoder implements Converter { } getDisplayname(): string { - return "Decode from punycode"; + return 'Decode from punycode'; } getId(): string { - return "decodepunycode"; + return 'decodepunycode'; } convert(input: string): string { diff --git a/src/app/converter/punycodeencoder.ts b/src/app/converter/punycodeencoder.ts index d6c153a..ebf8b67 100644 --- a/src/app/converter/punycodeencoder.ts +++ b/src/app/converter/punycodeencoder.ts @@ -1,5 +1,5 @@ -import {Converter} from "./converter"; -import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; +import {Converter} from './converter'; +import {NativeLibraryWrapperService} from '../nativelibrarywrapper.service'; export class PunycodeEncoder implements Converter { @@ -7,11 +7,11 @@ export class PunycodeEncoder implements Converter { } getDisplayname(): string { - return "Encode as punycode"; + return 'Encode as punycode'; } getId(): string { - return "encodepunycode"; + return 'encodepunycode'; } convert(input: string): string { diff --git a/src/app/converter/quotedprintabledecoder.ts b/src/app/converter/quotedprintabledecoder.ts index 8294123..9c43014 100644 --- a/src/app/converter/quotedprintabledecoder.ts +++ b/src/app/converter/quotedprintabledecoder.ts @@ -1,5 +1,5 @@ -import {Converter} from "./converter"; -import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; +import {Converter} from './converter'; +import {NativeLibraryWrapperService} from '../nativelibrarywrapper.service'; export class QuotedPrintableDecoder implements Converter { @@ -7,18 +7,18 @@ export class QuotedPrintableDecoder implements Converter { } getDisplayname(): string { - return "Decode quoted printable"; + return 'Decode quoted printable'; } getId(): string { - return "decodequotedprintable"; + return 'decodequotedprintable'; } convert(input: string): string { try { return this.nativeLibraryWrapperService.quotedPrintable.decode(input); } catch (error) { - throw new Error("The input can not be interpreted as quoted-printable. May be corrupt?"); + throw new Error('The input can not be interpreted as quoted-printable. May be corrupt?'); } } } diff --git a/src/app/converter/quotedprintableencoder.ts b/src/app/converter/quotedprintableencoder.ts index ff71df5..17cbb32 100644 --- a/src/app/converter/quotedprintableencoder.ts +++ b/src/app/converter/quotedprintableencoder.ts @@ -1,5 +1,5 @@ -import {Converter} from "./converter"; -import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; +import {Converter} from './converter'; +import {NativeLibraryWrapperService} from '../nativelibrarywrapper.service'; export class QuotedPrintableEncoder implements Converter { @@ -7,11 +7,11 @@ export class QuotedPrintableEncoder implements Converter { } getDisplayname(): string { - return "Encode quoted printable"; + return 'Encode quoted printable'; } getId(): string { - return "encodequotedprintable"; + return 'encodequotedprintable'; } convert(input: string): string { diff --git a/src/app/converter/uricomponentdecoder.ts b/src/app/converter/uricomponentdecoder.ts index e59fa7f..24750d7 100644 --- a/src/app/converter/uricomponentdecoder.ts +++ b/src/app/converter/uricomponentdecoder.ts @@ -1,12 +1,12 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class URIComponentDecoder implements Converter { getDisplayname(): string { - return "Decode URI component"; + return 'Decode URI component'; } getId(): string { - return "uricomponentdecode"; + return 'uricomponentdecode'; } convert(input: string): string { diff --git a/src/app/converter/uricomponentencoder.ts b/src/app/converter/uricomponentencoder.ts index fa5bd18..b529623 100644 --- a/src/app/converter/uricomponentencoder.ts +++ b/src/app/converter/uricomponentencoder.ts @@ -1,12 +1,12 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class URIComponentEncoder implements Converter { getDisplayname(): string { - return "Encode URI component"; + return 'Encode URI component'; } getId(): string { - return "uricomponentencode"; + return 'uricomponentencode'; } convert(input: string): string { diff --git a/src/app/converter/uridecoder.ts b/src/app/converter/uridecoder.ts index 3eabd21..0e52b47 100644 --- a/src/app/converter/uridecoder.ts +++ b/src/app/converter/uridecoder.ts @@ -1,12 +1,12 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class URIDecoder implements Converter { getDisplayname(): string { - return "Decode URI"; + return 'Decode URI'; } getId(): string { - return "uridecode"; + return 'uridecode'; } convert(input: string): string { diff --git a/src/app/converter/uriencoder.ts b/src/app/converter/uriencoder.ts index b2c61d4..b7d2173 100644 --- a/src/app/converter/uriencoder.ts +++ b/src/app/converter/uriencoder.ts @@ -1,12 +1,12 @@ -import {Converter} from "./converter"; +import {Converter} from './converter'; export class URIEncoder implements Converter { getDisplayname(): string { - return "Encode URI"; + return 'Encode URI'; } getId(): string { - return "uriencode"; + return 'uriencode'; } convert(input: string): string { diff --git a/src/app/converter/utf8decoder.ts b/src/app/converter/utf8decoder.ts index e14974c..7f19a76 100644 --- a/src/app/converter/utf8decoder.ts +++ b/src/app/converter/utf8decoder.ts @@ -1,5 +1,5 @@ -import {Converter} from "./converter"; -import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; +import {Converter} from './converter'; +import {NativeLibraryWrapperService} from '../nativelibrarywrapper.service'; export class UTF8Decoder implements Converter { @@ -7,18 +7,18 @@ export class UTF8Decoder implements Converter { } getDisplayname(): string { - return "Decode UTF-8"; + return 'Decode UTF-8'; } getId(): string { - return "decodeutf8"; + return 'decodeutf8'; } convert(input: string): string { try { return this.nativeLibraryWrapperService.utf8.decode(input); } catch (error) { - throw new Error("The input can not be interpreted a valid UTF-8 encoded string. May be corrupt?"); + throw new Error('The input can not be interpreted a valid UTF-8 encoded string. May be corrupt?'); } } } diff --git a/src/app/converter/utf8encoder.ts b/src/app/converter/utf8encoder.ts index 88241de..7e911d4 100644 --- a/src/app/converter/utf8encoder.ts +++ b/src/app/converter/utf8encoder.ts @@ -1,5 +1,5 @@ -import {Converter} from "./converter"; -import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; +import {Converter} from './converter'; +import {NativeLibraryWrapperService} from '../nativelibrarywrapper.service'; export class UTF8Encoder implements Converter { @@ -7,18 +7,18 @@ export class UTF8Encoder implements Converter { } getDisplayname(): string { - return "Encode UTF-8"; + return 'Encode UTF-8'; } getId(): string { - return "encodeutf8"; + return 'encodeutf8'; } convert(input: string): string { try { return this.nativeLibraryWrapperService.utf8.encode(input); } catch (error) { - throw new Error("The input can not be encoded as UTF-8. May be corrupt?"); + throw new Error('The input can not be encoded as UTF-8. May be corrupt?'); } } } diff --git a/src/app/converterregistry.service.ts b/src/app/converterregistry.service.ts index f00d980..4e4bf1a 100644 --- a/src/app/converterregistry.service.ts +++ b/src/app/converterregistry.service.ts @@ -1,24 +1,24 @@ -import {Injectable} from "@angular/core"; -import {Converter} from "./converter/converter"; -import {Base64Encoder} from "./converter/base64encoder"; -import {Base64Decoder} from "./converter/base64decoder"; -import {URIEncoder} from "./converter/uriencoder"; -import {URIDecoder} from "./converter/uridecoder"; -import {URIComponentEncoder} from "./converter/uricomponentencoder"; -import {URIComponentDecoder} from "./converter/uricomponentdecoder"; -import {HTMLEntitiesEncoder} from "./converter/htmlentitiesencoder"; -import {HTMLEntitiesDecoder} from "./converter/htmlentitiesdecoder"; -import {DecToHexConverter} from "./converter/dectohexconverter"; -import {HexToDecConverter} from "./converter/hextodecconverter"; -import {DecToBinConverter} from "./converter/dectobinconverter"; -import {BinToDecConverter} from "./converter/bintodecconverter"; -import {QuotedPrintableDecoder} from "./converter/quotedprintabledecoder"; -import {QuotedPrintableEncoder} from "./converter/quotedprintableencoder"; -import {NativeLibraryWrapperService} from "./nativelibrarywrapper.service"; -import {PunycodeEncoder} from "./converter/punycodeencoder"; -import {PunycodeDecoder} from "./converter/punycodedecoder"; -import {UTF8Encoder} from "./converter/utf8encoder"; -import {UTF8Decoder} from "./converter/utf8decoder"; +import {Injectable} from '@angular/core'; +import {Converter} from './converter/converter'; +import {Base64Encoder} from './converter/base64encoder'; +import {Base64Decoder} from './converter/base64decoder'; +import {URIEncoder} from './converter/uriencoder'; +import {URIDecoder} from './converter/uridecoder'; +import {URIComponentEncoder} from './converter/uricomponentencoder'; +import {URIComponentDecoder} from './converter/uricomponentdecoder'; +import {HTMLEntitiesEncoder} from './converter/htmlentitiesencoder'; +import {HTMLEntitiesDecoder} from './converter/htmlentitiesdecoder'; +import {DecToHexConverter} from './converter/dectohexconverter'; +import {HexToDecConverter} from './converter/hextodecconverter'; +import {DecToBinConverter} from './converter/dectobinconverter'; +import {BinToDecConverter} from './converter/bintodecconverter'; +import {QuotedPrintableDecoder} from './converter/quotedprintabledecoder'; +import {QuotedPrintableEncoder} from './converter/quotedprintableencoder'; +import {NativeLibraryWrapperService} from './nativelibrarywrapper.service'; +import {PunycodeEncoder} from './converter/punycodeencoder'; +import {PunycodeDecoder} from './converter/punycodedecoder'; +import {UTF8Encoder} from './converter/utf8encoder'; +import {UTF8Decoder} from './converter/utf8decoder'; @Injectable() export class ConverterRegistryService { @@ -34,7 +34,7 @@ export class ConverterRegistryService { public getConverter(id: string): Converter { for (let i = 0; i < this.converters.length; i++) { - if (this.converters[i].getId() == id) { + if (this.converters[i].getId() === id) { return this.converters[i]; } } @@ -64,8 +64,8 @@ export class ConverterRegistryService { private registerConverter(converter: Converter): void { this.converters.forEach((c: Converter) => { - if (c.getId() == converter.getId()) { - throw new Error("Converter-ID " + converter.getId() + " is already registered!"); + if (c.getId() === converter.getId()) { + throw new Error('Converter-ID ' + converter.getId() + ' is already registered!'); } }); this.converters.push(converter); diff --git a/src/app/inputcomponentmanager.service.ts b/src/app/inputcomponentmanager.service.ts index 04d0ed3..136d1b6 100644 --- a/src/app/inputcomponentmanager.service.ts +++ b/src/app/inputcomponentmanager.service.ts @@ -1,5 +1,5 @@ -import {Injectable} from "@angular/core"; -import {Step} from "./step"; +import {Injectable} from '@angular/core'; +import {Step} from './step'; @Injectable() export class InputComponentManagerService { @@ -17,15 +17,15 @@ export class InputComponentManagerService { } public getNext(component: Step): Step { - let index: number = component.index; - if (index == this.components.length - 1) { + const index: number = component.index; + if (index === this.components.length - 1) { this.addComponent(); } return this.components[index + 1]; } public getFirst(): Step { - if (this.components.length == 0) { + if (this.components.length === 0) { this.addComponent(); } return this.components[0]; diff --git a/src/app/nativelibrarywrapper.service.ts b/src/app/nativelibrarywrapper.service.ts index db68f3a..f3ce6af 100644 --- a/src/app/nativelibrarywrapper.service.ts +++ b/src/app/nativelibrarywrapper.service.ts @@ -1,10 +1,10 @@ -import {Injectable} from "@angular/core"; -import {Punycode} from "./punycode"; -import {Utf8} from "./utf8"; -import {QuotedPrintable} from "./quotedprintable"; -import * as QuotedPrintableNative from "quoted-printable"; -import * as Utf8Native from "utf8"; -import * as PunycodeNative from "punycode"; +import {Injectable} from '@angular/core'; +import {Punycode} from './punycode'; +import {Utf8} from './utf8'; +import {QuotedPrintable} from './quotedprintable'; +import * as NativeUtf8 from 'utf8'; +import * as NativeQuotedPrintable from 'quoted-printable'; +import * as NativePunycode from 'punycode'; @Injectable() export class NativeLibraryWrapperService { @@ -13,8 +13,8 @@ export class NativeLibraryWrapperService { public punycode: Punycode; constructor() { - this.utf8 = Utf8Native; - this.quotedPrintable = QuotedPrintableNative; - this.punycode = PunycodeNative; + this.utf8 = NativeUtf8; + this.quotedPrintable = NativeQuotedPrintable; + this.punycode = NativePunycode; } } diff --git a/src/app/step.ts b/src/app/step.ts index ca6f809..ff63f97 100644 --- a/src/app/step.ts +++ b/src/app/step.ts @@ -1,11 +1,11 @@ -import {Converter} from "./converter/converter"; +import {Converter} from './converter/converter'; export class Step { - public content: string = ""; + public content = ''; public selectedConverter: Converter = undefined; public index: number; - public error: boolean = false; - public message: string = ""; + public error = false; + public message = ''; constructor(index: number) { this.index = index; diff --git a/src/assets/fonts/freemono.svg b/src/assets/fonts/freemono.svg index 68fb46a..0f698ba 100644 --- a/src/assets/fonts/freemono.svg +++ b/src/assets/fonts/freemono.svg @@ -1,635 +1,636 @@ - -Created by FontForge 20110222 at Fri Feb 17 12:20:04 2012 - By www-data -Copyleft 2002, 2003, 2005, 2008, 2009, 2010 Free Software Foundation. - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - +t-54 22.5zM454 214q46 0 78 -33t32 -80q0 -45 -32.5 -77.5t-77.5 -32.5t-77.5 33t-32.5 79t32.5 78.5t77.5 32.5zM454 180q-31 0 -53.5 -22.5t-22.5 -54.5t22.5 -55t53.5 -23t53.5 22.5t22.5 54.5q0 33 -22 55.5t-54 22.5z"/> + + + + + + + diff --git a/src/favicon.ico b/src/favicon.ico index 8081c7c..5b2c78b 100644 Binary files a/src/favicon.ico and b/src/favicon.ico differ diff --git a/src/index.html b/src/index.html index 9981d45..42c6ac3 100644 --- a/src/index.html +++ b/src/index.html @@ -2,9 +2,10 @@ - Convertorizr - + + + Convertorizr - Convert whatever you want! diff --git a/src/main.ts b/src/main.ts index a9ca1ca..57d0769 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,8 +1,8 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import {enableProdMode} from '@angular/core'; +import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; +import {AppModule} from './app/app.module'; +import {environment} from './environments/environment'; if (environment.production) { enableProdMode(); diff --git a/src/polyfills.ts b/src/polyfills.ts index 53bdaf1..44fdfcf 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -13,48 +13,36 @@ * * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html */ - /*************************************************************************************************** * BROWSER POLYFILLS */ - /** IE9, IE10 and IE11 requires all of the following polyfills. **/ -// import 'core-js/es6/symbol'; -// import 'core-js/es6/object'; -// import 'core-js/es6/function'; -// import 'core-js/es6/parse-int'; -// import 'core-js/es6/parse-float'; -// import 'core-js/es6/number'; -// import 'core-js/es6/math'; -// import 'core-js/es6/string'; -// import 'core-js/es6/date'; -// import 'core-js/es6/array'; -// import 'core-js/es6/regexp'; -// import 'core-js/es6/map'; -// import 'core-js/es6/set'; - +import 'core-js/es6/symbol'; +import 'core-js/es6/object'; +import 'core-js/es6/function'; +import 'core-js/es6/parse-int'; +import 'core-js/es6/parse-float'; +import 'core-js/es6/number'; +import 'core-js/es6/math'; +import 'core-js/es6/string'; +import 'core-js/es6/date'; +import 'core-js/es6/array'; +import 'core-js/es6/regexp'; +import 'core-js/es6/map'; +import 'core-js/es6/set'; /** IE10 and IE11 requires the following for NgClass support on SVG elements */ // import 'classlist.js'; // Run `npm install --save classlist.js`. - /** IE10 and IE11 requires the following to support `@angular/animation`. */ // import 'web-animations-js'; // Run `npm install --save web-animations-js`. - - /** Evergreen browsers require these. **/ import 'core-js/es6/reflect'; import 'core-js/es7/reflect'; - - /** ALL Firefox browsers require the following to support `@angular/animation`. **/ // import 'web-animations-js'; // Run `npm install --save web-animations-js`. - - - /*************************************************************************************************** * Zone JS is required by Angular itself. */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - +import 'zone.js/dist/zone'; // Included with Angular CLI. /*************************************************************************************************** diff --git a/src/test.ts b/src/test.ts index 9bf7226..ece343b 100644 --- a/src/test.ts +++ b/src/test.ts @@ -6,18 +6,16 @@ import 'zone.js/dist/sync-test'; import 'zone.js/dist/jasmine-patch'; import 'zone.js/dist/async-test'; import 'zone.js/dist/fake-async-test'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; +import {getTestBed} from '@angular/core/testing'; +import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing'; // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. -declare var __karma__: any; -declare var require: any; +declare const __karma__: any; +declare const require: any; // Prevent Karma from running prematurely. -__karma__.loaded = function () {}; +__karma__.loaded = function () { +}; // First, initialize the Angular testing environment. getTestBed().initTestEnvironment( diff --git a/yarn.lock b/yarn.lock index 1ac4364..af374c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -212,6 +212,12 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" + dependencies: + string-width "^1.0.1" + ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -385,7 +391,7 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -babel-code-frame@^6.11.0, babel-code-frame@^6.22.0: +babel-code-frame@^6.11.0, babel-code-frame@^6.20.0, babel-code-frame@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" dependencies: @@ -412,7 +418,7 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" -babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0: +babel-runtime@^6.18.0, babel-runtime@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: @@ -500,12 +506,6 @@ binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" -bl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98" - dependencies: - readable-stream "^2.0.5" - blob@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" @@ -555,6 +555,18 @@ boom@2.x.x: dependencies: hoek "2.x.x" +boxen@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.0.0.tgz#b2694baf1f605f708ff0177c12193b22f29aaaab" + dependencies: + ansi-align "^1.1.0" + camelcase "^4.0.0" + chalk "^1.1.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^0.1.0" + widest-line "^1.0.0" + brace-expansion@^1.0.0: version "1.1.7" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" @@ -670,10 +682,6 @@ bytes@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" -bytes@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" - callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -721,6 +729,14 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: version "1.0.30000655" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000655.tgz#e40b6287adc938848d6708ef83d65b5f54ac1874" +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -757,10 +773,6 @@ chokidar@^1.4.1, chokidar@^1.4.3, chokidar@^1.6.0: optionalDependencies: fsevents "^1.0.0" -ci-info@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" - cipher-base@^1.0.0, cipher-base@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" @@ -779,6 +791,10 @@ clean-css@4.0.x: dependencies: source-map "0.5.x" +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -809,13 +825,6 @@ clone@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" -cmd-shim@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" - dependencies: - graceful-fs "^4.1.2" - mkdirp "~0.5.0" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -938,6 +947,25 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" +concat-stream@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + +configstore@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.0.0.tgz#e1b8669c1803ccc50b545e92f8e6e79aa80e0196" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + unique-string "^1.0.0" + write-file-atomic "^1.1.2" + xdg-basedir "^3.0.0" + connect-history-api-fallback@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" @@ -1000,6 +1028,12 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + create-hash@^1.1.0, create-hash@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" @@ -1016,6 +1050,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.2: create-hash "^1.1.0" inherits "^2.0.1" +cross-spawn-async@^2.1.1: + version "2.2.5" + resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" + dependencies: + lru-cache "^4.0.0" + which "^1.2.8" + cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" @@ -1044,6 +1085,10 @@ crypto-browserify@^3.11.0: public-encrypt "^4.0.0" randombytes "^2.0.0" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -1172,16 +1217,16 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -death@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" - -debug@*, debug@2, debug@^2.1.3, debug@^2.2.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" +debug@*, debug@2, debug@2.6.1, debug@^2.1.3, debug@^2.2.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" dependencies: ms "0.7.2" +debug@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + debug@2.2.0, debug@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" @@ -1194,12 +1239,6 @@ debug@2.3.3: dependencies: ms "0.7.2" -debug@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" - dependencies: - ms "0.7.2" - decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1263,15 +1302,11 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" -diff@^3.1.0, diff@^3.2.0: +diff@^3.0.1, diff@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" @@ -1344,6 +1379,16 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" +dot-prop@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1" + dependencies: + is-obj "^1.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -1388,12 +1433,6 @@ encodeurl@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" -end-of-stream@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" - dependencies: - once "^1.4.0" - engine.io-client@1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" @@ -1466,6 +1505,10 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +es6-promise@~4.0.3: + version "4.0.5" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1510,6 +1553,17 @@ evp_bytestokey@^1.0.0: dependencies: create-hash "^1.1.1" +execa@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.4.0.tgz#4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3" + dependencies: + cross-spawn-async "^2.1.1" + is-stream "^1.1.0" + npm-run-path "^1.0.0" + object-assign "^4.0.1" + path-key "^1.0.0" + strip-eof "^1.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -1606,6 +1660,15 @@ extract-text-webpack-plugin@~2.0.0: loader-utils "^1.0.2" webpack-sources "^0.1.0" +extract-zip@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" + dependencies: + concat-stream "1.5.0" + debug "0.7.4" + mkdirp "0.5.0" + yauzl "2.4.1" + extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" @@ -1626,6 +1689,12 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -1740,6 +1809,14 @@ fs-extra@^2.0.0: graceful-fs "^4.1.2" jsonfile "^2.1.0" +fs-extra@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1791,6 +1868,16 @@ gaze@^1.0.0: dependencies: globule "^1.0.0" +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + get-caller-file@^1.0.0, get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -1799,6 +1886,10 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + getpass@^0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" @@ -1873,7 +1964,23 @@ globule@^1.0.0: lodash "~4.16.4" minimatch "~3.0.2" -graceful-fs@^4.1.2, graceful-fs@^4.1.6: +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -1907,6 +2014,15 @@ har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" @@ -1950,6 +2066,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: dependencies: inherits "^2.0.1" +hasha@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" + dependencies: + is-stream "^1.0.1" + pinkie-promise "^2.0.0" + hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" @@ -2108,6 +2231,10 @@ img-stats@^0.5.2: dependencies: xmldom "^0.1.19" +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + in-publish@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" @@ -2149,7 +2276,7 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" -inquirer@^3.0.0, inquirer@^3.0.1: +inquirer@^3.0.0: version "3.0.6" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" dependencies: @@ -2209,12 +2336,6 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-ci@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" - dependencies: - ci-info "^1.0.0" - is-dotfile@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" @@ -2265,6 +2386,19 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-my-json-valid@^2.12.4: + version "2.16.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + is-number@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" @@ -2275,6 +2409,10 @@ is-number@^2.0.2, is-number@^2.1.0: dependencies: kind-of "^3.0.2" +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -2307,6 +2445,22 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" @@ -2422,9 +2576,9 @@ jasmine-core@^2.5.2, jasmine-core@~2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" -jasmine-spec-reporter@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-3.3.0.tgz#c63c3d43bacfd16e6da86c46d265957e0075f14c" +jasmine-spec-reporter@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.0.0.tgz#1f73b59edc47cef0b58f8e31dd4715ffedc96466" dependencies: colors "1.1.2" @@ -2516,6 +2670,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + jsprim@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" @@ -2538,9 +2696,9 @@ karma-cli@^1.0.1: dependencies: resolve "^1.1.6" -karma-coverage-istanbul-reporter@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.1.0.tgz#1357a534a77fe60befcfd83598383ced26c8f1b8" +karma-coverage-istanbul-reporter@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.2.0.tgz#f5ba3c5613c1b78721dff61a7765f5709e0e33cd" dependencies: istanbul-api "^1.1.7" @@ -2554,6 +2712,13 @@ karma-jasmine@^1.0.2, karma-jasmine@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" +karma-phantomjs-launcher@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2" + dependencies: + lodash "^4.0.1" + phantomjs-prebuilt "^2.1.7" + karma-sourcemap-loader@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" @@ -2602,16 +2767,36 @@ karma@^1.4.1: tmp "0.0.31" useragent "^2.1.12" +kew@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + kind-of@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" dependencies: is-buffer "^1.0.2" +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +lazy-req@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-2.0.0.tgz#c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4" + lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -2637,10 +2822,6 @@ less@^2.7.2: request "^2.72.0" source-map "^0.5.3" -leven@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -2696,11 +2877,11 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^3.8.0: +lodash@^3.10.0, lodash@^3.8.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0: +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -2725,7 +2906,7 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0" -loud-rejection@^1.0.0, loud-rejection@^1.2.0: +loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" dependencies: @@ -2736,11 +2917,15 @@ lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + lru-cache@2.2.x: version "2.2.4" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" -lru-cache@^4.0.1: +lru-cache@^4.0.0, lru-cache@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" dependencies: @@ -2878,6 +3063,12 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +mkdirp@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" + dependencies: + minimist "0.0.8" + mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -2892,7 +3083,7 @@ ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" -mute-stream@0.0.7, mute-stream@~0.0.4: +mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -2916,13 +3107,7 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-emoji@^1.0.4: - version "1.5.1" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.5.1.tgz#fd918e412769bf8c448051238233840b2aff16a1" - dependencies: - string.prototype.codepointat "^0.2.0" - -node-gyp@^3.2.1, node-gyp@^3.3.1: +node-gyp@^3.3.1: version "3.6.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.0.tgz#7474f63a3a0501161dda0b6341f022f14c423fa6" dependencies: @@ -3050,6 +3235,12 @@ normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" +npm-run-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-1.0.0.tgz#f5c32bf595fe81ae927daec52e82f8b000ac3c8f" + dependencies: + path-key "^1.0.0" + "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" @@ -3089,10 +3280,6 @@ object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" -object-path@^0.11.2: - version "0.11.4" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" - object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -3181,6 +3368,15 @@ osenv@0, osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +package-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.0.tgz#f3c9dc8738f5b59304d54d2cfb3f91d08fdd7998" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -3256,6 +3452,10 @@ path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" +path-key@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-1.0.0.tgz#5d53d578019646c0d68800db4e146e6bdc2ac7af" + path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" @@ -3278,10 +3478,28 @@ pbkdf2@^3.0.3: dependencies: create-hmac "^1.1.2" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" +phantomjs-prebuilt@^2.1.7: + version "2.1.14" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz#d53d311fcfb7d1d08ddb24014558f1188c516da0" + dependencies: + es6-promise "~4.0.3" + extract-zip "~1.5.0" + fs-extra "~1.0.0" + hasha "~2.2.0" + kew "~0.7.0" + progress "~1.1.8" + request "~2.79.0" + request-progress "~2.0.1" + which "~1.2.10" + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3561,7 +3779,7 @@ postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0. source-map "^0.5.6" supports-color "^3.2.3" -prepend-http@^1.0.0: +prepend-http@^1.0.0, prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -3584,18 +3802,22 @@ process@^0.11.0: version "0.11.9" resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" +progress@~1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + promise@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" dependencies: asap "~2.0.3" -proper-lockfile@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-2.0.0.tgz#b21f5e79bcbb6b4e23eeeced15cfc7f63e8a2e55" +protractor-console@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protractor-console/-/protractor-console-2.0.1.tgz#4697d3ce9c999f53018e0576a3d0cf3322b282a7" dependencies: - graceful-fs "^4.1.2" - retry "^0.10.0" + chalk "^1.1.0" + lodash "^3.10.0" protractor@^5.1.0: version "5.1.1" @@ -3646,10 +3868,14 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@^1.2.4, punycode@^1.4.0, punycode@^1.4.1: +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + q@1.4.1, q@^1.1.2, q@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" @@ -3662,6 +3888,10 @@ qs@6.4.0, qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +qs@~6.3.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + query-string@^4.1.0: version "4.3.2" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.2.tgz#ec0fd765f58a50031a3968c2431386f8947a5cdd" @@ -3714,7 +3944,7 @@ raw-loader@^0.5.1, raw-loader@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" -rc@^1.1.7: +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: version "1.2.1" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" dependencies: @@ -3738,12 +3968,6 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - dependencies: - mute-stream "~0.0.4" - readable-stream@1.0, readable-stream@~1.0.2: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -3753,7 +3977,7 @@ readable-stream@1.0, readable-stream@~1.0.2: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.2.6: +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.2.6: version "2.2.9" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" dependencies: @@ -3765,6 +3989,17 @@ readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2. string_decoder "~1.0.0" util-deprecate "~1.0.1" +readable-stream@~2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -3822,6 +4057,18 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" +registry-auth-token@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.2.tgz#1b9e51a185c930da34a9894b12a52ea998f1adaf" + dependencies: + rc "^1.1.6" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" @@ -3868,11 +4115,38 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request-capture-har@^1.1.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/request-capture-har/-/request-capture-har-1.2.2.tgz#cd692cfb2cc744fd84a3358aac6ee51528cf720d" +request-progress@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" + dependencies: + throttleit "^1.0.0" -request@2, request@^2.72.0, request@^2.75.0, request@^2.78.0, request@^2.79.0, request@^2.81.0: +request@2, request@^2.72.0, request@^2.78.0, request@^2.79.0, request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + +request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -3911,7 +4185,7 @@ requires-port@1.0.x, requires-port@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.1.7: version "1.3.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" dependencies: @@ -3924,17 +4198,13 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.0, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: @@ -3948,10 +4218,6 @@ ripemd160@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" -roadrunner@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/roadrunner/-/roadrunner-1.1.0.tgz#1180a30d64e1970d8f55dd8cb0da8ffccecad71e" - rsvp@^3.0.17: version "3.5.0" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.5.0.tgz#a62c573a4ae4e1dfd0697ebc6242e79c681eaa34" @@ -4039,13 +4305,19 @@ selenium-webdriver@^2.53.2: ws "^1.0.1" xml2js "0.4.4" +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + semver-dsl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" dependencies: semver "^5.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@~5.3.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -4132,6 +4404,10 @@ silent-error@^1.0.0: dependencies: debug "^2.2.0" +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -4339,10 +4615,6 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" -string.prototype.codepointat@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78" - string_decoder@^0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -4373,6 +4645,10 @@ strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -4451,15 +4727,6 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar-stream@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf" - dependencies: - bl "^1.0.0" - end-of-stream "^1.0.0" - readable-stream "^2.0.0" - xtend "^4.0.0" - tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" @@ -4475,10 +4742,24 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" +term-size@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca" + dependencies: + execa "^0.4.0" + +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + through@X.X.X, through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + timers-browserify@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" @@ -4562,21 +4843,21 @@ tsickle@^0.21.0: source-map "^0.5.6" source-map-support "^0.4.2" -tslint@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.1.0.tgz#51a47baeeb58956fcd617bd2cf00e2ef0eea2ed9" +tslint@^4.0.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.1.tgz#05356871bef23a434906734006fc188336ba824b" dependencies: - babel-code-frame "^6.22.0" + babel-code-frame "^6.20.0" colors "^1.1.2" - diff "^3.2.0" + diff "^3.0.1" findup-sync "~0.3.0" glob "^7.1.1" optimist "~0.6.0" - resolve "^1.3.2" - semver "^5.3.0" - tsutils "^1.4.0" + resolve "^1.1.7" + tsutils "^1.1.0" + update-notifier "^2.0.0" -tsutils@^1.4.0: +tsutils@^1.1.0: version "1.6.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.6.0.tgz#1fd7fac2a61369ed99cd3997f0fbb437128850f2" @@ -4590,6 +4871,10 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -4601,14 +4886,14 @@ type-is@~1.6.14: media-typer "0.3.0" mime-types "~2.1.15" -"typescript@>=2.0.0 <2.3.0": +typedarray@~0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +"typescript@>=2.0.0 <2.3.0", typescript@~2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.2.tgz#606022508479b55ffa368b58fee963a03dfd7b0c" -typescript@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.0.tgz#2e63e09284392bc8158a2444c33e2093795c0418" - uglify-js@^2.6, uglify-js@^2.7.5, uglify-js@~2.8.22: version "2.8.22" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" @@ -4652,10 +4937,33 @@ uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.1.0.tgz#ec0c1e53536b76647a24b77cb83966d9315123d9" + dependencies: + boxen "^1.0.0" + chalk "^1.0.0" + configstore "^3.0.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + lazy-req "^2.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -4667,6 +4975,12 @@ url-loader@^0.5.7: loader-utils "^1.0.2" mime "1.3.x" +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + url-parse@1.0.x: version "1.0.5" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" @@ -4733,10 +5047,6 @@ uuid@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" -v8-compile-cache@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.0.tgz#1dc2a340fb8e5f800a32bcdbfb8c23cd747021b9" - v8flags@^2.0.11: version "2.0.12" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.12.tgz#73235d9f7176f8e8833fb286795445f7938d84e5" @@ -4913,7 +5223,7 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@1, which@^1.2.1, which@^1.2.9: +which@1, which@^1.2.1, which@^1.2.8, which@^1.2.9, which@~1.2.10: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: @@ -4925,6 +5235,12 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.1" +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -4952,6 +5268,14 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +write-file-atomic@^1.1.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + ws@1.1.2, ws@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" @@ -4963,6 +5287,10 @@ wtf-8@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + xml-char-classes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" @@ -5066,43 +5394,11 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" -yarn@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-0.22.0.tgz#fd8511dc29225b925be967dc185772cc59de5888" +yauzl@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" dependencies: - babel-runtime "^6.0.0" - bytes "^2.4.0" - camelcase "^4.0.0" - chalk "^1.1.1" - cmd-shim "^2.0.1" - commander "^2.9.0" - death "^1.0.0" - debug "^2.2.0" - detect-indent "^5.0.0" - ini "^1.3.4" - inquirer "^3.0.1" - invariant "^2.2.0" - is-builtin-module "^1.0.0" - is-ci "^1.0.10" - leven "^2.0.0" - loud-rejection "^1.2.0" - minimatch "^3.0.3" - mkdirp "^0.5.1" - node-emoji "^1.0.4" - node-gyp "^3.2.1" - object-path "^0.11.2" - proper-lockfile "^2.0.0" - read "^1.0.7" - request "^2.75.0" - request-capture-har "^1.1.4" - rimraf "^2.5.0" - roadrunner "^1.1.0" - semver "^5.1.0" - strip-bom "^3.0.0" - tar "^2.2.1" - tar-stream "^1.5.2" - v8-compile-cache "^1.0.0" - validate-npm-package-license "^3.0.1" + fd-slicer "~1.0.1" yeast@0.1.2: version "0.1.2"