Documentation

- +

Component Inputs

@@ -22,9 +22,9 @@

Table Configuration

- + @@ -105,7 +105,7 @@

custom in order for this to work.
- You can see an
example here + You can see an example here

@@ -212,7 +212,7 @@

resetText: string. It defines the text of the button to reset the checkbox selection.
-
Click here to see an example on how to configure it. + Click here to see an example on how to configure it.

@@ -235,7 +235,7 @@

'asc'|'desc' @@ -493,7 +493,7 @@

boolean

@@ -535,7 +535,7 @@

number @@ -665,7 +665,7 @@

Property
false - Enable/disable (confirmCreate) event. If enabled data will be added only if confirm.resolve() called. + Enable/disable (confirmCreate) event. If enabled data will be added only if confirm.resolve() called.

Data Source Methods

@@ -898,5 +898,5 @@

- ` + `, }) export class AdvancedExamplesCustomEditorComponent { data = [ { id: 1, - name: "Leanne Graham", - username: "Bret", - link: "Google" + name: 'Leanne Graham', + username: 'Bret', + link: 'Google', }, { id: 2, - name: "Ervin Howell", - username: "Antonette", - link: "Ng2 Admin" + name: 'Ervin Howell', + username: 'Antonette', + link: 'Ng2 Admin', }, { id: 3, - name: "Clementine Bauch", - username: "Samantha", - link: "Ng2 smart table" + name: 'Clementine Bauch', + username: 'Samantha', + link: 'Ng2 smart table', }, { id: 4, - name: "Patricia Lebsack", - username: "Karianne", - link: "Blur Admin" + name: 'Patricia Lebsack', + username: 'Karianne', + link: 'Blur Admin', }, ]; settings = { columns: { id: { - title: 'ID' + title: 'ID', }, name: { title: 'Full Name', type: 'custom', - renderComponent: CustomRenderComponent + renderComponent: CustomRenderComponent, }, username: { title: 'User Name', @@ -55,9 +56,9 @@ export class AdvancedExamplesCustomEditorComponent { type: 'html', editor: { type: 'custom', - component: CustomEditorComponent - } - } - } + component: CustomEditorComponent, + }, + }, + }, }; } diff --git a/src/app/pages/examples/custom-edit-view/advanced-example-types.component.ts b/src/app/pages/examples/custom-edit-view/advanced-example-types.component.ts new file mode 100644 index 000000000..887c728f2 --- /dev/null +++ b/src/app/pages/examples/custom-edit-view/advanced-example-types.component.ts @@ -0,0 +1,161 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'advanced-example-types', + template: ` + + `, +}) +export class AdvancedExamplesTypesComponent { + + data = [ + { + id: 1, + name: 'Leanne Graham', + username: 'Bret', + email: 'Sincere@april.biz', + comments: 'Lorem ipsum dolor sit amet, ex dolorem officiis convenire usu.', + passed: 'Yes', + }, + { + id: 2, + name: 'Ervin Howell', + username: 'Antonette', + email: 'Shanna@melissa.tv', + comments: `Vix iudico graecis in? Malis eirmod consectetuer duo ut? + Mel an aeterno vivendum accusata, qui ne amet stet definitiones.`, + passed: 'Yes', + }, + { + id: 3, + name: 'Clementine Bauch', + username: 'Samantha', + email: 'Nathan@yesenia.net', + comments: 'Mollis latine intellegebat ei usu, veri exerci intellegebat vel cu. Eu nec ferri copiosae.', + passed: 'No', + }, + { + id: 4, + name: 'Patricia Lebsack', + username: 'Karianne', + email: 'Julianne.OConner@kory.org', + comments: 'Eu sea graece corrumpit, et tation nominavi philosophia eam, veri posidonium ex mea?', + passed: 'Yes', + }, + { + id: 5, + name: 'Chelsey Dietrich', + username: 'Kamren', + email: 'Lucio_Hettinger@annie.ca', + comments: `Quo viris appellantur an, pro id eirmod oblique iuvaret, + timeam omittam comprehensam ad eam? Eos id dico gubergren, + cum dicant qualisque ea, id vim ferri moderatius?`, + passed: 'No', + }, + { + id: 6, + name: 'Mrs. Dennis Schulist', + username: 'Leopoldo_Corkery', + email: 'Karley_Dach@jasper.info', + comments: 'Audire appareat sententiae qui no. Sed no rebum vitae quidam.', + passed: 'No', + }, + { + id: 7, + name: 'Kurtis Weissnat', + username: 'Elwyn.Skiles', + email: 'Telly.Hoeger@billy.biz', + comments: `Mel dicat sanctus accusata ut! Eu sit choro vituperata, + qui cu quod gubergren elaboraret, mollis vulputate ex cum!`, + passed: 'Yes', + }, + { + id: 8, + name: 'Nicholas Runolfsdottir V', + username: 'Maxime_Nienow', + email: 'Sherwood@rosamond.me', + comments: 'Cu usu nostrum quaerendum, no eripuit sanctus democritum cum.', + passed: 'No', + }, + { + id: 9, + name: 'Glenna Reichert', + username: 'Delphine', + email: 'Chaim_McDermott@dana.io', + comments: 'In iisque oporteat vix, amet volutpat constituto sit ut. Habeo suavitate vis ei.', + passed: 'No', + }, + { + id: 10, + name: 'Clementina DuBuque', + username: 'Moriah.Stanton', + email: 'Rey.Padberg@karina.biz', + comments: `Lorem ipsum dolor sit amet, causae fuisset ea has, adhuc tantas interesset per id. + Ne vocibus persequeris has, meis lucilius ex mea, illum labores contentiones pro in?`, + passed: 'Yes', + }, + { + id: 11, + name: 'Nicholas DuBuque', + username: 'Nicholas.Stanton', + email: 'Rey.Padberg@rosamond.biz', + comments: 'Lorem ipsum dolor sit amet, mea dolorum detraxit ea?', + passed: 'No', + }, + ]; + + settings = { + columns: { + id: { + title: 'ID', + }, + name: { + title: 'Full Name', + editor: { + type: 'completer', + config: { + completer: { + data: this.data, + searchFields: 'name', + titleField: 'name', + descriptionField: 'email', + }, + }, + }, + }, + username: { + title: 'User Name', + type: 'html', + editor: { + type: 'list', + config: { + list: [{ value: 'Antonette', title: 'Antonette' }, { value: 'Bret', title: 'Bret' }, { + value: 'Samantha', + title: 'Samantha', + }], + }, + }, + }, + email: { + title: 'Email', + type: 'string', + }, + comments: { + title: 'Comments', + editor: { + type: 'textarea', + }, + }, + passed: { + title: 'Passed', + editor: { + type: 'checkbox', + config: { + true: 'Yes', + false: 'No', + }, + }, + }, + }, + }; +} diff --git a/demo/src/app/pages/examples/examples/custom-edit-view-examples.component.html b/src/app/pages/examples/custom-edit-view/custom-edit-view-examples.component.html similarity index 82% rename from demo/src/app/pages/examples/examples/custom-edit-view-examples.component.html rename to src/app/pages/examples/custom-edit-view/custom-edit-view-examples.component.html index 81485d5f6..9a7e77a33 100644 --- a/demo/src/app/pages/examples/examples/custom-edit-view-examples.component.html +++ b/src/app/pages/examples/custom-edit-view/custom-edit-view-examples.component.html @@ -4,22 +4,22 @@

Custom editor/renderer column type

An example on how to use a custom cell editor and/or custom cell renderer:

When implementing a custom editor or renderer remember to add it to the entryComponents and to the declarations part of your module

-  {{ snippets.customEditorModule }}
+  {{ snippets.customEditorModule }}
 

For the custom cell editor:
To inherit the methods needed to interact with the table you can either extend the component with the DefaultEditor class or implement the Editor interface and reproduce the same methods on your component.
For the custom cell renderer:
In this example the custom component is applying a .toUpperCase() to one of the columns. You can implement the ViewCell interface to make sure you are setting up your component correctly. -

\ No newline at end of file +

diff --git a/demo/src/app/pages/examples/examples/custom-edit-view-examples.component.ts b/src/app/pages/examples/custom-edit-view/custom-edit-view-examples.component.ts similarity index 56% rename from demo/src/app/pages/examples/examples/custom-edit-view-examples.component.ts rename to src/app/pages/examples/custom-edit-view/custom-edit-view-examples.component.ts index 816c0256a..796312414 100644 --- a/demo/src/app/pages/examples/examples/custom-edit-view-examples.component.ts +++ b/src/app/pages/examples/custom-edit-view/custom-edit-view-examples.component.ts @@ -1,9 +1,4 @@ import { Component } from '@angular/core'; -import * as hljs from 'highlight.js'; - -import 'style-loader!../../../../../../node_modules/highlight.js/styles/dracula.css'; - -import 'style-loader!../../demo/demo.component.scss'; @Component({ selector: 'custom-edit-view-examples', @@ -15,7 +10,4 @@ export class CustomViewEditExamplesComponent { customEditorModule: require('raw-loader!../snippets/custom-editor-module.md'), }; - ngAfterViewInit(): void { - hljs.initHighlighting(); - } } diff --git a/demo/src/app/pages/examples/tables/custom-editor.component.ts b/src/app/pages/examples/custom-edit-view/custom-editor.component.ts similarity index 82% rename from demo/src/app/pages/examples/tables/custom-editor.component.ts rename to src/app/pages/examples/custom-edit-view/custom-editor.component.ts index d5c6a4eb9..b3ef9c591 100644 --- a/demo/src/app/pages/examples/tables/custom-editor.component.ts +++ b/src/app/pages/examples/custom-edit-view/custom-editor.component.ts @@ -1,6 +1,6 @@ -import { Component, ViewChild, ElementRef } from '@angular/core'; +import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core'; -import { Cell, DefaultEditor, Editor } from '../../../../../../ng2-smart-table'; +import { Cell, DefaultEditor, Editor } from '../../../../ng2-smart-table'; @Component({ template: ` @@ -25,9 +25,9 @@ import { Cell, DefaultEditor, Editor } from '../../../../../../ng2-smart-table'; (keydown.enter)="onEdited.emit($event)" (keydown.esc)="onStopEditing.emit()">
- ` + `, }) -export class CustomEditorComponent extends DefaultEditor { +export class CustomEditorComponent extends DefaultEditor implements AfterViewInit { @ViewChild('name') name: ElementRef; @ViewChild('url') url: ElementRef; @@ -37,14 +37,14 @@ export class CustomEditorComponent extends DefaultEditor { super(); } - ngAfterViewInit(): void { - if (this.cell.newValue !== ''){ + ngAfterViewInit() { + if (this.cell.newValue !== '') { this.name.nativeElement.value = this.getUrlName(); this.url.nativeElement.value = this.getUrlHref(); } } - updateValue(): void { + updateValue() { const href = this.url.nativeElement.value; const name = this.name.nativeElement.value; this.cell.newValue = `${name}`; diff --git a/demo/src/app/pages/examples/tables/custom-render.component.ts b/src/app/pages/examples/custom-edit-view/custom-render.component.ts similarity index 50% rename from demo/src/app/pages/examples/tables/custom-render.component.ts rename to src/app/pages/examples/custom-edit-view/custom-render.component.ts index e1d31a9f2..4ad714b5c 100644 --- a/demo/src/app/pages/examples/tables/custom-render.component.ts +++ b/src/app/pages/examples/custom-edit-view/custom-render.component.ts @@ -1,18 +1,20 @@ -import { Component, Input } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; -import { ViewCell } from '../../../../../../ng2-smart-table'; +import { ViewCell } from '../../../../ng2-smart-table'; @Component({ template: ` {{renderValue}} - ` + `, }) -export class CustomRenderComponent implements ViewCell { +export class CustomRenderComponent implements ViewCell, OnInit { renderValue: string; + @Input() value: string | number; ngOnInit() { this.renderValue = this.value.toString().toUpperCase(); } + } diff --git a/demo/src/app/pages/examples/examples.component.html b/src/app/pages/examples/examples.component.html similarity index 100% rename from demo/src/app/pages/examples/examples.component.html rename to src/app/pages/examples/examples.component.html diff --git a/demo/src/app/pages/demo/demo.component.scss b/src/app/pages/examples/examples.component.scss similarity index 89% rename from demo/src/app/pages/demo/demo.component.scss rename to src/app/pages/examples/examples.component.scss index eb2c2e9d1..a6a724426 100644 --- a/demo/src/app/pages/demo/demo.component.scss +++ b/src/app/pages/examples/examples.component.scss @@ -1,56 +1,46 @@ .with-sidebar { position: relative; padding-right: 16rem; - .fixed-sidebar { padding: 0 1rem; margin-top: 2rem; position: absolute; right: 0; width: 16rem; - font-size: 0.875rem; - .back-top { display: none; margin-bottom: 1rem; font-weight: bold; } - ul { padding-left: 1rem; list-style: none; margin-bottom: 0.875rem; } - &.scrolled { position: fixed; top: 0; - .back-top { display: block; } } - - } -} - -.examples-menu { - a.active { - font-weight: bold; + .examples-menu { + a.active { + font-weight: bold; + } + } } } @media screen and (max-width: 64em) { .with-sidebar { - .fixed-sidebar { display: none; } } } - @media screen and (min-width: 42em) and (max-width: 64em) { .with-sidebar { padding: 2rem 4rem; @@ -61,4 +51,4 @@ .with-sidebar { padding: 2rem 1rem; } -} \ No newline at end of file +} diff --git a/src/app/pages/examples/examples.component.ts b/src/app/pages/examples/examples.component.ts new file mode 100644 index 000000000..883f6551c --- /dev/null +++ b/src/app/pages/examples/examples.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'examples', + styleUrls: ['./examples.component.scss'], + templateUrl: 'examples.component.html', +}) +export class ExamplesComponent { +} diff --git a/src/app/pages/examples/examples.module.ts b/src/app/pages/examples/examples.module.ts new file mode 100644 index 000000000..37c6016bb --- /dev/null +++ b/src/app/pages/examples/examples.module.ts @@ -0,0 +1,60 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + +import { SharedModule } from '../../shared/shared.module'; +import { Ng2SmartTableModule } from '../../../ng2-smart-table'; +import { routes } from './examples.routes'; +import { ExamplesComponent } from './examples.component'; +import { AdvancedExampleFiltersComponent } from './filter/advanced-example-filters.component'; +import { AdvancedExampleConfirmComponent } from './various/advanced-example-confirm.component'; +import { AdvancedExamplesCustomEditorComponent } from './custom-edit-view/advanced-example-custom-editor.component'; +import { AdvancedExamplesTypesComponent } from './custom-edit-view/advanced-example-types.component'; +import { AdvancedExampleServerComponent } from './server/advanced-example-server.component'; +import { BasicExampleLoadComponent } from './server/basic-example-load.component'; +import { BasicExampleMultiSelectComponent } from './various/basic-example-multi-select.component'; +import { CustomEditorComponent } from './custom-edit-view/custom-editor.component'; +import { BasicExampleSourceComponent } from './filter/basic-example-source.component'; +import { CustomRenderComponent } from './custom-edit-view/custom-render.component'; +import { FilterExamplesComponent } from './filter/filter-examples.component'; +import { ServerExamplesComponent } from './server/server-examples.component'; +import { CustomViewEditExamplesComponent } from './custom-edit-view/custom-edit-view-examples.component'; +import { VariousExamplesComponent } from './various/various-examples.component'; + +const EXAMPLES_COMPONENTS = [ + AdvancedExampleFiltersComponent, + AdvancedExampleConfirmComponent, + AdvancedExamplesCustomEditorComponent, + AdvancedExamplesTypesComponent, + AdvancedExampleServerComponent, + BasicExampleLoadComponent, + BasicExampleMultiSelectComponent, + BasicExampleSourceComponent, + CustomEditorComponent, + CustomRenderComponent, + FilterExamplesComponent, + ServerExamplesComponent, + CustomViewEditExamplesComponent, + VariousExamplesComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + RouterModule.forChild(routes), + Ng2SmartTableModule, + SharedModule, + ], + entryComponents: [ + CustomEditorComponent, + CustomRenderComponent, + ], + declarations: [ + ExamplesComponent, + ...EXAMPLES_COMPONENTS, + ], +}) +export class ExamplesModule { } diff --git a/src/app/pages/examples/examples.routes.ts b/src/app/pages/examples/examples.routes.ts new file mode 100644 index 000000000..4dca31d44 --- /dev/null +++ b/src/app/pages/examples/examples.routes.ts @@ -0,0 +1,37 @@ +import { ModuleWithProviders } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { ExamplesComponent } from './examples.component'; +import { FilterExamplesComponent } from './filter/filter-examples.component'; +import { ServerExamplesComponent } from './server/server-examples.component'; +import { CustomViewEditExamplesComponent } from './custom-edit-view/custom-edit-view-examples.component'; +import { VariousExamplesComponent } from './various/various-examples.component'; + +export const routes: Routes = [ + { + path: '', + component: ExamplesComponent, + children: [ + { + path: '', + redirectTo: 'using-filters', + }, + { + path: 'using-filters', + component: FilterExamplesComponent, + }, + { + path: 'populate-from-server', + component: ServerExamplesComponent, + }, + { + path: 'custom-editors-viewers', + component: CustomViewEditExamplesComponent, + }, + { + path: 'various', + component: VariousExamplesComponent, + }, + ], + }, +]; diff --git a/demo/src/app/pages/examples/tables/advanced-example-filters.component.ts b/src/app/pages/examples/filter/advanced-example-filters.component.ts similarity index 81% rename from demo/src/app/pages/examples/tables/advanced-example-filters.component.ts rename to src/app/pages/examples/filter/advanced-example-filters.component.ts index baf8e55f2..1463081e9 100644 --- a/demo/src/app/pages/examples/tables/advanced-example-filters.component.ts +++ b/src/app/pages/examples/filter/advanced-example-filters.component.ts @@ -4,7 +4,7 @@ import { Component } from '@angular/core'; selector: 'advanced-example-filters', template: ` - ` + `, }) export class AdvancedExampleFiltersComponent { @@ -13,56 +13,56 @@ export class AdvancedExampleFiltersComponent { id: 4, name: 'Patricia Lebsack', email: 'Julianne.OConner@kory.org', - passed: 'Yes' + passed: 'Yes', }, { id: 5, name: 'Chelsey Dietrich', email: 'Lucio_Hettinger@annie.ca', - passed: 'No' + passed: 'No', }, { id: 6, name: 'Mrs. Dennis Schulist', email: 'Karley_Dach@jasper.info', - passed: 'Yes' + passed: 'Yes', }, { id: 7, name: 'Kurtis Weissnat', email: 'Telly.Hoeger@billy.biz', - passed: 'No' + passed: 'No', }, { id: 8, name: 'Nicholas Runolfsdottir V', email: 'Sherwood@rosamond.me', - passed: 'Yes' + passed: 'Yes', }, { id: 9, name: 'Glenna Reichert', email: 'Chaim_McDermott@dana.io', - passed: 'No' + passed: 'No', }, { id: 10, name: 'Clementina DuBuque', email: 'Rey.Padberg@karina.biz', - passed: 'No' + passed: 'No', }, { id: 11, name: 'Nicholas DuBuque', email: 'Rey.Padberg@rosamond.biz', - passed: 'Yes' - } + passed: 'Yes', + }, ]; - settings = { + settings = { columns: { id: { - title: 'ID' + title: 'ID', }, name: { title: 'Full Name', @@ -73,10 +73,10 @@ export class AdvancedExampleFiltersComponent { list: [ { value: 'Glenna Reichert', title: 'Glenna Reichert' }, { value: 'Kurtis Weissnat', title: 'Kurtis Weissnat' }, - { value: 'Chelsey Dietrich', title: 'Chelsey Dietrich' } - ] - } - } + { value: 'Chelsey Dietrich', title: 'Chelsey Dietrich' }, + ], + }, + }, }, email: { title: 'Email', @@ -86,10 +86,10 @@ export class AdvancedExampleFiltersComponent { completer: { data: this.data, searchFields: 'email', - titleField: 'email' - } - } - } + titleField: 'email', + }, + }, + }, }, passed: { title: 'Passed', @@ -98,10 +98,10 @@ export class AdvancedExampleFiltersComponent { config: { true: 'Yes', false: 'No', - resetText: 'clear' - } - } - } - } + resetText: 'clear', + }, + }, + }, + }, }; } diff --git a/demo/src/app/pages/examples/tables/basic-example-source.component.ts b/src/app/pages/examples/filter/basic-example-source.component.ts similarity index 50% rename from demo/src/app/pages/examples/tables/basic-example-source.component.ts rename to src/app/pages/examples/filter/basic-example-source.component.ts index 24ec85722..43a1cafbb 100644 --- a/demo/src/app/pages/examples/tables/basic-example-source.component.ts +++ b/src/app/pages/examples/filter/basic-example-source.component.ts @@ -1,13 +1,13 @@ import { Component } from '@angular/core'; -import { LocalDataSource } from '../../../../../../ng2-smart-table'; +import { LocalDataSource } from '../../../../ng2-smart-table'; @Component({ selector: 'basic-example-source', template: ` - ` + `, }) export class BasicExampleSourceComponent { @@ -15,90 +15,90 @@ export class BasicExampleSourceComponent { columns: { id: { title: 'ID', - filter: false + filter: false, }, name: { title: 'Full Name', - filter: false + filter: false, }, username: { title: 'User Name', - filter: false + filter: false, }, email: { title: 'Email', - filter: false - } - } + filter: false, + }, + }, }; data = [ { id: 1, - name: "Leanne Graham", - username: "Bret", - email: "Sincere@april.biz" + name: 'Leanne Graham', + username: 'Bret', + email: 'Sincere@april.biz', }, { id: 2, - name: "Ervin Howell", - username: "Antonette", - email: "Shanna@melissa.tv" + name: 'Ervin Howell', + username: 'Antonette', + email: 'Shanna@melissa.tv', }, { id: 3, - name: "Clementine Bauch", - username: "Samantha", - email: "Nathan@yesenia.net" + name: 'Clementine Bauch', + username: 'Samantha', + email: 'Nathan@yesenia.net', }, { id: 4, - name: "Patricia Lebsack", - username: "Karianne", - email: "Julianne.OConner@kory.org" + name: 'Patricia Lebsack', + username: 'Karianne', + email: 'Julianne.OConner@kory.org', }, { id: 5, - name: "Chelsey Dietrich", - username: "Kamren", - email: "Lucio_Hettinger@annie.ca" + name: 'Chelsey Dietrich', + username: 'Kamren', + email: 'Lucio_Hettinger@annie.ca', }, { id: 6, - name: "Mrs. Dennis Schulist", - username: "Leopoldo_Corkery", - email: "Karley_Dach@jasper.info" + name: 'Mrs. Dennis Schulist', + username: 'Leopoldo_Corkery', + email: 'Karley_Dach@jasper.info', }, { id: 7, - name: "Kurtis Weissnat", - username: "Elwyn.Skiles", - email: "Telly.Hoeger@billy.biz" + name: 'Kurtis Weissnat', + username: 'Elwyn.Skiles', + email: 'Telly.Hoeger@billy.biz', }, { id: 8, - name: "Nicholas Runolfsdottir V", - username: "Maxime_Nienow", - email: "Sherwood@rosamond.me" + name: 'Nicholas Runolfsdottir V', + username: 'Maxime_Nienow', + email: 'Sherwood@rosamond.me', }, { id: 9, - name: "Glenna Reichert", - username: "Delphine", - email: "Chaim_McDermott@dana.io" + name: 'Glenna Reichert', + username: 'Delphine', + email: 'Chaim_McDermott@dana.io', }, { id: 10, - name: "Clementina DuBuque", - username: "Moriah.Stanton", - email: "Rey.Padberg@karina.biz" + name: 'Clementina DuBuque', + username: 'Moriah.Stanton', + email: 'Rey.Padberg@karina.biz', }, { id: 11, - name: "Nicholas DuBuque", - username: "Nicholas.Stanton", - email: "Rey.Padberg@rosamond.biz" - } + name: 'Nicholas DuBuque', + username: 'Nicholas.Stanton', + email: 'Rey.Padberg@rosamond.biz', + }, ]; source: LocalDataSource; @@ -107,25 +107,25 @@ export class BasicExampleSourceComponent { this.source = new LocalDataSource(this.data); } - onSearch(query: string = ''): void { + onSearch(query: string = '') { this.source.setFilter([ // fields we want to inclue in the search { field: 'id', - search: query + search: query, }, { field: 'name', - search: query + search: query, }, { field: 'username', - search: query + search: query, }, { field: 'email', - search: query - } + search: query, + }, ], false); // second parameter specifying whether to perform 'AND' or 'OR' search // (meaning all columns should contain search query or at least one) diff --git a/demo/src/app/pages/examples/examples/filter-examples.component.html b/src/app/pages/examples/filter/filter-examples.component.html similarity index 84% rename from demo/src/app/pages/examples/examples/filter-examples.component.html rename to src/app/pages/examples/filter/filter-examples.component.html index 07706eb89..841ee884f 100644 --- a/demo/src/app/pages/examples/examples/filter-examples.component.html +++ b/src/app/pages/examples/filter/filter-examples.component.html @@ -12,39 +12,39 @@

Demo Source
-  {{ snippets.sourceFull }}
+  Demo Source
+  {{ snippets.sourceFull }}
 

Checkbox, Select and Completer filter types

@@ -66,6 +66,6 @@

\ No newline at end of file + diff --git a/demo/src/app/pages/examples/examples/filter-examples.component.ts b/src/app/pages/examples/filter/filter-examples.component.ts similarity index 73% rename from demo/src/app/pages/examples/examples/filter-examples.component.ts rename to src/app/pages/examples/filter/filter-examples.component.ts index 7ed7d3af7..b0926a2b3 100644 --- a/demo/src/app/pages/examples/examples/filter-examples.component.ts +++ b/src/app/pages/examples/filter/filter-examples.component.ts @@ -1,9 +1,4 @@ import { Component } from '@angular/core'; -import * as hljs from 'highlight.js'; - -import 'style-loader!../../../../../../node_modules/highlight.js/styles/dracula.css'; - -import 'style-loader!../../demo/demo.component.scss'; @Component({ selector: 'filter-examples', @@ -21,7 +16,4 @@ export class FilterExamplesComponent { hideFilters: require('raw-loader!../snippets/hide-filters.md'), }; - ngAfterViewInit(): void { - hljs.initHighlighting(); - } } diff --git a/demo/src/app/pages/examples/tables/advanced-example-server.component.ts b/src/app/pages/examples/server/advanced-example-server.component.ts similarity index 69% rename from demo/src/app/pages/examples/tables/advanced-example-server.component.ts rename to src/app/pages/examples/server/advanced-example-server.component.ts index 616fa565b..b61c598fc 100644 --- a/demo/src/app/pages/examples/tables/advanced-example-server.component.ts +++ b/src/app/pages/examples/server/advanced-example-server.component.ts @@ -1,30 +1,31 @@ import { Component } from '@angular/core'; -import { ServerDataSource } from '../../../../../../src/ng2-smart-table/lib'; -import { Http } from '@angular/http/src/http'; +import { Http } from '@angular/http'; + +import { ServerDataSource } from '../../../../../src/ng2-smart-table'; @Component({ selector: 'advanced-example-server', template: ` - ` + `, }) export class AdvancedExampleServerComponent { settings = { columns: { id: { - title: 'ID' + title: 'ID', }, albumId: { - title: 'Album' + title: 'Album', }, title: { - title: 'Title' + title: 'Title', }, url: { - title: 'Url' - } - } + title: 'Url', + }, + }, }; source: ServerDataSource; diff --git a/demo/src/app/pages/examples/tables/basic-example-load.component.ts b/src/app/pages/examples/server/basic-example-load.component.ts similarity index 77% rename from demo/src/app/pages/examples/tables/basic-example-load.component.ts rename to src/app/pages/examples/server/basic-example-load.component.ts index 37a712698..ee83c572b 100644 --- a/demo/src/app/pages/examples/tables/basic-example-load.component.ts +++ b/src/app/pages/examples/server/basic-example-load.component.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; -import { LocalDataSource } from '../../../../../../ng2-smart-table'; +import { LocalDataSource } from '../../../../ng2-smart-table'; import { BasicExampleLoadService } from './basic-example-load.service'; @Component({ @@ -8,7 +8,7 @@ import { BasicExampleLoadService } from './basic-example-load.service'; providers: [BasicExampleLoadService], template: ` - ` + `, }) export class BasicExampleLoadComponent { @@ -17,18 +17,18 @@ export class BasicExampleLoadComponent { settings = { columns: { id: { - title: 'ID' + title: 'ID', }, name: { - title: 'Full Name' + title: 'Full Name', }, username: { - title: 'User Name' + title: 'User Name', }, email: { - title: 'Email' - } - } + title: 'Email', + }, + }, }; constructor(protected service: BasicExampleLoadService) { @@ -36,6 +36,6 @@ export class BasicExampleLoadComponent { this.service.getData().then((data) => { this.source.load(data); - }) + }); } } diff --git a/demo/src/app/pages/examples/tables/basic-example-load.service.ts b/src/app/pages/examples/server/basic-example-load.service.ts similarity index 91% rename from demo/src/app/pages/examples/tables/basic-example-load.service.ts rename to src/app/pages/examples/server/basic-example-load.service.ts index e6be8c53b..296684dda 100644 --- a/demo/src/app/pages/examples/tables/basic-example-load.service.ts +++ b/src/app/pages/examples/server/basic-example-load.service.ts @@ -20,12 +20,12 @@ export class BasicExampleLoadService { id: n, name: `Jack London ${n}`, username: `jack_london_${n}`, - email: `jack_london_${n}@example.com` + email: `jack_london_${n}@example.com`, }; } protected generateData(): Array { - let data = []; + const data = []; for (let i = 0; i < BasicExampleLoadService.DATA_SIZE; i++) { data.push(this.getNewExampleObj(i)); } diff --git a/demo/src/app/pages/examples/tables/serve.data-source.ts b/src/app/pages/examples/server/serve.data-source.ts similarity index 91% rename from demo/src/app/pages/examples/tables/serve.data-source.ts rename to src/app/pages/examples/server/serve.data-source.ts index d2ba44db0..34e03fb34 100644 --- a/demo/src/app/pages/examples/tables/serve.data-source.ts +++ b/src/app/pages/examples/server/serve.data-source.ts @@ -1,7 +1,8 @@ -import { LocalDataSource } from '../../../../../../src/ng2-smart-table/lib'; import { Http } from '@angular/http'; import { Injectable } from '@angular/core'; +import { LocalDataSource } from '../../../../ng2-smart-table/lib/data-source/local/local.data-source'; + @Injectable() export class CustomServerDataSource extends LocalDataSource { @@ -41,4 +42,4 @@ export class CustomServerDataSource extends LocalDataSource { return res.json(); }).toPromise(); } -} \ No newline at end of file +} diff --git a/demo/src/app/pages/examples/examples/server-examples.component.html b/src/app/pages/examples/server/server-examples.component.html similarity index 87% rename from demo/src/app/pages/examples/examples/server-examples.component.html rename to src/app/pages/examples/server/server-examples.component.html index 73b58812b..e0f3e38f2 100644 --- a/demo/src/app/pages/examples/examples/server-examples.component.html +++ b/src/app/pages/examples/server/server-examples.component.html @@ -4,7 +4,7 @@

@@ -13,6 +13,6 @@

\ No newline at end of file + diff --git a/src/app/pages/examples/server/server-examples.component.ts b/src/app/pages/examples/server/server-examples.component.ts new file mode 100644 index 000000000..d7ca5759a --- /dev/null +++ b/src/app/pages/examples/server/server-examples.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'server-examples', + templateUrl: './server-examples.component.html', +}) +export class ServerExamplesComponent { + +} diff --git a/demo/src/app/pages/examples/snippets/create-source.md b/src/app/pages/examples/snippets/create-source.md similarity index 100% rename from demo/src/app/pages/examples/snippets/create-source.md rename to src/app/pages/examples/snippets/create-source.md diff --git a/demo/src/app/pages/examples/snippets/custom-editor-module.md b/src/app/pages/examples/snippets/custom-editor-module.md similarity index 100% rename from demo/src/app/pages/examples/snippets/custom-editor-module.md rename to src/app/pages/examples/snippets/custom-editor-module.md diff --git a/demo/src/app/pages/examples/snippets/hide-filters.md b/src/app/pages/examples/snippets/hide-filters.md similarity index 100% rename from demo/src/app/pages/examples/snippets/hide-filters.md rename to src/app/pages/examples/snippets/hide-filters.md diff --git a/demo/src/app/pages/examples/snippets/search-table.md b/src/app/pages/examples/snippets/search-table.md similarity index 93% rename from demo/src/app/pages/examples/snippets/search-table.md rename to src/app/pages/examples/snippets/search-table.md index 5037d4988..3839af1a8 100644 --- a/demo/src/app/pages/examples/snippets/search-table.md +++ b/src/app/pages/examples/snippets/search-table.md @@ -1,4 +1,4 @@ -onSearch(query: string = ''): void { +onSearch(query: string = '') { this.source.setFilter([ // fields we want to include in the search { @@ -21,4 +21,4 @@ onSearch(query: string = ''): void { // second parameter specifying whether to perform 'AND' or 'OR' search // (meaning all columns should contain search query or at least one) // 'AND' by default, so changing to 'OR' by setting false here -} \ No newline at end of file +} diff --git a/demo/src/app/pages/examples/snippets/search.md b/src/app/pages/examples/snippets/search.md similarity index 100% rename from demo/src/app/pages/examples/snippets/search.md rename to src/app/pages/examples/snippets/search.md diff --git a/demo/src/app/pages/examples/snippets/source-full.md b/src/app/pages/examples/snippets/source-full.md similarity index 97% rename from demo/src/app/pages/examples/snippets/source-full.md rename to src/app/pages/examples/snippets/source-full.md index 16d0f3663..f40975328 100644 --- a/demo/src/app/pages/examples/snippets/source-full.md +++ b/src/app/pages/examples/snippets/source-full.md @@ -41,7 +41,7 @@ export class BasicExampleSourceComponent { this.source = new LocalDataSource(this.data); } - onSearch(query: string = ''): void { + onSearch(query: string = '') { this.source.setFilter([ // fields we want to include in the search { diff --git a/demo/src/app/pages/examples/snippets/source-require.md b/src/app/pages/examples/snippets/source-require.md similarity index 100% rename from demo/src/app/pages/examples/snippets/source-require.md rename to src/app/pages/examples/snippets/source-require.md diff --git a/demo/src/app/pages/examples/snippets/source-template.md b/src/app/pages/examples/snippets/source-template.md similarity index 100% rename from demo/src/app/pages/examples/snippets/source-template.md rename to src/app/pages/examples/snippets/source-template.md diff --git a/src/app/pages/examples/various/advanced-example-confirm.component.ts b/src/app/pages/examples/various/advanced-example-confirm.component.ts new file mode 100644 index 000000000..071dae4af --- /dev/null +++ b/src/app/pages/examples/various/advanced-example-confirm.component.ts @@ -0,0 +1,155 @@ +import { Component } from '@angular/core'; + +import { LocalDataSource } from '../../../../ng2-smart-table'; + +@Component({ + selector: 'advance-example-comfirm', + template: ` + + `, +}) +export class AdvancedExampleConfirmComponent { + + settings = { + delete: { + confirmDelete: true, + }, + add: { + confirmCreate: true, + }, + edit: { + confirmSave: true, + }, + columns: { + id: { + title: 'ID', + }, + name: { + title: 'Full Name', + }, + username: { + title: 'User Name', + }, + email: { + title: 'Email', + }, + }, + }; + + data = [ + { + id: 1, + name: 'Leanne Graham', + username: 'Bret', + email: 'Sincere@april.biz', + notShownField: true, + }, + { + id: 2, + name: 'Ervin Howell', + username: 'Antonette', + email: 'Shanna@melissa.tv', + notShownField: true, + }, + { + id: 3, + name: 'Clementine Bauch', + username: 'Samantha', + email: 'Nathan@yesenia.net', + notShownField: false, + }, + { + id: 4, + name: 'Patricia Lebsack', + username: 'Karianne', + email: 'Julianne.OConner@kory.org', + notShownField: false, + }, + { + id: 5, + name: 'Chelsey Dietrich', + username: 'Kamren', + email: 'Lucio_Hettinger@annie.ca', + notShownField: false, + }, + { + id: 6, + name: 'Mrs. Dennis Schulist', + username: 'Leopoldo_Corkery', + email: 'Karley_Dach@jasper.info', + notShownField: false, + }, + { + id: 7, + name: 'Kurtis Weissnat', + username: 'Elwyn.Skiles', + email: 'Telly.Hoeger@billy.biz', + notShownField: false, + }, + { + id: 8, + name: 'Nicholas Runolfsdottir V', + username: 'Maxime_Nienow', + email: 'Sherwood@rosamond.me', + notShownField: true, + }, + { + id: 9, + name: 'Glenna Reichert', + username: 'Delphine', + email: 'Chaim_McDermott@dana.io', + notShownField: false, + }, + { + id: 10, + name: 'Clementina DuBuque', + username: 'Moriah.Stanton', + email: 'Rey.Padberg@karina.biz', + notShownField: false, + }, + { + id: 11, + name: 'Nicholas DuBuque', + username: 'Nicholas.Stanton', + email: 'Rey.Padberg@rosamond.biz', + notShownField: true, + } + ]; + + source: LocalDataSource; + + constructor() { + this.source = new LocalDataSource(this.data); + } + + onDeleteConfirm(event) { + if (window.confirm('Are you sure you want to delete?')) { + event.confirm.resolve(); + } else { + event.confirm.reject(); + } + } + + onSaveConfirm(event) { + if (window.confirm('Are you sure you want to save?')) { + event.newData['name'] += ' + added in code'; + event.confirm.resolve(event.newData); + } else { + event.confirm.reject(); + } + } + + onCreateConfirm(event) { + if (window.confirm('Are you sure you want to create?')) { + event.newData['name'] += ' + added in code'; + event.confirm.resolve(event.newData); + } else { + event.confirm.reject(); + } + } +} diff --git a/src/app/pages/examples/various/basic-example-multi-select.component.ts b/src/app/pages/examples/various/basic-example-multi-select.component.ts new file mode 100644 index 000000000..f02ff0ce3 --- /dev/null +++ b/src/app/pages/examples/various/basic-example-multi-select.component.ts @@ -0,0 +1,97 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'basic-example-multi-select', + template: ` + + `, +}) +export class BasicExampleMultiSelectComponent { + + settings = { + selectMode: 'multi', + columns: { + id: { + title: 'ID', + }, + name: { + title: 'Full Name', + }, + username: { + title: 'User Name', + }, + email: { + title: 'Email', + }, + }, + }; + + data = [ + { + id: 1, + name: 'Leanne Graham', + username: 'Bret', + email: 'Sincere@april.biz', + }, + { + id: 2, + name: 'Ervin Howell', + username: 'Antonette', + email: 'Shanna@melissa.tv', + }, + { + id: 3, + name: 'Clementine Bauch', + username: 'Samantha', + email: 'Nathan@yesenia.net', + }, + { + id: 4, + name: 'Patricia Lebsack', + username: 'Karianne', + email: 'Julianne.OConner@kory.org', + }, + { + id: 5, + name: 'Chelsey Dietrich', + username: 'Kamren', + email: 'Lucio_Hettinger@annie.ca', + }, + { + id: 6, + name: 'Mrs. Dennis Schulist', + username: 'Leopoldo_Corkery', + email: 'Karley_Dach@jasper.info', + }, + { + id: 7, + name: 'Kurtis Weissnat', + username: 'Elwyn.Skiles', + email: 'Telly.Hoeger@billy.biz', + }, + { + id: 8, + name: 'Nicholas Runolfsdottir V', + username: 'Maxime_Nienow', + email: 'Sherwood@rosamond.me', + }, + { + id: 9, + name: 'Glenna Reichert', + username: 'Delphine', + email: 'Chaim_McDermott@dana.io', + }, + { + id: 10, + name: 'Clementina DuBuque', + username: 'Moriah.Stanton', + email: 'Rey.Padberg@karina.biz', + }, + { + id: 11, + name: 'Nicholas DuBuque', + username: 'Nicholas.Stanton', + email: 'Rey.Padberg@rosamond.biz', + }, + ]; +} diff --git a/demo/src/app/pages/examples/examples/various-examples.component.html b/src/app/pages/examples/various/various-examples.component.html similarity index 75% rename from demo/src/app/pages/examples/examples/various-examples.component.html rename to src/app/pages/examples/various/various-examples.component.html index 03511c847..f1935b4b0 100644 --- a/demo/src/app/pages/examples/examples/various-examples.component.html +++ b/src/app/pages/examples/various/various-examples.component.html @@ -4,7 +4,7 @@

@@ -12,6 +12,6 @@

Multi select

An example on how to use multi select mode:

\ No newline at end of file + diff --git a/src/app/pages/examples/various/various-examples.component.ts b/src/app/pages/examples/various/various-examples.component.ts new file mode 100644 index 000000000..ca01c9c66 --- /dev/null +++ b/src/app/pages/examples/various/various-examples.component.ts @@ -0,0 +1,9 @@ +import { Component, AfterViewInit } from '@angular/core'; + +@Component({ + selector: 'various-examples', + templateUrl: './various-examples.component.html', +}) +export class VariousExamplesComponent { + +} diff --git a/demo/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html similarity index 100% rename from demo/src/app/pages/home/home.component.html rename to src/app/pages/home/home.component.html diff --git a/demo/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts similarity index 100% rename from demo/src/app/pages/home/home.component.ts rename to src/app/pages/home/home.component.ts diff --git a/src/app/pages/home/home.module.ts b/src/app/pages/home/home.module.ts new file mode 100644 index 000000000..436388ad9 --- /dev/null +++ b/src/app/pages/home/home.module.ts @@ -0,0 +1,21 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; + +import { SharedModule } from '../../shared/shared.module'; + +import { routes } from './home.routes'; + +import { HomeComponent } from './home.component'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule.forChild(routes), + SharedModule, + ], + declarations: [ + HomeComponent, + ], +}) +export class HomeModule { } diff --git a/src/app/pages/home/home.routes.ts b/src/app/pages/home/home.routes.ts new file mode 100644 index 000000000..4b0317dd6 --- /dev/null +++ b/src/app/pages/home/home.routes.ts @@ -0,0 +1,10 @@ +import { Routes } from '@angular/router'; + +import { HomeComponent } from './home.component'; + +export const routes: Routes = [ + { + path: '', + component: HomeComponent, + }, +]; diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts new file mode 100644 index 000000000..554d0d56a --- /dev/null +++ b/src/app/pages/pages.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { HttpModule } from '@angular/http'; +import { RouterModule } from '@angular/router'; + +import { routes } from './pages.routes'; +import { SharedModule } from '../shared/shared.module'; + +import { Ng2SmartTableModule } from '../../ng2-smart-table/ng2-smart-table.module'; + +@NgModule({ + imports: [ + FormsModule, + HttpModule, + ReactiveFormsModule, + RouterModule.forChild(routes), + Ng2SmartTableModule, + SharedModule, + ], +}) +export class PagesModule { +} diff --git a/src/app/pages/pages.routes.ts b/src/app/pages/pages.routes.ts new file mode 100644 index 000000000..208a6b4e1 --- /dev/null +++ b/src/app/pages/pages.routes.ts @@ -0,0 +1,20 @@ +import { Routes, RouterModule } from '@angular/router'; + +export const routes: Routes = [ + { + path: '', + loadChildren: './home/home.module#HomeModule', + }, + { + path: 'demo', + loadChildren: './demo/demo.module#DemoModule', + }, + { + path: 'documentation', + loadChildren: './documentation/documentation.module#DocumentationModule', + }, + { + path: 'examples', + loadChildren: './examples/examples.module#ExamplesModule', + }, +]; diff --git a/src/app/shared/components/basic-example/basic-example-data.component.ts b/src/app/shared/components/basic-example/basic-example-data.component.ts new file mode 100644 index 000000000..310f35263 --- /dev/null +++ b/src/app/shared/components/basic-example/basic-example-data.component.ts @@ -0,0 +1,96 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'basic-example-data', + template: ` + + `, +}) +export class BasicExampleDataComponent { + + settings = { + columns: { + id: { + title: 'ID', + }, + name: { + title: 'Full Name', + }, + username: { + title: 'User Name', + }, + email: { + title: 'Email', + }, + }, + }; + + data = [ + { + id: 1, + name: 'Leanne Graham', + username: 'Bret', + email: 'Sincere@april.biz', + }, + { + id: 2, + name: 'Ervin Howell', + username: 'Antonette', + email: 'Shanna@melissa.tv', + }, + { + id: 3, + name: 'Clementine Bauch', + username: 'Samantha', + email: 'Nathan@yesenia.net', + }, + { + id: 4, + name: 'Patricia Lebsack', + username: 'Karianne', + email: 'Julianne.OConner@kory.org', + }, + { + id: 5, + name: 'Chelsey Dietrich', + username: 'Kamren', + email: 'Lucio_Hettinger@annie.ca', + }, + { + id: 6, + name: 'Mrs. Dennis Schulist', + username: 'Leopoldo_Corkery', + email: 'Karley_Dach@jasper.info', + }, + { + id: 7, + name: 'Kurtis Weissnat', + username: 'Elwyn.Skiles', + email: 'Telly.Hoeger@billy.biz', + }, + { + id: 8, + name: 'Nicholas Runolfsdottir V', + username: 'Maxime_Nienow', + email: 'Sherwood@rosamond.me', + }, + { + id: 9, + name: 'Glenna Reichert', + username: 'Delphine', + email: 'Chaim_McDermott@dana.io', + }, + { + id: 10, + name: 'Clementina DuBuque', + username: 'Moriah.Stanton', + email: 'Rey.Padberg@karina.biz', + }, + { + id: 11, + name: 'Nicholas DuBuque', + username: 'Nicholas.Stanton', + email: 'Rey.Padberg@rosamond.biz', + }, + ]; +} diff --git a/demo/src/app/pages/demo/components/basic-example.component.ts b/src/app/shared/components/basic-example/basic-example.component.ts similarity index 70% rename from demo/src/app/pages/demo/components/basic-example.component.ts rename to src/app/shared/components/basic-example/basic-example.component.ts index 95c4b2e66..b7dc42762 100644 --- a/demo/src/app/pages/demo/components/basic-example.component.ts +++ b/src/app/shared/components/basic-example/basic-example.component.ts @@ -4,28 +4,25 @@ import { Component } from '@angular/core'; selector: 'basic-example', template: ` - ` + `, }) export class BasicExampleComponent { settings = { columns: { id: { - title: 'ID' + title: 'ID', }, name: { - title: 'Full Name' + title: 'Full Name', }, username: { - title: 'User Name' + title: 'User Name', }, email: { - title: 'Email' - } - } + title: 'Email', + }, + }, }; - ngOnInit() { - - } } diff --git a/demo/src/app/shared/components/header/header.component.html b/src/app/shared/components/header/header.component.html similarity index 100% rename from demo/src/app/shared/components/header/header.component.html rename to src/app/shared/components/header/header.component.html diff --git a/demo/src/app/shared/components/header/header.component.ts b/src/app/shared/components/header/header.component.ts similarity index 80% rename from demo/src/app/shared/components/header/header.component.ts rename to src/app/shared/components/header/header.component.ts index 3ae379cad..87415ae29 100644 --- a/demo/src/app/shared/components/header/header.component.ts +++ b/src/app/shared/components/header/header.component.ts @@ -2,9 +2,10 @@ import { Component, OnInit, Input } from '@angular/core'; @Component({ selector: 'header-component', - templateUrl: './header.component.html' + templateUrl: './header.component.html', }) export class HeaderComponent { @Input() tagline: string = ''; + } diff --git a/src/app/shared/directives/highlight.directive.ts b/src/app/shared/directives/highlight.directive.ts new file mode 100644 index 000000000..ae7360eba --- /dev/null +++ b/src/app/shared/directives/highlight.directive.ts @@ -0,0 +1,15 @@ +import { Directive, ElementRef, AfterViewInit } from '@angular/core'; +import * as hljs from 'highlight.js'; + +@Directive({ + selector: 'code[highlight]', +}) +export class HighlightCodeDirective implements AfterViewInit { + + constructor(private elRef: ElementRef) { } + + ngAfterViewInit() { + hljs.highlightBlock(this.elRef.nativeElement); + } + +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts new file mode 100644 index 000000000..9ca86e953 --- /dev/null +++ b/src/app/shared/shared.module.ts @@ -0,0 +1,39 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + +import { Ng2SmartTableModule } from '../../ng2-smart-table'; + +import { HeaderComponent } from './components/header/header.component'; +import { BasicExampleDataComponent } from './components/basic-example/basic-example-data.component'; +import { BasicExampleComponent } from './components/basic-example/basic-example.component'; + +import { HighlightCodeDirective } from './directives/highlight.directive'; + +const SHARED_COMPONENTS = [ + HeaderComponent, + BasicExampleComponent, + BasicExampleDataComponent, +]; + +const SHARED_DIRECTIVES = [ + HighlightCodeDirective, +]; + +@NgModule({ + imports: [ + RouterModule, + CommonModule, + Ng2SmartTableModule, + ], + declarations: [ + ...SHARED_COMPONENTS, + ...SHARED_DIRECTIVES, + ], + exports: [ + ...SHARED_COMPONENTS, + ...SHARED_DIRECTIVES, + ], +}) +export class SharedModule { } diff --git a/src/app/theme/directives/scrollPosition.directive.ts b/src/app/theme/directives/scrollPosition.directive.ts new file mode 100644 index 000000000..58c7d6f69 --- /dev/null +++ b/src/app/theme/directives/scrollPosition.directive.ts @@ -0,0 +1,30 @@ +import { Directive, Input, Output, EventEmitter, HostListener, OnInit } from '@angular/core'; + +@Directive({ + selector: '[scrollPosition]', +}) +export class ScrollPositionDirective implements OnInit { + + @Input() maxHeight: number; + + @Output() scrollChange = new EventEmitter(); + + private isScrolled: boolean; + + ngOnInit() { + this.onWindowScroll(); + } + + @HostListener('window:scroll') + onWindowScroll() { + const isScrolled = window.scrollY > this.maxHeight; + if (isScrolled !== this.isScrolled) { + this.isScrolled = isScrolled; + this.scrollChange.emit({ + scrolled: isScrolled, + offset: window.scrollY, + }); + } + } + +} diff --git a/demo/src/app/theme/sass/_light.scss b/src/app/theme/sass/_light.scss similarity index 99% rename from demo/src/app/theme/sass/_light.scss rename to src/app/theme/sass/_light.scss index cf3b3898a..2e78de46a 100644 --- a/demo/src/app/theme/sass/_light.scss +++ b/src/app/theme/sass/_light.scss @@ -115,4 +115,4 @@ SOFTWARE. .pl-mo /* meta.output */ { color: #1d3e81; -} \ No newline at end of file +} diff --git a/demo/src/app/theme/sass/_main.scss b/src/app/theme/sass/_main.scss similarity index 96% rename from demo/src/app/theme/sass/_main.scss rename to src/app/theme/sass/_main.scss index b0a75f30f..a8b5ca8dd 100644 --- a/demo/src/app/theme/sass/_main.scss +++ b/src/app/theme/sass/_main.scss @@ -29,6 +29,7 @@ a:hover { border-style: solid; border-width: 1px; border-radius: 0.3rem; + -webkit-transition: color 0.2s, background-color 0.2s, border-color 0.2s; transition: color 0.2s, background-color 0.2s, border-color 0.2s; } @@ -103,6 +104,7 @@ span.highlight { color: #fff; text-align: center; background-color: #182978; + background-image: -webkit-linear-gradient(330deg, #182978, #22A9B6); background-image: linear-gradient(120deg, #182978, #22A9B6); h1 a { @@ -193,6 +195,10 @@ span.highlight { } } +.main-content { + padding: 20px 0; +} + .main-content :first-child { margin-top: 0; } diff --git a/demo/src/app/theme/sass/_normalize.scss b/src/app/theme/sass/_normalize.scss similarity index 100% rename from demo/src/app/theme/sass/_normalize.scss rename to src/app/theme/sass/_normalize.scss diff --git a/demo/src/app/theme/theme.scss b/src/app/theme/theme.scss similarity index 68% rename from demo/src/app/theme/theme.scss rename to src/app/theme/theme.scss index d2dcac0a1..372769d1d 100644 --- a/demo/src/app/theme/theme.scss +++ b/src/app/theme/theme.scss @@ -1,3 +1,3 @@ @import "sass/normalize"; @import "sass/main"; -@import "sass/light"; \ No newline at end of file +@import "sass/light"; diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/demo/src/assets/img/demo.gif b/src/assets/img/demo.gif similarity index 100% rename from demo/src/assets/img/demo.gif rename to src/assets/img/demo.gif diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 000000000..c9669790b --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true, +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 000000000..cf6bba0df --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,8 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const environment = { + production: false, +}; diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 000000000..8081c7cea Binary files /dev/null and b/src/favicon.ico differ diff --git a/src/index.html b/src/index.html new file mode 100644 index 000000000..7310e88f1 --- /dev/null +++ b/src/index.html @@ -0,0 +1,14 @@ + + + + + ng2-smart-table + + + + + + + Loading... + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 000000000..a9ca1caf8 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,11 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/src/ng2-smart-table.directives.ts b/src/ng2-smart-table.directives.ts deleted file mode 100644 index 4964ec814..000000000 --- a/src/ng2-smart-table.directives.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Ng2SmartTableComponent } from './ng2-smart-table/ng2-smart-table.component'; - -export const NG2_SMART_TABLE_DIRECTIVES = [Ng2SmartTableComponent]; \ No newline at end of file diff --git a/src/ng2-smart-table.module.ts b/src/ng2-smart-table.module.ts deleted file mode 100644 index eead78a03..000000000 --- a/src/ng2-smart-table.module.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { Ng2CompleterModule } from 'ng2-completer'; - -import { NG2_SMART_TABLE_DIRECTIVES } from './ng2-smart-table.directives'; -import { CellComponent } from './ng2-smart-table/components/cell/cell.component'; -import { - ViewCellComponent, - CustomViewComponent } from './ng2-smart-table/components/cell/cell-view-mode'; -import { - EditCellComponent, - DefaultEditComponent, - CustomEditComponent } from './ng2-smart-table/components/cell/cell-edit-mode'; -import { - CompleterEditorComponent, - InputEditorComponent, - SelectEditorComponent, - TextareaEditorComponent, - CheckboxEditorComponent } from './ng2-smart-table/components/cell/cell-editors'; -import { FilterComponent } from './ng2-smart-table/components/filter/filter.component'; -import { - InputFilterComponent, - SelectFilterComponent, - CheckboxFilterComponent, - CompleterFilterComponent } from './ng2-smart-table/components/filter/filter-types'; -import { PagerComponent } from './ng2-smart-table/components/pager/pager.component'; -import { NG2_SMART_TABLE_THEAD_DIRECTIVES } from './ng2-smart-table/components/thead/thead.directives'; -import { NG2_SMART_TABLE_TBODY_DIRECTIVES } from './ng2-smart-table/components/tbody/tbody.directives'; - -@NgModule({ - imports: [ - CommonModule, - Ng2CompleterModule, - FormsModule, - ReactiveFormsModule - ], - declarations: [ - CellComponent, - ViewCellComponent, - DefaultEditComponent, - CustomEditComponent, - CustomViewComponent, - EditCellComponent, - CompleterEditorComponent, - InputEditorComponent, - SelectEditorComponent, - TextareaEditorComponent, - CheckboxEditorComponent, - FilterComponent, - InputFilterComponent, - SelectFilterComponent, - CheckboxFilterComponent, - CompleterFilterComponent, - PagerComponent, - ...NG2_SMART_TABLE_THEAD_DIRECTIVES, - ...NG2_SMART_TABLE_TBODY_DIRECTIVES, - ...NG2_SMART_TABLE_DIRECTIVES - ], - exports: [ - ...NG2_SMART_TABLE_DIRECTIVES - ] -}) -export class Ng2SmartTableModule { -} diff --git a/src/ng2-smart-table/components/cell/cell-edit-mode/custom-edit.component.ts b/src/ng2-smart-table/components/cell/cell-edit-mode/custom-edit.component.ts index 49341f9d7..a1c0c5642 100644 --- a/src/ng2-smart-table/components/cell/cell-edit-mode/custom-edit.component.ts +++ b/src/ng2-smart-table/components/cell/cell-edit-mode/custom-edit.component.ts @@ -5,7 +5,8 @@ import { ViewContainerRef, SimpleChanges, OnChanges, - OnDestroy } from '@angular/core'; + OnDestroy, +} from '@angular/core'; import { EditCellDefault } from './edit-cell-default'; import { Cell } from '../../../lib/data-set/cell'; @@ -13,33 +14,33 @@ import { Cell } from '../../../lib/data-set/cell'; @Component({ selector: 'table-cell-custom-editor', template: ` - + `, }) -export class CustomEditComponent extends EditCellDefault implements OnChanges { +export class CustomEditComponent extends EditCellDefault implements OnChanges, OnDestroy { customComponent: any; - @ViewChild('dynamicTarget', {read: ViewContainerRef}) dynamicTarget: any; + @ViewChild('dynamicTarget', { read: ViewContainerRef }) dynamicTarget: any; constructor(private resolver: ComponentFactoryResolver) { super(); } - ngOnChanges(changes: SimpleChanges): void { - if (this.cell && !this.customComponent){ - let componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().editor.component); + ngOnChanges(changes: SimpleChanges) { + if (this.cell && !this.customComponent) { + const componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().editor.component); this.customComponent = this.dynamicTarget.createComponent(componentFactory); // set @Inputs and @Outputs of custom component this.customComponent.instance.cell = this.cell; this.customComponent.instance.inputClass = this.inputClass; this.customComponent.instance.onStopEditing.subscribe(() => this.onStopEditing()); - this.customComponent.instance.onEdited.subscribe((event) => this.onEdited(event)); - this.customComponent.instance.onClick.subscribe((event) => this.onClick(event)); + this.customComponent.instance.onEdited.subscribe((event: any) => this.onEdited(event)); + this.customComponent.instance.onClick.subscribe((event: any) => this.onClick(event)); } } - ngOnDestroy(): void { + ngOnDestroy() { if (this.customComponent) { this.customComponent.destroy(); } diff --git a/src/ng2-smart-table/components/cell/cell-edit-mode/default-edit.component.ts b/src/ng2-smart-table/components/cell/cell-edit-mode/default-edit.component.ts index b188af68d..8f8cf057f 100644 --- a/src/ng2-smart-table/components/cell/cell-edit-mode/default-edit.component.ts +++ b/src/ng2-smart-table/components/cell/cell-edit-mode/default-edit.component.ts @@ -9,7 +9,7 @@ import { Cell } from '../../../lib/data-set/cell'; }) export class DefaultEditComponent extends EditCellDefault { - constructor(){ + constructor() { super(); } diff --git a/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell-default.ts b/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell-default.ts index 78628ea51..de078146d 100644 --- a/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell-default.ts +++ b/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell-default.ts @@ -9,7 +9,7 @@ export class EditCellDefault { @Output() edited = new EventEmitter(); - onEdited(event): boolean { + onEdited(event: any): boolean { this.edited.next(event); return false; } @@ -19,7 +19,7 @@ export class EditCellDefault { return false; } - onClick(event): void { + onClick(event: any) { event.stopPropagation(); } } diff --git a/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell.component.ts b/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell.component.ts index a6b7f1183..e24c84d3f 100644 --- a/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell.component.ts +++ b/src/ng2-smart-table/components/cell/cell-edit-mode/edit-cell.component.ts @@ -3,8 +3,8 @@ import { Component, Input, Output, EventEmitter } from '@angular/core'; import { Cell } from '../../../lib/data-set/cell'; @Component({ - selector: 'table-cell-edit-mode', - template: ` + selector: 'table-cell-edit-mode', + template: `
- ` + `, }) export class EditCellComponent { @@ -26,7 +26,7 @@ export class EditCellComponent { @Output() edited = new EventEmitter(); - onEdited(event): boolean { + onEdited(event: any): boolean { this.edited.next(event); return false; } diff --git a/src/ng2-smart-table/components/cell/cell-edit-mode/index.ts b/src/ng2-smart-table/components/cell/cell-edit-mode/index.ts deleted file mode 100644 index 70818ef72..000000000 --- a/src/ng2-smart-table/components/cell/cell-edit-mode/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './custom-edit.component'; -export * from './default-edit.component'; -export * from './edit-cell.component'; diff --git a/src/ng2-smart-table/components/cell/cell-editors/checkbox-editor.component.ts b/src/ng2-smart-table/components/cell/cell-editors/checkbox-editor.component.ts index c79c27348..f47b78922 100644 --- a/src/ng2-smart-table/components/cell/cell-editors/checkbox-editor.component.ts +++ b/src/ng2-smart-table/components/cell/cell-editors/checkbox-editor.component.ts @@ -22,7 +22,7 @@ export class CheckboxEditorComponent extends DefaultEditor { super(); } - onChange(event: any): void { + onChange(event: any) { const trueVal = (this.cell.getColumn().getConfig() && this.cell.getColumn().getConfig().true) || true; const falseVal = (this.cell.getColumn().getConfig() && this.cell.getColumn().getConfig().false) || false; this.cell.newValue = event.target.checked ? trueVal : falseVal; diff --git a/src/ng2-smart-table/components/cell/cell-editors/completer-editor.component.ts b/src/ng2-smart-table/components/cell/cell-editors/completer-editor.component.ts index 53861c320..f84d91929 100644 --- a/src/ng2-smart-table/components/cell/cell-editors/completer-editor.component.ts +++ b/src/ng2-smart-table/components/cell/cell-editors/completer-editor.component.ts @@ -13,7 +13,7 @@ import { DefaultEditor } from './default-editor'; [placeholder]="cell.getColumn().getConfig().completer.placeholder || 'Start typing...'" (selected)="onEditedCompleter($event)"> - ` + `, }) export class CompleterEditorComponent extends DefaultEditor implements OnInit { @@ -23,9 +23,9 @@ export class CompleterEditorComponent extends DefaultEditor implements OnInit { super(); } - ngOnInit(): void { + ngOnInit() { if (this.cell.getColumn().editor && this.cell.getColumn().editor.type === 'completer') { - let config = this.cell.getColumn().getConfig().completer; + const config = this.cell.getColumn().getConfig().completer; config.dataService = this.completerService.local(config.data, config.searchFields, config.titleField); config.dataService.descriptionField(config.descriptionField); } diff --git a/src/ng2-smart-table/components/cell/cell-editors/default-editor.ts b/src/ng2-smart-table/components/cell/cell-editors/default-editor.ts index 1489d327a..cc2edb322 100644 --- a/src/ng2-smart-table/components/cell/cell-editors/default-editor.ts +++ b/src/ng2-smart-table/components/cell/cell-editors/default-editor.ts @@ -17,4 +17,4 @@ export interface Editor { onStopEditing: EventEmitter; onEdited: EventEmitter; onClick: EventEmitter; -} \ No newline at end of file +} diff --git a/src/ng2-smart-table/components/cell/cell-editors/editor.component.scss b/src/ng2-smart-table/components/cell/cell-editors/editor.component.scss index c9c789077..761bcb0b1 100644 --- a/src/ng2-smart-table/components/cell/cell-editors/editor.component.scss +++ b/src/ng2-smart-table/components/cell/cell-editors/editor.component.scss @@ -1,5 +1,8 @@ -input, textarea { - width: 100%; - line-height: normal; - padding: .375rem .75rem; +:host { + input, + textarea { + width: 100%; + line-height: normal; + padding: .375rem .75rem; + } } diff --git a/src/ng2-smart-table/components/cell/cell-editors/index.ts b/src/ng2-smart-table/components/cell/cell-editors/index.ts deleted file mode 100644 index 2efee35b1..000000000 --- a/src/ng2-smart-table/components/cell/cell-editors/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './completer-editor.component'; -export * from './input-editor.component'; -export * from './select-editor.component'; -export * from './textarea-editor.component'; -export * from './checkbox-editor.component'; diff --git a/src/ng2-smart-table/components/cell/cell-editors/select-editor.component.ts b/src/ng2-smart-table/components/cell/cell-editors/select-editor.component.ts index d5b3bd683..d4a0b2eae 100644 --- a/src/ng2-smart-table/components/cell/cell-editors/select-editor.component.ts +++ b/src/ng2-smart-table/components/cell/cell-editors/select-editor.component.ts @@ -18,11 +18,11 @@ import { DefaultEditor } from './default-editor'; [selected]="option.value === cell.getValue()">{{ option.title }} - ` + `, }) export class SelectEditorComponent extends DefaultEditor { constructor() { super(); } -} \ No newline at end of file +} diff --git a/src/ng2-smart-table/components/cell/cell-view-mode/custom-view.component.ts b/src/ng2-smart-table/components/cell/cell-view-mode/custom-view.component.ts index 9ae892536..2da7ba51f 100644 --- a/src/ng2-smart-table/components/cell/cell-view-mode/custom-view.component.ts +++ b/src/ng2-smart-table/components/cell/cell-view-mode/custom-view.component.ts @@ -5,28 +5,29 @@ import { ViewChild, ViewContainerRef, OnInit, - OnDestroy } from '@angular/core'; + OnDestroy, +} from '@angular/core'; import { Cell } from '../../../lib/data-set/cell'; @Component({ selector: 'custom-view-component', template: ` - + `, }) -export class CustomViewComponent implements OnInit { +export class CustomViewComponent implements OnInit, OnDestroy { customComponent: any; @Input() cell: Cell; - @ViewChild('dynamicTarget', {read: ViewContainerRef}) dynamicTarget: any; + @ViewChild('dynamicTarget', { read: ViewContainerRef }) dynamicTarget: any; constructor(private resolver: ComponentFactoryResolver) { } - ngOnInit(): void { - if (this.cell && !this.customComponent){ - let componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().renderComponent); + ngOnInit() { + if (this.cell && !this.customComponent) { + const componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().renderComponent); this.customComponent = this.dynamicTarget.createComponent(componentFactory); // set @Inputs and @Outputs of custom component diff --git a/src/ng2-smart-table/components/cell/cell-view-mode/index.ts b/src/ng2-smart-table/components/cell/cell-view-mode/index.ts deleted file mode 100644 index 5bd854f65..000000000 --- a/src/ng2-smart-table/components/cell/cell-view-mode/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './custom-view.component'; -export * from './view-cell.component'; -export * from './view-cell'; diff --git a/src/ng2-smart-table/components/cell/cell-view-mode/view-cell.component.ts b/src/ng2-smart-table/components/cell/cell-view-mode/view-cell.component.ts index f3733791c..6f1f82f00 100644 --- a/src/ng2-smart-table/components/cell/cell-view-mode/view-cell.component.ts +++ b/src/ng2-smart-table/components/cell/cell-view-mode/view-cell.component.ts @@ -10,7 +10,7 @@ import { Cell } from '../../../lib/data-set/cell';
{{ cell.getValue() }}
- ` + `, }) export class ViewCellComponent { diff --git a/src/ng2-smart-table/components/cell/cell.component.ts b/src/ng2-smart-table/components/cell/cell.component.ts index 23caf1d72..4398cea7c 100644 --- a/src/ng2-smart-table/components/cell/cell.component.ts +++ b/src/ng2-smart-table/components/cell/cell.component.ts @@ -28,7 +28,7 @@ export class CellComponent { @Output() edited = new EventEmitter(); - onEdited(event) { + onEdited(event: any) { if (this.isNew) { this.grid.create(this.grid.getNewRow(), this.createConfirm); } else { diff --git a/src/ng2-smart-table/components/cell/cell.module.ts b/src/ng2-smart-table/components/cell/cell.module.ts new file mode 100644 index 000000000..45564f069 --- /dev/null +++ b/src/ng2-smart-table/components/cell/cell.module.ts @@ -0,0 +1,45 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { Ng2CompleterModule } from 'ng2-completer'; + +import { CellComponent } from './cell.component'; +import { CustomEditComponent } from './cell-edit-mode/custom-edit.component'; +import { DefaultEditComponent } from './cell-edit-mode/default-edit.component'; +import { EditCellComponent } from './cell-edit-mode/edit-cell.component'; +import { CheckboxEditorComponent } from './cell-editors/checkbox-editor.component'; +import { CompleterEditorComponent } from './cell-editors/completer-editor.component'; +import { InputEditorComponent } from './cell-editors/input-editor.component'; +import { SelectEditorComponent } from './cell-editors/select-editor.component'; +import { TextareaEditorComponent } from './cell-editors/textarea-editor.component'; +import { CustomViewComponent } from './cell-view-mode/custom-view.component'; +import { ViewCellComponent } from './cell-view-mode/view-cell.component'; + +const CELL_COMPONENTS = [ + CellComponent, + CustomEditComponent, + DefaultEditComponent, + EditCellComponent, + CheckboxEditorComponent, + CompleterEditorComponent, + InputEditorComponent, + SelectEditorComponent, + TextareaEditorComponent, + CustomViewComponent, + ViewCellComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + Ng2CompleterModule, + ], + declarations: [ + ...CELL_COMPONENTS, + ], + exports: [ + ...CELL_COMPONENTS, + ], +}) +export class CellModule { } diff --git a/src/ng2-smart-table/components/filter/filter-types/checkbox-filter.component.ts b/src/ng2-smart-table/components/filter/filter-types/checkbox-filter.component.ts index 4db893fe3..59086146c 100644 --- a/src/ng2-smart-table/components/filter/filter-types/checkbox-filter.component.ts +++ b/src/ng2-smart-table/components/filter/filter-types/checkbox-filter.component.ts @@ -8,8 +8,9 @@ import { Column } from '../../../lib/data-set/column'; selector: 'checkbox-filter', template: ` - {{column.getFilterConfig()?.resetText || 'reset'}} - ` + {{column.getFilterConfig()?.resetText || 'reset'}} + `, }) export class CheckboxFilterComponent extends DefaultFilter implements OnInit { @@ -32,7 +33,7 @@ export class CheckboxFilterComponent extends DefaultFilter implements OnInit { }); } - resetFilter(event) { + resetFilter(event: any) { event.preventDefault(); this.query = ''; this.inputControl.setValue(false, { emitEvent: false }); diff --git a/src/ng2-smart-table/components/filter/filter-types/completer-filter.component.ts b/src/ng2-smart-table/components/filter/filter-types/completer-filter.component.ts index 72d236d01..3377bca56 100644 --- a/src/ng2-smart-table/components/filter/filter-types/completer-filter.component.ts +++ b/src/ng2-smart-table/components/filter/filter-types/completer-filter.component.ts @@ -16,7 +16,7 @@ import { Column } from '../../../lib/data-set/column'; [placeholder]="column.getFilterConfig().completer.placeholder || 'Start typing...'" (selected)="completerContent.next($event)"> - ` + `, }) export class CompleterFilterComponent extends DefaultFilter implements OnInit { @@ -27,7 +27,7 @@ export class CompleterFilterComponent extends DefaultFilter implements OnInit { } ngOnInit() { - let config = this.column.getFilterConfig().completer; + const config = this.column.getFilterConfig().completer; config.dataService = this.completerService.local(config.data, config.searchFields, config.titleField); config.dataService.descriptionField(config.descriptionField); @@ -45,7 +45,8 @@ export class CompleterFilterComponent extends DefaultFilter implements OnInit { // workaround to trigger the search event when the home/end buttons are clicked // when this happens the [(ngModel)]="query" is set to "" but the (selected) method is not called // so here it gets called manually - if (event === '') + if (event === '') { this.completerContent.next(event); + } } } diff --git a/src/ng2-smart-table/components/filter/filter-types/default-filter.ts b/src/ng2-smart-table/components/filter/filter-types/default-filter.ts index dadc9ba42..8daf26f6f 100644 --- a/src/ng2-smart-table/components/filter/filter-types/default-filter.ts +++ b/src/ng2-smart-table/components/filter/filter-types/default-filter.ts @@ -13,8 +13,9 @@ export class DefaultFilter implements Filter, OnDestroy { @Output() filter = new EventEmitter(); ngOnDestroy() { - if (this.changesSubscription) + if (this.changesSubscription) { this.changesSubscription.unsubscribe(); + } } setFilter() { diff --git a/src/ng2-smart-table/components/filter/filter-types/index.ts b/src/ng2-smart-table/components/filter/filter-types/index.ts deleted file mode 100644 index e49829b3b..000000000 --- a/src/ng2-smart-table/components/filter/filter-types/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './input-filter.component'; -export * from './select-filter.component'; -export * from './checkbox-filter.component'; -export * from './completer-filter.component'; diff --git a/src/ng2-smart-table/components/filter/filter-types/input-filter.component.ts b/src/ng2-smart-table/components/filter/filter-types/input-filter.component.ts index 26a0df99a..23ba47a4b 100644 --- a/src/ng2-smart-table/components/filter/filter-types/input-filter.component.ts +++ b/src/ng2-smart-table/components/filter/filter-types/input-filter.component.ts @@ -11,9 +11,9 @@ import { Column } from '../../../lib/data-set/column'; [ngClass]="inputClass" [formControl]="inputControl" class="form-control" - type="text" + type="text" placeholder="{{ column.title }}" /> - ` + `, }) export class InputFilterComponent extends DefaultFilter implements OnInit { diff --git a/src/ng2-smart-table/components/filter/filter-types/select-filter.component.ts b/src/ng2-smart-table/components/filter/filter-types/select-filter.component.ts index 2a7b1ad4f..57a7400e8 100644 --- a/src/ng2-smart-table/components/filter/filter-types/select-filter.component.ts +++ b/src/ng2-smart-table/components/filter/filter-types/select-filter.component.ts @@ -17,7 +17,7 @@ import { Column } from '../../../lib/data-set/column'; {{ option.title }} - ` + `, }) export class SelectFilterComponent extends DefaultFilter implements OnInit { diff --git a/src/ng2-smart-table/components/filter/filter.component.scss b/src/ng2-smart-table/components/filter/filter.component.scss new file mode 100644 index 000000000..788654d61 --- /dev/null +++ b/src/ng2-smart-table/components/filter/filter.component.scss @@ -0,0 +1,22 @@ +:host { + .ng2-smart-filter { + /deep/ { + input, + select { + width: 100%; + line-height: normal; + padding: .375rem .75rem; + font-weight: normal; + } + input[type="search"] { + box-sizing: inherit; + } + .completer-dropdown-holder { + font-weight: normal; + } + a { + font-weight: normal; + } + } + } +} diff --git a/src/ng2-smart-table/components/filter/filter.component.ts b/src/ng2-smart-table/components/filter/filter.component.ts index c3c05358c..dafc2a2d4 100644 --- a/src/ng2-smart-table/components/filter/filter.component.ts +++ b/src/ng2-smart-table/components/filter/filter.component.ts @@ -5,7 +5,7 @@ import { Column } from '../../lib/data-set/column'; @Component({ selector: 'ng2-smart-table-filter', - styleUrls: ['filter.scss'], + styleUrls: ['./filter.component.scss'], template: `
- ` + `, }) export class FilterComponent implements AfterViewInit { @@ -47,7 +47,7 @@ export class FilterComponent implements AfterViewInit { ngAfterViewInit() { this.source.onChanged().subscribe((elements) => { - let filterConf = this.source.getFilter(); + const filterConf = this.source.getFilter(); if (filterConf && filterConf.filters && filterConf.filters.length === 0) { this.query = ''; } @@ -58,7 +58,7 @@ export class FilterComponent implements AfterViewInit { this.source.addFilter({ field: this.column.id, search: query, - filter: this.column.getFilterFunction() + filter: this.column.getFilterFunction(), }); } } diff --git a/src/ng2-smart-table/components/filter/filter.module.ts b/src/ng2-smart-table/components/filter/filter.module.ts new file mode 100644 index 000000000..fc8eeae92 --- /dev/null +++ b/src/ng2-smart-table/components/filter/filter.module.ts @@ -0,0 +1,34 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { Ng2CompleterModule } from 'ng2-completer'; + +import { FilterComponent } from './filter.component'; +import { CheckboxFilterComponent } from './filter-types/checkbox-filter.component'; +import { CompleterFilterComponent } from './filter-types/completer-filter.component'; +import { InputFilterComponent } from './filter-types/input-filter.component'; +import { SelectFilterComponent } from './filter-types/select-filter.component'; + +const FILTER_COMPONENTS = [ + FilterComponent, + CheckboxFilterComponent, + CompleterFilterComponent, + InputFilterComponent, + SelectFilterComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + Ng2CompleterModule, + ], + declarations: [ + ...FILTER_COMPONENTS, + ], + exports: [ + ...FILTER_COMPONENTS, + ], +}) +export class FilterModule { } diff --git a/src/ng2-smart-table/components/filter/filter.scss b/src/ng2-smart-table/components/filter/filter.scss deleted file mode 100644 index 60d9008a6..000000000 --- a/src/ng2-smart-table/components/filter/filter.scss +++ /dev/null @@ -1,17 +0,0 @@ -/deep/ .ng2-smart-filter { - input, select { - width: 100%; - line-height: normal; - padding: .375rem .75rem; - font-weight: normal; - } - input[type="search"] { - box-sizing: inherit; - } - .completer-dropdown-holder { - font-weight: normal; - } - a { - font-weight: normal; - } -} \ No newline at end of file diff --git a/src/ng2-smart-table/components/pager/pager.scss b/src/ng2-smart-table/components/pager/pager.component.scss similarity index 97% rename from src/ng2-smart-table/components/pager/pager.scss rename to src/ng2-smart-table/components/pager/pager.component.scss index 378b705cd..d20004de9 100644 --- a/src/ng2-smart-table/components/pager/pager.scss +++ b/src/ng2-smart-table/components/pager/pager.component.scss @@ -2,7 +2,7 @@ display: inline-block; font-size: .875rem; padding: 0; - + .sr-only { position: absolute; width: 1px; @@ -13,8 +13,8 @@ clip: rect(0,0,0,0); border: 0; } - + .ng2-smart-page-item { display: inline; } -} \ No newline at end of file +} diff --git a/src/ng2-smart-table/components/pager/pager.component.ts b/src/ng2-smart-table/components/pager/pager.component.ts index 003a71d22..b3988c7d7 100644 --- a/src/ng2-smart-table/components/pager/pager.component.ts +++ b/src/ng2-smart-table/components/pager/pager.component.ts @@ -1,31 +1,31 @@ -import { Component, Input, Output, EventEmitter } from '@angular/core'; +import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; import { DataSource } from '../../lib/data-source/data-source'; @Component({ selector: 'ng2-smart-table-pager', - styleUrls: ['pager.scss'], + styleUrls: ['./pager.component.scss'], template: ` - ` + `, }) -export class PagerComponent { +export class PagerComponent implements OnInit { @Input() perPage: number; @Input() source: DataSource; @@ -46,7 +46,7 @@ export class PagerComponent { protected page: number; protected count: number = 0; - ngOnInit(): void { + ngOnInit() { this.source.onChanged().subscribe((changes) => { this.page = this.source.getPaging().page; this.count = this.source.count(); @@ -66,7 +66,7 @@ export class PagerComponent { * if a new element was added to the beginning of the table - then to the first page * @param changes */ - processPageChange(changes): void { + processPageChange(changes: any) { if (changes['action'] === 'prepend') { this.source.setPage(1); } @@ -103,7 +103,7 @@ export class PagerComponent { } initPages() { - let pagesCount = this.getLast(); + const pagesCount = this.getLast(); let showPagesCount = 4; showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount; this.pages = []; @@ -116,7 +116,7 @@ export class PagerComponent { let lastOne = middleOne + Math.floor(showPagesCount / 2); lastOne = lastOne >= pagesCount ? pagesCount : lastOne; - let firstOne = lastOne - showPagesCount + 1; + const firstOne = lastOne - showPagesCount + 1; for (let i = firstOne; i <= lastOne; i++) { this.pages.push(i); diff --git a/src/ng2-smart-table/components/pager/pager.module.ts b/src/ng2-smart-table/components/pager/pager.module.ts new file mode 100644 index 000000000..e4635d2f0 --- /dev/null +++ b/src/ng2-smart-table/components/pager/pager.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { PagerComponent } from './pager.component'; + +@NgModule({ + imports: [ + CommonModule, + ], + declarations: [ + PagerComponent, + ], + exports: [ + PagerComponent, + ], +}) +export class PagerModule { } diff --git a/src/ng2-smart-table/components/tbody/cells/create-cancel.component.ts b/src/ng2-smart-table/components/tbody/cells/create-cancel.component.ts index 58615457a..ab960fc1f 100644 --- a/src/ng2-smart-table/components/tbody/cells/create-cancel.component.ts +++ b/src/ng2-smart-table/components/tbody/cells/create-cancel.component.ts @@ -10,7 +10,7 @@ import { Row } from '../../../lib/data-set/row'; [innerHTML]="grid.getSetting('edit.saveButtonContent')" (click)="onSave($event)"> - ` + `, }) export class TbodyCreateCancelComponent { diff --git a/src/ng2-smart-table/components/tbody/cells/edit-delete.component.ts b/src/ng2-smart-table/components/tbody/cells/edit-delete.component.ts index c536cbf2e..050d4d9ae 100644 --- a/src/ng2-smart-table/components/tbody/cells/edit-delete.component.ts +++ b/src/ng2-smart-table/components/tbody/cells/edit-delete.component.ts @@ -10,7 +10,7 @@ import { Row } from '../../../lib/data-set/row'; [innerHTML]="grid.getSetting('edit.editButtonContent')" (click)="onEdit($event)"> - ` + `, }) export class TbodyEditDeleteComponent { @@ -33,7 +33,7 @@ export class TbodyEditDeleteComponent { if (this.grid.getSetting('mode') === 'external') { this.edit.emit({ data: this.row.getData(), - source: this.source + source: this.source, }); } else { this.grid.edit(this.row); @@ -47,7 +47,7 @@ export class TbodyEditDeleteComponent { if (this.grid.getSetting('mode') === 'external') { this.delete.emit({ data: this.row.getData(), - source: this.source + source: this.source, }); } else { this.grid.delete(this.row, this.deleteConfirm); diff --git a/src/ng2-smart-table/components/tbody/cells/index.ts b/src/ng2-smart-table/components/tbody/cells/index.ts deleted file mode 100644 index 57a9b68d7..000000000 --- a/src/ng2-smart-table/components/tbody/cells/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './edit-delete.component'; -export * from './create-cancel.component'; diff --git a/src/ng2-smart-table/components/tbody/tbody.component.scss b/src/ng2-smart-table/components/tbody/tbody.component.scss new file mode 100644 index 000000000..2a5ed1c86 --- /dev/null +++ b/src/ng2-smart-table/components/tbody/tbody.component.scss @@ -0,0 +1,12 @@ +:host { + .ng2-smart-row { + &.selected { + background: rgba(0, 0, 0, 0.05); + } + .ng2-smart-actions { + &.ng2-smart-action-multiple-select { + text-align: center; + } + } + } +} diff --git a/src/ng2-smart-table/components/tbody/tbody.component.ts b/src/ng2-smart-table/components/tbody/tbody.component.ts index ac3c655c9..2bcc8119b 100644 --- a/src/ng2-smart-table/components/tbody/tbody.component.ts +++ b/src/ng2-smart-table/components/tbody/tbody.component.ts @@ -3,22 +3,23 @@ import { Component, Input, Output, EventEmitter } from '@angular/core'; import { Grid } from '../../lib/grid'; @Component({ - selector: '[ng2-st-tbody]', - templateUrl: './tbody.component.html' + selector: '[ng2-st-tbody]', + styleUrls: ['./tbody.component.scss'], + templateUrl: './tbody.component.html', }) export class Ng2SmartTableTbodyComponent { - @Input() grid: Grid; - @Input() source: any; - @Input() deleteConfirm: EventEmitter; - @Input() editConfirm: EventEmitter; + @Input() grid: Grid; + @Input() source: any; + @Input() deleteConfirm: EventEmitter; + @Input() editConfirm: EventEmitter; - @Output() save = new EventEmitter(); - @Output() cancel = new EventEmitter(); - @Output() edit = new EventEmitter(); - @Output() delete = new EventEmitter(); - @Output() edited = new EventEmitter(); - @Output() userSelectRow = new EventEmitter(); - @Output() editRowSelect = new EventEmitter(); - @Output() multipleSelectRow = new EventEmitter(); + @Output() save = new EventEmitter(); + @Output() cancel = new EventEmitter(); + @Output() edit = new EventEmitter(); + @Output() delete = new EventEmitter(); + @Output() edited = new EventEmitter(); + @Output() userSelectRow = new EventEmitter(); + @Output() editRowSelect = new EventEmitter(); + @Output() multipleSelectRow = new EventEmitter(); } diff --git a/src/ng2-smart-table/components/tbody/tbody.directives.ts b/src/ng2-smart-table/components/tbody/tbody.directives.ts deleted file mode 100644 index 8aaf2e8bf..000000000 --- a/src/ng2-smart-table/components/tbody/tbody.directives.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { - TbodyCreateCancelComponent, - TbodyEditDeleteComponent } from './cells'; -import { Ng2SmartTableTbodyComponent } from './tbody.component'; - -export const NG2_SMART_TABLE_TBODY_DIRECTIVES = [ - TbodyCreateCancelComponent, - TbodyEditDeleteComponent, - Ng2SmartTableTbodyComponent, -]; diff --git a/src/ng2-smart-table/components/tbody/tbody.module.ts b/src/ng2-smart-table/components/tbody/tbody.module.ts new file mode 100644 index 000000000..13bf279b1 --- /dev/null +++ b/src/ng2-smart-table/components/tbody/tbody.module.ts @@ -0,0 +1,30 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { CellModule } from '../cell/cell.module'; + +import { Ng2SmartTableTbodyComponent } from './tbody.component'; +import { TbodyCreateCancelComponent } from './cells/create-cancel.component'; +import { TbodyEditDeleteComponent } from './cells/edit-delete.component'; + +const TBODY_COMPONENTS = [ + TbodyCreateCancelComponent, + TbodyEditDeleteComponent, + Ng2SmartTableTbodyComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + CellModule, + ], + declarations: [ + ...TBODY_COMPONENTS, + ], + exports: [ + ...TBODY_COMPONENTS, + ], +}) +export class TBodyModule { } diff --git a/src/ng2-smart-table/components/thead/cells/actions-title.component.ts b/src/ng2-smart-table/components/thead/cells/actions-title.component.ts index 6f810f80a..f33c685c6 100644 --- a/src/ng2-smart-table/components/thead/cells/actions-title.component.ts +++ b/src/ng2-smart-table/components/thead/cells/actions-title.component.ts @@ -6,7 +6,7 @@ import { Grid } from '../../../lib/grid'; selector: '[ng2-st-actions-title]', template: `
{{ grid.getSetting('actions.columnTitle') }}
- ` + `, }) export class ActionsTitleComponent implements AfterViewInit { diff --git a/src/ng2-smart-table/components/thead/cells/actions.component.ts b/src/ng2-smart-table/components/thead/cells/actions.component.ts index 084fd1e99..234764e37 100644 --- a/src/ng2-smart-table/components/thead/cells/actions.component.ts +++ b/src/ng2-smart-table/components/thead/cells/actions.component.ts @@ -6,10 +6,12 @@ import { Grid } from '../../../lib/grid'; selector: 'ng2-st-actions', template: ` + [innerHTML]="grid.getSetting('add.createButtonContent')" + (click)="$event.preventDefault();create.emit($event)"> - ` + [innerHTML]="grid.getSetting('add.cancelButtonContent')" + (click)="$event.preventDefault();grid.createFormShown = false;"> + `, }) export class ActionsComponent { diff --git a/src/ng2-smart-table/components/thead/cells/add-button.component.ts b/src/ng2-smart-table/components/thead/cells/add-button.component.ts index 26dab420e..528897c2f 100644 --- a/src/ng2-smart-table/components/thead/cells/add-button.component.ts +++ b/src/ng2-smart-table/components/thead/cells/add-button.component.ts @@ -7,7 +7,7 @@ import { Grid } from '../../../lib/grid'; template: ` - ` + `, }) export class AddButtonComponent implements AfterViewInit { @@ -27,9 +27,10 @@ export class AddButtonComponent implements AfterViewInit { event.stopPropagation(); if (this.grid.getSetting('mode') === 'external') { this.create.emit({ - source: this.source + source: this.source, }); - } else + } else { this.grid.createFormShown = true; + } } } diff --git a/src/ng2-smart-table/components/thead/cells/checkbox-select-all.component.ts b/src/ng2-smart-table/components/thead/cells/checkbox-select-all.component.ts index ea848e56e..0258b5b3d 100644 --- a/src/ng2-smart-table/components/thead/cells/checkbox-select-all.component.ts +++ b/src/ng2-smart-table/components/thead/cells/checkbox-select-all.component.ts @@ -6,7 +6,7 @@ import { Grid } from '../../../lib/grid'; selector: '[ng2-st-checkbox-select-all]', template: ` - ` + `, }) export class CheckboxSelectAllComponent { diff --git a/src/ng2-smart-table/components/thead/cells/column-title.component.ts b/src/ng2-smart-table/components/thead/cells/column-title.component.ts index 89b554b0d..c761bd2da 100644 --- a/src/ng2-smart-table/components/thead/cells/column-title.component.ts +++ b/src/ng2-smart-table/components/thead/cells/column-title.component.ts @@ -8,11 +8,13 @@ import { Column } from '../../../lib/data-set/column';
- ` + `, }) export class ColumnTitleComponent { @Input() column: Column; @Input() source: any; + @Output() sort = new EventEmitter(); + } diff --git a/src/ng2-smart-table/components/thead/cells/index.ts b/src/ng2-smart-table/components/thead/cells/index.ts deleted file mode 100644 index 4e41bd9fd..000000000 --- a/src/ng2-smart-table/components/thead/cells/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './title/title.component'; -export * from './actions-title.component'; -export * from './actions.component'; -export * from './add-button.component'; -export * from './checkbox-select-all.component'; -export * from './column-title.component'; diff --git a/src/ng2-smart-table/components/thead/cells/title/title.component.scss b/src/ng2-smart-table/components/thead/cells/title/title.component.scss index 90ee28b96..fd422c24b 100644 --- a/src/ng2-smart-table/components/thead/cells/title/title.component.scss +++ b/src/ng2-smart-table/components/thead/cells/title/title.component.scss @@ -17,7 +17,8 @@ a.sort { } &.desc::after { - transform: rotate(-180deg); + -webkit-transform: rotate(-180deg); + transform: rotate(-180deg); margin-bottom: -2px; } } diff --git a/src/ng2-smart-table/components/thead/cells/title/title.component.ts b/src/ng2-smart-table/components/thead/cells/title/title.component.ts index f08a80720..4f050c566 100644 --- a/src/ng2-smart-table/components/thead/cells/title/title.component.ts +++ b/src/ng2-smart-table/components/thead/cells/title/title.component.ts @@ -8,13 +8,13 @@ import { Column } from '../../../../lib/data-set/column'; styleUrls: ['./title.component.scss'], template: ` {{ column.title }} {{ column.title }} - ` + `, }) export class TitleComponent implements OnInit { @@ -25,14 +25,15 @@ export class TitleComponent implements OnInit { ngOnInit() { this.source.onChanged().subscribe((elements) => { - let sortConf = this.source.getSort(); + const sortConf = this.source.getSort(); - if (sortConf.length > 0 && sortConf[0]['field'] === this.column.id) + if (sortConf.length > 0 && sortConf[0]['field'] === this.column.id) { this.currentDirection = sortConf[0]['direction']; - else + } else { this.currentDirection = ''; + } - sortConf.forEach((fieldConf) => { + sortConf.forEach((fieldConf: any) => { }); }); @@ -45,15 +46,15 @@ export class TitleComponent implements OnInit { { field: this.column.id, direction: this.currentDirection, - compare: this.column.getCompareFunction() - } + compare: this.column.getCompareFunction(), + }, ]); this.sort.emit(null); } changeSortDirection(): string { if (this.currentDirection) { - let newDirection = this.currentDirection === 'asc' ? 'desc' : 'asc'; + const newDirection = this.currentDirection === 'asc' ? 'desc' : 'asc'; this.currentDirection = newDirection; } else { this.currentDirection = this.column.sortDirection; diff --git a/src/ng2-smart-table/components/thead/rows/index.ts b/src/ng2-smart-table/components/thead/rows/index.ts deleted file mode 100644 index 34e301bd0..000000000 --- a/src/ng2-smart-table/components/thead/rows/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './thead-filters-row.component'; -export * from './thead-form-row.component'; -export * from './thead-titles-row.component'; diff --git a/src/ng2-smart-table/components/thead/rows/thead-filters-row.component.ts b/src/ng2-smart-table/components/thead/rows/thead-filters-row.component.ts index c5eb810a1..409dc3954 100644 --- a/src/ng2-smart-table/components/thead/rows/thead-filters-row.component.ts +++ b/src/ng2-smart-table/components/thead/rows/thead-filters-row.component.ts @@ -19,15 +19,17 @@ import { Grid } from '../../../lib/grid';

- ` + `, }) export class TheadFitlersRowComponent { @Input() grid: Grid; @Input() source: any; + @Output() create = new EventEmitter(); @Output() filter = new EventEmitter(); + } diff --git a/src/ng2-smart-table/components/thead/rows/thead-form-row.component.ts b/src/ng2-smart-table/components/thead/rows/thead-form-row.component.ts index 2d6b35f72..3dc49c290 100644 --- a/src/ng2-smart-table/components/thead/rows/thead-form-row.component.ts +++ b/src/ng2-smart-table/components/thead/rows/thead-form-row.component.ts @@ -20,13 +20,14 @@ import { Row } from '../../../lib/data-set/row'; (edited)="onCreate($event)"> - ` + `, }) export class TheadFormRowComponent { @Input() grid: Grid; @Input() row: Row; @Input() createConfirm: EventEmitter; + @Output() create = new EventEmitter(); onCreate(event: any) { @@ -34,4 +35,5 @@ export class TheadFormRowComponent { this.grid.create(this.grid.getNewRow(), this.createConfirm); } + } diff --git a/src/ng2-smart-table/components/thead/rows/thead-titles-row.component.ts b/src/ng2-smart-table/components/thead/rows/thead-titles-row.component.ts index 4da571655..905d1529d 100644 --- a/src/ng2-smart-table/components/thead/rows/thead-titles-row.component.ts +++ b/src/ng2-smart-table/components/thead/rows/thead-titles-row.component.ts @@ -16,7 +16,7 @@ import { Grid } from '../../../lib/grid'; - ` + `, }) export class TheadTitlesRowComponent { @@ -26,4 +26,5 @@ export class TheadTitlesRowComponent { @Output() sort = new EventEmitter(); @Output() selectAllRows = new EventEmitter(); + } diff --git a/src/ng2-smart-table/components/thead/thead.component.ts b/src/ng2-smart-table/components/thead/thead.component.ts index 42d3272e4..fe8b4a6e5 100644 --- a/src/ng2-smart-table/components/thead/thead.component.ts +++ b/src/ng2-smart-table/components/thead/thead.component.ts @@ -4,7 +4,7 @@ import { Grid } from '../../lib/grid'; @Component({ selector: '[ng2-st-thead]', - templateUrl: './thead.component.html' + templateUrl: './thead.component.html', }) export class Ng2SmartTableTheadComponent { diff --git a/src/ng2-smart-table/components/thead/thead.directives.ts b/src/ng2-smart-table/components/thead/thead.directives.ts deleted file mode 100644 index c17384380..000000000 --- a/src/ng2-smart-table/components/thead/thead.directives.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { - ActionsComponent, - ActionsTitleComponent, - AddButtonComponent, - CheckboxSelectAllComponent, - ColumnTitleComponent, - TitleComponent } from './cells'; -import { - TheadFitlersRowComponent, - TheadFormRowComponent, - TheadTitlesRowComponent } from './rows'; -import { Ng2SmartTableTheadComponent } from './thead.component'; - -export const NG2_SMART_TABLE_THEAD_DIRECTIVES = [ - ActionsComponent, - ActionsTitleComponent, - AddButtonComponent, - CheckboxSelectAllComponent, - ColumnTitleComponent, - TitleComponent, - TheadFitlersRowComponent, - TheadFormRowComponent, - TheadTitlesRowComponent, - Ng2SmartTableTheadComponent, -]; diff --git a/src/ng2-smart-table/components/thead/thead.module.ts b/src/ng2-smart-table/components/thead/thead.module.ts new file mode 100644 index 000000000..2155a07ef --- /dev/null +++ b/src/ng2-smart-table/components/thead/thead.module.ts @@ -0,0 +1,46 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { FilterModule } from '../filter/filter.module'; +import { CellModule } from '../cell/cell.module'; + +import { Ng2SmartTableTheadComponent } from './thead.component'; +import { ActionsComponent } from './cells/actions.component'; +import { ActionsTitleComponent } from './cells/actions-title.component'; +import { AddButtonComponent } from './cells/add-button.component'; +import { CheckboxSelectAllComponent } from './cells/checkbox-select-all.component'; +import { ColumnTitleComponent } from './cells/column-title.component'; +import { TitleComponent } from './cells/title/title.component'; +import { TheadFitlersRowComponent } from './rows/thead-filters-row.component'; +import { TheadFormRowComponent } from './rows/thead-form-row.component'; +import { TheadTitlesRowComponent } from './rows/thead-titles-row.component'; + +const THEAD_COMPONENTS = [ + ActionsComponent, + ActionsTitleComponent, + AddButtonComponent, + CheckboxSelectAllComponent, + ColumnTitleComponent, + TitleComponent, + TheadFitlersRowComponent, + TheadFormRowComponent, + TheadTitlesRowComponent, + Ng2SmartTableTheadComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + FilterModule, + CellModule, + ], + declarations: [ + ...THEAD_COMPONENTS, + ], + exports: [ + ...THEAD_COMPONENTS, + ], +}) +export class THeadModule { } diff --git a/src/ng2-smart-table/index.ts b/src/ng2-smart-table/index.ts new file mode 100644 index 000000000..ae11372f4 --- /dev/null +++ b/src/ng2-smart-table/index.ts @@ -0,0 +1,6 @@ +export * from './ng2-smart-table.module'; +export { ViewCell } from './components/cell/cell-view-mode/view-cell'; +export { DefaultEditor, Editor } from './components/cell/cell-editors/default-editor'; +export { Cell } from './lib/data-set/cell'; +export { LocalDataSource } from './lib/data-source/local/local.data-source'; +export { ServerDataSource } from './lib/data-source/server/server.data-source'; diff --git a/src/ng2-smart-table/lib/data-set/cell.ts b/src/ng2-smart-table/lib/data-set/cell.ts index 2e0ea3c96..9ec27991f 100644 --- a/src/ng2-smart-table/lib/data-set/cell.ts +++ b/src/ng2-smart-table/lib/data-set/cell.ts @@ -5,9 +5,9 @@ import { Row } from './row'; export class Cell { newValue: any = ''; - protected static PREPARE = (value) => value; + protected static PREPARE = (value: any) => value; - constructor(protected value: any, protected row: Row, protected column, protected dataSet: DataSet) { + constructor(protected value: any, protected row: Row, protected column: any, protected dataSet: DataSet) { this.newValue = value; } @@ -20,8 +20,8 @@ export class Cell { } getValue(): any { - let valid = this.column.getValuePrepareFunction() instanceof Function; - let prepare = valid ? this.column.getValuePrepareFunction() : Cell.PREPARE; + const valid = this.column.getValuePrepareFunction() instanceof Function; + const prepare = valid ? this.column.getValuePrepareFunction() : Cell.PREPARE; return prepare.call(null, this.value, this.row.getData()); } diff --git a/src/ng2-smart-table/lib/data-set/column.ts b/src/ng2-smart-table/lib/data-set/column.ts index 221bc3553..315f2a9e3 100644 --- a/src/ng2-smart-table/lib/data-set/column.ts +++ b/src/ng2-smart-table/lib/data-set/column.ts @@ -2,17 +2,17 @@ import { DataSet } from './data-set'; export class Column { - public title: string = ''; - public type: string = ''; - public class: string = ''; - public isSortable: boolean = false; - public isEditable: boolean = true; - public isFilterable: boolean = false; - public sortDirection: string = ''; - public defaultSortDirection: string = ''; - public editor: { type: string, config: any, component: any } = { type: '', config: {}, component: null }; - public filter: { type: string, config: any } = { type: '', config: {} }; - public renderComponent: any = null; + title: string = ''; + type: string = ''; + class: string = ''; + isSortable: boolean = false; + isEditable: boolean = true; + isFilterable: boolean = false; + sortDirection: string = ''; + defaultSortDirection: string = ''; + editor: { type: string, config: any, component: any } = { type: '', config: {}, component: null }; + filter: { type: string, config: any } = { type: '', config: {} }; + renderComponent: any = null; compareFunction: Function; valuePrepareFunction: Function; filterFunction: Function; @@ -21,19 +21,19 @@ export class Column { this.process(); } - public getCompareFunction(): Function { + getCompareFunction(): Function { return this.compareFunction; } - public getValuePrepareFunction(): Function { + getValuePrepareFunction(): Function { return this.valuePrepareFunction; } - public getFilterFunction(): Function { + getFilterFunction(): Function { return this.filterFunction; } - public getConfig(): any { + getConfig(): any { return this.editor.config; } @@ -45,7 +45,7 @@ export class Column { return this.filter && this.filter.config; } - protected process(): void { + protected process() { this.title = this.settings['title']; this.class = this.settings['class']; this.type = this.prepareType(); @@ -54,7 +54,8 @@ export class Column { this.renderComponent = this.settings['renderComponent']; this.isFilterable = typeof this.settings['filter'] === 'undefined' ? true : !!this.settings['filter']; - this.defaultSortDirection = ['asc', 'desc'].indexOf(this.settings['sortDirection']) !== -1 ? this.settings['sortDirection'] : ''; + this.defaultSortDirection = ['asc', 'desc'] + .indexOf(this.settings['sortDirection']) !== -1 ? this.settings['sortDirection'] : ''; this.isSortable = typeof this.settings['sort'] === 'undefined' ? true : !!this.settings['sort']; this.isEditable = typeof this.settings['editable'] === 'undefined' ? true : !!this.settings['editable']; this.sortDirection = this.prepareSortDirection(); diff --git a/src/ng2-smart-table/lib/data-set/data-set.ts b/src/ng2-smart-table/lib/data-set/data-set.ts index 1cf418cd8..781189d65 100644 --- a/src/ng2-smart-table/lib/data-set/data-set.ts +++ b/src/ng2-smart-table/lib/data-set/data-set.ts @@ -3,7 +3,7 @@ import { Column } from './column'; export class DataSet { - public newRow: Row; + newRow: Row; protected data: Array = []; protected columns: Array = []; @@ -18,7 +18,7 @@ export class DataSet { this.createNewRow(); } - setData(data: Array): void { + setData(data: Array) { this.data = data; this.createRows(); } @@ -31,11 +31,11 @@ export class DataSet { return this.rows; } - findRowByData(data): Row { + findRowByData(data: any): Row { return this.rows.find((row: Row) => row.getData() === data); } - deselectAll(): void { + deselectAll() { this.rows.forEach((row) => { row.isSelected = false; }); @@ -82,11 +82,11 @@ export class DataSet { } } - willSelectFirstRow(): void { + willSelectFirstRow() { this.willSelect = 'first'; } - willSelectLastRow(): void { + willSelectLastRow() { this.willSelect = 'last'; } @@ -109,7 +109,7 @@ export class DataSet { return this.selectedRow; } - createNewRow(): void { + createNewRow() { this.newRow = new Row(0, {}, this); this.newRow.isInEditing = true; } @@ -119,8 +119,8 @@ export class DataSet { * @param settings * @private */ - createColumns(settings) { - for (let id in settings) { + createColumns(settings: any) { + for (const id in settings) { if (settings.hasOwnProperty(id)) { this.columns.push(new Column(id, settings[id], this)); } diff --git a/src/ng2-smart-table/lib/data-set/row.ts b/src/ng2-smart-table/lib/data-set/row.ts index 4d5260b94..7c680ec02 100644 --- a/src/ng2-smart-table/lib/data-set/row.ts +++ b/src/ng2-smart-table/lib/data-set/row.ts @@ -26,26 +26,26 @@ export class Row { } getNewData(): any { - let values = Object.assign({}, this.data); + const values = Object.assign({}, this.data); this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue); return values; } - setData(data): any { + setData(data: any): any { this.data = data; this.process(); } - process(): void { + process() { this.cells = []; this._dataSet.getColumns().forEach((column: Column) => { - let cell = this.createCell(column); + const cell = this.createCell(column); this.cells.push(cell); }); } createCell(column: Column): Cell { - let value = typeof this.data[column.id] === 'undefined' ? '' : this.data[column.id]; + const value = typeof this.data[column.id] === 'undefined' ? '' : this.data[column.id]; return new Cell(value, this, column, this._dataSet); } } diff --git a/src/ng2-smart-table/lib/data-source/data-source.ts b/src/ng2-smart-table/lib/data-source/data-source.ts index 53370421a..347d42e79 100644 --- a/src/ng2-smart-table/lib/data-source/data-source.ts +++ b/src/ng2-smart-table/lib/data-source/data-source.ts @@ -1,4 +1,5 @@ -import { Subject, Observable } from 'rxjs/Rx'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; export abstract class DataSource { @@ -14,7 +15,7 @@ export abstract class DataSource { abstract getPaging(): any; abstract count(): number; - refresh(): void { + refresh() { this.emitOnChanged('refresh'); } @@ -74,55 +75,55 @@ export abstract class DataSource { return Promise.resolve(); } - setSort(conf: Array, doEmit?: boolean): void { + setSort(conf: Array, doEmit?: boolean) { if (doEmit) { this.emitOnChanged('sort'); } } - setFilter(conf: Array, andOperator?: boolean, doEmit?: boolean): void { + setFilter(conf: Array, andOperator?: boolean, doEmit?: boolean) { if (doEmit) { this.emitOnChanged('filter'); } } - addFilter(fieldConf: {}, andOperator?: boolean, doEmit?: boolean): void { + addFilter(fieldConf: {}, andOperator?: boolean, doEmit?: boolean) { if (doEmit) { this.emitOnChanged('filter'); } } - setPaging(page: number, perPage: number, doEmit?: boolean): void { + setPaging(page: number, perPage: number, doEmit?: boolean) { if (doEmit) { this.emitOnChanged('paging'); } } - setPage(page: number, doEmit?: boolean): void { + setPage(page: number, doEmit?: boolean) { if (doEmit) { this.emitOnChanged('page'); } } - protected emitOnRemoved(element: any): void { + protected emitOnRemoved(element: any) { this.onRemovedSource.next(element); } - protected emitOnUpdated(element: any): void { + protected emitOnUpdated(element: any) { this.onUpdatedSource.next(element); } - protected emitOnAdded(element: any): void { + protected emitOnAdded(element: any) { this.onAddedSource.next(element); } - protected emitOnChanged(action: string): void { + protected emitOnChanged(action: string) { this.getElements().then((elements) => this.onChangedSource.next({ action: action, elements: elements, paging: this.getPaging(), filter: this.getFilter(), - sort: this.getSort() + sort: this.getSort(), })); } } diff --git a/src/ng2-smart-table/lib/data-source/local/index.ts b/src/ng2-smart-table/lib/data-source/local/index.ts deleted file mode 100644 index 4871f3902..000000000 --- a/src/ng2-smart-table/lib/data-source/local/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './local.data-source'; diff --git a/src/ng2-smart-table/lib/data-source/local/local.data-source.ts b/src/ng2-smart-table/lib/data-source/local/local.data-source.ts index 651c1125f..044908685 100644 --- a/src/ng2-smart-table/lib/data-source/local/local.data-source.ts +++ b/src/ng2-smart-table/lib/data-source/local/local.data-source.ts @@ -9,11 +9,11 @@ export class LocalDataSource extends DataSource { protected data: Array = []; protected filteredAndSorted: Array = []; protected sortConf: Array = []; - protected filterConf = { + protected filterConf: any = { filters: [], - andOperator: true + andOperator: true, }; - protected pagingConf = {}; + protected pagingConf: any = {}; constructor(data: Array = []) { super(); @@ -63,7 +63,7 @@ export class LocalDataSource extends DataSource { } find(element: any): Promise { - let found = this.data.find(el => el === element); + const found = this.data.find(el => el === element); if (found) { return Promise.resolve(found); } @@ -72,20 +72,20 @@ export class LocalDataSource extends DataSource { } getElements(): Promise { - let data = this.data.slice(0); + const data = this.data.slice(0); return Promise.resolve(this.prepareData(data)); } getAll(): Promise { - let data = this.data.slice(0); + const data = this.data.slice(0); return Promise.resolve(data); } - reset(silent = false): void { + reset(silent = false) { if (silent) { this.filterConf = { filters: [], - andOperator: true + andOperator: true, }; this.sortConf = []; this.pagingConf['page'] = 1; @@ -120,7 +120,7 @@ export class LocalDataSource extends DataSource { if (conf !== null) { conf.forEach((fieldConf) => { - if (!fieldConf['field'] || typeof fieldConf['direction'] === 'undefined') { + if (!fieldConf['field'] || typeof fieldConf['direction'] === 'undefined') { throw new Error('Sort configuration object is not valid'); } }); @@ -150,23 +150,23 @@ export class LocalDataSource extends DataSource { } else { this.filterConf = { filters: [], - andOperator: true + andOperator: true, }; } this.filterConf.andOperator = andOperator; this.pagingConf['page'] = 1; - + super.setFilter(conf, andOperator, doEmit); return this; } - addFilter(fieldConf, andOperator = true, doEmit: boolean = true): LocalDataSource { + addFilter(fieldConf: any, andOperator = true, doEmit: boolean = true): LocalDataSource { if (!fieldConf['field'] || typeof fieldConf['search'] === 'undefined') { throw new Error('Filter configuration object is not valid'); } let found = false; - this.filterConf.filters.forEach((currentFieldConf, index) => { + this.filterConf.filters.forEach((currentFieldConf: any, index: any) => { if (currentFieldConf['field'] === fieldConf['field']) { this.filterConf.filters[index] = fieldConf; found = true; @@ -228,18 +228,18 @@ export class LocalDataSource extends DataSource { protected filter(data: Array): Array { if (this.filterConf.filters) { if (this.filterConf.andOperator) { - this.filterConf.filters.forEach((fieldConf) => { + this.filterConf.filters.forEach((fieldConf: any) => { data = LocalFilter .filter(data, fieldConf['field'], fieldConf['search'], fieldConf['filter']); }); } else { - let mergedData = []; - this.filterConf.filters.forEach((fieldConf) => { + let mergedData: any = []; + this.filterConf.filters.forEach((fieldConf: any) => { mergedData = mergedData.concat(LocalFilter .filter(data, fieldConf['field'], fieldConf['search'], fieldConf['filter'])); }); // remove non unique items - data = mergedData.filter((elem, pos, arr) => { + data = mergedData.filter((elem: any, pos: any, arr: any) => { return arr.indexOf(elem) === pos; }); } diff --git a/src/ng2-smart-table/lib/data-source/local/local.filter.ts b/src/ng2-smart-table/lib/data-source/local/local.filter.ts index 586f31f7f..da70a0340 100644 --- a/src/ng2-smart-table/lib/data-source/local/local.filter.ts +++ b/src/ng2-smart-table/lib/data-source/local/local.filter.ts @@ -2,13 +2,13 @@ export class LocalFilter { protected static FILTER = (value: string, search: string) => { return value.toString().toLowerCase().includes(search.toString().toLowerCase()); - }; + } static filter(data: Array, field: string, search: string, customFilter?: Function): Array { - let filter: Function = customFilter ? customFilter : this.FILTER; + const filter: Function = customFilter ? customFilter : this.FILTER; return data.filter((el) => { - let value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field]; + const value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field]; return filter.call(null, value, search); }); } diff --git a/src/ng2-smart-table/lib/data-source/local/local.pager.ts b/src/ng2-smart-table/lib/data-source/local/local.pager.ts index f528b9436..4c47545dd 100644 --- a/src/ng2-smart-table/lib/data-source/local/local.pager.ts +++ b/src/ng2-smart-table/lib/data-source/local/local.pager.ts @@ -1,5 +1,5 @@ export class LocalPager { - + static paginate(data: Array, page: number, perPage: number): Array { return data.slice(perPage * (page - 1), perPage * page); } diff --git a/src/ng2-smart-table/lib/data-source/local/local.sorter.ts b/src/ng2-smart-table/lib/data-source/local/local.sorter.ts index 14e778d99..f9c3eecbd 100644 --- a/src/ng2-smart-table/lib/data-source/local/local.sorter.ts +++ b/src/ng2-smart-table/lib/data-source/local/local.sorter.ts @@ -1,6 +1,6 @@ export class LocalSorter { - protected static COMPARE = (direction, a, b) => { + protected static COMPARE = (direction: any, a: any, b: any) => { if (a < b) { return -1 * direction; } @@ -8,12 +8,12 @@ export class LocalSorter { return direction; } return 0; - }; + } static sort(data: Array, field: string, direction: string, customCompare?: Function): Array { - let dir: number = (direction === 'asc') ? 1 : -1; - let compare: Function = customCompare ? customCompare : this.COMPARE; + const dir: number = (direction === 'asc') ? 1 : -1; + const compare: Function = customCompare ? customCompare : this.COMPARE; return data.sort((a, b) => { return compare.call(null, dir, a[field], b[field]); diff --git a/src/ng2-smart-table/lib/data-source/server/server-source.conf.ts b/src/ng2-smart-table/lib/data-source/server/server-source.conf.ts index eee33e7ce..b0440e631 100644 --- a/src/ng2-smart-table/lib/data-source/server/server-source.conf.ts +++ b/src/ng2-smart-table/lib/data-source/server/server-source.conf.ts @@ -19,7 +19,8 @@ export class ServerSourceConf { dataKey: string; constructor( - {endPoint = '', sortFieldKey = '', sortDirKey = '', pagerPageKey = '', pagerLimitKey = '', filterFieldKey = '', totalKey = '', dataKey = ''} = {}) { + { endPoint = '', sortFieldKey = '', sortDirKey = '', + pagerPageKey = '', pagerLimitKey = '', filterFieldKey = '', totalKey = '', dataKey = '' } = {}) { this.endPoint = endPoint ? endPoint : ''; @@ -31,4 +32,4 @@ export class ServerSourceConf { this.totalKey = totalKey ? totalKey : ServerSourceConf.TOTAL_KEY; this.dataKey = dataKey ? dataKey : ServerSourceConf.DATA_KEY; } -} \ No newline at end of file +} diff --git a/src/ng2-smart-table/lib/data-source/server/server.data-source.ts b/src/ng2-smart-table/lib/data-source/server/server.data-source.ts index 7ce3f1ecb..551aa823b 100644 --- a/src/ng2-smart-table/lib/data-source/server/server.data-source.ts +++ b/src/ng2-smart-table/lib/data-source/server/server.data-source.ts @@ -1,7 +1,7 @@ import { Http } from '@angular/http'; import { LocalDataSource } from '../local/local.data-source'; import { RequestOptionsArgs } from '@angular/http/src/interfaces'; -import { URLSearchParams } from '@angular/http/src/url_search_params'; +import { URLSearchParams } from '@angular/http'; import { Observable } from 'rxjs'; import { ServerSourceConf } from './server-source.conf'; import { getDeepFromObject } from '../../helpers'; @@ -12,7 +12,7 @@ export class ServerDataSource extends LocalDataSource { protected lastRequestCount: number = 0; - constructor(protected http: Http, conf: ServerSourceConf|{} = {}) { + constructor(protected http: Http, conf: ServerSourceConf | {} = {}) { super(); this.conf = new ServerSourceConf(conf); @@ -40,15 +40,16 @@ export class ServerDataSource extends LocalDataSource { * @param res * @returns {any} */ - protected extractDataFromResponse(res): Array { + protected extractDataFromResponse(res: any): Array { const rawData = res.json(); - let data = !!this.conf.dataKey ? getDeepFromObject(rawData, this.conf.dataKey, []) : rawData; + const data = !!this.conf.dataKey ? getDeepFromObject(rawData, this.conf.dataKey, []) : rawData; if (data instanceof Array) { return data; } - throw new Error(`Data must be an array. Please check that data extracted from the server response by the key '${this.conf.dataKey}' exists and is array.`); + throw new Error(`Data must be an array. + Please check that data extracted from the server response by the key '${this.conf.dataKey}' exists and is array.`); } /** @@ -57,12 +58,12 @@ export class ServerDataSource extends LocalDataSource { * @param res * @returns {any} */ - protected extractTotalFromResponse(res): number { + protected extractTotalFromResponse(res: any): number { if (res.headers.has(this.conf.totalKey)) { return +res.headers.get(this.conf.totalKey); } else { const rawData = res.json(); - return getDeepFromObject(rawData, this.conf.totalKey, 0) + return getDeepFromObject(rawData, this.conf.totalKey, 0); } } @@ -80,7 +81,7 @@ export class ServerDataSource extends LocalDataSource { } protected addSortRequestOptions(requestOptions: RequestOptionsArgs): RequestOptionsArgs { - let searchParams: URLSearchParams = requestOptions.search; + const searchParams: URLSearchParams = requestOptions.search; if (this.sortConf) { this.sortConf.forEach((fieldConf) => { @@ -93,10 +94,10 @@ export class ServerDataSource extends LocalDataSource { } protected addFilterRequestOptions(requestOptions: RequestOptionsArgs): RequestOptionsArgs { - let searchParams: URLSearchParams = requestOptions.search; + const searchParams: URLSearchParams = requestOptions.search; if (this.filterConf.filters) { - this.filterConf.filters.forEach((fieldConf) => { + this.filterConf.filters.forEach((fieldConf: any) => { if (fieldConf['search']) { searchParams.set(this.conf.filterFieldKey.replace('#field#', fieldConf['field']), fieldConf['search']); } @@ -107,7 +108,7 @@ export class ServerDataSource extends LocalDataSource { } protected addPagerRequestOptions(requestOptions: RequestOptionsArgs): RequestOptionsArgs { - let searchParams: URLSearchParams = requestOptions.search; + const searchParams: URLSearchParams = requestOptions.search; if (this.pagingConf && this.pagingConf['page'] && this.pagingConf['perPage']) { searchParams.set(this.conf.pagerPageKey, this.pagingConf['page']); @@ -116,4 +117,4 @@ export class ServerDataSource extends LocalDataSource { return requestOptions; } -} \ No newline at end of file +} diff --git a/src/ng2-smart-table/lib/grid.ts b/src/ng2-smart-table/lib/grid.ts index 2c24b9f02..b0ab2ce38 100644 --- a/src/ng2-smart-table/lib/grid.ts +++ b/src/ng2-smart-table/lib/grid.ts @@ -1,10 +1,12 @@ +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import { EventEmitter } from '@angular/core'; + +import { Deferred, getDeepFromObject } from './helpers'; import { Column } from './data-set/column'; import { Row } from './data-set/row'; import { DataSet } from './data-set/data-set'; import { DataSource } from './data-source/data-source'; -import { Subject, Observable } from 'rxjs/Rx'; -import { EventEmitter } from '@angular/core'; -import { Deferred, getDeepFromObject } from './helpers'; export class Grid { @@ -16,7 +18,7 @@ export class Grid { onSelectRowSource = new Subject(); - constructor(source: DataSource, settings) { + constructor(source: DataSource, settings: any) { this.setSettings(settings); this.setSource(source); } @@ -26,7 +28,7 @@ export class Grid { } isCurrentActionsPosition(position: string): boolean { - return position == this.getSetting('actions.position') + return position == this.getSetting('actions.position'); } isActionsVisible(): boolean { @@ -41,7 +43,7 @@ export class Grid { return this.dataSet.newRow; } - setSettings(settings: Object): void { + setSettings(settings: Object) { this.settings = settings; this.dataSet = new DataSet([], this.getSetting('columns')); @@ -54,13 +56,13 @@ export class Grid { return this.dataSet; } - setSource(source: DataSource): void { + setSource(source: DataSource) { this.source = this.prepareSource(source); this.source.onChanged().subscribe((changes) => this.processDataChange(changes)); this.source.onUpdated().subscribe((data) => { - let changedRow = this.dataSet.findRowByData(data); + const changedRow = this.dataSet.findRowByData(data); changedRow.setData(data); }); } @@ -77,11 +79,11 @@ export class Grid { return this.dataSet.getRows(); } - selectRow(row: Row): void { + selectRow(row: Row) { this.dataSet.selectRow(row); } - multipleSelectRow(row: Row): void { + multipleSelectRow(row: Row) { this.dataSet.multipleSelectRow(row); } @@ -89,19 +91,19 @@ export class Grid { return this.onSelectRowSource.asObservable(); } - edit(row: Row): void { + edit(row: Row) { row.isInEditing = true; } - create(row: Row, confirmEmitter: EventEmitter): void { + create(row: Row, confirmEmitter: EventEmitter) { - let deferred = new Deferred(); + const deferred = new Deferred(); deferred.promise.then((newData) => { newData = newData ? newData : row.getNewData(); this.source.prepend(newData).then(() => { this.createFormShown = false; this.dataSet.createNewRow(); - }) + }); }).catch((err) => { // doing nothing }); @@ -110,21 +112,21 @@ export class Grid { confirmEmitter.emit({ newData: row.getNewData(), source: this.source, - confirm: deferred + confirm: deferred, }); } else { deferred.resolve(); } } - save(row: Row, confirmEmitter: EventEmitter): void { + save(row: Row, confirmEmitter: EventEmitter) { - let deferred = new Deferred(); + const deferred = new Deferred(); deferred.promise.then((newData) => { newData = newData ? newData : row.getNewData(); this.source.update(row.getData(), newData).then(() => { row.isInEditing = false; - }) + }); }).catch((err) => { // doing nothing }); @@ -134,16 +136,16 @@ export class Grid { data: row.getData(), newData: row.getNewData(), source: this.source, - confirm: deferred + confirm: deferred, }); } else { deferred.resolve(); } } - delete(row: Row, confirmEmitter: EventEmitter): void { + delete(row: Row, confirmEmitter: EventEmitter) { - let deferred = new Deferred(); + const deferred = new Deferred(); deferred.promise.then(() => { this.source.remove(row.getData()); }).catch((err) => { @@ -154,18 +156,18 @@ export class Grid { confirmEmitter.emit({ data: row.getData(), source: this.source, - confirm: deferred + confirm: deferred, }); } else { deferred.resolve(); } } - processDataChange(changes): void { + processDataChange(changes: any) { if (this.shouldProcessChange(changes)) { this.dataSet.setData(changes['elements']); if (this.getSetting('selectMode') !== 'multi') { - let row = this.determineRowToSelect(changes); + const row = this.determineRowToSelect(changes); if (row) { this.onSelectRowSource.next(row); @@ -174,7 +176,7 @@ export class Grid { } } - shouldProcessChange(changes): boolean { + shouldProcessChange(changes: any): boolean { if (['filter', 'sort', 'page', 'remove', 'refresh', 'load', 'paging'].indexOf(changes['action']) !== -1) { return true; } else if (['prepend', 'append'].indexOf(changes['action']) !== -1 && !this.getSetting('pager.display')) { @@ -185,7 +187,7 @@ export class Grid { } // TODO: move to selectable? Separate directive - determineRowToSelect(changes): Row { + determineRowToSelect(changes: any): Row { if (['load', 'page', 'filter', 'sort', 'refresh'].indexOf(changes['action']) !== -1) { return this.dataSet.select(); @@ -215,8 +217,8 @@ export class Grid { return null; } - prepareSource(source): DataSource { - let initialSource = this.getInitialSort(); + prepareSource(source: any): DataSource { + const initialSource: any = this.getInitialSort(); if (initialSource && initialSource['field'] && initialSource['direction']) { source.setSort([initialSource], false); } @@ -229,7 +231,7 @@ export class Grid { } getInitialSort() { - let sortConf = {}; + const sortConf: any = {}; this.getColumns().forEach((column: Column) => { if (column.isSortable && column.defaultSortDirection) { sortConf['field'] = column.id; @@ -246,7 +248,7 @@ export class Grid { .map(r => r.getData()); } - selectAllRows(status) { + selectAllRows(status: any) { this.dataSet.getRows() .forEach(r => r.isSelected = status); } diff --git a/src/ng2-smart-table/lib/helpers.ts b/src/ng2-smart-table/lib/helpers.ts index b5cf9e3dc..6f2b0438f 100644 --- a/src/ng2-smart-table/lib/helpers.ts +++ b/src/ng2-smart-table/lib/helpers.ts @@ -1,45 +1,4 @@ -function isSpecificValue(val) { - return ( - val instanceof Buffer - || val instanceof Date - || val instanceof RegExp - ) ? true : false; -} - -function cloneSpecificValue(val): any { - if (val instanceof Buffer) { - var x = new Buffer(val.length); - val.copy(x); - return x; - } else if (val instanceof Date) { - return new Date(val.getTime()); - } else if (val instanceof RegExp) { - return new RegExp(val); - } else { - throw new Error('Unexpected situation'); - } -} - -/** - * Recursive cloning array. - */ -function deepCloneArray(arr): any { - var clone = []; - arr.forEach(function (item, index) { - if (typeof item === 'object' && item !== null) { - if (Array.isArray(item)) { - clone[index] = deepCloneArray(item); - } else if (isSpecificValue(item)) { - clone[index] = cloneSpecificValue(item); - } else { - clone[index] = deepExtend({}, item); - } - } else { - clone[index] = item; - } - }); - return clone; -} +import { cloneDeep } from 'lodash'; /** * Extending object that entered in first argument. @@ -50,7 +9,7 @@ function deepCloneArray(arr): any { * object as first argument, like this: * deepExtend({}, yourObj_1, [yourObj_N]); */ -export const deepExtend = function (...objects): any { +export const deepExtend = function(...objects: Array): any { if (arguments.length < 1 || typeof arguments[0] !== 'object') { return false; } @@ -59,14 +18,14 @@ export const deepExtend = function (...objects): any { return arguments[0]; } - var target = arguments[0]; + const target = arguments[0]; // convert arguments to array and cut off target object - var args = Array.prototype.slice.call(arguments, 1); + const args = Array.prototype.slice.call(arguments, 1); - var val, src, clone; + let val, src; - args.forEach(function (obj) { + args.forEach((obj: any) => { // skip argument if it is array or isn't object if (typeof obj !== 'object' || Array.isArray(obj)) { return; @@ -90,12 +49,7 @@ export const deepExtend = function (...objects): any { // just clone arrays (and recursive clone objects inside) } else if (Array.isArray(val)) { - target[key] = deepCloneArray(val); - return; - - // custom cloning and overwrite for specific objects - } else if (isSpecificValue(val)) { - target[key] = cloneSpecificValue(val); + target[key] = cloneDeep(val); return; // overwrite by new value if source isn't object or array @@ -117,21 +71,21 @@ export const deepExtend = function (...objects): any { export class Deferred { promise: Promise; - + resolve: any; reject: any; - - constructor () { + + constructor() { this.promise = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; - }) + }); } } // getDeepFromObject({result: {data: 1}}, 'result.data', 2); // returns 1 export function getDeepFromObject(object = {}, name: string, defaultValue?: any) { - let keys = name.split('.'); + const keys = name.split('.'); // clone the object let level = deepExtend({}, object); keys.forEach((k) => { @@ -141,4 +95,4 @@ export function getDeepFromObject(object = {}, name: string, defaultValue?: any) }); return typeof level === 'undefined' ? defaultValue : level; -} \ No newline at end of file +} diff --git a/src/ng2-smart-table/lib/index.ts b/src/ng2-smart-table/lib/index.ts deleted file mode 100644 index 6a0ad31bf..000000000 --- a/src/ng2-smart-table/lib/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './grid'; -export * from './data-source/data-source'; -export * from './data-source/local/local.data-source'; -export * from './data-source/server/server.data-source' \ No newline at end of file diff --git a/src/ng2-smart-table/ng2-smart-table.component.html b/src/ng2-smart-table/ng2-smart-table.component.html new file mode 100644 index 000000000..d9fa17c64 --- /dev/null +++ b/src/ng2-smart-table/ng2-smart-table.component.html @@ -0,0 +1,31 @@ +
+ + + + + + + +
+ + + diff --git a/src/ng2-smart-table/ng2-smart-table.component.scss b/src/ng2-smart-table/ng2-smart-table.component.scss new file mode 100644 index 000000000..2f5c35fd0 --- /dev/null +++ b/src/ng2-smart-table/ng2-smart-table.component.scss @@ -0,0 +1,60 @@ +$table-font-color: #606c71; +$table-border-color: #e9ebec; + +:host { + /deep/ { + * { + box-sizing: border-box; + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + } + + button, + input, + optgroup, + select, + textarea { + color: inherit; + font: inherit; + margin: 0; + } + + table { + font-size: 16px; + line-height: 1.5; + color: $table-font-color; + border-collapse: collapse; + border-spacing: 0; + display: table; + width: 100%; + max-width: 100%; + overflow: auto; + word-break: normal; + word-break: keep-all; + + tr { + th { + font-weight: bold; + } + section { + font-size: .75rem; + font-weight: bold; + } + td, + th { + font-size: .875rem; + margin: 0; + padding: 0.5rem 1rem; + border: 1px solid $table-border-color; + } + } + } + + a { + color: #1e6bb8; + text-decoration: none; + &:hover { + text-decoration: underline; + } + } + } +} diff --git a/src/ng2-smart-table/ng2-smart-table.component.ts b/src/ng2-smart-table/ng2-smart-table.component.ts index 3bc042eb5..97fcb9a38 100644 --- a/src/ng2-smart-table/ng2-smart-table.component.ts +++ b/src/ng2-smart-table/ng2-smart-table.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, Output, SimpleChange, EventEmitter, OnChanges, ViewEncapsulation } from '@angular/core'; +import { Component, Input, Output, SimpleChange, EventEmitter, OnChanges } from '@angular/core'; import { Grid } from './lib/grid'; import { DataSource } from './lib/data-source/data-source'; @@ -8,22 +8,22 @@ import { LocalDataSource } from './lib/data-source/local/local.data-source'; @Component({ selector: 'ng2-smart-table', - styleUrls: ['ng2-smart-table.scss'], - templateUrl: 'ng2-smart-table.html' + styleUrls: ['./ng2-smart-table.component.scss'], + templateUrl: './ng2-smart-table.component.html', }) export class Ng2SmartTableComponent implements OnChanges { @Input() source: any; @Input() settings: Object = {}; - @Output() public rowSelect: EventEmitter = new EventEmitter(); - @Output() public userRowSelect: EventEmitter = new EventEmitter(); - @Output() public delete: EventEmitter = new EventEmitter(); - @Output() public edit: EventEmitter = new EventEmitter(); - @Output() public create: EventEmitter = new EventEmitter(); - @Output() public deleteConfirm: EventEmitter = new EventEmitter(); - @Output() public editConfirm: EventEmitter = new EventEmitter(); - @Output() public createConfirm: EventEmitter = new EventEmitter(); + @Output() rowSelect = new EventEmitter(); + @Output() userRowSelect = new EventEmitter(); + @Output() delete = new EventEmitter(); + @Output() edit = new EventEmitter(); + @Output() create = new EventEmitter(); + @Output() deleteConfirm = new EventEmitter(); + @Output() editConfirm = new EventEmitter(); + @Output() createConfirm = new EventEmitter(); grid: Grid; defaultSettings: Object = { @@ -37,7 +37,7 @@ export class Ng2SmartTableComponent implements OnChanges { add: true, edit: true, delete: true, - position: 'left' // left|right + position: 'left', // left|right }, filter: { inputClass: '', @@ -47,18 +47,18 @@ export class Ng2SmartTableComponent implements OnChanges { editButtonContent: 'Edit', saveButtonContent: 'Update', cancelButtonContent: 'Cancel', - confirmSave: false + confirmSave: false, }, add: { inputClass: '', addButtonContent: 'Add New', createButtonContent: 'Create', cancelButtonContent: 'Cancel', - confirmCreate: false + confirmCreate: false, }, delete: { deleteButtonContent: 'Delete', - confirmDelete: false + confirmDelete: false, }, attr: { id: '', @@ -68,8 +68,8 @@ export class Ng2SmartTableComponent implements OnChanges { columns: {}, pager: { display: true, - perPage: 10 - } + perPage: 10, + }, }; isAllSelected: boolean = false; @@ -88,10 +88,11 @@ export class Ng2SmartTableComponent implements OnChanges { } editRowSelect(row: Row) { - if (this.grid.getSetting('selectMode') === 'multi') + if (this.grid.getSetting('selectMode') === 'multi') { this.onMultipleSelectRow(row); - else + } else { this.onSelectRow(row); + } } onUserSelectRow(row: Row) { @@ -111,7 +112,7 @@ export class Ng2SmartTableComponent implements OnChanges { onSelectAllRows($event: any) { this.isAllSelected = !this.isAllSelected; this.grid.selectAllRows(this.isAllSelected); - let selectedRows = this.grid.getSelectedRows(); + const selectedRows = this.grid.getSelectedRows(); this._onUserSelectRow(selectedRows[0], selectedRows); this._onSelectRow(selectedRows[0]); diff --git a/src/ng2-smart-table/ng2-smart-table.html b/src/ng2-smart-table/ng2-smart-table.html deleted file mode 100644 index 791c88c9a..000000000 --- a/src/ng2-smart-table/ng2-smart-table.html +++ /dev/null @@ -1,33 +0,0 @@ -
- - - - - - - - -
- - - -
diff --git a/src/ng2-smart-table/ng2-smart-table.module.ts b/src/ng2-smart-table/ng2-smart-table.module.ts new file mode 100644 index 000000000..44b9735b0 --- /dev/null +++ b/src/ng2-smart-table/ng2-smart-table.module.ts @@ -0,0 +1,32 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + +import { CellModule } from './components/cell/cell.module'; +import { FilterModule } from './components/filter/filter.module'; +import { PagerModule } from './components/pager/pager.module'; +import { TBodyModule } from './components/tbody/tbody.module'; +import { THeadModule } from './components/thead/thead.module'; + +import { Ng2SmartTableComponent } from './ng2-smart-table.component'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + CellModule, + FilterModule, + PagerModule, + TBodyModule, + THeadModule, + ], + declarations: [ + Ng2SmartTableComponent, + ], + exports: [ + Ng2SmartTableComponent, + ], +}) +export class Ng2SmartTableModule { +} diff --git a/src/ng2-smart-table/ng2-smart-table.scss b/src/ng2-smart-table/ng2-smart-table.scss deleted file mode 100644 index 0d037a3f9..000000000 --- a/src/ng2-smart-table/ng2-smart-table.scss +++ /dev/null @@ -1,33 +0,0 @@ -/deep/ table.ng2-smart-table { - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 1.5; - color: #606c71; - border-collapse: collapse; - border-spacing: 0; - display: table; - width: 100%; - max-width: 100%; - overflow: auto; - word-break: normal; - word-break: keep-all; - - td, th { - font-size: .875rem; - margin: 0; - padding: 0.5rem 1rem; - border: 1px solid #e9ebec; - } - - .ng2-smart-row { - &.selected { - background: rgba(0, 0, 0, 0.05); - } - - .ng2-smart-actions { - &.ng2-smart-action-multiple-select { - text-align: center; - } - } - } -} diff --git a/src/ng2-smart-table/package.json b/src/ng2-smart-table/package.json new file mode 100644 index 000000000..4d2ba8485 --- /dev/null +++ b/src/ng2-smart-table/package.json @@ -0,0 +1,35 @@ +{ + "name": "ng2-smart-table", + "version": "1.0.0", + "description": "Angular Smart Table", + "main": "./bundles/table.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", + "author": "akveo", + "license": "MIT", + "scripts": { + }, + "repository": { + "type": "git", + "url": "git+https://github.com/akveo/ng2-admin.git" + }, + "bugs": { + "url": "https://github.com/akveo/ng2-admin/issues" + }, + "homepage": "https://github.com/akveo/ng2-admin#readme", + "keywords": [ + "angular", + "typescript", + "ng2-admin", + "ngx-admin", + "table", + "akveo" + ], + "peerDependencies": { + "@angular/common": "^4.0.0", + "@angular/core": "^4.0.0", + "@angular/forms": "^4.0.0", + "lodash": "^4.17.4", + "ng2-completer": "^1.2.2" + } +} diff --git a/src/ng2-smart-table/tsconfig.json b/src/ng2-smart-table/tsconfig.json new file mode 100644 index 000000000..35dc1bb8f --- /dev/null +++ b/src/ng2-smart-table/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "declaration": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "lib": ["es6", "es2015", "dom"], + "module": "es2015", + "moduleResolution": "node", + "noEmitOnError": true, + "noImplicitAny": true, + "outDir": "../../dist/ng2-smart-table", + "rootDir": ".", + "sourceMap": true, + "target": "es6", + "inlineSources": true, + "stripInternal": false, + "baseUrl": "", + "typeRoots": [ + "../../node_modules/@types/!(node)" + ], + "types": [ + "jasmine", + "rx/rx.all" + ] + }, + "angularCompilerOptions": { + "genDir": "../../dist", + "skipTemplateCodegen": true, + "debug": true + } +} diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 000000000..53bdaf1b8 --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,68 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * 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'; + +/** 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. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ + +/** + * Date, currency, decimal and percent pipes. + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 + */ +// import 'intl'; // Run `npm install --save intl`. diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 000000000..90d4ee007 --- /dev/null +++ b/src/styles.scss @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 000000000..ebfe11e6b --- /dev/null +++ b/src/test.ts @@ -0,0 +1,32 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/long-stack-trace-zone'; +import 'zone.js/dist/proxy.js'; +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'; + +// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. +declare var __karma__: any; +declare var require: any; + +// Prevent Karma from running prematurely. +__karma__.loaded = function () {}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); +// Finally, start Karma to run the tests. +__karma__.start(); diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json new file mode 100644 index 000000000..b57d78312 --- /dev/null +++ b/src/tsconfig.app.json @@ -0,0 +1,15 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "es2015", + "baseUrl": "", + "typeRoots": [ + "../node_modules/@types" + ] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json new file mode 100644 index 000000000..510e3f1fd --- /dev/null +++ b/src/tsconfig.spec.json @@ -0,0 +1,20 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "module": "commonjs", + "target": "es5", + "baseUrl": "", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/src/typings.d.ts b/src/typings.d.ts new file mode 100644 index 000000000..ef5c7bd62 --- /dev/null +++ b/src/typings.d.ts @@ -0,0 +1,5 @@ +/* SystemJS module definition */ +declare var module: NodeModule; +interface NodeModule { + id: string; +} diff --git a/tools/gulp/constants.ts b/tools/gulp/constants.ts new file mode 100644 index 000000000..fd7fa92b4 --- /dev/null +++ b/tools/gulp/constants.ts @@ -0,0 +1,24 @@ +import { join } from 'path'; + +export const TABLE_VERSION = require('../../src/ng2-smart-table/package.json').version; + +export const PROJECT_ROOT = join(__dirname, '../..'); +export const SOURCE_ROOT = join(PROJECT_ROOT, 'src'); + +export const DIST_ROOT = join(PROJECT_ROOT, 'dist'); +export const TABLE_DIST_ROOT = join(DIST_ROOT, 'ng2-smart-table'); + +export const HTML_MINIFIER_OPTIONS = { + collapseWhitespace: true, + removeComments: true, + caseSensitive: true, + removeAttributeQuotes: false, +}; + +export const TABLE_LICENSE_BANNER = `/** + * @license ng2-smart-table v${TABLE_VERSION} + * Copyright (c) 2017 Akveo. https://akveo.github.io/ng2-smart-table/ + * License: MIT + */`; + +export const TABLE_DIR = join(SOURCE_ROOT, 'ng2-smart-table'); diff --git a/tools/gulp/gulpfile.ts b/tools/gulp/gulpfile.ts new file mode 100644 index 000000000..3fe06c584 --- /dev/null +++ b/tools/gulp/gulpfile.ts @@ -0,0 +1,3 @@ +import './tasks/table'; +import './tasks/release'; +import './tasks/clean'; diff --git a/tools/gulp/tasks/clean.ts b/tools/gulp/tasks/clean.ts new file mode 100644 index 000000000..33c3fcce5 --- /dev/null +++ b/tools/gulp/tasks/clean.ts @@ -0,0 +1,6 @@ +import { task } from 'gulp'; +import { DIST_ROOT } from '../constants'; +import { cleanTask } from '../util/task_helpers'; + + +task('clean', cleanTask(DIST_ROOT)); diff --git a/tools/gulp/tasks/release.ts b/tools/gulp/tasks/release.ts new file mode 100644 index 000000000..d1fc84f9f --- /dev/null +++ b/tools/gulp/tasks/release.ts @@ -0,0 +1,22 @@ +import { spawn } from 'child_process'; +import { existsSync, statSync } from 'fs'; +import { task } from 'gulp'; +import gulpRunSequence = require('run-sequence'); +import path = require('path'); + +import { execTask, cleanTask } from '../util/task_helpers'; +import { TABLE_DIST_ROOT } from '../constants'; + +/** Removes redundant spec files from the release. TypeScript creates definition files for specs. */ +// TODO(devversion): tsconfig files should share code and don't generate spec files for releases. +task(':build:release:clean-spec', cleanTask('dist/**/*+(-|.)spec.*')); + +task('build:release', function (done: () => void) { + // Synchronously run those tasks. + gulpRunSequence( + 'clean', + ':build:table:release', + ':build:release:clean-spec', + done, + ); +}); diff --git a/tools/gulp/tasks/table.ts b/tools/gulp/tasks/table.ts new file mode 100644 index 000000000..9a8cb6b9b --- /dev/null +++ b/tools/gulp/tasks/table.ts @@ -0,0 +1,166 @@ +import { task, watch, src, dest } from 'gulp'; +import { ScriptTarget, ModuleKind } from 'typescript'; +import * as path from 'path'; + +import { + TABLE_DIST_ROOT, + PROJECT_ROOT, + TABLE_DIR, + HTML_MINIFIER_OPTIONS, + TABLE_LICENSE_BANNER, +} from '../constants'; +import { + sassBuildTask, + tsBuildTask, + execNodeTask, + sequenceTask, + triggerLivereload, +} from '../util/task_helpers'; + +// There are no type definitions available for these imports. +const inlineResources = require('../../../scripts/release/inline-resources'); +const gulpRollup = require('gulp-better-rollup'); +const gulpMinifyHtml = require('gulp-htmlmin'); +const gulpIf = require('gulp-if'); + +/** Path to tsconfig file for the ng2-smart-table. */ +const tsconfigPath = path.join(TABLE_DIR, 'tsconfig.json'); + +/** Asset files to be added to the components output. */ +const assetFiles = [ + path.join(TABLE_DIR, '**/*.html'), + path.join(TABLE_DIR, '**/*.scss'), + path.join(TABLE_DIR, 'package.json'), + path.join(PROJECT_ROOT, 'README.md'), + path.join(PROJECT_ROOT, 'LICENSE.txt'), +]; + +/** Builds components to UMD bundle. */ +task('build:table', [':build:table:bundle:umd']); + +/** Builds components for ng2-smart-table releases */ +task(':build:table:release', sequenceTask( + ':build:table:bundle:umd', + ':build:table:bundle:esm', + ':build:table:ngc', +)); + +/** Builds components typescript in ES5, ES6 target. For specs Karma needs CJS output. */ +task(':build:table:ts:es5', tsBuildTask(tsconfigPath, { target: ScriptTarget.ES5 })); +task(':build:table:ts:es6', tsBuildTask(tsconfigPath, { target: ScriptTarget.ES2015 })); +task(':build:table:ts:spec', tsBuildTask(tsconfigPath, { + target: ScriptTarget.ES5, module: ModuleKind.CommonJS, +})); + +/** Tasks to create a UMD or ES bundle */ +task(':build:table:bundle:umd', sequenceTask( + ':build:table:ts:es5', ':build:table:inline', ':build:table:rollup:umd', +)); + +task(':build:table:bundle:esm', sequenceTask( + ':build:table:ts:es6', ':build:table:inline', ':build:table:rollup:esm', +)); + +/** Copies all component assets to the build output. */ +task(':build:table:assets', () => { + return src(assetFiles) + .pipe(gulpIf(/.html$/, gulpMinifyHtml(HTML_MINIFIER_OPTIONS))) + .pipe(dest(TABLE_DIST_ROOT)); +}); + +/** Compiles the components SCSS into minified CSS. */ +task(':build:table:scss', sassBuildTask(TABLE_DIST_ROOT, TABLE_DIR, true)); + +/** Builds a ES6 bundle for all components. */ +task(':build:table:rollup:esm', () => { + return src(path.join(TABLE_DIST_ROOT, 'index.js')) + .pipe(createRollupBundle('es', 'table.js')) + .pipe(dest(path.join(TABLE_DIST_ROOT, 'bundles'))); +}); + +/** Builds a UMD bundle (ES5) for all components. */ +task(':build:table:rollup:umd', () => { + return src(path.join(TABLE_DIST_ROOT, 'index.js')) + .pipe(createRollupBundle('umd', 'table.umd.js')) + .pipe(dest(path.join(TABLE_DIST_ROOT, 'bundles'))); +}); + + +/** Builds components with resources (html, css) inlined into the built JS. */ +task(':build:table:inline', sequenceTask( + [':build:table:scss', ':build:table:assets'], + ':inline-resources', +)); + +/** Inlines resources (html, css) into the JS output. */ +task(':inline-resources', () => inlineResources(TABLE_DIST_ROOT)); + +/** Generates metadata.json files for all of the components. */ +task(':build:table:ngc', ['build:table'], execNodeTask( + '@angular/compiler-cli', 'ngc', ['-p', tsconfigPath], +)); + +/** [Watch task] Rebuilds (ESM output) whenever ts, scss, or html sources change. */ +task(':watch:table', () => { + watch(path.join(TABLE_DIR, '**/*.ts'), ['build:table', triggerLivereload]); + watch(path.join(TABLE_DIR, '**/*.scss'), ['build:table', triggerLivereload]); + watch(path.join(TABLE_DIR, '**/*.html'), ['build:table', triggerLivereload]); +}); + +const ROLLUP_GLOBALS = { + // Angular dependencies + '@angular/core': 'ng.core', + '@angular/common': 'ng.common', + '@angular/forms': 'ng.forms', + '@angular/router': 'ng.router', + '@angular/http': 'ng.http', + '@angular/animations': 'ng.animations', + '@angular/animations/browser': 'ng.animations.browser', + '@angular/platform-browser': 'ng.platformBrowser', + '@angular/platform-browser/animations': 'ng.platformBrowser.animations', + '@angular/platform-browser-dynamic': 'ng.platformBrowserDynamic', + + // Rxjs dependencies + 'rxjs/Subject': 'Rx', + 'rxjs/add/observable/fromEvent': 'Rx.Observable', + 'rxjs/add/observable/forkJoin': 'Rx.Observable', + 'rxjs/add/observable/of': 'Rx.Observable', + 'rxjs/add/observable/merge': 'Rx.Observable', + 'rxjs/add/observable/throw': 'Rx.Observable', + 'rxjs/add/operator/auditTime': 'Rx.Observable.prototype', + 'rxjs/add/operator/toPromise': 'Rx.Observable.prototype', + 'rxjs/add/operator/map': 'Rx.Observable.prototype', + 'rxjs/add/operator/filter': 'Rx.Observable.prototype', + 'rxjs/add/operator/do': 'Rx.Observable.prototype', + 'rxjs/add/operator/share': 'Rx.Observable.prototype', + 'rxjs/add/operator/finally': 'Rx.Observable.prototype', + 'rxjs/add/operator/catch': 'Rx.Observable.prototype', + 'rxjs/add/operator/first': 'Rx.Observable.prototype', + 'rxjs/add/operator/startWith': 'Rx.Observable.prototype', + 'rxjs/add/operator/switchMap': 'Rx.Observable.prototype', + 'rxjs/Observable': 'Rx', + + // 3rd party dependencies + 'ng2-completer': 'ng2completer', + 'lodash': 'lodash', +}; + +/** Creates a rollup bundles of the ng2-smart-table components.*/ +function createRollupBundle(format: string, outFile: string) { + const rollupOptions = { + context: 'this', + external: Object.keys(ROLLUP_GLOBALS), + }; + + const rollupGenerateOptions = { + // Keep the moduleId empty because we don't want to force developers to a specific moduleId. + moduleId: '', + moduleName: 'ng2-smart-table', + banner: TABLE_LICENSE_BANNER, + format: format, + dest: outFile, + globals: ROLLUP_GLOBALS, + }; + + return gulpRollup(rollupOptions, rollupGenerateOptions); +} diff --git a/tools/gulp/tsconfig.json b/tools/gulp/tsconfig.json new file mode 100644 index 000000000..5a0919571 --- /dev/null +++ b/tools/gulp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "declaration": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "lib": ["es6", "es2015"], + "module": "commonjs", + "moduleResolution": "node", + "noEmitOnError": true, + "noImplicitAny": true, + "outDir": "../../dist/gulp", + "rootDir": ".", + "sourceMap": true, + "target": "es5", + "inlineSources": true, + "stripInternal": false, + "baseUrl": "", + "typeRoots": [ + "../../node_modules/@types" + ], + "types": [ + "node" + ] + } +} diff --git a/tools/gulp/util/task_helpers.ts b/tools/gulp/util/task_helpers.ts new file mode 100644 index 000000000..a26878a94 --- /dev/null +++ b/tools/gulp/util/task_helpers.ts @@ -0,0 +1,137 @@ +import * as child_process from 'child_process'; +import * as fs from 'fs'; +import * as gulp from 'gulp'; +import * as path from 'path'; +import { PROJECT_ROOT, DIST_ROOT } from '../constants'; +import { CompilerOptions } from 'typescript'; +import { compileProject } from './ts-compiler'; + +/* Those imports lack typings. */ +const gulpClean = require('gulp-clean'); +const gulpRunSequence = require('run-sequence'); +const gulpSass = require('gulp-sass'); +const gulpSourcemaps = require('gulp-sourcemaps'); +const gulpConnect = require('gulp-connect'); +const gulpIf = require('gulp-if'); +const gulpCleanCss = require('gulp-clean-css'); + +const resolveBin = require('resolve-bin'); + +/** If the string passed in is a glob, returns it, otherwise append '**\/*' to it. */ +function _globify(maybeGlob: string, suffix = '**/*') { + if (maybeGlob.indexOf('*') != -1) { + return maybeGlob; + } + try { + const stat = fs.statSync(maybeGlob); + if (stat.isFile()) { + return maybeGlob; + } + } catch (e) { } + return path.join(maybeGlob, suffix); +} + + +/** Creates a task that runs the TypeScript compiler */ +export function tsBuildTask(tsConfigPath: string, extraOptions?: CompilerOptions) { + return () => compileProject(tsConfigPath, extraOptions); +} + + +/** Create a SASS Build Task. */ +export function sassBuildTask(dest: string, root: string, minify = false) { + return () => { + return gulp.src(_globify(root, '**/*.scss')) + .pipe(gulpSourcemaps.init({ loadMaps: true })) + .pipe(gulpSass().on('error', gulpSass.logError)) + .pipe(gulpIf(minify, gulpCleanCss())) + .pipe(gulpSourcemaps.write('.')) + .pipe(gulp.dest(dest)); + }; +} + + +/** Options that can be passed to execTask or execNodeTask. */ +export interface ExecTaskOptions { + // Whether to output to STDERR and STDOUT. + silent?: boolean; + // If an error happens, this will replace the standard error. + errMessage?: string; +} + +/** Create a task that executes a binary as if from the command line. */ +export function execTask(binPath: string, args: string[], options: ExecTaskOptions = {}) { + return (done: (err?: string) => void) => { + const childProcess = child_process.spawn(binPath, args); + + if (!options.silent) { + childProcess.stdout.on('data', (data: string) => { + process.stdout.write(data); + }); + + childProcess.stderr.on('data', (data: string) => { + process.stderr.write(data); + }); + } + + childProcess.on('close', (code: number) => { + if (code != 0) { + if (options.errMessage === undefined) { + done('Process failed with code ' + code); + } else { + done(options.errMessage); + } + } else { + done(); + } + }); + }; +} + +/** + * Create a task that executes an NPM Bin, by resolving the binary path then executing it. These are + * binaries that are normally in the `./node_modules/.bin` directory, but their name might differ + * from the package. Examples are typescript, ngc and gulp itself. + */ +export function execNodeTask(packageName: string, executable: string | string[], args?: string[], + options: ExecTaskOptions = {}) { + if (!args) { + args = executable; + executable = undefined; + } + + return (done: (err: any) => void) => { + resolveBin(packageName, { executable: executable }, (err: any, binPath: string) => { + if (err) { + done(err); + } else { + // Execute the node binary within a new child process using spawn. + // The binary needs to be `node` because on Windows the shell cannot determine the correct + // interpreter from the shebang. + execTask('node', [binPath].concat(args), options)(done); + } + }); + }; +} + +/** Triggers a reload when livereload is enabled and a gulp-connect server is running. */ +export function triggerLivereload() { + gulp.src('dist').pipe(gulpConnect.reload()); +} + + +/** Create a task that's a sequence of other tasks. */ +export function sequenceTask(...args: any[]) { + return (done: any) => { + gulpRunSequence( + ...args, + done, + ); + }; +} + + +/** Delete files. */ +export function cleanTask(glob: string) { + return () => gulp.src(glob, { read: false }).pipe(gulpClean(null)); +} diff --git a/tools/gulp/util/ts-compiler.ts b/tools/gulp/util/ts-compiler.ts new file mode 100644 index 000000000..876d8e5bc --- /dev/null +++ b/tools/gulp/util/ts-compiler.ts @@ -0,0 +1,57 @@ +import * as ts from 'typescript'; +import * as path from 'path'; +import * as chalk from 'chalk'; + +/** Compiles a TypeScript project with possible extra options. */ +export function compileProject(project: string, options: ts.CompilerOptions) { + const parsed = parseProjectConfig(project, options); + const program = ts.createProgram(parsed.fileNames, parsed.options); + const baseDir = program.getCurrentDirectory(); + + // Report any invalid TypeScript options for the project. + reportDiagnostics(program.getOptionsDiagnostics(), baseDir); + + const emitResult = program.emit(); + + reportDiagnostics(emitResult.diagnostics, baseDir); +} + +/** Parses a TypeScript project configuration. */ +function parseProjectConfig(project: string, options: ts.CompilerOptions) { + const config = ts.readConfigFile(project, ts.sys.readFile).config; + const basePath = path.dirname(project); + + const host = { + useCaseSensitiveFileNames: true, + fileExists: ts.sys.fileExists, + readDirectory: ts.sys.readDirectory, + readFile: ts.sys.readFile, + }; + + return ts.parseJsonConfigFileContent(config, host, basePath, options); +} + +/** Formats the TypeScript diagnostics into a error string. */ +export function formatDiagnostics(diagnostics: ts.Diagnostic[], baseDir: string): string { + return diagnostics.map(diagnostic => { + let res = `• ${chalk.red(`TS${diagnostic.code}`)} - `; + + if (diagnostic.file) { + const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); + const filePath = path.relative(baseDir, diagnostic.file.fileName); + + res += `${filePath}(${line + 1},${character + 1}): `; + } + res += `${ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n')}`; + + return res; + }).join('\n'); +} + +/** Checks and reports diagnostics if present. */ +export function reportDiagnostics(diagnostics: ts.Diagnostic[], baseDir?: string) { + if (diagnostics && diagnostics.length && diagnostics[0]) { + console.error(formatDiagnostics(diagnostics, baseDir)); + throw new Error('TypeScript compilation failed.'); + } +} diff --git a/tsconfig-aot.json b/tsconfig-aot.json deleted file mode 100644 index e43d36a14..000000000 --- a/tsconfig-aot.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "commonjs", - "moduleResolution": "node", - "sourceMap": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "declaration": true, - "lib": [ - "es2015", - "dom" - ] - }, - "files": [ - "./ng2-smart-table.ts" - ], - "exclude": [ - "src/**/*.d.ts" - ], - "angularCompilerOptions": { - "genDir": "compiled" - } -} diff --git a/tsconfig.json b/tsconfig.json index 343e8fe53..a35a8ee3a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,33 +1,20 @@ { + "compileOnSave": false, "compilerOptions": { - "target": "es5", - "module": "commonjs", + "outDir": "./dist/out-tsc", + "baseUrl": "src", + "sourceMap": true, + "declaration": false, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, - "sourceMap": true, - "baseUrl": "./demo/src", - "paths": { - }, - "lib": [ - "es2015", - "dom" - ], + "target": "es5", "typeRoots": [ "node_modules/@types" + ], + "lib": [ + "es2016", + "dom" ] - }, - "exclude": [ - "node_modules", - "dist" - ], - "awesomeTypescriptLoaderOptions": { - "forkChecker": true, - "useWebpackText": true - }, - "compileOnSave": false, - "buildOnSave": false, - "atom": { - "rewriteTsconfig": false } } diff --git a/tsconfig.webpack.json b/tsconfig.webpack.json deleted file mode 100644 index 806c0085d..000000000 --- a/tsconfig.webpack.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "commonjs", - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "sourceMap": true, - "baseUrl": "./demo/src", - "outDir": "compiled", - "paths": { - }, - "lib": [ - "es2015", - "dom" - ], - "typeRoots": [ - "node_modules/@types" - ] - }, - "exclude": [ - "node_modules", - "dist", - "compiled", - "src/**/*.spec.ts", - "src/**/*.e2e.ts", - "src/**/*.d.ts" - ], - "awesomeTypescriptLoaderOptions": { - "forkChecker": true, - "useWebpackText": true - }, - "angularCompilerOptions": { - "genDir": "compiled", - "skipMetadataEmit": true - }, - "compileOnSave": false, - "buildOnSave": false, - "atom": { - "rewriteTsconfig": false - } -} diff --git a/tslint.json b/tslint.json index a27066d7f..3b95d97eb 100644 --- a/tslint.json +++ b/tslint.json @@ -1,20 +1,24 @@ { "rulesDirectory": [ + "node_modules/tslint-eslint-rules/dist/rules", "node_modules/codelyzer" ], "rules": { - "member-access": false, - "member-ordering": [ - true, - "public-before-private", - "static-before-instance", - "variables-before-functions" - ], - "no-any": false, - "no-inferrable-types": false, + "max-line-length": [true, 120], + "class-name": true, + "comment-format": [true, "check-space"], + "indent": [true, "spaces"], + "eofline": true, + "no-duplicate-variable": true, + "no-eval": true, + "no-arg": true, "no-internal-module": true, - "no-var-requires": false, - "typedef": false, + "no-bitwise": true, + "no-shadowed-variable": true, + "no-unused-expression": true, + "one-line": [true, "check-catch", "check-else", "check-open-brace", "check-whitespace"], + "quotemark": [true, "single", "avoid-escape"], + "semicolon": true, "typedef-whitespace": [ true, { @@ -23,106 +27,91 @@ "parameter": "nospace", "property-declaration": "nospace", "variable-declaration": "nospace" - }, - { - "call-signature": "space", - "index-signature": "space", - "parameter": "space", - "property-declaration": "space", - "variable-declaration": "space" } ], - - "ban": false, - "curly": false, - "forin": true, + "curly": true, + "variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"], + "whitespace": [true, "check-branch", "check-decl", "check-operator", "check-separator", "check-type"], + "no-constant-condition": true, + "no-control-regex": true, + "no-debugger": true, + "no-duplicate-case": true, + "no-empty-character-class": true, + "no-ex-assign": true, + "no-extra-boolean-cast": true, + "no-extra-semi": true, + "no-inner-declarations": [true, "functions"], + "no-invalid-regexp": true, + "no-irregular-whitespace": true, + "no-regex-spaces": true, + "no-sparse-arrays": true, + "no-unsafe-finally": true, + "use-isnan": true, + "valid-typeof": true, "label-position": true, - "no-arg": true, - "no-bitwise": true, - "no-conditional-assignment": true, - "no-console": [ + "no-multi-spaces": [ true, - "debug", - "info", - "time", - "timeEnd", - "trace" + { + "exceptions": { + "BinaryExpression": true, + "PropertyAssignment": false, + "VariableDeclarator": false, + "ImportDeclaration": false + } + } ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-variable": true, - "no-empty": false, - "no-eval": true, - "no-null-keyword": false, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-switch-case-fall-through": true, - "no-unused-expression": true, + "no-unused-new": true, "no-use-before-declare": true, - "no-var-keyword": true, - "radix": true, - "switch-default": true, - "triple-equals": [ + "array-bracket-spacing": [true, "never"], + "block-spacing": [ true, - "allow-null-check" + "always" ], - "eofline": true, - "indent": [ + "brace-style": [ true, - "spaces" + "1tbs", + { + "allowSingleLine": true + } ], - "max-line-length": [ + "new-parens": true, + "no-consecutive-blank-lines": [true, 2], + "object-curly-spacing": [true, "always"], + "ter-arrow-spacing": [ true, - 120 + { + "before": true, + "after": true + } ], - "no-require-imports": false, - "no-trailing-whitespace": true, - "object-literal-sort-keys": false, + "no-var-keyword": true, + "prefer-const": true, "trailing-comma": [ true, { - "multiline": false, + "multiline": "always", "singleline": "never" } ], - - "align": false, - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "interface-name": false, - "jsdoc-format": true, - "no-consecutive-blank-lines": false, - "one-line": [ - false, - "check-open-brace", - "check-catch", - "check-else", - "check-finally", - "check-whitespace" - ], - "quotemark": [ - true, - "single", - "avoid-escape" - ], - "semicolon": [true, "always"], - "variable-name": [ - true, - "check-format", - "allow-leading-underscore", - "ban-keywords" - ], - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ], - "import-destructuring-spacing": true + "no-conditional-assignment": true, + "no-console": [true, "log"], + "directive-selector": [true, "attribute", [""], "camelCase"], + "component-selector": [true, "element", [""], "kebab-case"], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-attribute-parameter-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "no-forward-ref": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": [true, "Component"], + "directive-class-suffix": [true, "Directive"], + "import-destructuring-spacing": true, + "templates-use-public": true, + "no-access-missing-member": true, + "invoke-injectable": true, + "space-in-parens": ["error", "never"] } } diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 72efa4aeb..000000000 --- a/webpack.config.js +++ /dev/null @@ -1,11 +0,0 @@ -// Look in ./config folder for webpack.dev.js -switch (process.env.NODE_ENV) { - case 'prod': - case 'production': - module.exports = require('./config/webpack.prod')({env: 'production'}); - break; - case 'dev': - case 'development': - default: - module.exports = require('./config/webpack.dev')({env: 'development'}); -} diff --git a/yarn.lock b/yarn.lock index e3a581761..9c74ba61e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,150 +2,264 @@ # yarn lockfile v1 -"@angular/common@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-2.4.9.tgz#3094f973e18330526256dcd13fcf27609b7abc08" +"@angular/animations@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-4.0.0.tgz#f6efb67ca3f3816d2dbf19b8f570371f2d205edc" + +"@angular/cli@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.0.0.tgz#7bfde1e7c5f28bf5bed4dda1352ee67ee887302f" + dependencies: + "@ngtools/json-schema" "1.0.5" + "@ngtools/webpack" "1.3.0" + autoprefixer "^6.5.3" + chalk "^1.1.3" + common-tags "^1.3.1" + css-loader "^0.26.1" + cssnano "^3.10.0" + debug "^2.1.3" + denodeify "^1.2.1" + diff "^3.1.0" + ember-cli-normalize-entity-name "^1.0.0" + ember-cli-string-utils "^1.0.0" + exports-loader "^0.6.3" + extract-text-webpack-plugin "~2.0.0" + file-loader "^0.10.0" + fs-extra "^2.0.0" + get-caller-file "^1.0.0" + glob "^7.0.3" + html-webpack-plugin "^2.19.0" + inflection "^1.7.0" + inquirer "^3.0.0" + isbinaryfile "^3.0.0" + istanbul-instrumenter-loader "^2.0.0" + json-loader "^0.5.4" + karma-sourcemap-loader "^0.3.7" + karma-webpack "^2.0.0" + less "^2.7.2" + less-loader "^2.2.3" + lodash "^4.11.1" + minimatch "^3.0.3" + node-modules-path "^1.0.0" + nopt "^4.0.1" + opn "4.0.2" + portfinder "~1.0.12" + postcss-loader "^0.13.0" + postcss-url "^5.1.2" + raw-loader "^0.5.1" + resolve "^1.1.7" + rimraf "^2.5.3" + rsvp "^3.0.17" + rxjs "^5.0.1" + sass-loader "^4.1.1" + script-loader "^0.7.0" + semver "^5.1.0" + silent-error "^1.0.0" + source-map-loader "^0.1.5" + style-loader "^0.13.1" + stylus "^0.54.5" + stylus-loader "^2.4.0" + temp "0.8.3" + typescript ">=2.0.0 <2.3.0" + url-loader "^0.5.7" + walk-sync "^0.3.1" + webpack "~2.2.0" + webpack-dev-server "~2.3.0" + webpack-merge "^2.4.0" + zone.js "^0.7.2" + optionalDependencies: + node-sass "^4.3.0" -"@angular/compiler-cli@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-2.4.9.tgz#8ac4e28c12d2b09a10aabf9cb95c569844b90db3" +"@angular/common@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.0.0.tgz#ca18983222fdab4ecaa7a8b99eda6ff661e6dc92" + +"@angular/compiler-cli@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.0.0.tgz#35b2d40cd35135aecec4be659532148f5ac67da6" dependencies: - "@angular/tsc-wrapped" "0.5.2" + "@angular/tsc-wrapped" "4.0.0" minimist "^1.2.0" reflect-metadata "^0.1.2" -"@angular/compiler@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-2.4.9.tgz#ee159181c4013046598e1d176b45063bddb141f6" +"@angular/compiler@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.0.0.tgz#e1aa061a6f8ef269f9748af1a7bc290f9d37ed6c" -"@angular/core@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-2.4.9.tgz#85dca2afa4021be91512c97597702ac8d73092e6" +"@angular/core@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.0.0.tgz#fd877e074b29dfa9c63b96a21995fc7556d423a3" -"@angular/forms@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-2.4.9.tgz#a1ee9f403267fd78041f9ee77d1c9c24150e1d7c" +"@angular/forms@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.0.0.tgz#03163047a2e84af42106270da2e1f47ab0fafc37" -"@angular/http@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/http/-/http-2.4.9.tgz#a7de980d564ac25a497c5e822d2b941c1f143d48" +"@angular/http@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.0.0.tgz#45a538eac42a0b13f3744c7e8bafeb17d58da31c" -"@angular/platform-browser-dynamic@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-2.4.9.tgz#353b92e8670065ab5b1b6baea3a96928b174ee09" +"@angular/platform-browser-dynamic@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.0.0.tgz#d1d9de80fe1e02735be89f512e0faf5a80d57fa5" -"@angular/platform-browser@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-2.4.9.tgz#936139a1e0d280394988473a8a11d922d768f89e" +"@angular/platform-browser@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.0.0.tgz#512ae9ab19ccc25fa79027f44e291bcee236cd2b" -"@angular/platform-server@2.4.9": - version "2.4.9" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-2.4.9.tgz#d3710cbd96d2b9f41f8800a6525c783628af8da3" +"@angular/platform-server@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-4.0.0.tgz#d76d61787cd3be3ce8ed46043d6a8c82572f567d" dependencies: - parse5 "^2.2.1" + parse5 "^3.0.1" + xhr2 "^0.1.4" -"@angular/router@3.4.9": - version "3.4.9" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-3.4.9.tgz#2525384124140fefae20bf661262b611f28ffc92" +"@angular/router@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-4.0.0.tgz#f4a2dc83b44e023db1d6f2c12ca5a37a22c66afc" -"@angular/tsc-wrapped@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-0.5.2.tgz#2eddf472c467fcb334ea94deddaaa71990c5a482" +"@angular/tsc-wrapped@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.0.0.tgz#ea91eeda98029cdb0a4ac37d5e25d9d12a4333c1" dependencies: - tsickle "^0.2" + tsickle "^0.21.0" -"@angularclass/conventions-loader@1.0.13": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@angularclass/conventions-loader/-/conventions-loader-1.0.13.tgz#893e18275a78a1c8a40d17d6b98f92db52309aef" - dependencies: - loader-utils "^0.2.15" +"@ngtools/json-schema@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.0.5.tgz#ad39037c70c88b245ac7267a71777646b6063d77" -"@angularclass/hmr-loader@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@angularclass/hmr-loader/-/hmr-loader-3.0.2.tgz#c789182411f09d0b98929e6acbfd3e4aeaace597" +"@ngtools/webpack@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.3.0.tgz#a1071230985358ecdf87b2fa9879ae6cc6355e83" dependencies: - loader-utils "^0.2.15" + enhanced-resolve "^3.1.0" + loader-utils "^1.0.2" + magic-string "^0.19.0" + source-map "^0.5.6" -"@angularclass/hmr@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@angularclass/hmr/-/hmr-1.2.2.tgz#46a18f89a1e94d05c268b83c9480e005f73fc265" +"@types/chalk@0.4.31": + version "0.4.31" + resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-0.4.31.tgz#a31d74241a6b1edbb973cf36d97a2896834a51f9" -"@types/hammerjs@2.0.34": - version "2.0.34" - resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.34.tgz#9cbac4f41cb039436141785e1be50b3ab10a04a9" +"@types/gulp@*", "@types/gulp@4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/gulp/-/gulp-4.0.2.tgz#71133c16a3c6f5ed17ee8094694be7824ed7d6f3" + dependencies: + "@types/node" "*" + "@types/orchestrator" "*" + "@types/vinyl" "*" "@types/highlight.js@9.1.9": version "9.1.9" resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.1.9.tgz#ed6336955eaf233b75eb7923b9b1f373d045ef01" -"@types/lodash@0.0.28": - version "0.0.28" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-0.0.28.tgz#56f8dec67d275e83be1bd0359fa8de28a95dee29" +"@types/jasmine@2.5.38": + version "2.5.38" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.5.38.tgz#a4379124c4921d4e21de54ec74669c9e9b356717" + +"@types/lodash@4.14.58": + version "4.14.58" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.58.tgz#18d45863b6119c1ffffe935c1f51fe044c8c4102" -"@types/node@*", "@types/node@6.0.63": +"@types/node@*", "@types/node@6.0.63", "@types/node@^6.0.46": version "6.0.63" resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.63.tgz#e08acbbd5946e0e95990b1c76f3ce5b7882a48eb" -"@types/source-map@*", "@types/source-map@0.1.29": - version "0.1.29" - resolved "https://registry.yarnpkg.com/@types/source-map/-/source-map-0.1.29.tgz#d7048a60180b09f8aa6d53bda311c6b51cbd7018" +"@types/orchestrator@*": + version "0.0.31" + resolved "https://registry.yarnpkg.com/@types/orchestrator/-/orchestrator-0.0.31.tgz#a4ff44b9cc894f1d9725ed8121b704aa43b5d00d" + dependencies: + "@types/q" "^0" -"@types/tapable@*": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-0.2.3.tgz#0888b0f20cc7e58e1c22a1888b4e963eefaa810a" +"@types/q@^0", "@types/q@^0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" + +"@types/rimraf@0.0.28": + version "0.0.28" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-0.0.28.tgz#5562519bc7963caca8abf7f128cae3b594d41d06" -"@types/uglify-js@*", "@types/uglify-js@2.6.28": - version "2.6.28" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-2.6.28.tgz#1499b48ca3a44132250b318cdde25b8f45f0c616" +"@types/run-sequence@0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/run-sequence/-/run-sequence-0.0.29.tgz#6ad0f7383136e13925322e69fc41db77b30b2075" dependencies: - "@types/source-map" "*" + "@types/gulp" "*" + "@types/node" "*" -"@types/webpack@2.2.5": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-2.2.5.tgz#fdd98f969ba5da0d548c2a3c05a1975c9107cc05" +"@types/rx@2.5.33": + version "2.5.33" + resolved "https://registry.yarnpkg.com/@types/rx/-/rx-2.5.33.tgz#1867f4ac98e57428fe82b284d1a80c9c1f611bb7" + +"@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": + version "2.53.42" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz#74cb77fb6052edaff2a8984ddafd88d419f25cac" + +"@types/vinyl@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.0.tgz#fd213bf7f4136dde21fe1895500b12c186f8c268" dependencies: "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" + +JSONStream@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" + dependencies: + jsonparse "0.0.5" + through ">=2.2.7 <3" abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" -accepts@~1.3.3: +accepts@1.3.3, accepts@~1.3.0, accepts@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" dependencies: mime-types "~2.1.11" negotiator "0.6.1" +accepts@~1.2.12, accepts@~1.2.13: + version "1.2.13" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz#e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea" + dependencies: + mime-types "~2.1.6" + negotiator "0.5.3" + acorn-dynamic-import@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" dependencies: acorn "^4.0.3" -acorn@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^4.0.3, acorn@^4.0.4: +acorn@4.X, acorn@^4.0.3, acorn@^4.0.4: version "4.0.11" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" -add-asset-html-webpack-plugin@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/add-asset-html-webpack-plugin/-/add-asset-html-webpack-plugin-1.0.2.tgz#f22748635fbb27724d54d8f2cd1dedb2bcd18cd0" +adm-zip@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" + +adm-zip@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +agent-base@2: + version "2.0.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" dependencies: - bluebird "^3.3.5" + extend "~3.0.0" + semver "~5.0.1" -ajv-keywords@^1.1.1: +ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" -ajv@^4.7.0: - version "4.11.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.3.tgz#ce30bdb90d1254f762c75af915fb3a63e7183d22" +ajv@^4.11.2, ajv@^4.7.0, ajv@^4.9.1: + version "4.11.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -166,11 +280,13 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -angular2-template-loader@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/angular2-template-loader/-/angular2-template-loader-0.6.0.tgz#8a7fae4cf5a2494968da512aa43152a82a0c99b6" +angular-cli-ghpages@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/angular-cli-ghpages/-/angular-cli-ghpages-0.5.0.tgz#5166e6eb61c1380707e512c7912f991437750c99" dependencies: - loader-utils "^0.2.15" + commander "~2.9.0" + denodeify "~1.2.1" + gh-pages "~0.12.0" ansi-align@^1.1.0: version "1.1.0" @@ -178,10 +294,26 @@ ansi-align@^1.1.0: 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" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -201,10 +333,20 @@ app-root-path@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + aproba@^1.0.3: version "1.1.1" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + are-we-there-yet@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" @@ -228,6 +370,10 @@ arr-flatten@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" @@ -248,13 +394,17 @@ array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" -array-uniq@^1.0.1: +array-uniq@^1.0.1, array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -262,10 +412,18 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" +asap@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + asn1.js@^4.0.0: version "4.9.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" @@ -278,34 +436,20 @@ asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - assert@^1.1.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" dependencies: util "0.10.3" -assets-webpack-plugin@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/assets-webpack-plugin/-/assets-webpack-plugin-3.5.1.tgz#931ce0d66d42e88ed5e7f18d65522943c57a387d" - dependencies: - camelcase "^1.2.1" - escape-string-regexp "^1.0.3" - lodash.assign "^3.2.0" - lodash.merge "^3.3.2" - mkdirp "^0.5.1" - -ast-types@0.9.5: - version "0.9.5" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.5.tgz#1a660a09945dbceb1f9c9cbb715002617424e04a" - async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -314,24 +458,26 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" -async@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.0.tgz#ac3613b1da9bed1b47510bb4651b8931e47146c7" - -async@2.1.2, async@^2.0.1, async@^2.1.2: +async@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" dependencies: lodash "^4.14.0" -async@^0.9.0: +async@^0.9.0, async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" -async@^1.5.2: +async@^1.4.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" +async@^2.0.1, async@^2.1.2, async@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.2.0.tgz#c324eba010a237e4fbd55a12dee86367d5c0ef32" + dependencies: + lodash "^4.14.0" + async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -344,29 +490,17 @@ atob@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" -autoprefixer@^6.3.1: - version "6.7.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.6.tgz#00f05656c7ef73de9d2fd9b4668f6ef6905a855a" +autoprefixer@^6.0.0, autoprefixer@^6.3.1, autoprefixer@^6.5.3: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" dependencies: - browserslist "^1.7.5" - caniuse-db "^1.0.30000628" + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^5.2.15" + postcss "^5.2.16" postcss-value-parser "^3.2.3" -awesome-typescript-loader@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/awesome-typescript-loader/-/awesome-typescript-loader-3.0.4.tgz#71391f1fc10eec1fed561adf8a99289813ff2063" - dependencies: - colors "^1.1.2" - enhanced-resolve "^3.1.0" - loader-utils "^0.2.16" - lodash "^4.17.4" - mkdirp "^0.5.1" - object-assign "^4.1.1" - source-map-support "^0.4.11" - aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -375,7 +509,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.20.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: @@ -383,14 +517,101 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.20.0: esutils "^2.0.2" js-tokens "^3.0.0" -balanced-match@^0.4.1, balanced-match@^0.4.2: +babel-generator@^6.18.0: + version "6.24.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.0.tgz#eba270a8cc4ce6e09a61be43465d7c62c1f87c56" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.23.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + 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: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-template@^6.16.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.18.0, babel-traverse@^6.23.0: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.23.0" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.18.0, babel-types@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0: + version "6.16.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^0.4.0, balanced-match@^0.4.1, balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + base64-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" +base64-url@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-url/-/base64-url-1.2.1.tgz#199fd661702a0e7b7dcae6e0698bb089c52f6d78" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +basic-auth-connect@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz#fdb0b43962ca7b40456a7c2bb48fe173da2d2122" + +basic-auth@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.0.4.tgz#030935b01de7c9b94a824b29f3fccb750d3a5290" + batch@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" @@ -401,6 +622,16 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + big.js@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" @@ -409,24 +640,75 @@ binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" dependencies: inherits "~2.0.0" -bluebird@^2.10.2: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" +blocking-proxy@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-0.0.5.tgz#462905e0dcfbea970f41aa37223dda9c07b1912b" + dependencies: + minimist "^1.2.0" -bluebird@^3.3.5, bluebird@^3.4.7: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" +bluebird@^3.3.0, bluebird@^3.4.7: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" +body-parser@^1.12.4: + version "1.17.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.1.tgz#75b3bc98ddd6e7e0d8ffe750dfaca5c66993fa47" + dependencies: + bytes "2.4.0" + content-type "~1.0.2" + debug "2.6.1" + depd "~1.1.0" + http-errors "~1.6.1" + iconv-lite "0.4.15" + on-finished "~2.3.0" + qs "6.4.0" + raw-body "~2.2.0" + type-is "~1.6.14" + +body-parser@~1.13.3: + version "1.13.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.13.3.tgz#c08cf330c3358e151016a05746f13f029c97fa97" + dependencies: + bytes "2.1.0" + content-type "~1.0.1" + debug "~2.2.0" + depd "~1.0.1" + http-errors "~1.3.1" + iconv-lite "0.4.11" + on-finished "~2.3.0" + qs "4.0.0" + raw-body "~2.1.2" + type-is "~1.6.6" + +body-parser@~1.14.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.14.2.tgz#1015cb1fe2c443858259581db53332f8d0cf50f9" + dependencies: + bytes "2.2.0" + content-type "~1.0.1" + debug "~2.2.0" + depd "~1.1.0" + http-errors "~1.3.1" + iconv-lite "0.4.13" + on-finished "~2.3.0" + qs "5.2.0" + raw-body "~2.1.5" + type-is "~1.6.10" + boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -437,18 +719,16 @@ boom@2.x.x: dependencies: hoek "2.x.x" -boxen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" +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 "^2.1.0" + camelcase "^4.0.0" chalk "^1.1.1" cli-boxes "^1.0.0" - filled-array "^1.0.0" - object-assign "^4.0.1" - repeating "^2.0.0" - string-width "^1.0.1" + string-width "^2.0.0" + term-size "^0.1.0" widest-line "^1.0.0" brace-expansion@^1.0.0: @@ -458,6 +738,12 @@ brace-expansion@^1.0.0: balanced-match "^0.4.1" concat-map "0.0.1" +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + dependencies: + expand-range "^0.1.0" + braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" @@ -521,12 +807,12 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@^1.0.1, browserslist@^1.5.2, browserslist@^1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.5.tgz#eca4713897b51e444283241facf3985de49a9e2b" +browserslist@^1.0.1, browserslist@^1.1.1, browserslist@^1.1.3, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" dependencies: - caniuse-db "^1.0.30000624" - electron-to-chromium "^1.2.3" + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" buffer-shims@^1.0.0: version "1.0.0" @@ -544,6 +830,12 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +bufferstreams@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/bufferstreams/-/bufferstreams-1.1.1.tgz#0161373060ac5988eff99058731114f6e195d51e" + dependencies: + readable-stream "^2.0.2" + builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -552,10 +844,26 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" +bytes@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.1.0.tgz#ac93c410e2ffc9cc7cf4b464b38289067f5e47b4" + +bytes@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.2.0.tgz#fd35464a403f6f9117c2de3609ecff9cae000588" + bytes@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" +bytes@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + camel-case@3.0.x: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" @@ -570,11 +878,11 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase@^1.0.2, camelcase@^1.2.1: +camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" -camelcase@^2.0.0, camelcase@^2.1.0: +camelcase@^2.0.0, camelcase@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" @@ -582,6 +890,10 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +camelcase@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.0.0.tgz#8b0f90d44be5e281b903b9887349b92595ef07f2" + caniuse-api@^1.5.2: version "1.5.3" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.5.3.tgz#5018e674b51c393e4d50614275dc017e27c4a2a2" @@ -591,17 +903,17 @@ caniuse-api@^1.5.2: lodash.memoize "^4.1.0" lodash.uniq "^4.3.0" -caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000624, caniuse-db@^1.0.30000628: - version "1.0.30000631" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000631.tgz#8aa6f65cff452c4aba1c2aaa1e724102fbb9114f" +caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000641" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000641.tgz#4810fc75fbb3f5b3bd75c2d6a94d894a7c709873" 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" center-align@^0.1.1: version "0.1.3" @@ -610,7 +922,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@*, chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -620,7 +932,17 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chokidar@^1.4.3, chokidar@^1.6.0: +chalk@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + +chokidar@^1.4.1, chokidar@^1.4.3, chokidar@^1.6.0: version "1.6.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: @@ -642,14 +964,14 @@ cipher-base@^1.0.0, cipher-base@^1.0.1: inherits "^2.0.1" clap@^1.0.9: - version "1.1.2" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.2.tgz#316545bf22229225a2cecaa6824cd2f56a9709ed" + version "1.1.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.3.tgz#b3bd36e93dd4cbfb395a3c26896352445265c05b" dependencies: chalk "^1.1.3" -clean-css@4.0.x: - version "4.0.8" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.8.tgz#063dfd593404d3a3d1db494d4b6d0f378b0781b6" +clean-css@4.0.x, clean-css@^4.0.9: + version "4.0.10" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.10.tgz#6be448d6ba8c767654ebe11f158b97a887cb713f" dependencies: source-map "0.5.x" @@ -657,6 +979,16 @@ 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" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -665,7 +997,7 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" -cliui@^3.2.0: +cliui@^3.0.3, cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" dependencies: @@ -673,7 +1005,22 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -clone@^1.0.2: +clone-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.0.tgz#eae0a2413f55c0942f818c229fefce845d7f3b1c" + dependencies: + is-regexp "^1.0.0" + is-supported-regexp-flag "^1.0.0" + +clone-stats@^0.0.1, clone-stats@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" @@ -691,13 +1038,14 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" -codelyzer@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-2.0.0.tgz#212b9182ba9fe0fee325f08781b0d49521a1c987" +codelyzer@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-2.0.1.tgz#d0f7121f67a8424c92d21d3b31f3640b83def9ed" dependencies: app-root-path "^2.0.1" css-selector-tokenizer "^0.7.0" cssauron "^1.4.0" + semver-dsl "^1.0.1" source-map "^0.5.6" sprintf-js "^1.0.3" @@ -713,9 +1061,13 @@ color-convert@^1.3.0: dependencies: color-name "^1.1.1" +color-diff@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/color-diff/-/color-diff-0.1.7.tgz#6db78cd9482a8e459d40821eaf4b503283dcb8e2" + color-name@^1.0.0, color-name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + version "1.1.2" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" color-string@^0.3.0: version "0.3.0" @@ -731,6 +1083,21 @@ color@^0.11.0: color-convert "^1.3.0" color-string "^0.3.0" +colorguard@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/colorguard/-/colorguard-1.2.0.tgz#f3facaf5caaeba4ef54653d9fb25bb73177c0d84" + dependencies: + chalk "^1.1.1" + color-diff "^0.1.3" + log-symbols "^1.0.2" + object-assign "^4.0.1" + pipetteur "^2.0.0" + plur "^2.0.0" + postcss "^5.0.4" + postcss-reporter "^1.2.1" + text-table "^0.2.0" + yargs "^1.2.6" + colormin@^1.0.5: version "1.1.2" resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" @@ -739,31 +1106,55 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -colors@^1.1.2, colors@~1.1.2: +colors@1.1.2, colors@^1.1.0, colors@^1.1.2, colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" +combine-lists@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + dependencies: + lodash "^4.5.0" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" dependencies: delayed-stream "~1.0.0" -commander@2.9.0, commander@2.9.x, commander@^2.9.0: +commander@2.9.0, commander@2.9.x, commander@~2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" -compressible@~2.0.8: - version "2.0.9" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" +common-tags@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" + dependencies: + babel-runtime "^6.18.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +compressible@~2.0.5, compressible@~2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.10.tgz#feda1c7f7617912732b29bf8cf26252a20b9eecd" dependencies: - mime-db ">= 1.24.0 < 2" + mime-db ">= 1.27.0 < 2" compression@^1.5.2: version "1.6.2" @@ -776,36 +1167,94 @@ compression@^1.5.2: on-headers "~1.0.1" vary "~1.1.0" +compression@~1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.5.2.tgz#b03b8d86e6f8ad29683cba8df91ddc6ffc77b395" + dependencies: + accepts "~1.2.12" + bytes "2.1.0" + compressible "~2.0.5" + debug "~2.2.0" + on-headers "~1.0.0" + vary "~1.0.1" + 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.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" +configstore@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.0.0.tgz#e1b8669c1803ccc50b545e92f8e6e79aa80e0196" dependencies: - dot-prop "^3.0.0" + dot-prop "^4.1.0" graceful-fs "^4.1.2" mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" + unique-string "^1.0.0" write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" + 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" +connect-livereload@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/connect-livereload/-/connect-livereload-0.5.4.tgz#80157d1371c9f37cc14039ab1895970d119dc3bc" + +connect-timeout@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/connect-timeout/-/connect-timeout-1.6.2.tgz#de9a5ec61e33a12b6edaab7b5f062e98c599b88e" + dependencies: + debug "~2.2.0" + http-errors "~1.3.1" + ms "0.7.1" + on-headers "~1.0.0" + +connect@^2.30.0: + version "2.30.2" + resolved "https://registry.yarnpkg.com/connect/-/connect-2.30.2.tgz#8da9bcbe8a054d3d318d74dfec903b5c39a1b609" + dependencies: + basic-auth-connect "1.0.0" + body-parser "~1.13.3" + bytes "2.1.0" + compression "~1.5.2" + connect-timeout "~1.6.2" + content-type "~1.0.1" + cookie "0.1.3" + cookie-parser "~1.3.5" + cookie-signature "1.0.6" + csurf "~1.8.3" + debug "~2.2.0" + depd "~1.0.1" + errorhandler "~1.4.2" + express-session "~1.11.3" + finalhandler "0.4.0" + fresh "0.3.0" + http-errors "~1.3.1" + method-override "~2.3.5" + morgan "~1.6.1" + multiparty "3.3.2" + on-headers "~1.0.0" + parseurl "~1.3.0" + pause "0.1.0" + qs "4.0.0" + response-time "~2.3.1" + serve-favicon "~2.3.0" + serve-index "~1.7.2" + serve-static "~1.10.0" + type-is "~1.6.6" + utils-merge "1.0.0" + vhost "~3.0.1" + +connect@^3.3.5: + version "3.6.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.0.tgz#f09a4f7dcd17324b663b725c815bdb1c4158a46e" + dependencies: + debug "2.6.1" + finalhandler "1.0.0" + parseurl "~1.3.1" + utils-merge "1.0.0" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -824,40 +1273,34 @@ content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" -content-type@~1.0.2: +content-type@~1.0.1, content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" -convert-source-map@^0.3.3: - version "0.3.5" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" - -convert-source-map@^1.1.1: +convert-source-map@1.X, convert-source-map@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" +cookie-parser@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.3.5.tgz#9d755570fb5d17890771227a02314d9be7cf8356" + dependencies: + cookie "0.1.3" + cookie-signature "1.0.6" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" +cookie@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.3.tgz#e734a5c1417fce472d5aef82c381cabb64d1a435" + cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" -copy-webpack-plugin@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.0.1.tgz#9728e383b94316050d0c7463958f2b85c0aa8200" - dependencies: - bluebird "^2.10.2" - fs-extra "^0.26.4" - glob "^6.0.4" - is-glob "^3.1.0" - loader-utils "^0.2.15" - lodash "^4.3.0" - minimatch "^3.0.0" - node-dir "^0.1.10" - -core-js@2.4.1: +core-js@2.4.1, core-js@^2.2.0, core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" @@ -865,11 +1308,7 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -corser@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" - -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: +cosmiconfig@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.1.tgz#817f2c2039347a1e9bf7d090c0923e53f749ca82" dependencies: @@ -880,6 +1319,10 @@ cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: parse-json "^2.2.0" require-from-string "^1.1.0" +crc@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.3.0.tgz#fa622e1bc388bf257309082d6b65200ce67090ba" + create-ecdh@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" @@ -887,7 +1330,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-error-class@^3.0.1: +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: @@ -909,6 +1352,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" @@ -945,18 +1395,34 @@ 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" + +csrf@~3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/csrf/-/csrf-3.0.6.tgz#b61120ddceeafc91e76ed5313bb5c0b2667b710a" + dependencies: + rndm "1.2.0" + tsscmp "1.0.5" + uid-safe "2.1.4" + +css-color-names@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.3.tgz#de0cef16f4d8aa8222a320d5b6d7e9bbada7b9f6" + 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" -css-loader@0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.1.tgz#2ba7f20131b93597496b3e9bb500785a49cd29ea" +css-loader@^0.26.1: + version "0.26.4" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.4.tgz#b61e9e30db94303e6ffc892f10ecd09ad025a1fd" dependencies: babel-code-frame "^6.11.0" css-selector-tokenizer "^0.7.0" cssnano ">=2.6.1 <4" - loader-utils "~0.2.2" + loader-utils "^1.0.2" lodash.camelcase "^4.3.0" object-assign "^4.0.1" postcss "^5.0.6" @@ -964,7 +1430,20 @@ css-loader@0.26.1: postcss-modules-local-by-default "^1.0.1" postcss-modules-scope "^1.0.0" postcss-modules-values "^1.1.0" - source-list-map "^0.1.4" + source-list-map "^0.1.7" + +css-parse@1.7.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" + +css-rule-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-rule-stream/-/css-rule-stream-1.1.0.tgz#3786e7198983d965a26e31957e09078cbb7705a2" + dependencies: + css-tokenize "^1.0.1" + duplexer2 "0.0.2" + ldjson-stream "^1.2.1" + through2 "^0.6.3" css-select@^1.1.0: version "1.2.0" @@ -991,11 +1470,18 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-tokenize@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-tokenize/-/css-tokenize-1.0.1.tgz#4625cb1eda21c143858b7f81d6803c1d26fc14be" + dependencies: + inherits "^2.0.1" + readable-stream "^1.0.33" + css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" -css@^2.0.0: +css@2.X: version "2.2.1" resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" dependencies: @@ -1014,7 +1500,7 @@ cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -"cssnano@>=2.6.1 <4": +"cssnano@>=2.6.1 <4", cssnano@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" dependencies: @@ -1052,18 +1538,31 @@ cssesc@^0.1.0: postcss-zindex "^2.0.1" csso@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.1.tgz#4f8d91a156f2f1c2aebb40b8fb1b5eb83d94d3b9" + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" dependencies: clap "^1.0.9" source-map "^0.5.3" +csurf@~1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/csurf/-/csurf-1.8.3.tgz#23f2a13bf1d8fce1d0c996588394442cba86a56a" + dependencies: + cookie "0.1.3" + cookie-signature "1.0.6" + csrf "~3.0.0" + http-errors "~1.3.1" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" dependencies: array-find-index "^1.0.1" +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1074,18 +1573,49 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@2.6.1, debug@^2.2.0, debug@^2.3.3: - version "2.6.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" +dateformat@^1.0.7-1.2.3: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +dateformat@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" + +debug-fabulous@0.0.X: + version "0.0.4" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-0.0.4.tgz#fa071c5d87484685424807421ca4b16b0b1a0763" + dependencies: + debug "2.X" + lazy-debug-legacy "0.0.X" + object-assign "4.1.0" + +debug@*, debug@2, debug@2.6.3, debug@2.X, debug@^2.1.3, debug@^2.2.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" dependencies: ms "0.7.2" -debug@~2.2.0: +debug@2.2.0, debug@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: ms "0.7.1" +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + 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" @@ -1094,6 +1624,18 @@ deep-extend@~0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" @@ -1105,6 +1647,18 @@ defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" +del@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1113,10 +1667,22 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" +denodeify@^1.2.1, denodeify@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" + depd@1.1.0, depd@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" +depd@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.0.1.tgz#80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -1128,6 +1694,26 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + dependencies: + fs-exists-sync "^0.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-newline@2.X: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + diff@^3.0.1, diff@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" @@ -1140,12 +1726,53 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +directory-encoder@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/directory-encoder/-/directory-encoder-0.7.2.tgz#59b4e2aa4f25422f6c63b527b462f5e2d0dd2c58" + dependencies: + fs-extra "^0.23.1" + handlebars "^1.3.0" + img-stats "^0.5.2" + +doctrine@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" + dependencies: + esutils "^1.1.6" + isarray "0.0.1" + +doiuse@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/doiuse/-/doiuse-2.6.0.tgz#1892d10b61a9a356addbf2b614933e81f8bb3834" + dependencies: + browserslist "^1.1.1" + caniuse-db "^1.0.30000187" + css-rule-stream "^1.1.0" + duplexer2 "0.0.2" + jsonfilter "^1.1.2" + ldjson-stream "^1.2.1" + lodash "^4.0.0" + multimatch "^2.0.0" + postcss "^5.0.8" + source-map "^0.4.2" + through2 "^0.6.3" + yargs "^3.5.4" + dom-converter@~0.1: version "0.1.4" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" dependencies: utila "~0.3" +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" @@ -1184,44 +1811,48 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" +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" -duplexer2@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" dependencies: - readable-stream "^2.0.2" + readable-stream "~1.1.9" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" +duplexify@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" + dependencies: + end-of-stream "1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" dependencies: jsbn "~0.1.0" -ecstatic@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-1.4.1.tgz#32cb7b6fa2e290d58668674d115e8f0c3d567d6a" - dependencies: - he "^0.5.0" - mime "^1.2.11" - minimist "^1.1.0" - url-join "^1.0.0" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.5.tgz#d373727228843dfd8466c276089f13b40927a952" +electron-to-chromium@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.8.tgz#22c2e6200d350da27d6050db7e3f6f85d18cf4ed" elliptic@^6.0.0: version "6.4.0" @@ -1235,6 +1866,16 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +ember-cli-normalize-entity-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz#0b14f7bcbc599aa117b5fddc81e4fd03c4bad5b7" + dependencies: + silent-error "^1.0.0" + +ember-cli-string-utils@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -1243,6 +1884,57 @@ 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.0.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" + dependencies: + once "~1.3.0" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + +engine.io-client@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.2.tgz#c38767547f2a7d184f5752f6f0ad501006703766" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.1" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + +engine.io@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.2.tgz#6b59be730b348c0125b0a4589de1c355abcf7a7e" + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.1" + enhanced-resolve@^3.0.0, enhanced-resolve@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec" @@ -1252,22 +1944,37 @@ enhanced-resolve@^3.0.0, enhanced-resolve@^3.1.0: object-assign "^4.0.1" tapable "^0.2.5" +ensure-posix-path@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz#a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.3: +errno@^0.1.1, errno@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" dependencies: prr "~0.0.0" error-ex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" +errorhandler@~1.4.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.4.3.tgz#b7b70ed8f359e9db88092f2d20c0f831420ad83f" + dependencies: + accepts "~1.3.0" + escape-html "~1.0.3" + es-abstract@^1.4.3: version "1.7.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" @@ -1285,25 +1992,15 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" -es6-promise@4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" - -es6-shim@0.35.3: - version "0.35.3" - resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26" - -es7-reflect-metadata@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/es7-reflect-metadata/-/es7-reflect-metadata-1.6.0.tgz#3c318e995b03a02e95f6390b7e8064b3987c70a2" - dependencies: - reflect-metadata "0.1.2" +escape-html@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.2.tgz#d77d32fa98e38c2f41ae85e9278e0e0e6ba1022c" escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3: +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1311,23 +2008,27 @@ esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@^3.1.1, esprima@~3.1.0: +esprima@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" -estree-walker@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" +esutils@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +etag@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + etag@~1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" -event-stream@~3.3.0: +event-stream@^3.3.2, event-stream@~3.3.0: version "3.3.4" resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" dependencies: @@ -1359,32 +2060,84 @@ 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" + +execall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" + dependencies: + clone-regexp "^1.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +expand-braces@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" dependencies: is-posix-bracket "^0.1.0" +expand-range@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" dependencies: fill-range "^2.1.0" -exports-loader@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.3.tgz#57dc78917f709b96f247fa91e69b554c855013c8" +expand-tilde@^1.2.1, expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" dependencies: - loader-utils "0.2.x" - source-map "0.1.x" + os-homedir "^1.0.1" + +exports-loader@^0.6.3: + version "0.6.4" + resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.4.tgz#d70fc6121975b35fc12830cf52754be2740fc886" + dependencies: + loader-utils "^1.0.2" + source-map "0.5.x" -expose-loader@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51" +express-session@~1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.11.3.tgz#5cc98f3f5ff84ed835f91cbf0aabd0c7107400af" + dependencies: + cookie "0.1.3" + cookie-signature "1.0.6" + crc "3.3.0" + debug "~2.2.0" + depd "~1.0.1" + on-headers "~1.0.0" + parseurl "~1.3.0" + uid-safe "~2.0.0" + utils-merge "1.0.0" express@^4.13.3: - version "4.15.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.15.0.tgz#8fb125829f70a04a59e1c40ceb8dea19cf5c879c" + version "4.15.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.15.2.tgz#af107fc148504457f2dca9a6f2571d7129b97b35" dependencies: accepts "~1.3.3" array-flatten "1.1.1" @@ -1405,35 +2158,57 @@ express@^4.13.3: parseurl "~1.3.1" path-to-regexp "0.1.7" proxy-addr "~1.1.3" - qs "6.3.1" + qs "6.4.0" range-parser "~1.2.0" - send "0.15.0" - serve-static "1.12.0" + send "0.15.1" + serve-static "1.12.1" setprototypeof "1.0.3" statuses "~1.3.1" type-is "~1.6.14" utils-merge "1.0.0" vary "~1.1.0" -extend@~3.0.0: +extend@3, extend@^3.0.0, extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" +external-editor@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.1.tgz#4c597c6c88fa6410e41dbbaa7b1be2336aa31095" + dependencies: + tmp "^0.0.31" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" dependencies: is-extglob "^1.0.0" +extract-text-webpack-plugin@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.0.0.tgz#8640f72609800a3528f13a2a9634d566a5c1ae60" + dependencies: + ajv "^4.11.2" + async "^2.1.2" + loader-utils "^1.0.2" + webpack-sources "^0.1.0" + extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +fancy-log@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" -faye-websocket@^0.10.0: +faye-websocket@^0.10.0, faye-websocket@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" dependencies: @@ -1445,16 +2220,29 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -file-loader@0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.0.tgz#bbe6db7474ac92c7f54fdc197cf547e98b6b8e12" +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-loader@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.1.tgz#815034119891fc6441fb5a64c11bc93c22ddd842" dependencies: - loader-utils "~0.2.5" + loader-utils "^1.0.2" filename-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -1465,11 +2253,16 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -filled-array@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" +finalhandler@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.0.tgz#965a52d9e8d05d2b857548541fb89b53a2497d9b" + dependencies: + debug "~2.2.0" + escape-html "1.0.2" + on-finished "~2.3.0" + unpipe "~1.0.0" -finalhandler@~1.0.0: +finalhandler@1.0.0, finalhandler@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.0.tgz#b5691c2c0912092f18ac23e9416bde5cd7dc6755" dependencies: @@ -1481,9 +2274,13 @@ finalhandler@~1.0.0: statuses "~1.3.1" unpipe "~1.0.0" -find-root@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + +find-parent-dir@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" find-up@^1.0.0: version "1.1.2" @@ -1492,12 +2289,41 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +findup-sync@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + findup-sync@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" dependencies: glob "~5.0.0" +fined@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.0.2.tgz#5b28424b760d7598960b7ef8480dff8ad3660e97" + dependencies: + expand-tilde "^1.2.1" + lodash.assignwith "^4.0.7" + lodash.isempty "^4.2.1" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.pick "^4.2.1" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" @@ -1520,6 +2346,10 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" +fork-stream@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/fork-stream/-/fork-stream-0.0.4.tgz#db849fce77f6708a5f8f386ae533a0907b54ae70" + form-data@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" @@ -1532,24 +2362,44 @@ forwarded@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" +fresh@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + fresh@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" from@~0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.3.tgz#ef63ac2062ac32acf7862e0d40b44b896f22f3bc" + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + +fs-access@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + dependencies: + null-check "^1.0.0" + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" -fs-extra@^0.26.4: - version "0.26.7" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" +fs-extra@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.23.1.tgz#6611dba6adf2ab8dc9c69fab37cddf8818157e3d" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" - klaw "^1.0.0" path-is-absolute "^1.0.0" rimraf "^2.2.8" +fs-extra@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1561,7 +2411,7 @@ fsevents@^1.0.0: nan "^2.3.0" node-pre-gyp "^0.6.29" -fstream-ignore@~1.0.5: +fstream-ignore@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" dependencies: @@ -1569,9 +2419,9 @@ fstream-ignore@~1.0.5: inherits "2" minimatch "^3.0.0" -fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" @@ -1582,6 +2432,10 @@ function-bind@^1.0.2, function-bind@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" +gather-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b" + gauge@~2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09" @@ -1595,23 +2449,19 @@ gauge@~2.7.1: strip-ansi "^3.0.1" wide-align "^1.1.0" +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + gaze@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" 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.1: +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" @@ -1619,13 +2469,21 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" -getpass@^0.1.1: +get-stdin@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +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" dependencies: assert-plus "^1.0.0" -gh-pages@0.12.0: +gh-pages@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-0.12.0.tgz#d951e3ed98b85699d4b0418eb1a15b1a04988dc1" dependencies: @@ -1650,17 +2508,50 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@7.0.x: + version "7.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "2 || 3" + minimatch "^3.0.2" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1: +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -1671,6 +2562,14 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + glob@~5.0.0: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" @@ -1681,7 +2580,38 @@ glob@~5.0.0: once "^1.3.0" path-is-absolute "^1.0.0" -globby@^6.1.0: +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +globals@^9.0.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.0.0, globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" dependencies: @@ -1691,6 +2621,10 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + globule@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f" @@ -1699,50 +2633,242 @@ globule@^1.0.0: lodash "~4.16.4" minimatch "~3.0.2" -got@^5.0.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" dependencies: - create-error-class "^3.0.1" - duplexer2 "^0.1.4" + sparkles "^1.0.0" + +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" - node-status-codes "^1.0.0" - object-assign "^4.0.1" - parse-json "^2.1.0" - pinkie-promise "^2.0.0" - read-all-stream "^3.0.0" - readable-stream "^2.0.5" - timed-out "^3.0.0" - unzip-response "^1.0.2" + 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.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@4.1.10: version "4.1.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" -graceful-fs@^4.1.11: +graceful-fs@4.X, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +gulp-better-rollup@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/gulp-better-rollup/-/gulp-better-rollup-1.1.1.tgz#21b114d0c1cd9cdaf06a539c7c399b8b6035216f" + dependencies: + gulp-util "^3.0.8" + lodash.camelcase "^4.3.0" + rollup "^0.41.5" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-clean-css@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-3.0.4.tgz#0c5ad8d045407c88f3c2b9f03570963967dcfd54" + dependencies: + clean-css "^4.0.9" + gulp-util "^3.0.8" + through2 "^2.0.3" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-clean@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/gulp-clean/-/gulp-clean-0.3.2.tgz#a347d473acea40182f935587a451941671928102" + dependencies: + gulp-util "^2.2.14" + rimraf "^2.2.8" + through2 "^0.4.2" + +gulp-connect@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gulp-connect/-/gulp-connect-5.0.0.tgz#f2fdf306ae911468368c2285f2d782f13eddaf4e" + dependencies: + connect "^2.30.0" + connect-livereload "^0.5.4" + event-stream "^3.3.2" + gulp-util "^3.0.6" + tiny-lr "^0.2.1" + +gulp-htmlmin@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-htmlmin/-/gulp-htmlmin-3.0.0.tgz#19ea8002d1231d6b1f18a12d20f2a66a77770fb3" + dependencies: + bufferstreams "^1.1.0" + gulp-util "^3.0.7" + html-minifier "^3.0.3" + object-assign "^4.0.1" + readable-stream "^2.0.2" + tryit "^1.0.1" + +gulp-if@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/gulp-if/-/gulp-if-2.0.2.tgz#a497b7e7573005041caa2bc8b7dda3c80444d629" + dependencies: + gulp-match "^1.0.3" + ternary-stream "^2.0.1" + through2 "^2.0.1" + +gulp-match@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/gulp-match/-/gulp-match-1.0.3.tgz#91c7c0d7f29becd6606d57d80a7f8776a87aba8e" + dependencies: + minimatch "^3.0.3" + +gulp-sass@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-3.1.0.tgz#53dc4b68a1f5ddfe4424ab4c247655269a8b74b7" + dependencies: + gulp-util "^3.0" + lodash.clonedeep "^4.3.2" + node-sass "^4.2.0" + through2 "^2.0.0" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-sourcemaps@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.4.1.tgz#8f65dc5c0d07b2fd5c88bc60ec7f13e56716bf74" + dependencies: + acorn "4.X" + convert-source-map "1.X" + css "2.X" + debug-fabulous "0.0.X" + detect-newline "2.X" + graceful-fs "4.X" + source-map "0.X" + strip-bom "3.X" + through2 "2.X" + vinyl "1.X" + +gulp-util@*, gulp-util@^3.0, gulp-util@^3.0.0, gulp-util@^3.0.6, gulp-util@^3.0.7, gulp-util@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp-util@^2.2.14: + version "2.2.20" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-2.2.20.tgz#d7146e5728910bd8f047a6b0b1e549bc22dbd64c" + dependencies: + chalk "^0.5.0" + dateformat "^1.0.7-1.2.3" + lodash._reinterpolate "^2.4.1" + lodash.template "^2.4.1" + minimist "^0.2.0" + multipipe "^0.1.0" + through2 "^0.5.0" + vinyl "^0.2.1" + +gulp@3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + handle-thing@^1.2.4: version "1.2.5" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" +handlebars@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-1.3.0.tgz#9e9b130a93e389491322d975cf3ec1818c37ce34" dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" + optimist "~0.3" + optionalDependencies: + uglify-js "~2.3" + +handlebars@^4.0.3: + version "4.0.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +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@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + dependencies: + ansi-regex "^0.2.0" has-ansi@^2.0.0: version "2.0.0" @@ -1750,10 +2876,26 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -1783,13 +2925,9 @@ he@1.1.x: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" -he@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/he/-/he-0.5.0.tgz#2c05ffaef90b68e860f3fd2b54ef580989277ee2" - -highlight.js@9.9.0: - version "9.9.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.9.0.tgz#b9995dcfdc2773e307a34f0460d92b9a474782c0" +highlight.js@9.10.0: + version "9.10.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.10.0.tgz#f9f0b14c0be00f0e4fb1e577b749fed9e6f52f55" hmac-drbg@^1.0.0: version "1.0.0" @@ -1803,9 +2941,15 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" +homedir-polyfill@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + hosted-git-info@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5" + version "2.4.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.1.tgz#4b0445e41c004a8bd1337773a4ff790ca40318c8" hpack.js@^2.1.6: version "2.1.6" @@ -1820,9 +2964,13 @@ html-comment-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" -html-minifier@^3.2.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.4.0.tgz#80f236b7374d70f017fecaac42d37bb1170d2975" +html-entities@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" + +html-minifier@^3.0.3, html-minifier@^3.2.3: + version "3.4.2" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.4.2.tgz#31896baaf735c1d95f7a0b7291f9dc36c0720752" dependencies: camel-case "3.0.x" clean-css "4.0.x" @@ -1833,7 +2981,11 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "2.8.x" -html-webpack-plugin@2.28.0: +html-tags@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.1.1.tgz#869f43859f12d9bdc3892419e494a628aa1b204e" + +html-webpack-plugin@^2.19.0: version "2.28.0" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz#2e7863b57e5fd48fe263303e2ffc934c3064d009" dependencies: @@ -1857,6 +3009,13 @@ http-deceiver@^1.2.4: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" +http-errors@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942" + dependencies: + inherits "~2.0.1" + statuses "1" + http-errors@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" @@ -1875,34 +3034,21 @@ http-errors@~1.6.1: statuses ">= 1.3.1 < 2" http-proxy-middleware@~0.17.1: - version "0.17.3" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.3.tgz#940382147149b856084f5534752d5b5a8168cd1d" + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" dependencies: http-proxy "^1.16.2" is-glob "^3.1.0" lodash "^4.17.2" micromatch "^2.3.11" -http-proxy@^1.16.2, http-proxy@^1.8.1: +http-proxy@^1.13.0, http-proxy@^1.16.2: version "1.16.2" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" dependencies: eventemitter3 "1.x.x" requires-port "1.x.x" -http-server@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.9.0.tgz#8f1b06bdc733618d4dc42831c7ba1aff4e06001a" - dependencies: - colors "1.0.3" - corser "~2.0.0" - ecstatic "^1.4.0" - http-proxy "^1.8.1" - opener "~1.4.0" - optimist "0.6.x" - portfinder "0.4.x" - union "~0.4.3" - http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -1915,24 +3061,47 @@ https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +https-proxy-agent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + +iconv-lite@0.4.11: + version "0.4.11" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.11.tgz#2ecb42fd294744922209a2e7c404dac8793d8ade" + +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + +iconv-lite@0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" + icss-replace-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" -ie-shim@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ie-shim/-/ie-shim-0.1.0.tgz#d329de228e7dfe656feaea3e20748ef095363c5d" - ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -imports-loader@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.7.0.tgz#468c04de8075941cfab28146c755c24cc1f36ccd" +ignore@^3.2.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.6.tgz#26e8da0644be0bb4cb39516f6c79f0e0f4ffe48c" + +image-size@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.1.tgz#28eea8548a4b1443480ddddc1e083ae54652439f" + +img-stats@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/img-stats/-/img-stats-0.5.2.tgz#c203496c42f2d9eb2e5ab8232fa756bab32c9e2b" dependencies: - loader-utils "^0.2.16" - source-map "^0.5.6" + xmldom "^0.1.19" imurmurhash@^0.1.4: version "0.1.4" @@ -1956,6 +3125,10 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" +inflection@^1.7.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1963,7 +3136,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -1971,26 +3148,61 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@~1.3.0: +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: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + interpret@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" +invariant@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ipaddr.js@1.2.0: +ipaddr.js@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" + +irregular-plurals@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac" is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" +is-absolute@^0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" + dependencies: + is-relative "^0.2.1" + is-windows "^0.2.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2002,8 +3214,8 @@ is-binary-path@^1.0.0: binary-extensions "^1.0.0" is-buffer@^1.0.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" is-builtin-module@^1.0.0: version "1.0.0" @@ -2053,6 +3265,10 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -2065,19 +3281,14 @@ 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" + is-number@^2.0.2, is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -2088,6 +3299,22 @@ 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" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -2100,9 +3327,9 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" is-redirect@^1.0.0: version "1.0.0" @@ -2114,14 +3341,28 @@ is-regex@^1.0.3: dependencies: has "^1.0.1" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + +is-relative@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" + dependencies: + is-unc-path "^0.1.1" + 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.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-supported-regexp-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz#8b520c85fae7a253382d4b02652e045576e13bb8" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" @@ -2136,10 +3377,20 @@ is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" +is-unc-path@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" + dependencies: + unc-path-regex "^0.1.0" + is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -2148,9 +3399,13 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" +isbinaryfile@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" isobject@^2.0.0: version "2.1.0" @@ -2162,13 +3417,106 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" +istanbul-api@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.7.tgz#f6f37f09f8002b130f891c646b70ee4a8e7345ae" + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.0.2" + istanbul-lib-hook "^1.0.5" + istanbul-lib-instrument "^1.7.0" + istanbul-lib-report "^1.0.0" + istanbul-lib-source-maps "^1.1.1" + istanbul-reports "^1.0.2" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-instrumenter-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-2.0.0.tgz#e5492900ab0bba835efa8024cb00be9b3eea2700" + dependencies: + convert-source-map "^1.3.0" + istanbul-lib-instrument "^1.1.3" + loader-utils "^0.2.16" + object-assign "^4.1.0" + +istanbul-lib-coverage@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.2.tgz#87a0c015b6910651cb3b184814dfb339337e25e1" + +istanbul-lib-hook@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.5.tgz#6ca3d16d60c5f4082da39f7c5cd38ea8a772b88e" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.1.3, istanbul-lib-instrument@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.0.tgz#b8e0dc25709bb44e17336ab47b7bb5c97c23f659" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.13.0" + istanbul-lib-coverage "^1.0.2" + semver "^5.3.0" + +istanbul-lib-report@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0.tgz#d83dac7f26566b521585569367fe84ccfc7aaecb" + dependencies: + istanbul-lib-coverage "^1.0.2" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.1.1.tgz#f8c8c2e8f2160d1d91526d97e5bd63b2079af71c" + dependencies: + istanbul-lib-coverage "^1.0.2" + mkdirp "^0.5.1" + rimraf "^2.4.4" + source-map "^0.5.3" + +istanbul-reports@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.2.tgz#4e8366abe6fa746cc1cd6633f108de12cc6ac6fa" + dependencies: + handlebars "^4.0.3" + +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.2.0" + resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-3.2.0.tgz#fdbe85a80ccdd3b276746bc77fde83c1ce773eff" + dependencies: + colors "1.1.2" + +jasmine@^2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.5.3.tgz#5441f254e1fc2269deb1dfd93e0e57d565ff4d22" + dependencies: + exit "^0.1.2" + glob "^7.0.6" + jasmine-core "~2.5.2" + +jasminewd2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.0.0.tgz#10aacd2c588c1ceb6a0b849f1a7f3f959f777c91" + jodid25519@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" dependencies: jsbn "~0.1.0" -js-base64@^2.1.9: +js-base64@^2.1.5, js-base64@^2.1.9: version "2.1.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" @@ -2176,9 +3524,9 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@^3.4.3: - version "3.8.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.1.tgz#782ba50200be7b9e5a8537001b7804db3ad02628" +js-yaml@^3.4.3, js-yaml@^3.7.0: + version "3.8.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721" dependencies: argparse "^1.0.7" esprima "^3.1.1" @@ -2194,11 +3542,15 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-loader@0.5.4, json-loader@^0.5.4: +json-loader@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" @@ -2216,7 +3568,7 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json3@^3.3.2: +json3@3.3.2, json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" @@ -2224,53 +3576,142 @@ json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -jsonfile@^2.1.0, jsonfile@^2.4.0: +jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" optionalDependencies: graceful-fs "^4.1.6" +jsonfilter@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/jsonfilter/-/jsonfilter-1.1.2.tgz#21ef7cedc75193813c75932e96a98be205ba5a11" + dependencies: + JSONStream "^0.8.4" + minimist "^1.1.0" + stream-combiner "^0.2.1" + through2 "^0.6.3" + 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" +jsonparse@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-0.0.5.tgz#330542ad3f0a654665b778f3eb2d9a9fa507ac64" jsprim@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" dependencies: + assert-plus "1.0.0" extsprintf "1.0.2" json-schema "0.2.3" verror "1.3.6" -kind-of@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" +karma-chrome-launcher@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.0.0.tgz#c2790c5a32b15577d0fff5a4d5a2703b3b439c25" + dependencies: + fs-access "^1.0.0" + which "^1.2.1" + +karma-cli@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" + dependencies: + resolve "^1.1.6" + +karma-coverage-istanbul-reporter@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-0.2.3.tgz#11f1be9cfa93755a77bac39ab16e315a7100b5c5" + dependencies: + istanbul-api "^1.1.1" + +karma-jasmine-html-reporter@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz#48a8e5ef18807617ee2b5e33c1194c35b439524c" + dependencies: + karma-jasmine "^1.0.2" + +karma-jasmine@1.1.0, karma-jasmine@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" + +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" + dependencies: + graceful-fs "^4.1.2" + +karma-webpack@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.3.tgz#39cebf5ca2580139b27f9ae69b78816b9c82fae6" + dependencies: + async "~0.9.0" + loader-utils "^0.2.5" + lodash "^3.8.0" + source-map "^0.1.41" + webpack-dev-middleware "^1.0.11" + +karma@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.4.1.tgz#41981a71d54237606b0a3ea8c58c90773f41650e" + dependencies: + bluebird "^3.3.0" + body-parser "^1.12.4" + chokidar "^1.4.1" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.3.5" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^3.8.0" + log4js "^0.6.31" + mime "^1.3.4" + minimatch "^3.0.0" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.3.3" + safe-buffer "^5.0.1" + socket.io "1.7.2" + source-map "^0.5.3" + tmp "0.0.28" + useragent "^2.1.10" + +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" +known-css-properties@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.0.6.tgz#71a0b8fde1b6e3431c471efbc3d9733faebbcfbf" -latest-version@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" +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 "^2.0.0" + 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@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" +lazy-debug-legacy@0.0.X: + version "0.0.1" + resolved "https://registry.yarnpkg.com/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz#537716c0776e4cf79e3ed1b621f7658c2911b1b1" + +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" @@ -2278,6 +3719,50 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +ldjson-stream@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ldjson-stream/-/ldjson-stream-1.2.1.tgz#91beceda5ac4ed2b17e649fb777e7abfa0189c2b" + dependencies: + split2 "^0.2.1" + through2 "^0.6.1" + +less-loader@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-2.2.3.tgz#b6d8f8139c8493df09d992a93a00734b08f84528" + dependencies: + loader-utils "^0.2.5" + +less@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.2.11" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.72.0" + source-map "^0.5.3" + +liftoff@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + fined "^1.0.1" + flagged-respawn "^0.3.2" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.mapvalues "^4.4.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +livereload-js@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.2.2.tgz#6c87257e648ab475bc24ea257457edcc1f8d0bc2" + 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" @@ -2297,11 +3782,11 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.0.0" -loader-runner@^2.2.0: +loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" -loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5: +loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.5, loader-utils@^0.2.9, loader-utils@~0.2.2: version "0.2.17" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" dependencies: @@ -2310,75 +3795,125 @@ loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.15, loader-utils@^0. json5 "^0.5.0" object-assign "^4.0.1" -lodash._arraycopy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" - -lodash._arrayeach@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" +loader-utils@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" -lodash._basefor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" - -lodash._bindcallback@^3.0.0: +lodash._basetostring@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" -lodash._createassigner@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._escapehtmlchar@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz#df67c3bb6b7e8e1e831ab48bfa0795b92afe899d" dependencies: - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash.restparam "^3.0.0" + lodash._htmlescapes "~2.4.1" + +lodash._escapestringchar@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz#ecfe22618a2ade50bfeea43937e51df66f0edb72" lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" +lodash._htmlescapes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz#32d14bf0844b6de6f8b62a051b4f67c228b624cb" + lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" -lodash.assign@^3.0.0, lodash.assign@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" +lodash._isnative@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^2.4.1, lodash._reinterpolate@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz#4f1227aa5a8711fc632f5b07a1f4607aab8b3222" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._reunescapedhtml@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz#747c4fc40103eb3bb8a0976e571f7a2659e93ba7" dependencies: - lodash._baseassign "^3.0.0" - lodash._createassigner "^3.0.0" - lodash.keys "^3.0.0" + lodash._htmlescapes "~2.4.1" + lodash.keys "~2.4.1" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash._shimkeys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" + dependencies: + lodash._objecttypes "~2.4.1" lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" +lodash.assignwith@^4.0.7: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" -lodash.clonedeep@^4.3.2: +lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" -lodash.defaults@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" +lodash.defaults@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54" dependencies: - lodash.assign "^3.0.0" - lodash.restparam "^3.0.0" + lodash._objecttypes "~2.4.1" + lodash.keys "~2.4.1" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.escape@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-2.4.1.tgz#2ce12c5e084db0a57dda5e5d1eeeb9f5d175a3b4" + dependencies: + lodash._escapehtmlchar "~2.4.1" + lodash._reunescapedhtml "~2.4.1" + lodash.keys "~2.4.1" lodash.isarguments@^3.0.0: version "3.1.0" @@ -2388,17 +3923,23 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.isplainobject@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5" +lodash.isempty@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + +lodash.isobject@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" dependencies: - lodash._basefor "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.keysin "^3.0.0" + lodash._objecttypes "~2.4.1" -lodash.istypedarray@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" +lodash.isplainobject@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" lodash.keys@^3.0.0: version "3.1.2" @@ -2408,68 +3949,123 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash.keysin@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f" +lodash.keys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" dependencies: - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" + lodash._isnative "~2.4.1" + lodash._shimkeys "~2.4.1" + lodash.isobject "~2.4.1" + +lodash.mapvalues@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" lodash.memoize@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.merge@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994" - dependencies: - lodash._arraycopy "^3.0.0" - lodash._arrayeach "^3.0.0" - lodash._createassigner "^3.0.0" - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - lodash.isplainobject "^3.0.0" - lodash.istypedarray "^3.0.0" - lodash.keys "^3.0.0" - lodash.keysin "^3.0.0" - lodash.toplainobject "^3.0.0" - lodash.mergewith@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" -lodash.toplainobject@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d" +lodash.template@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-2.4.1.tgz#9e611007edf629129a974ab3c48b817b3e1cf20d" + dependencies: + lodash._escapestringchar "~2.4.1" + lodash._reinterpolate "~2.4.1" + lodash.defaults "~2.4.1" + lodash.escape "~2.4.1" + lodash.keys "~2.4.1" + lodash.templatesettings "~2.4.1" + lodash.values "~2.4.1" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" dependencies: lodash._basecopy "^3.0.0" - lodash.keysin "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz#ea76c75d11eb86d4dbe89a83893bb861929ac699" + dependencies: + lodash._reinterpolate "~2.4.1" + lodash.escape "~2.4.1" lodash.uniq@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" +lodash.values@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.4.1.tgz#abf514436b3cb705001627978cbcf30b1280eea4" + dependencies: + lodash.keys "~2.4.1" -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0: +lodash@4.17.4, lodash@^4.0.0, lodash@^4.1.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: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +lodash@^3.8.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + lodash@~4.16.4: version "4.16.6" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +log4js@^0.6.31: + version "0.6.38" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + dependencies: + readable-stream "~1.0.2" + semver "~4.3.3" + longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -2485,7 +4081,11 @@ 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@^4.0.1: +lru-cache@2, 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.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: @@ -2496,15 +4096,19 @@ macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" -magic-string@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.16.0.tgz#970ebb0da7193301285fb1aa650f39bdd81eb45a" +magic-string@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.19.0.tgz#198948217254e3e0b93080e01146b7c73b2a06b2" dependencies: vlq "^0.2.1" make-error@^1.1.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.2.tgz#e4e270e474f642cca20fa126fe441163957832ef" + version "1.2.3" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.3.tgz#6c4402df732e0977ac6faf754a5074b3d2b1d19d" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" @@ -2514,6 +4118,12 @@ map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" +matcher-collection@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.0.4.tgz#2f66ae0869996f29e43d0b62c83dd1d43e581755" + dependencies: + minimatch "^3.0.2" + math-expression-evaluator@^1.2.14: version "1.2.16" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.16.tgz#b357fa1ca9faefb8e48d10c14ef2bcb2d9f0a7c9" @@ -2529,7 +4139,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.7.0: +meow@^3.3.0, meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: @@ -2548,11 +4158,26 @@ merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +method-override@~2.3.5: + version "2.3.8" + resolved "https://registry.yarnpkg.com/method-override/-/method-override-2.3.8.tgz#178234bf4bab869f89df9444b06fc6147b44828c" + dependencies: + debug "2.6.3" + methods "~1.1.2" + parseurl "~1.3.1" + vary "~1.1.0" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5, micromatch@^2.3.11: +micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -2577,21 +4202,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.24.0 < 2", mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" +"mime-db@>= 1.27.0 < 2", mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" dependencies: - mime-db "~1.26.0" - -mime@1.2.x: - version "1.2.11" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + mime-db "~1.27.0" -mime@1.3.4, mime@^1.2.11, mime@^1.3.4: +mime@1.3.4, mime@1.3.x, mime@^1.2.11, mime@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" @@ -2599,6 +4220,10 @@ mimeparse@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/mimeparse/-/mimeparse-0.1.4.tgz#dafb02752370fd226093ae3152c271af01ac254a" +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" @@ -2607,26 +4232,57 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@~3.0.2: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" -minimist@0.0.8, minimist@~0.0.1: +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" +minimist@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" + minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + 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" dependencies: minimist "0.0.8" +morgan@~1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.6.1.tgz#5fd818398c6819cba28a7cd6664f292fe1c0bbf2" + dependencies: + basic-auth "~1.0.3" + debug "~2.2.0" + depd "~1.0.1" + on-finished "~2.3.0" + on-headers "~1.0.0" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -2635,38 +4291,57 @@ ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" +multimatch@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +multiparty@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-3.3.2.tgz#35de6804dc19643e5249f3d3e3bdc6c8ce301d3f" + dependencies: + readable-stream "~1.1.9" + stream-counter "~0.2.0" + +multipipe@^0.1.0, multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + nan@^2.3.0, nan@^2.3.2: version "2.5.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" +natives@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" + ncname@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" dependencies: xml-char-classes "^1.0.0" +negotiator@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz#269d5c476810ec92edbe7b6c2f28316384f9a7e8" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -ng-router-loader@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ng-router-loader/-/ng-router-loader-2.1.0.tgz#7a253863d0d7fde804564f39762ebd7f78afc8e9" - dependencies: - loader-utils "^0.2.16" - recast "^0.11.20" - -ng2-completer@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ng2-completer/-/ng2-completer-1.2.0.tgz#fdf5b8a7cd1dd16934bfbaa141cf9400850741f6" - -ngc-webpack@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ngc-webpack/-/ngc-webpack-1.2.0.tgz#d4b71f733997b8ee26c669ffb77dbfae21c221ba" - dependencies: - minimist "^1.2.0" - reflect-metadata "^0.1.2" - ts-node "^2.0.0" +ng2-completer@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ng2-completer/-/ng2-completer-1.2.2.tgz#69515e4d65973abce1276aea301cf0f36e5846a4" no-case@^2.2.0: version "2.3.1" @@ -2674,15 +4349,9 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-dir@^0.1.10: - version "0.1.16" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.16.tgz#d2ef583aa50b90d93db8cdd26fcea58353957fe4" - dependencies: - minimatch "^3.0.2" - node-gyp@^3.3.1: - version "3.5.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.5.0.tgz#a8fe5e611d079ec16348a3eb960e78e11c85274a" + version "3.6.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.0.tgz#7474f63a3a0501161dda0b6341f022f14c423fa6" dependencies: fstream "^1.0.0" glob "^7.0.3" @@ -2694,7 +4363,7 @@ node-gyp@^3.3.1: osenv "0" request "2" rimraf "2" - semver "2.x || 3.x || 4 || 5" + semver "~5.3.0" tar "^2.0.0" which "1" @@ -2726,23 +4395,27 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" +node-modules-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" + node-pre-gyp@^0.6.29: - version "0.6.33" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz#640ac55198f6a925972e0c16c4ac26a034d5ecc9" + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" dependencies: - mkdirp "~0.5.1" - nopt "~3.0.6" - npmlog "^4.0.1" - rc "~1.1.6" - request "^2.79.0" - rimraf "~2.5.4" - semver "~5.3.0" - tar "~2.2.1" - tar-pack "~3.3.0" - -node-sass@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.0.tgz#532e37bad0ce587348c831535dbc98ea4289508b" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-sass@^4.2.0, node-sass@^4.3.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.1.tgz#e8e119fe3c8213ad7e56ca618dd231e9e8b30f5b" dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -2759,23 +4432,26 @@ node-sass@4.5.0: nan "^2.3.2" node-gyp "^3.3.1" npmlog "^4.0.0" - request "^2.61.0" + request "^2.79.0" sass-graph "^2.1.1" stdout-stream "^1.4.0" -node-status-codes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" - -"nopt@2 || 3", nopt@~3.0.6: +"nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" + version "2.3.6" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.6.tgz#498fa420c96401f787402ba21e600def9f981fff" dependencies: hosted-git-info "^2.1.4" is-builtin-module "^1.0.0" @@ -2790,15 +4466,23 @@ normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" +normalize-selector@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" + normalize-url@^1.4.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.0.tgz#c2bb50035edee62cd81edb2d45da68dc25e3423e" + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" query-string "^4.1.0" sort-keys "^1.0.0" +normalize.css@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-5.0.0.tgz#7cec875ce8178a5333c4de80b68ea9c18b9d7c37" + npm-run-all@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.0.1.tgz#f10144d20b57ed9bbf6c36a8de9502e0b80f2b4e" @@ -2811,7 +4495,13 @@ npm-run-all@4.0.1: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1: +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" dependencies: @@ -2826,6 +4516,10 @@ nth-check@~1.0.1: dependencies: boolbase "~1.0.0" +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -2838,14 +4532,30 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -2863,25 +4573,31 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -on-headers@~1.0.1: +on-headers@~1.0.0, on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0: +once@^1.3.0, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -once@~1.3.3: +once@~1.3.0: version "1.3.3" resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" dependencies: wrappy "1" -opener@~1.4.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" +onecolor@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.0.4.tgz#75a46f80da6c7aaa5b4daae17a47198bd9652494" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" opn@4.0.2: version "4.0.2" @@ -2890,29 +4606,34 @@ opn@4.0.2: object-assign "^4.0.1" pinkie-promise "^2.0.0" -optimist@0.6.x, optimist@~0.6.0: +optimist@^0.6.1, optimist@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: minimist "~0.0.1" wordwrap "~0.0.2" -optimize-js-plugin@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/optimize-js-plugin/-/optimize-js-plugin-0.0.4.tgz#69e7a67e0f66c69f7fc0c7b25c5d33b2db6c2817" +optimist@~0.3, optimist@~0.3.5: + version "0.3.7" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + dependencies: + wordwrap "~0.0.2" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" dependencies: - optimize-js "^1.0.0" - webpack-sources "^0.1.2" + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" -optimize-js@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/optimize-js/-/optimize-js-1.0.3.tgz#4326af8657c4a5ff32daf726631754f72ab7fdbc" - dependencies: - acorn "^3.3.0" - concat-stream "^1.5.1" - estree-walker "^0.3.0" - magic-string "^0.16.0" - yargs "^4.8.1" +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" original@>=0.0.5: version "1.0.0" @@ -2934,22 +4655,22 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.0: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@0, osenv@^0.1.0: +osenv@0, osenv@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -package-json@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" +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 "^5.0.0" + got "^6.7.1" registry-auth-token "^3.0.1" registry-url "^3.0.3" semver "^5.1.0" @@ -2959,14 +4680,14 @@ pako@~0.2.0: resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" param-case@2.1.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.0.tgz#2619f90fd6c829ed0b958f1c84ed03a745a6d70a" + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" dependencies: no-case "^2.2.0" parse-asn1@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -2974,6 +4695,14 @@ parse-asn1@^5.0.0: evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" +parse-filepath@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" + dependencies: + is-absolute "^0.2.3" + map-cache "^0.2.0" + path-root "^0.1.1" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -2983,17 +4712,41 @@ parse-glob@^3.0.4: is-extglob "^1.0.0" is-glob "^2.0.0" -parse-json@^2.1.0, parse-json@^2.2.0: +parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" dependencies: error-ex "^1.2.0" -parse5@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-2.2.3.tgz#0c4fc41c1000c5e6b93d48b03f8083837834e9f6" +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" -parseurl@~1.3.1: +parse5@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510" + dependencies: + "@types/node" "^6.0.46" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.0, parseurl@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" @@ -3011,10 +4764,28 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +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" +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -3039,12 +4810,20 @@ pause-stream@0.0.11: dependencies: through "~2.3" +pause@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.1.0.tgz#ebc8a4a8619ff0b8a81ac1513c3434ff469fdb74" + pbkdf2@^3.0.3: version "3.0.9" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" dependencies: create-hmac "^1.1.2" +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3059,14 +4838,20 @@ pinkie@^2.0.0, pinkie@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -portfinder@0.4.x: - version "0.4.0" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-0.4.0.tgz#a3ffadffafe4fb98e0601a85eda27c27ce84ca1e" +pipetteur@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pipetteur/-/pipetteur-2.0.3.tgz#1955760959e8d1a11cb2a50ec83eec470633e49f" dependencies: - async "0.9.0" - mkdirp "0.5.x" + onecolor "^3.0.4" + synesthesia "^1.0.1" -portfinder@^1.0.9: +plur@^2.0.0, plur@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + dependencies: + irregular-plurals "^1.0.0" + +portfinder@^1.0.9, portfinder@~1.0.12: version "1.0.13" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" dependencies: @@ -3135,37 +4920,22 @@ postcss-filter-plugins@^2.0.0: postcss "^5.0.4" uniqid "^4.0.0" -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" - -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" +postcss-less@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-0.14.0.tgz#c631b089c6cce422b9a10f3a958d2bedd3819324" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" + postcss "^5.0.21" -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" +postcss-loader@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-0.13.0.tgz#72fdaf0d29444df77d3751ce4e69dc40bc99ed85" dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" + loader-utils "^0.2.15" + postcss "^5.2.0" -postcss-loader@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-1.3.1.tgz#7907bdfe5e953cf4b6d97cbd8edcd17956369030" - dependencies: - loader-utils "^0.2.16" - object-assign "^4.1.1" - postcss "^5.2.14" - postcss-load-config "^1.2.0" +postcss-media-query-parser@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" postcss-merge-idents@^2.1.5: version "2.1.7" @@ -3298,7 +5068,35 @@ postcss-reduce-transforms@^1.0.3: postcss "^5.0.8" postcss-value-parser "^3.0.1" -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: +postcss-reporter@^1.2.1, postcss-reporter@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-1.4.1.tgz#c136f0a5b161915f379dd3765c61075f7e7b9af2" + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-reporter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-3.0.0.tgz#09ea0f37a444c5693878606e09b018ebeff7cf8f" + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + +postcss-scss@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-0.4.1.tgz#ad771b81f0f72f5f4845d08aa60f93557653d54c" + dependencies: + postcss "^5.2.13" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.1.1, postcss-selector-parser@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" dependencies: @@ -3323,6 +5121,18 @@ postcss-unique-selectors@^2.0.2: postcss "^5.0.4" uniqs "^2.0.0" +postcss-url@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-5.1.2.tgz#98b3165be8d592471cb0caadde2c0d1f832f133e" + dependencies: + directory-encoder "^0.7.2" + js-base64 "^2.1.5" + mime "^1.2.11" + minimatch "^3.0.0" + mkdirp "^0.5.0" + path-is-absolute "^1.0.0" + postcss "^5.0.0" + postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" @@ -3335,9 +5145,9 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.14, postcss@^5.2.15: - version "5.2.15" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.15.tgz#a9e8685e50e06cc5b3fdea5297273246c26f5b30" +postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.18, postcss@^5.0.2, postcss@^5.0.20, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.0, postcss@^5.2.13, postcss@^5.2.16, postcss@^5.2.4: + version "5.2.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.16.tgz#732b3100000f9ff8379a48a53839ed097376ad57" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -3353,15 +5163,15 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" pretty-error@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.0.2.tgz#a7db19cbb529ca9f0af3d3a2f77d5caf8e5dec23" + version "2.0.3" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.0.3.tgz#bed3d816a008e76da617cde8216f4b778849b5d9" dependencies: - renderkid "~2.0.0" + renderkid "^2.0.1" utila "~0.4" -private@~0.1.5: - version "0.1.7" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" process-nextick-args@~1.0.6: version "1.0.7" @@ -3371,12 +5181,38 @@ process@^0.11.0: version "0.11.9" resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" +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" + +protractor@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.1.1.tgz#10c4e336571b28875b8acc3ae3e4e1e40ef7e986" + dependencies: + "@types/node" "^6.0.46" + "@types/q" "^0.0.32" + "@types/selenium-webdriver" "~2.53.39" + blocking-proxy "0.0.5" + chalk "^1.1.3" + glob "^7.0.3" + jasmine "^2.5.3" + jasminewd2 "^2.0.0" + optimist "~0.6.0" + q "1.4.1" + saucelabs "~1.3.0" + selenium-webdriver "3.0.1" + source-map-support "~0.4.0" + webdriver-js-extender "^1.0.0" + webdriver-manager "^12.0.1" + proxy-addr@~1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.3.tgz#dc97502f5722e888467b3fa2297a7b1ff47df074" + version "1.1.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" dependencies: forwarded "~0.1.0" - ipaddr.js "1.2.0" + ipaddr.js "1.3.0" prr@~0.0.0: version "0.0.0" @@ -3421,21 +5257,33 @@ q-io@1.13.2: qs "^1.2.1" url2 "^0.0.0" -q@1.4.1, q@^1.0.1, q@^1.1.2: +q@1.4.1, q@^1.0.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" -qs@6.3.1, qs@~6.3.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.1.tgz#918c0b3bcd36679772baf135b1acb4c1651ed79d" +qjobs@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" + +qs@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" + +qs@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz#a9f31142af468cb72b25b30136ba2456834916be" + +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@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" -qs@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404" +qs@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-5.1.0.tgz#4d932e5c7ea411cca76a312d39a606200fd50cd9" query-string@^4.1.0: version "4.3.2" @@ -3456,6 +5304,10 @@ querystringify@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + randomatic@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" @@ -3467,15 +5319,35 @@ randombytes@^2.0.0, randombytes@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" -range-parser@^1.0.3, range-parser@~1.2.0: +range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -raw-loader@0.5.1: +range-parser@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175" + +raw-body@~2.1.2, raw-body@~2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" + dependencies: + bytes "2.4.0" + iconv-lite "0.4.13" + unpipe "1.0.0" + +raw-body@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" + dependencies: + bytes "2.4.0" + iconv-lite "0.4.15" + unpipe "1.0.0" + +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.0.1, rc@^1.1.6, rc@~1.1.6: +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" dependencies: @@ -3484,12 +5356,11 @@ rc@^1.0.1, rc@^1.1.6, rc@~1.1.6: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" +read-file-stdin@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/read-file-stdin/-/read-file-stdin-0.2.1.tgz#25eccff3a153b6809afacb23ee15387db9e0ee61" dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" + gather-stream "^1.0.0" read-pkg-up@^1.0.1: version "1.0.1" @@ -3514,7 +5385,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@1.0: +readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.2: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -3523,21 +5394,18 @@ readable-stream@1.0: 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.0, readable-stream@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" +readable-stream@^1.0.33, readable-stream@~1.1.8, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: - buffer-shims "^1.0.0" core-util-is "~1.0.0" inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" + isarray "0.0.1" string_decoder "~0.10.x" - util-deprecate "~1.0.1" -readable-stream@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" +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.0, readable-stream@^2.1.4, readable-stream@^2.1.5: + version "2.2.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -3556,14 +5424,11 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" -recast@^0.11.20: - version "0.11.22" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.22.tgz#dedeb18fb001a2bbc6ac34475fda53dfe3d47dfa" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" dependencies: - ast-types "0.9.5" - esprima "~3.1.0" - private "~0.1.5" - source-map "~0.5.0" + resolve "^1.1.6" redent@^1.0.0: version "1.0.0" @@ -3586,14 +5451,18 @@ reduce-function-call@^1.0.1: dependencies: balanced-match "^0.4.2" -reflect-metadata@0.1.2, reflect-metadata@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.2.tgz#ea23e5823dc830f292822bd3da9b89fd57bffb03" +reflect-metadata@^0.1.2: + version "0.1.10" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" regenerate@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" +regenerator-runtime@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" + regex-cache@^0.4.2: version "0.4.3" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" @@ -3635,9 +5504,9 @@ relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" -renderkid@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.0.tgz#1859753e7a5adbf35443aba0d4e4579e78abee85" +renderkid@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" dependencies: css-select "^1.1.0" dom-converter "~0.1" @@ -3649,6 +5518,10 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" +repeat-string@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -3659,18 +5532,22 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@2, request@^2.61.0, request@^2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +request@2, request@^2.72.0, request@^2.78.0, request@^2.79.0, request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" - caseless "~0.11.0" + caseless "~0.12.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" + har-validator "~4.2.1" hawk "~3.1.3" http-signature "~1.1.0" is-typedarray "~1.0.0" @@ -3678,10 +5555,12 @@ request@2, request@^2.61.0, request@^2.79.0: json-stringify-safe "~5.0.1" mime-types "~2.1.7" oauth-sign "~0.8.1" - qs "~6.3.0" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" stringstream "~0.0.4" tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" + tunnel-agent "^0.6.0" uuid "^3.0.0" require-directory@^2.1.1: @@ -3700,39 +5579,46 @@ 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-url-loader@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-1.6.1.tgz#4a6e03c74dd38d5dfddf0f404b475d6e90025635" - dependencies: - camelcase "^1.2.1" - convert-source-map "^1.1.1" - loader-utils "^0.2.11" - lodash.defaults "^3.1.2" - rework "^1.0.1" - rework-visit "^1.0.0" - source-map "^0.1.43" - urix "^0.1.0" +resolve-bin@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/resolve-bin/-/resolve-bin-0.4.0.tgz#47132249891101afb19991fe937cb0a5f072e5d9" + dependencies: + find-parent-dir "~0.3.0" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" resolve-url@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" -resolve@^1.1.7: +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: path-parse "^1.0.5" -rework-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" +response-time@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/response-time/-/response-time-2.3.2.tgz#ffa71bab952d62f7c1d49b7434355fbc68dffc5a" + dependencies: + depd "~1.1.0" + on-headers "~1.0.1" -rework@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" dependencies: - convert-source-map "^0.3.3" - css "^2.0.0" + onetime "^2.0.0" + signal-exit "^3.0.2" right-align@^0.1.1: version "0.1.3" @@ -3740,22 +5626,61 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@2.5.4, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" +rimraf@2, rimraf@2.6.1, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" +rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + ripemd160@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" -rxjs@5.1.1: +rndm@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c" + +rollup@^0.41.5: + version "0.41.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" + dependencies: + source-map-support "^0.4.0" + +rsvp@^3.0.17: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.5.0.tgz#a62c573a4ae4e1dfd0697ebc6242e79c681eaa34" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +run-sequence@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-1.2.2.tgz#5095a0bebe98733b0140bd08dd80ec030ddacdeb" + dependencies: + chalk "*" + gulp-util "*" + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + +rxjs@5.1.1, rxjs@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.1.1.tgz#fc48922965bc6c5efbcc0fe46e90a3af64137a7b" dependencies: symbol-observable "^1.0.1" +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + sass-graph@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.1.2.tgz#965104be23e8103cb7e5f710df65935b317da57b" @@ -3764,7 +5689,7 @@ sass-graph@^2.1.1: lodash "^4.0.0" yargs "^4.7.1" -sass-loader@4.1.1: +sass-loader@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-4.1.1.tgz#79ef9468cf0bf646c29529e1f2cba6bd6e51c7bc" dependencies: @@ -3772,33 +5697,97 @@ sass-loader@4.1.1: loader-utils "^0.2.15" object-assign "^4.1.0" -sax@~1.2.1: +saucelabs@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.3.0.tgz#d240e8009df7fa87306ec4578a69ba3b5c424fee" + dependencies: + https-proxy-agent "^1.0.0" + +sax@0.5.x: + version "0.5.8" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" + +sax@0.6.x: + version "0.6.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" + +sax@>=0.6.0, sax@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" -script-ext-html-webpack-plugin@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/script-ext-html-webpack-plugin/-/script-ext-html-webpack-plugin-1.7.1.tgz#ae9c0e26d7767d4aa793c76e3550344ec08b6d10" +script-loader@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/script-loader/-/script-loader-0.7.0.tgz#685dc7e7069e0dee7a92674f0ebc5b0f55baa5ec" dependencies: - debug "^2.3.3" + raw-loader "~0.5.1" select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" +selenium-webdriver@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz#a2dea5da4a97f6672e89e7ca7276cefa365147a7" + dependencies: + adm-zip "^0.4.7" + rimraf "^2.5.4" + tmp "0.0.30" + xml2js "^0.4.17" + +selenium-webdriver@^2.53.2: + version "2.53.3" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085" + dependencies: + adm-zip "0.4.4" + rimraf "^2.2.8" + tmp "0.0.24" + 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@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@~5.3.0: +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.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" -send@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.15.0.tgz#f0185d6466fa76424b866f3d533e2d19dd0aaa39" +semver@^4.1.0, semver@~4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +semver@~5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + +send@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.13.2.tgz#765e7607c8055452bba6f0b052595350986036de" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.3.1" + mime "1.3.4" + ms "0.7.1" + on-finished "~2.3.0" + range-parser "~1.0.3" + statuses "~1.2.1" + +send@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.15.1.tgz#8a02354c26e6f5cca700065f5f0cdeba90ec7b5f" dependencies: debug "2.6.1" depd "~1.1.0" @@ -3814,6 +5803,19 @@ send@0.15.0: range-parser "~1.2.0" statuses "~1.3.1" +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + +serve-favicon@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.3.2.tgz#dd419e268de012ab72b319d337f2105013f9381f" + dependencies: + etag "~1.7.0" + fresh "0.3.0" + ms "0.7.2" + parseurl "~1.3.1" + serve-index@^1.7.2: version "1.8.0" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" @@ -3826,14 +5828,34 @@ serve-index@^1.7.2: mime-types "~2.1.11" parseurl "~1.3.1" -serve-static@1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.0.tgz#150eb8aa262c2dd1924e960373145446c069dad6" +serve-index@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.7.3.tgz#7a057fc6ee28dc63f64566e5fa57b111a86aecd2" + dependencies: + accepts "~1.2.13" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.3.1" + mime-types "~2.1.9" + parseurl "~1.3.1" + +serve-static@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.1.tgz#7443a965e3ced647aceb5639fa06bf4d1bbe0039" dependencies: encodeurl "~1.0.1" escape-html "~1.0.3" parseurl "~1.3.1" - send "0.15.0" + send "0.15.1" + +serve-static@~1.10.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.10.3.tgz#ce5a6ecd3101fed5ec09827dac22a9c29bfb0535" + dependencies: + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.13.2" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -3880,10 +5902,24 @@ shell-quote@^1.6.1: array-reduce "~0.0.0" jsonify "~0.0.0" -signal-exit@^3.0.0: +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +silent-error@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.0.1.tgz#71b7d503d1c6f94882b51b56be879b113cb4822c" + dependencies: + debug "^2.2.0" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -3894,6 +5930,50 @@ sntp@1.x.x: dependencies: hoek "2.x.x" +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.2.tgz#39fdb0c3dd450e321b7e40cfd83612ec533dd644" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.2" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.2.tgz#83bbbdf2e79263b378900da403e7843e05dc3b71" + dependencies: + debug "2.3.3" + engine.io "1.8.2" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.2" + socket.io-parser "2.3.1" + sockjs-client@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" @@ -3918,11 +5998,11 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^0.1.4, source-list-map@~0.1.7: +source-list-map@^0.1.7, source-list-map@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" -source-map-loader@0.1.6: +source-map-loader@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.1.6.tgz#c09903da6d73b9e53b7ed8ee5245597051e98e91" dependencies: @@ -3939,26 +6019,36 @@ source-map-resolve@^0.3.0: source-map-url "~0.3.0" urix "~0.1.0" -source-map-support@^0.4.0, source-map-support@^0.4.11, source-map-support@^0.4.2: - version "0.4.11" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322" +source-map-support@^0.4.0, source-map-support@^0.4.2, source-map-support@~0.4.0: + version "0.4.14" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef" dependencies: - source-map "^0.5.3" + source-map "^0.5.6" source-map-url@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" -source-map@0.1.x, source-map@^0.1.38, source-map@^0.1.43, source-map@~0.1.33: +source-map@0.1.x, source-map@^0.1.38, source-map@^0.1.41, source-map@~0.1.33, source-map@~0.1.7: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: amdefine ">=0.0.4" -source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: +source-map@0.5.x, source-map@0.X, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +source-map@^0.4.2, source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -3993,6 +6083,16 @@ spdy@^3.4.1: select-hose "^2.0.0" spdy-transport "^2.0.15" +specificity@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.3.0.tgz#332472d4e5eb5af20821171933998a6bc3b1ce6f" + +split2@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz#02ddac9adc03ec0bb78c1282ec079ca6e85ae900" + dependencies: + through2 "~0.6.1" + split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -4018,10 +6118,14 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -"statuses@>= 1.3.1 < 2", statuses@~1.3.1: +statuses@1, "statuses@>= 1.3.1 < 2", statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +statuses@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz#dded45cc18256d51ed40aec142489d5c61026d28" + stdout-stream@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" @@ -4035,11 +6139,28 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-combiner@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" dependencies: - duplexer "~0.1.1" + duplexer "~0.1.1" + +stream-consume@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + +stream-counter@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-0.2.0.tgz#ded266556319c8b0e222812b9cf3b26fa7d947de" + dependencies: + readable-stream "~1.1.8" stream-http@^2.3.1: version "2.6.3" @@ -4051,17 +6172,14 @@ stream-http@^2.3.1: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string-replace-loader@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string-replace-loader/-/string-replace-loader-1.0.5.tgz#e2b0d4fcd611f0d41ca433bbf50e029450e37a3d" - dependencies: - loader-utils "^0.2.11" - lodash "^3.10.1" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -4070,6 +6188,13 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string-width@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + string.prototype.padend@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" @@ -4086,21 +6211,38 @@ stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + dependencies: + ansi-regex "^0.2.1" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" +strip-bom@3.X, strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" dependencies: is-utf8 "^0.2.0" -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" @@ -4112,22 +6254,114 @@ strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -style-loader@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.1.tgz#468280efbc0473023cd3a6cd56e33b5a1d7fc3a9" +style-loader@^0.13.1: + version "0.13.2" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.2.tgz#74533384cf698c7104c7951150b49717adc2f3bb" + dependencies: + loader-utils "^1.0.2" + +style-search@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + +stylehacks@^2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-2.3.2.tgz#64c83e0438a68c9edf449e8c552a7d9ab6009b0b" + dependencies: + browserslist "^1.1.3" + chalk "^1.1.1" + log-symbols "^1.0.2" + minimist "^1.2.0" + plur "^2.1.2" + postcss "^5.0.18" + postcss-reporter "^1.3.3" + postcss-selector-parser "^2.0.0" + read-file-stdin "^0.2.1" + text-table "^0.2.0" + write-file-stdout "0.0.2" + +stylelint@7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.9.0.tgz#b8d9ea20f887ab351075c6aded9528de24509327" + dependencies: + autoprefixer "^6.0.0" + balanced-match "^0.4.0" + chalk "^1.1.1" + colorguard "^1.2.0" + cosmiconfig "^2.1.1" + doiuse "^2.4.1" + execall "^1.0.0" + get-stdin "^5.0.0" + globby "^6.0.0" + globjoin "^0.1.4" + html-tags "^1.1.1" + ignore "^3.2.0" + known-css-properties "^0.0.6" + lodash "^4.17.4" + log-symbols "^1.0.2" + meow "^3.3.0" + micromatch "^2.3.11" + normalize-selector "^0.2.0" + postcss "^5.0.20" + postcss-less "^0.14.0" + postcss-media-query-parser "^0.2.0" + postcss-reporter "^3.0.0" + postcss-resolve-nested-selector "^0.1.1" + postcss-scss "^0.4.0" + postcss-selector-parser "^2.1.1" + postcss-value-parser "^3.1.1" + resolve-from "^2.0.0" + specificity "^0.3.0" + string-width "^2.0.0" + style-search "^0.1.0" + stylehacks "^2.3.0" + sugarss "^0.2.0" + svg-tags "^1.0.0" + table "^4.0.1" + +stylus-loader@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-2.5.1.tgz#d5ad8a7e0958adc12b8581e7bb169b9a61d54216" + dependencies: + loader-utils "^0.2.9" + lodash.clonedeep "^4.5.0" + when "~3.6.x" + +stylus@^0.54.5: + version "0.54.5" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" + dependencies: + css-parse "1.7.x" + debug "*" + glob "7.0.x" + mkdirp "0.5.x" + sax "0.5.x" + source-map "0.1.x" + +sugarss@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-0.2.0.tgz#ac34237563327c6ff897b64742bf6aec190ad39e" dependencies: - loader-utils "^0.2.7" + postcss "^5.2.4" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.2.3: +supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -4144,24 +6378,41 @@ symbol-observable@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" +synesthesia@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/synesthesia/-/synesthesia-1.0.1.tgz#5ef95ea548c0d5c6e6f9bb4b0d0731dff864a777" + dependencies: + css-color-names "0.0.3" + +table@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + tapable@^0.2.5, tapable@~0.2.5: version "0.2.6" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" -tar-pack@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" dependencies: - debug "~2.2.0" - fstream "~1.0.10" - fstream-ignore "~1.0.5" - once "~1.3.3" - readable-stream "~2.1.4" - rimraf "~2.5.1" - tar "~2.2.1" - uid-number "~0.0.6" - -tar@^2.0.0, tar@~2.2.1: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -4169,13 +6420,77 @@ tar@^2.0.0, tar@~2.2.1: fstream "^1.0.2" inherits "2" -through@2, through@X.X.X, through@~2.3, through@~2.3.1: +temp@0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + dependencies: + 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" + +ternary-stream@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ternary-stream/-/ternary-stream-2.0.1.tgz#064e489b4b5bf60ba6a6b7bc7f2f5c274ecf8269" + dependencies: + duplexify "^3.5.0" + fork-stream "^0.0.4" + merge-stream "^1.0.0" + through2 "^2.0.1" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2@2.X, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +through2@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7" + dependencies: + readable-stream "~1.0.17" + xtend "~3.0.0" + +through2@^0.6.1, through2@^0.6.3, through2@~0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through@2, "through@>=2.2.7 <3", through@X.X.X, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -timed-out@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" + +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" @@ -4183,15 +6498,50 @@ timers-browserify@^2.0.2: dependencies: setimmediate "^1.0.4" +tiny-lr@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.2.1.tgz#b3fdba802e5d56a33c2f6f10794b32e477ac729d" + dependencies: + body-parser "~1.14.0" + debug "~2.2.0" + faye-websocket "~0.10.0" + livereload-js "^2.2.0" + parseurl "~1.3.0" + qs "~5.1.0" + +tmp@0.0.24: + version "0.0.24" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" + +tmp@0.0.28: + version "0.0.28" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.30: + version "0.0.30" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.x, tmp@^0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-string-loader@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/to-string-loader/-/to-string-loader-1.1.5.tgz#7b7aa17891b7bb4947a7a11bfb03b5fde9c6e695" - dependencies: - loader-utils "^0.2.16" +to-fast-properties@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" toposort@^1.0.0: version "1.0.3" @@ -4207,13 +6557,17 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" -ts-helpers@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ts-helpers/-/ts-helpers-1.1.2.tgz#fc69be9f1f3baed01fb1a0ef8d4cfe748814d835" +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -ts-node@2.1.0, ts-node@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-2.1.0.tgz#aa2bf4b2e25c5fb6a7c54701edc3666d3a9db25d" +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +ts-node@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-2.0.0.tgz#16e4fecc949088238b4cbf1c39c9582526b66f74" dependencies: arrify "^1.0.0" chalk "^1.1.1" @@ -4237,18 +6591,24 @@ tsconfig@^5.0.2: strip-bom "^2.0.0" strip-json-comments "^2.0.0" -tsickle@^0.2: - version "0.2.6" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.2.6.tgz#ad4abf92e74ebdf3fb5aa187ca85b02066fe1a1b" +tsickle@^0.21.0: + version "0.21.6" + resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.21.6.tgz#53b01b979c5c13fdb13afb3fb958177e5991588d" dependencies: minimist "^1.2.0" mkdirp "^0.5.1" source-map "^0.5.6" source-map-support "^0.4.2" -tslint@4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.4.2.tgz#b14cb79ae039c72471ab4c2627226b940dda19c6" +tslint-eslint-rules@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-3.4.0.tgz#694e988121e48168bdb7879a3cc3c9f90b90a1f2" + dependencies: + doctrine "^0.7.2" + +tslint@4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.1.tgz#05356871bef23a434906734006fc188336ba824b" dependencies: babel-code-frame "^6.20.0" colors "^1.1.2" @@ -4257,57 +6617,86 @@ tslint@4.4.2: glob "^7.1.1" optimist "~0.6.0" resolve "^1.1.7" - update-notifier "^1.0.2" + tsutils "^1.1.0" + update-notifier "^2.0.0" + +tsscmp@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" + +tsutils@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.4.0.tgz#84f8a83df9967d35bf1ff3aa48c7339593d64e19" tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -type-is@~1.6.14: +type-is@~1.6.10, type-is@~1.6.14, type-is@~1.6.6: version "1.6.14" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" dependencies: media-typer "0.3.0" mime-types "~2.1.13" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typescript@2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.0.10.tgz#ccdd4ed86fd5550a407101a0814012e1b3fac3dd" +typescript@2.2.1, "typescript@>=2.0.0 <2.3.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.1.tgz#4862b662b988a4c8ff691cc7969622d24db76ae9" -uglify-js@2.8.x, uglify-js@^2.7.5: - version "2.8.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.4.tgz#5aeb6fd6f1f0a672dea63795016590502c290513" +uglify-js@2.8.x, uglify-js@^2.6, uglify-js@^2.7.5: + version "2.8.16" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.16.tgz#d286190b6eefc6fd65eb0ecac6551e0b0e8839a4" dependencies: - async "~0.2.6" source-map "~0.5.1" - uglify-to-browserify "~1.0.0" yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@~2.3: + version "2.3.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" + dependencies: + async "~0.2.6" + optimist "~0.3.5" + source-map "~0.1.7" uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" -uid-number@~0.0.6: +uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" -union@~0.4.3: - version "0.4.6" - resolved "https://registry.yarnpkg.com/union/-/union-0.4.6.tgz#198fbdaeba254e788b0efcb630bc11f24a2959e0" +uid-safe@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.4.tgz#3ad6f38368c6d4c8c75ec17623fb79aa1d071d81" + dependencies: + random-bytes "~1.0.0" + +uid-safe@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.0.0.tgz#a7f3c6ca64a1f6a5d04ec0ef3e4c3d5367317137" dependencies: - qs "~2.3.3" + base64-url "1.2.1" + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +unc-path-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" uniq@^1.0.1: version "1.0.1" @@ -4323,26 +6712,36 @@ uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" -unpipe@~1.0.0: +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + +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@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" +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@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" +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 "^0.6.0" + boxen "^1.0.0" chalk "^1.0.0" - configstore "^2.0.0" + configstore "^3.0.0" is-npm "^1.0.0" - latest-version "^2.0.0" - lazy-req "^1.1.0" + latest-version "^3.0.0" + lazy-req "^2.0.0" semver-diff "^2.0.0" - xdg-basedir "^2.0.0" + xdg-basedir "^3.0.0" upper-case@^1.1.1: version "1.1.3" @@ -4352,16 +6751,12 @@ urix@^0.1.0, urix@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-join@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78" - -url-loader@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.7.tgz#67e8779759f8000da74994906680c943a9b0925d" +url-loader@^0.5.7: + version "0.5.8" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.8.tgz#b9183b1801e0f847718673673040bc9dc1c715c5" dependencies: - loader-utils "0.2.x" - mime "1.2.x" + loader-utils "^1.0.2" + mime "1.3.x" url-parse-lax@^1.0.0: version "1.0.0" @@ -4398,6 +6793,13 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" +useragent@^2.1.10: + version "2.1.13" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.1.13.tgz#bba43e8aa24d5ceb83c2937473e102e21df74c10" + dependencies: + lru-cache "2.2.x" + tmp "0.0.x" + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -4420,7 +6822,7 @@ utils-merge@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" -uuid@^2.0.1, uuid@^2.0.2: +uuid@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" @@ -4428,7 +6830,7 @@ uuid@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" -v8flags@^2.0.11: +v8flags@^2.0.11, v8flags@^2.0.2: version "2.0.11" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" dependencies: @@ -4441,9 +6843,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" +vary@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10" + vary@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" vendors@^1.0.0: version "1.0.1" @@ -4455,6 +6861,58 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" +vhost@~3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/vhost/-/vhost-3.0.2.tgz#2fb1decd4c466aa88b0f9341af33dc1aff2478d5" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + dependencies: + source-map "^0.5.1" + +vinyl@1.X: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.2.3.tgz#bca938209582ec5a49ad538a00fa1f125e513252" + dependencies: + clone-stats "~0.0.1" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + vlq@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c" @@ -4465,6 +6923,17 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + +walk-sync@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.1.tgz#558a16aeac8c0db59c028b73c66f397684ece465" + dependencies: + ensure-posix-path "^1.0.0" + matcher-collection "^1.0.0" + watchpack@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" @@ -4483,23 +6952,48 @@ weak-map@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.0.tgz#b66e56a9df0bd25a76bbf1b514db129080614a37" -webpack-dev-middleware@1.9.0, webpack-dev-middleware@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.9.0.tgz#a1c67a3dfd8a5c5d62740aa0babe61758b4c84aa" +webdriver-js-extender@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" + dependencies: + "@types/selenium-webdriver" "^2.53.35" + selenium-webdriver "^2.53.2" + +webdriver-manager@^12.0.1: + version "12.0.4" + resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.0.4.tgz#658e431c805bc3a7e6bf74bc819475884e6d4861" + dependencies: + adm-zip "^0.4.7" + chalk "^1.1.1" + del "^2.2.0" + glob "^7.0.3" + ini "^1.3.4" + minimist "^1.2.0" + q "^1.4.1" + request "^2.78.0" + rimraf "^2.5.2" + semver "^5.3.0" + xml2js "^0.4.17" + +webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.9.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.10.1.tgz#c6b4cf428139cf1aefbe06a0c00fdb4f8da2f893" dependencies: memory-fs "~0.4.1" mime "^1.3.4" path-is-absolute "^1.0.0" range-parser "^1.0.3" -webpack-dev-server@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.2.0.tgz#364967eccaf8ff1d7e1681b7a8cc24fab4ced8a6" +webpack-dev-server@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.3.0.tgz#0437704bbd4d941a6e4c061eb3cc232ed7d06101" dependencies: + ansi-html "0.0.7" chokidar "^1.6.0" compression "^1.5.2" connect-history-api-fallback "^1.3.0" express "^4.13.3" + html-entities "^1.2.0" http-proxy-middleware "~0.17.1" opn "4.0.2" portfinder "^1.0.9" @@ -4512,29 +7006,22 @@ webpack-dev-server@2.2.0: webpack-dev-middleware "^1.9.0" yargs "^6.0.0" -webpack-dll-bundles-plugin@1.0.0-beta.5: - version "1.0.0-beta.5" - resolved "https://registry.yarnpkg.com/webpack-dll-bundles-plugin/-/webpack-dll-bundles-plugin-1.0.0-beta.5.tgz#cfb109710a88c3eeb557fcc38be0c5015a54196d" - dependencies: - find-root "^1.0.0" - jsonfile "^2.4.0" - -webpack-merge@2.6.1: +webpack-merge@^2.4.0: version "2.6.1" resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-2.6.1.tgz#f1d801d2c5d39f83ffec9f119240b3e3be994a1c" dependencies: lodash "^4.17.4" -webpack-sources@^0.1.2, webpack-sources@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.4.tgz#ccc2c817e08e5fa393239412690bb481821393cd" +webpack-sources@^0.1.0, webpack-sources@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" dependencies: source-list-map "~0.1.7" source-map "~0.5.3" -webpack@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.2.0.tgz#09246336b5581c9002353f75bcadb598a648f977" +webpack@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.2.1.tgz#7bb1d72ae2087dd1a4af526afec15eed17dda475" dependencies: acorn "^4.0.4" acorn-dynamic-import "^2.0.0" @@ -4544,7 +7031,7 @@ webpack@2.2.0: enhanced-resolve "^3.0.0" interpret "^1.0.0" json-loader "^0.5.4" - loader-runner "^2.2.0" + loader-runner "^2.3.0" loader-utils "^0.2.16" memory-fs "~0.4.1" mkdirp "~0.5.0" @@ -4567,6 +7054,10 @@ websocket-extensions@>=0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" +when@~3.6.x: + version "3.6.4" + resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" + whet.extend@~0.9.9: version "0.9.9" resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" @@ -4575,11 +7066,11 @@ 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.9: - version "1.2.12" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" +which@1, which@^1.2.1, which@^1.2.12, which@^1.2.8, which@^1.2.9: + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: - isexe "^1.1.1" + isexe "^2.0.0" wide-align@^1.1.0: version "1.1.0" @@ -4597,6 +7088,10 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" @@ -4628,27 +7123,89 @@ write-file-atomic@^1.1.2: imurmurhash "^0.1.4" slide "^1.1.5" -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" +write-file-stdout@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/write-file-stdout/-/write-file-stdout-0.0.2.tgz#c252d7c7c5b1b402897630e3453c7bfe690d9ca1" + +ws@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" dependencies: - os-homedir "^1.0.0" + options ">=0.0.5" + ultron "1.0.x" + +ws@^1.0.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +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" + +xhr2@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" 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" -xtend@^4.0.0: +xml2js@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" + dependencies: + sax "0.6.x" + xmlbuilder ">=1.0.0" + +xml2js@^0.4.17: + version "0.4.17" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + dependencies: + sax ">=0.6.0" + xmlbuilder "^4.1.0" + +xmlbuilder@>=1.0.0, xmlbuilder@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + dependencies: + lodash "^4.0.0" + +xmldom@^0.1.19: + version "0.1.27" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" -y18n@^3.2.1: +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + +xtend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" + +y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" yallist@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" yargs-parser@^2.4.1: version "2.4.1" @@ -4663,7 +7220,23 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" -yargs@^4.7.1, yargs@^4.8.1: +yargs@^1.2.6: + version "1.3.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.3.3.tgz#054de8b61f22eefdb7207059eaef9d6b83fb931a" + +yargs@^3.5.4: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" + +yargs@^4.7.1: version "4.8.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" dependencies: @@ -4709,10 +7282,18 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + yn@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/yn/-/yn-1.2.0.tgz#d237a4c533f279b2b89d3acac2db4b8c795e4a63" -zone.js@0.7.7: - version "0.7.7" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.7.tgz#0d7b7ae7f68012d03438b8a18f5763441bbf9620" +zone.js@0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.5.tgz#7906e017482cbff4c3f079c5c34305ce941f5ba2" + +zone.js@^0.7.2: + version "0.7.8" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.8.tgz#4f3fe8834d44597f2639053a0fa438df34fffded"