Update client modules

This commit is contained in:
Chocobozzz 2017-06-11 12:28:22 +02:00
parent 66dd264f7b
commit 8635a2c70c
19 changed files with 875 additions and 906 deletions

1
client/.gitignore vendored
View File

@ -3,3 +3,4 @@
/compiled /compiled
/stats.json /stats.json
/dll /dll
/.awcache

View File

@ -85,23 +85,37 @@ module.exports = function (options) {
rules: [ rules: [
/* /*
* Typescript loader support for .ts and Angular 2 async routes via .async.ts * Typescript loader support for .ts and Angular async routes via .async.ts
* *
* See: https://github.com/s-panferov/awesome-typescript-loader * See: https://github.com/s-panferov/awesome-typescript-loader
*/ */
{ {
test: /\.ts$/, test: /\.ts$/,
use: [ use: [
'@angularclass/hmr-loader?pretty=' + !isProd + '&prod=' + isProd, {
'awesome-typescript-loader?{configFileName: "tsconfig.webpack.json"}', loader: '@angularclass/hmr-loader',
'angular2-template-loader', options: {
pretty: !isProd,
prod: isProd
}
},
{ {
loader: 'ng-router-loader', loader: 'ng-router-loader',
options: { options: {
loader: 'async-system', loader: 'async-import',
genDir: 'compiled', genDir: 'compiled',
aot: AOT aot: AOT
} }
},
{
loader: 'awesome-typescript-loader',
options: {
configFileName: 'tsconfig.webpack.json',
useCache: !isProd
}
},
{
loader: 'angular2-template-loader'
} }
], ],
exclude: [/\.(spec|e2e)\.ts$/] exclude: [/\.(spec|e2e)\.ts$/]
@ -114,7 +128,7 @@ module.exports = function (options) {
*/ */
{ {
test: /\.json$/, test: /\.json$/,
loader: 'json-loader' use: 'json-loader'
}, },
{ {
@ -149,7 +163,7 @@ module.exports = function (options) {
*/ */
{ {
test: /\.html$/, test: /\.html$/,
loader: 'raw-loader', use: 'raw-loader',
exclude: [ exclude: [
helpers.root('src/index.html'), helpers.root('src/index.html'),
helpers.root('src/standalone/videos/embed.html') helpers.root('src/standalone/videos/embed.html')
@ -213,11 +227,15 @@ module.exports = function (options) {
* See: https://github.com/angular/angular/issues/11580 * See: https://github.com/angular/angular/issues/11580
*/ */
new ContextReplacementPlugin( new ContextReplacementPlugin(
// The (\\|\/) piece accounts for path separators in *nix and Windows /**
/angular(\\|\/)core(\\|\/)src(\\|\/)linker/, * The (\\|\/) piece accounts for path separators in *nix and Windows
*/
/angular(\\|\/)core(\\|\/)@angular/,
helpers.root('src'), // location of your src helpers.root('src'), // location of your src
{ {
// your Angular Async Route paths relative to this root directory /**
* Your Angular Async Route paths relative to this root directory
*/
} }
), ),
@ -245,6 +263,20 @@ module.exports = function (options) {
} }
]), ]),
/*
* Plugin: ScriptExtHtmlWebpackPlugin
* Description: Enhances html-webpack-plugin functionality
* with different deployment options for your scripts including:
*
* See: https://github.com/numical/script-ext-html-webpack-plugin
*/
new ScriptExtHtmlWebpackPlugin({
sync: [ /polyfill|vendor/, 'webtorrent.min.js' ],
defaultAttribute: 'async',
preload: [/polyfill|vendor|main/],
prefetch: [/chunk/]
}),
/* /*
* Plugin: HtmlWebpackPlugin * Plugin: HtmlWebpackPlugin
* Description: Simplifies creation of HTML files to serve your webpack bundles. * Description: Simplifies creation of HTML files to serve your webpack bundles.
@ -257,19 +289,8 @@ module.exports = function (options) {
template: 'src/index.html', template: 'src/index.html',
title: METADATA.title, title: METADATA.title,
chunksSortMode: 'dependency', chunksSortMode: 'dependency',
metadata: METADATA metadata: METADATA,
}), inject: 'body'
/*
* Plugin: ScriptExtHtmlWebpackPlugin
* Description: Enhances html-webpack-plugin functionality
* with different deployment options for your scripts including:
*
* See: https://github.com/numical/script-ext-html-webpack-plugin
*/
new ScriptExtHtmlWebpackPlugin({
sync: [ 'webtorrent.min.js' ],
defaultAttribute: 'defer'
}), }),
new WebpackNotifierPlugin({ alwaysNotify: true }), new WebpackNotifierPlugin({ alwaysNotify: true }),

View File

@ -233,8 +233,7 @@ module.exports = function (env) {
host: METADATA.host, host: METADATA.host,
historyApiFallback: true, historyApiFallback: true,
watchOptions: { watchOptions: {
aggregateTimeout: 300, ignored: /node_modules/
poll: 1000
}, },
outputPath: helpers.root('dist') outputPath: helpers.root('dist')
}, },

View File

@ -14,7 +14,7 @@ const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin')
const NormalModuleReplacementPlugin = require('webpack/lib/NormalModuleReplacementPlugin') const NormalModuleReplacementPlugin = require('webpack/lib/NormalModuleReplacementPlugin')
const OptimizeJsPlugin = require('optimize-js-plugin') const OptimizeJsPlugin = require('optimize-js-plugin')
const UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin') const UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin')
const WebpackMd5Hash = require('webpack-md5-hash') const HashedModuleIdsPlugin = require('webpack/lib/HashedModuleIdsPlugin')
/** /**
* Webpack Constants * Webpack Constants
@ -67,7 +67,7 @@ module.exports = function (env) {
* *
* See: http://webpack.github.io/docs/configuration.html#output-sourcemapfilename * See: http://webpack.github.io/docs/configuration.html#output-sourcemapfilename
*/ */
sourceMapFilename: '[name].[chunkhash].bundle.map', sourceMapFilename: '[file].map',
/** /**
* The filename of non-entry chunks as relative path * The filename of non-entry chunks as relative path
@ -75,7 +75,7 @@ module.exports = function (env) {
* *
* See: http://webpack.github.io/docs/configuration.html#output-chunkfilename * See: http://webpack.github.io/docs/configuration.html#output-chunkfilename
*/ */
chunkFilename: '[id].[chunkhash].chunk.js', chunkFilename: '[name].[chunkhash].chunk.js',
publicPath: '/client/' publicPath: '/client/'
}, },
@ -91,14 +91,6 @@ module.exports = function (env) {
*/ */
plugins: [ plugins: [
/**
* Plugin: WebpackMd5Hash
* Description: Plugin to replace a standard webpack chunkhash with md5.
*
* See: https://www.npmjs.com/package/webpack-md5-hash
*/
new WebpackMd5Hash(),
/** /**
* Webpack plugin to optimize a JavaScript file for faster initial load * Webpack plugin to optimize a JavaScript file for faster initial load
* by wrapping eagerly-invoked functions. * by wrapping eagerly-invoked functions.
@ -194,35 +186,7 @@ module.exports = function (env) {
helpers.root('config/empty.js') helpers.root('config/empty.js')
), ),
// AoT new HashedModuleIdsPlugin(),
// new NormalModuleReplacementPlugin(
// /@angular(\\|\/)upgrade/,
// helpers.root('config/empty.js')
// ),
// new NormalModuleReplacementPlugin(
// /@angular(\\|\/)compiler/,
// helpers.root('config/empty.js')
// ),
// new NormalModuleReplacementPlugin(
// /@angular(\\|\/)platform-browser-dynamic/,
// helpers.root('config/empty.js')
// ),
// new NormalModuleReplacementPlugin(
// /dom(\\|\/)debug(\\|\/)ng_probe/,
// helpers.root('config/empty.js')
// ),
// new NormalModuleReplacementPlugin(
// /dom(\\|\/)debug(\\|\/)by/,
// helpers.root('config/empty.js')
// ),
// new NormalModuleReplacementPlugin(
// /src(\\|\/)debug(\\|\/)debug_node/,
// helpers.root('config/empty.js')
// ),
// new NormalModuleReplacementPlugin(
// /src(\\|\/)debug(\\|\/)debug_renderer/,
// helpers.root('config/empty.js')
// ),
/** /**
* Plugin: IgnorePlugin * Plugin: IgnorePlugin
@ -252,6 +216,7 @@ module.exports = function (env) {
* See: https://gist.github.com/sokra/27b24881210b56bbaff7 * See: https://gist.github.com/sokra/27b24881210b56bbaff7
*/ */
new LoaderOptionsPlugin({ new LoaderOptionsPlugin({
minimize: true,
debug: false, debug: false,
options: { options: {

View File

@ -18,16 +18,16 @@
}, },
"license": "GPLv3", "license": "GPLv3",
"dependencies": { "dependencies": {
"@angular/animations": "~4.0.0", "@angular/animations": "~4.1.0",
"@angular/common": "~4.0.0", "@angular/common": "~4.1.0",
"@angular/compiler": "~4.0.0", "@angular/compiler": "~4.1.0",
"@angular/compiler-cli": "~4.0.0", "@angular/compiler-cli": "~4.1.0",
"@angular/core": "~4.0.0", "@angular/core": "~4.1.0",
"@angular/forms": "~4.0.0", "@angular/forms": "~4.1.0",
"@angular/http": "~4.0.0", "@angular/http": "~4.1.0",
"@angular/platform-browser": "~4.0.0", "@angular/platform-browser": "~4.1.0",
"@angular/platform-browser-dynamic": "~4.0.0", "@angular/platform-browser-dynamic": "~4.1.0",
"@angular/router": "~4.0.0", "@angular/router": "~4.1.0",
"@angularclass/hmr": "^1.2.0", "@angularclass/hmr": "^1.2.0",
"@angularclass/hmr-loader": "^3.0.2", "@angularclass/hmr-loader": "^3.0.2",
"@nglibs/meta": "^0.4.0-rc.1", "@nglibs/meta": "^0.4.0-rc.1",
@ -35,64 +35,63 @@
"@types/node": "^6.0.38", "@types/node": "^6.0.38",
"@types/source-map": "^0.1.26", "@types/source-map": "^0.1.26",
"@types/uglify-js": "^2.0.27", "@types/uglify-js": "^2.0.27",
"@types/videojs": "0.0.30", "@types/video.js": "5.16.0",
"@types/webpack": "^2.0.0", "@types/webpack": "^2.0.0",
"angular-pipes": "^5.0.0", "angular-pipes": "^5.0.0",
"angular2-notifications": "^0.5.4", "angular2-notifications": "^0.5.4",
"angular2-template-loader": "^0.6.0", "angular2-template-loader": "^0.6.0",
"assets-webpack-plugin": "^3.4.0", "assets-webpack-plugin": "^3.4.0",
"awesome-typescript-loader": "3.0.0-beta.18", "awesome-typescript-loader": "3.1.3",
"bootstrap": "^3.3.6", "bootstrap": "^3.3.6",
"bootstrap-loader": "2.0.0", "bootstrap-loader": "2.1.0",
"bootstrap-sass": "^3.3.6", "bootstrap-sass": "^3.3.6",
"copy-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^4.0.0",
"core-js": "^2.4.1", "core-js": "^2.4.1",
"css-loader": "^0.28.0", "css-loader": "^0.28.4",
"css-to-string-loader": "^0.1.2", "css-to-string-loader": "^0.1.3",
"es6-shim": "^0.35.0", "es6-shim": "^0.35.0",
"file-loader": "^0.11.0", "file-loader": "^0.11.2",
"html-webpack-plugin": "^2.19.0", "html-webpack-plugin": "^2.19.0",
"ie-shim": "^0.1.0", "ie-shim": "^0.1.0",
"intl": "^1.2.4", "intl": "^1.2.4",
"json-loader": "^0.5.4", "json-loader": "^0.5.4",
"ng-router-loader": "^1.0.2", "ng-router-loader": "^2.0.0",
"ng2-file-upload": "^1.1.4-2", "ng2-file-upload": "^1.1.4-2",
"ng2-smart-table": "1.0.3", "ng2-smart-table": "1.0.3",
"ng2-tag-input": "1.0.5", "ng2-tag-input": "1.0.5",
"ngc-webpack": "2.0.0", "ngc-webpack": "2.0.0",
"ngx-bootstrap": "1.6.6", "ngx-bootstrap": "1.6.6",
"node-sass": "^4.1.1", "node-sass": "^4.1.1",
"normalize.css": "^5.0.0", "normalize.css": "^7.0.0",
"optimize-js-plugin": "0.0.4", "optimize-js-plugin": "0.0.4",
"raw-loader": "^0.5.1", "raw-loader": "^0.5.1",
"reflect-metadata": "^0.1.9", "reflect-metadata": "^0.1.9",
"resolve-url-loader": "^1.6.0", "resolve-url-loader": "^2.0.0",
"rxjs": "~5.0.0-rc.5", "rxjs": "~5.0.0-rc.5",
"sass-loader": "^6.0.3", "sass-loader": "^6.0.3",
"sass-resources-loader": "^1.2.1", "sass-resources-loader": "^1.2.1",
"script-ext-html-webpack-plugin": "^1.3.2", "script-ext-html-webpack-plugin": "^1.3.2",
"source-map-loader": "^0.2.1", "source-map-loader": "^0.2.1",
"string-replace-loader": "^1.0.3", "string-replace-loader": "^1.0.3",
"style-loader": "^0.16.1", "style-loader": "^0.18.2",
"tslib": "^1.5.0", "tslib": "^1.5.0",
"tslint": "~4.3.1", "tslint": "~5.4.3",
"tslint-loader": "^3.3.0", "tslint-loader": "^3.3.0",
"typescript": "~2.2.0", "typescript": "~2.3.0",
"url-loader": "^0.5.7", "url-loader": "^0.5.7",
"video.js": "^5.19.2", "video.js": "^5.19.2",
"videojs-dock": "^2.0.2", "videojs-dock": "^2.0.2",
"webpack": "^2.2.0", "webpack": "^2.6.0",
"webpack-md5-hash": "0.0.5",
"webpack-merge": "~4.1.0", "webpack-merge": "~4.1.0",
"webpack-notifier": "^1.3.0", "webpack-notifier": "^1.3.0",
"webtorrent": "^0.98.0", "webtorrent": "^0.98.0",
"zone.js": "~0.8.5" "zone.js": "~0.8.5"
}, },
"devDependencies": { "devDependencies": {
"add-asset-html-webpack-plugin": "^1.0.2", "add-asset-html-webpack-plugin": "^2.0.1",
"codelyzer": "^3.0.0-beta.4", "codelyzer": "^3.0.0-beta.4",
"standard": "^10.0.0", "standard": "^10.0.0",
"webpack-bundle-analyzer": "^2.2.1", "webpack-bundle-analyzer": "^2.8.2",
"webpack-dll-bundles-plugin": "^1.0.0-beta.5" "webpack-dll-bundles-plugin": "^1.0.0-beta.5"
} }
} }

View File

@ -1,6 +1,10 @@
import { ApplicationRef, NgModule } from '@angular/core'; import { ApplicationRef, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser'; import { BrowserModule } from '@angular/platform-browser';
import { removeNgStyles, createNewHosts } from '@angularclass/hmr'; import {
removeNgStyles,
createNewHosts,
createInputTransfer
} from '@angularclass/hmr';
import { MetaModule, MetaLoader, MetaStaticLoader, PageTitlePositioning } from '@nglibs/meta'; import { MetaModule, MetaLoader, MetaStaticLoader, PageTitlePositioning } from '@nglibs/meta';
// TODO: remove, we need this to avoid error in ng2-smart-table // TODO: remove, we need this to avoid error in ng2-smart-table
@ -10,7 +14,7 @@ import 'bootstrap-loader';
import { ENV_PROVIDERS } from './environment'; import { ENV_PROVIDERS } from './environment';
import { AppRoutingModule } from './app-routing.module'; import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
import { AppState } from './app.service'; import { AppState, InternalStateType } from './app.service';
import { AccountModule } from './account'; import { AccountModule } from './account';
import { CoreModule } from './core'; import { CoreModule } from './core';
@ -31,6 +35,12 @@ export function metaFactory(): MetaLoader {
}); });
} }
type StoreType = {
state: InternalStateType,
restoreInputValues: () => void,
disposeOldHosts: () => void
};
// Application wide providers // Application wide providers
const APP_PROVIDERS = [ const APP_PROVIDERS = [
AppState AppState
@ -67,25 +77,58 @@ const APP_PROVIDERS = [
] ]
}) })
export class AppModule { export class AppModule {
constructor(public appRef: ApplicationRef, public appState: AppState) {} constructor(
hmrOnInit(store) { public appRef: ApplicationRef,
if (!store || !store.state) return; public appState: AppState
console.log('HMR store', store); ) {}
public hmrOnInit(store: StoreType) {
if (!store || !store.state) {
return;
}
console.log('HMR store', JSON.stringify(store, null, 2));
/**
* Set state
*/
this.appState._state = store.state; this.appState._state = store.state;
/**
* Set input values
*/
if ('restoreInputValues' in store) {
let restoreInputValues = store.restoreInputValues;
setTimeout(restoreInputValues);
}
this.appRef.tick(); this.appRef.tick();
delete store.state; delete store.state;
delete store.restoreInputValues;
} }
hmrOnDestroy(store) {
const cmpLocation = this.appRef.components.map(cmp => cmp.location.nativeElement); public hmrOnDestroy(store: StoreType) {
// recreate elements const cmpLocation = this.appRef.components.map((cmp) => cmp.location.nativeElement);
/**
* Save state
*/
const state = this.appState._state; const state = this.appState._state;
store.state = state; store.state = state;
/**
* Recreate root elements
*/
store.disposeOldHosts = createNewHosts(cmpLocation); store.disposeOldHosts = createNewHosts(cmpLocation);
// remove styles /**
* Save input values
*/
store.restoreInputValues = createInputTransfer();
/**
* Remove styles
*/
removeNgStyles(); removeNgStyles();
} }
hmrAfterDestroy(store) {
// display new elements public hmrAfterDestroy(store: StoreType) {
/**
* Display new elements
*/
store.disposeOldHosts(); store.disposeOldHosts();
delete store.disposeOldHosts; delete store.disposeOldHosts;
} }

View File

@ -0,0 +1,18 @@
import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
@Injectable()
export class DataResolver implements Resolve<any> {
public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return Observable.of({ res: 'I am data'});
}
}
/**
* An array of services to resolve routes with data.
*/
export const APP_RESOLVER_PROVIDERS = [
DataResolver
];

View File

@ -9,28 +9,38 @@ export class AppState {
public _state: InternalStateType = { }; public _state: InternalStateType = { };
// already return a clone of the current state /**
* Already return a clone of the current state.
*/
public get state() { public get state() {
return this._state = this._clone(this._state); return this._state = this._clone(this._state);
} }
// never allow mutation /**
* Never allow mutation
*/
public set state(value) { public set state(value) {
throw new Error('do not mutate the `.state` directly'); throw new Error('do not mutate the `.state` directly');
} }
public get(prop?: any) { public get(prop?: any) {
// use our state getter for the clone /**
* Use our state getter for the clone.
*/
const state = this.state; const state = this.state;
return state.hasOwnProperty(prop) ? state[prop] : state; return state.hasOwnProperty(prop) ? state[prop] : state;
} }
public set(prop: string, value: any) { public set(prop: string, value: any) {
// internally mutate our state /**
* Internally mutate our state.
*/
return this._state[prop] = value; return this._state[prop] = value;
} }
private _clone(object: InternalStateType) { private _clone(object: InternalStateType) {
// simple object clone /**
* Simple object clone.
*/
return JSON.parse(JSON.stringify( object )); return JSON.parse(JSON.stringify( object ));
} }
} }

View File

@ -1,21 +1,35 @@
/**
// Angular 2 * Angular 2
// rc2 workaround */
import { enableDebugTools, disableDebugTools } from '@angular/platform-browser'; import {
import { enableProdMode, ApplicationRef } from '@angular/core'; enableDebugTools,
// Environment Providers disableDebugTools
} from '@angular/platform-browser';
import {
ApplicationRef,
enableProdMode
} from '@angular/core';
/**
* Environment Providers
*/
let PROVIDERS: any[] = [ let PROVIDERS: any[] = [
// common env directives /**
* Common env directives
*/
]; ];
// Angular debug tools in the dev console /**
// https://github.com/angular/angular/blob/86405345b781a9dc2438c0fbe3e9409245647019/TOOLS_JS.md * Angular debug tools in the dev console
let _decorateModuleRef = function identity<T>(value: T): T { return value; }; * https://github.com/angular/angular/blob/86405345b781a9dc2438c0fbe3e9409245647019/TOOLS_JS.md
*/
let _decorateModuleRef = <T>(value: T): T => { return value; };
if ('production' === ENV) { if ('production' === ENV) {
enableProdMode(); enableProdMode();
// Production /**
* Production
*/
_decorateModuleRef = (modRef: any) => { _decorateModuleRef = (modRef: any) => {
disableDebugTools(); disableDebugTools();
@ -24,7 +38,9 @@ if ('production' === ENV) {
PROVIDERS = [ PROVIDERS = [
...PROVIDERS, ...PROVIDERS,
// custom providers in production /**
* Custom providers in production.
*/
]; ];
} else { } else {
@ -40,10 +56,14 @@ if ('production' === ENV) {
return modRef; return modRef;
}; };
// Development /**
* Development
*/
PROVIDERS = [ PROVIDERS = [
...PROVIDERS, ...PROVIDERS,
// custom providers in development /**
* Custom providers in development.
*/
]; ];
} }

View File

@ -31,7 +31,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
error: boolean = false; error: boolean = false;
loading: boolean = false; loading: boolean = false;
numPeers: number; numPeers: number;
player: VideoJSPlayer; player: videojs.Player;
playerElement: Element; playerElement: Element;
uploadSpeed: number; uploadSpeed: number;
userRating: RateType = null; userRating: RateType = null;

View File

@ -83,7 +83,7 @@ type AsyncRoutes = {
[component: string]: Es6PromiseLoader | [component: string]: Es6PromiseLoader |
Function | Function |
FactoryEs6PromiseLoader | FactoryEs6PromiseLoader |
FactoryPromise FactoryPromise ;
}; };
type IdleCallbacks = Es6PromiseLoader | type IdleCallbacks = Es6PromiseLoader |

View File

@ -11,13 +11,15 @@
<!-- opengraph tags --> <!-- opengraph tags -->
<!-- Do not remove it! --> <!-- Do not remove it! -->
<link rel="icon" type="image/png" href="/client/assets/favicon.png" />
<!-- TODO: bundle it with webpack when https://github.com/webpack/webpack/pull/1931 will be merged --> <!-- TODO: bundle it with webpack when https://github.com/webpack/webpack/pull/1931 will be merged -->
<script src="/client/assets/webtorrent/webtorrent.min.js"></script> <script src="/client/assets/webtorrent/webtorrent.min.js"></script>
<link rel="icon" type="image/png" href="/client/assets/favicon.png" />
<!-- base url --> <!-- base url -->
<base href="<%= htmlWebpackPlugin.options.metadata.baseUrl %>"> <base href="<%= htmlWebpackPlugin.options.metadata.baseUrl %>">
<%= htmlWebpackPlugin.files.webpackManifest %>
</head> </head>
<!-- 3. Display the application --> <!-- 3. Display the application -->

View File

@ -1,13 +1,14 @@
import { platformBrowser } from '@angular/platform-browser'; import { platformBrowser } from '@angular/platform-browser';
import { decorateModuleRef } from './app/environment'; import { decorateModuleRef } from './app/environment';
/*
/**
* App Module * App Module
* our top level module that holds all of our components * our top level module that holds all of our components.
*/ */
import { AppModuleNgFactory } from '../compiled/src/app/app.module.ngfactory'; import { AppModuleNgFactory } from '../compiled/src/app/app.module.ngfactory';
/* /**
* Bootstrap our Angular app with a top level NgModule * Bootstrap our Angular app with a top level NgModule.
*/ */
export function main(): Promise<any> { export function main(): Promise<any> {
return platformBrowser() return platformBrowser()
@ -16,8 +17,17 @@ export function main(): Promise<any> {
.catch((err) => console.error(err)); .catch((err) => console.error(err));
} }
export function bootstrapDomReady() { switch (document.readyState) {
document.addEventListener('DOMContentLoaded', main); case 'loading':
document.addEventListener('DOMContentLoaded', _domReadyHandler, false);
break;
case 'interactive':
case 'complete':
default:
main();
} }
bootstrapDomReady(); function _domReadyHandler() {
document.removeEventListener('DOMContentLoaded', _domReadyHandler, false);
main();
}

View File

@ -1,20 +1,37 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { decorateModuleRef } from './app/environment'; import { decorateModuleRef } from './app/environment';
import { bootloader } from '@angularclass/hmr';
/* /**
* App Module * App Module
* our top level module that holds all of our components * our top level module that holds all of our components
*/ */
import { AppModule } from './app'; import { AppModule } from './app';
/* /**
* Bootstrap our Angular app with a top level NgModule * Bootstrap our Angular app with a top level NgModule
*/ */
export function main(): Promise<any> { export function main(): Promise<any> {
return platformBrowserDynamic() return platformBrowserDynamic()
.bootstrapModule(AppModule) .bootstrapModule(AppModule)
.then(decorateModuleRef) .then(decorateModuleRef)
.catch(err => console.error(err)); .catch((err) => console.error(err));
} }
bootloader(main); /**
* Needed for hmr
* in prod this is replace for document ready
*/
switch (document.readyState) {
case 'loading':
document.addEventListener('DOMContentLoaded', _domReadyHandler, false);
break;
case 'interactive':
case 'complete':
default:
main();
}
function _domReadyHandler() {
document.removeEventListener('DOMContentLoaded', _domReadyHandler, false);
main();
}

View File

@ -16,13 +16,6 @@
"lib": [ "lib": [
"dom", "dom",
"es6" "es6"
],
"types": [
"node",
"source-map",
"uglify-js",
"videojs",
"webpack"
] ]
}, },
"exclude": [ "exclude": [

View File

@ -17,13 +17,6 @@
"lib": [ "lib": [
"dom", "dom",
"es6" "es6"
],
"types": [
"node",
"source-map",
"uglify-js",
"videojs",
"webpack"
] ]
}, },
"exclude": [ "exclude": [

File diff suppressed because it is too large Load Diff

View File

@ -378,6 +378,8 @@ describe('Test videos API validator', function () {
}) })
it('Should succeed with the correct parameters', function (done) { it('Should succeed with the correct parameters', function (done) {
this.timeout(5000)
const data = { const data = {
name: 'my super name', name: 'my super name',
category: 5, category: 5,

146
yarn.lock
View File

@ -49,8 +49,8 @@
resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.2.tgz#b02d10ab028e2928ac592a051aaa4981a1941d03" resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.2.tgz#b02d10ab028e2928ac592a051aaa4981a1941d03"
"@types/lodash@*", "@types/lodash@^4.14.64": "@types/lodash@*", "@types/lodash@^4.14.64":
version "4.14.64" version "4.14.65"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.64.tgz#979cf3a3d4a368670840bf9b3e448dc33ffe84ee" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.65.tgz#a0f78d71ffcd3c02628d5f616410c98c424326d5"
"@types/magnet-uri@^5.1.1": "@types/magnet-uri@^5.1.1":
version "5.1.1" version "5.1.1"
@ -79,8 +79,8 @@
"@types/express" "*" "@types/express" "*"
"@types/node@*", "@types/node@^7.0.18": "@types/node@*", "@types/node@^7.0.18":
version "7.0.22" version "7.0.29"
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.22.tgz#4593f4d828bdd612929478ea40c67b4f403ca255" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.29.tgz#ccfcec5b7135c7caf6c4ffb8c7f33102340d99df"
"@types/request@^0.0.43": "@types/request@^0.0.43":
version "0.0.43" version "0.0.43"
@ -90,8 +90,8 @@
"@types/node" "*" "@types/node" "*"
"@types/sequelize@^4.0.55": "@types/sequelize@^4.0.55":
version "4.0.55" version "4.0.60"
resolved "https://registry.yarnpkg.com/@types/sequelize/-/sequelize-4.0.55.tgz#957335a9de537f17ed9c9e16c088cc147b8805af" resolved "https://registry.yarnpkg.com/@types/sequelize/-/sequelize-4.0.60.tgz#8774de81fb28416eb24e964efc8af0d755e0c732"
dependencies: dependencies:
"@types/bluebird" "*" "@types/bluebird" "*"
"@types/lodash" "*" "@types/lodash" "*"
@ -109,8 +109,8 @@
resolved "https://registry.yarnpkg.com/@types/validator/-/validator-6.2.0.tgz#020322fe1929f69889eb675a1bdb5a98394b71f0" resolved "https://registry.yarnpkg.com/@types/validator/-/validator-6.2.0.tgz#020322fe1929f69889eb675a1bdb5a98394b71f0"
"@types/winston@^2.3.2": "@types/winston@^2.3.2":
version "2.3.2" version "2.3.3"
resolved "https://registry.yarnpkg.com/@types/winston/-/winston-2.3.2.tgz#c162547cb47c0b8a450e681bb9fa7041cd80edfa" resolved "https://registry.yarnpkg.com/@types/winston/-/winston-2.3.3.tgz#f3eeea27c02f08aaeb60e535804b235f8378eff4"
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
@ -200,8 +200,8 @@ append-field@^0.1.0:
resolved "https://registry.yarnpkg.com/append-field/-/append-field-0.1.0.tgz#6ddc58fa083c7bc545d3c5995b2830cc2366d44a" resolved "https://registry.yarnpkg.com/append-field/-/append-field-0.1.0.tgz#6ddc58fa083c7bc545d3c5995b2830cc2366d44a"
aproba@^1.0.3: aproba@^1.0.3:
version "1.1.1" version "1.1.2"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
are-we-there-yet@~1.1.2: are-we-there-yet@~1.1.2:
version "1.1.4" version "1.1.4"
@ -509,7 +509,7 @@ buffer-equals@^1.0.3:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5"
buffer-shims@^1.0.0, buffer-shims@~1.0.0: buffer-shims@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
@ -518,11 +518,11 @@ buffer-writer@1.0.1:
resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08" resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08"
bufferutil@^3.0.0: bufferutil@^3.0.0:
version "3.0.0" version "3.0.1"
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-3.0.0.tgz#afbb831c47229accf0b1f207d4a9942841b0ab0f" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-3.0.1.tgz#20b2ef5159ac49f20e44bce38e7c35a6a904ee66"
dependencies: dependencies:
bindings "~1.2.1" bindings "~1.2.1"
nan "~2.5.0" nan "~2.6.0"
prebuild-install "~2.1.0" prebuild-install "~2.1.0"
builtin-modules@^1.1.1: builtin-modules@^1.1.1:
@ -1036,8 +1036,8 @@ es-to-primitive@^1.1.1:
is-symbol "^1.0.1" is-symbol "^1.0.1"
es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
version "0.10.21" version "0.10.23"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38"
dependencies: dependencies:
es6-iterator "2" es6-iterator "2"
es6-symbol "~3.1" es6-symbol "~3.1"
@ -1627,8 +1627,8 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
path-is-absolute "^1.0.0" path-is-absolute "^1.0.0"
globals@^9.14.0: globals@^9.14.0:
version "9.17.0" version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
globby@^5.0.0: globby@^5.0.0:
version "5.0.0" version "5.0.0"
@ -1999,12 +1999,6 @@ isstream@0.1.x, isstream@~0.1.2:
version "0.1.2" version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
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-tokens@^3.0.0: js-tokens@^3.0.0:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
@ -2243,11 +2237,11 @@ lowercase-keys@^1.0.0:
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
lru-cache@^4.0.1: lru-cache@^4.0.1:
version "4.0.2" version "4.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
dependencies: dependencies:
pseudomap "^1.0.1" pseudomap "^1.0.2"
yallist "^2.0.0" yallist "^2.1.2"
lru@^3.0.0, lru@^3.1.0: lru@^3.0.0, lru@^3.1.0:
version "3.1.0" version "3.1.0"
@ -2435,10 +2429,14 @@ mute-stream@0.0.5:
version "0.0.5" version "0.0.5"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
nan@2.5.0, nan@^2.3.0, nan@~2.5.0: nan@2.5.0:
version "2.5.0" version "2.5.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8" resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8"
nan@^2.3.0, nan@~2.6.0:
version "2.6.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
natural-compare@^1.4.0: natural-compare@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@ -2462,8 +2460,8 @@ next-event@^1.0.0:
resolved "https://registry.yarnpkg.com/next-event/-/next-event-1.0.0.tgz#e7778acde2e55802e0ad1879c39cf6f75eda61d8" resolved "https://registry.yarnpkg.com/next-event/-/next-event-1.0.0.tgz#e7778acde2e55802e0ad1879c39cf6f75eda61d8"
node-abi@^2.0.0: node-abi@^2.0.0:
version "2.0.2" version "2.0.3"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.0.2.tgz#00f3e0a58100eb480133b48c99a32cc1f9e6c93e" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.0.3.tgz#0ca67e5e667b8e1343549ca17153a815d0bbfdaa"
node-pre-gyp@0.6.32, node-pre-gyp@^0.6.29: node-pre-gyp@0.6.32, node-pre-gyp@^0.6.29:
version "0.6.32" version "0.6.32"
@ -2611,7 +2609,7 @@ openssl-wrapper@^0.3.4:
version "0.3.4" version "0.3.4"
resolved "https://registry.yarnpkg.com/openssl-wrapper/-/openssl-wrapper-0.3.4.tgz#c01ec98e4dcd2b5dfe0b693f31827200e3b81b07" resolved "https://registry.yarnpkg.com/openssl-wrapper/-/openssl-wrapper-0.3.4.tgz#c01ec98e4dcd2b5dfe0b693f31827200e3b81b07"
optimist@0.6.1, optimist@~0.6.0: optimist@0.6.1:
version "0.6.1" version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
dependencies: dependencies:
@ -2768,18 +2766,18 @@ pg-pool@1.*:
object-assign "4.1.0" object-assign "4.1.0"
pg-types@1.*: pg-types@1.*:
version "1.11.0" version "1.12.0"
resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-1.11.0.tgz#aae91a82d952b633bb88d006350a166daaf6ea90" resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-1.12.0.tgz#8ad3b7b897e3fd463e62de241ad5fc640b4a66f0"
dependencies: dependencies:
ap "~0.2.0" ap "~0.2.0"
postgres-array "~1.0.0" postgres-array "~1.0.0"
postgres-bytea "~1.0.0" postgres-bytea "~1.0.0"
postgres-date "~1.0.0" postgres-date "~1.0.0"
postgres-interval "~1.0.0" postgres-interval "^1.1.0"
pg@^6.1.0: pg@^6.1.0:
version "6.2.3" version "6.2.4"
resolved "https://registry.yarnpkg.com/pg/-/pg-6.2.3.tgz#8988b7c69a1875a997d73b92036c42590b5f8024" resolved "https://registry.yarnpkg.com/pg/-/pg-6.2.4.tgz#4f7ede70241e97506627d5d6078360701a647c45"
dependencies: dependencies:
buffer-writer "1.0.1" buffer-writer "1.0.1"
packet-reader "0.3.1" packet-reader "0.3.1"
@ -2858,9 +2856,9 @@ postgres-date@~1.0.0:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz#e2d89702efdb258ff9d9cee0fe91bd06975257a8" resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz#e2d89702efdb258ff9d9cee0fe91bd06975257a8"
postgres-interval@~1.0.0: postgres-interval@^1.1.0:
version "1.0.2" version "1.1.0"
resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.0.2.tgz#7261438d862b412921c6fdb7617668424b73a6ed" resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.0.tgz#1031e7bac34564132862adc9eb6c6d2f3aa75bb4"
dependencies: dependencies:
xtend "^4.0.0" xtend "^4.0.0"
@ -2924,7 +2922,7 @@ ps-tree@^1.0.1:
dependencies: dependencies:
event-stream "~3.3.0" event-stream "~3.3.0"
pseudomap@^1.0.1: pseudomap@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
@ -2944,8 +2942,8 @@ qs@6.4.0, qs@^6.1.0, qs@~6.4.0:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
random-access-file@^1.0.1: random-access-file@^1.0.1:
version "1.7.2" version "1.8.1"
resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-1.7.2.tgz#053e2e8ec7670370a8e8b10da962e45753f22dbc" resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-1.8.1.tgz#b1a54a0f924fbd4d45731a5771aea36be2166532"
dependencies: dependencies:
buffer-alloc-unsafe "^1.0.0" buffer-alloc-unsafe "^1.0.0"
debug "^2.5.2" debug "^2.5.2"
@ -2965,8 +2963,10 @@ randomatic@^1.1.3:
kind-of "^4.0.0" kind-of "^4.0.0"
randombytes@^2.0.3: randombytes@^2.0.3:
version "2.0.3" version "2.0.5"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79"
dependencies:
safe-buffer "^5.1.0"
range-parser@^1.2.0, range-parser@~1.2.0: range-parser@^1.2.0, range-parser@~1.2.0:
version "1.2.0" version "1.2.0"
@ -3013,14 +3013,14 @@ readable-stream@1.1.x:
string_decoder "~0.10.x" string_decoder "~0.10.x"
readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
version "2.2.9" version "2.2.11"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.11.tgz#0796b31f8d7688007ff0b93a8088d34aa17c0f72"
dependencies: dependencies:
buffer-shims "~1.0.0"
core-util-is "~1.0.0" core-util-is "~1.0.0"
inherits "~2.0.1" inherits "~2.0.1"
isarray "~1.0.0" isarray "~1.0.0"
process-nextick-args "~1.0.6" process-nextick-args "~1.0.6"
safe-buffer "~5.0.1"
string_decoder "~1.0.0" string_decoder "~1.0.0"
util-deprecate "~1.0.1" util-deprecate "~1.0.1"
@ -3211,7 +3211,11 @@ rx@2.3.24:
version "2.3.24" version "2.3.24"
resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7"
safe-buffer@^5.0.0, safe-buffer@^5.0.1, safe-buffer@~5.0.1: safe-buffer@^5.0.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223"
safe-buffer@~5.0.1:
version "5.0.1" version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
@ -3315,8 +3319,8 @@ shebang-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
shelljs@^0.7.5: shelljs@^0.7.5:
version "0.7.7" version "0.7.8"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
dependencies: dependencies:
glob "^7.0.0" glob "^7.0.0"
interpret "^1.0.0" interpret "^1.0.0"
@ -3426,8 +3430,8 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
sshpk@^1.7.0: sshpk@^1.7.0:
version "1.13.0" version "1.13.1"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
dependencies: dependencies:
asn1 "~0.2.3" asn1 "~0.2.3"
assert-plus "^1.0.0" assert-plus "^1.0.0"
@ -3436,7 +3440,6 @@ sshpk@^1.7.0:
optionalDependencies: optionalDependencies:
bcrypt-pbkdf "^1.0.0" bcrypt-pbkdf "^1.0.0"
ecc-jsbn "~0.1.1" ecc-jsbn "~0.1.1"
jodid25519 "^1.0.0"
jsbn "~0.1.0" jsbn "~0.1.0"
tweetnacl "~0.14.0" tweetnacl "~0.14.0"
@ -3546,10 +3549,10 @@ string_decoder@~0.10.x:
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
string_decoder@~1.0.0: string_decoder@~1.0.0:
version "1.0.1" version "1.0.2"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.2.tgz#b29e1f4e1125fa97a10382b8a533737b7491e179"
dependencies: dependencies:
safe-buffer "^5.0.1" safe-buffer "~5.0.1"
stringstream@~0.0.4: stringstream@~0.0.4:
version "0.0.5" version "0.0.5"
@ -3629,8 +3632,8 @@ table@^3.7.8:
string-width "^2.0.0" string-width "^2.0.0"
tar-fs@^1.13.0: tar-fs@^1.13.0:
version "1.15.2" version "1.15.3"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.2.tgz#761f5b32932c7b39461a60d537faea0d8084830c" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.3.tgz#eccf935e941493d8151028e636e51ce4c3ca7f20"
dependencies: dependencies:
chownr "^1.0.1" chownr "^1.0.1"
mkdirp "^0.5.1" mkdirp "^0.5.1"
@ -3748,7 +3751,7 @@ tryit@^1.0.1:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
tslib@^1.0.0, tslib@^1.6.0: tslib@^1.0.0, tslib@^1.7.1:
version "1.7.1" version "1.7.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec"
@ -3759,34 +3762,35 @@ tslint-config-standard@^5.0.2:
tslint-eslint-rules "^4.0.0" tslint-eslint-rules "^4.0.0"
tslint-eslint-rules@^4.0.0: tslint-eslint-rules@^4.0.0:
version "4.1.0" version "4.1.1"
resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.0.tgz#8fee295c42f4c8078139deb16ee7b4510fd516b7" resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba"
dependencies: dependencies:
doctrine "^0.7.2" doctrine "^0.7.2"
tslib "^1.0.0" tslib "^1.0.0"
tsutils "^1.4.0" tsutils "^1.4.0"
tslint@^5.2.0: tslint@^5.2.0:
version "5.3.2" version "5.4.3"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.3.2.tgz#e56459fb095a7307f103b84052174f5e3bbef6ed" resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.4.3.tgz#761c8402b80e347b7733a04390a757b253580467"
dependencies: dependencies:
babel-code-frame "^6.22.0" babel-code-frame "^6.22.0"
colors "^1.1.2" colors "^1.1.2"
commander "^2.9.0"
diff "^3.2.0" diff "^3.2.0"
glob "^7.1.1" glob "^7.1.1"
optimist "~0.6.0" minimatch "^3.0.4"
resolve "^1.3.2" resolve "^1.3.2"
semver "^5.3.0" semver "^5.3.0"
tslib "^1.6.0" tslib "^1.7.1"
tsutils "^2.0.0" tsutils "^2.3.0"
tsutils@^1.4.0: tsutils@^1.4.0:
version "1.9.1" version "1.9.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0"
tsutils@^2.0.0: tsutils@^2.3.0:
version "2.1.0" version "2.4.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.1.0.tgz#5be8376c929528f65b302de9e17b0004e4c1eb20" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.4.0.tgz#ad4ce6dba0e5a3edbddf8626b7ca040782189fea"
tunnel-agent@^0.4.3: tunnel-agent@^0.4.3:
version "0.4.3" version "0.4.3"
@ -4091,7 +4095,7 @@ xtend@4.0.1, xtend@^4.0.0, xtend@^4.0.1:
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
yallist@^2.0.0: yallist@^2.1.2:
version "2.1.2" version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"