├── .gitignore
├── README.MD
├── imgur_scraping
├── app.js
├── package.json
└── scraper.js
├── mean_setup
├── README.md
├── gulpfile.js
├── package.json
├── public
│ ├── app
│ │ ├── app.component.html
│ │ ├── app.component.js
│ │ ├── app.component.ts
│ │ ├── app.module.js
│ │ ├── app.module.ts
│ │ ├── app.routing.js
│ │ ├── app.routing.ts
│ │ ├── main.js
│ │ └── main.ts
│ ├── assets
│ │ └── css
│ │ │ └── styles.css
│ ├── index.html
│ └── systemjs.config.js
├── server.js
├── server
│ ├── config
│ │ ├── config.js
│ │ ├── database.js
│ │ ├── env
│ │ │ └── development.json
│ │ └── express.js
│ └── views
│ │ └── 404.html
└── tsconfig.json
├── mongoose
├── README.md
├── app.js
├── app2.js
├── book.model.js
└── package.json
├── ng2_node
├── optionA
│ ├── .gitignore
│ ├── README.md
│ ├── gulpfile.js
│ ├── package.json
│ ├── public
│ │ ├── app
│ │ │ ├── app.component.js
│ │ │ ├── app.component.ts
│ │ │ ├── app.module.js
│ │ │ ├── app.module.ts
│ │ │ ├── app.routing.js
│ │ │ ├── app.routing.ts
│ │ │ ├── app.template.html
│ │ │ ├── home
│ │ │ │ ├── home.component.js
│ │ │ │ ├── home.component.ts
│ │ │ │ ├── home.styles.css
│ │ │ │ └── home.template.html
│ │ │ ├── main.js
│ │ │ ├── main.ts
│ │ │ └── shared
│ │ │ │ ├── css
│ │ │ │ └── styles.css
│ │ │ │ ├── socket.service.js
│ │ │ │ └── socket.service.ts
│ │ ├── index.html
│ │ └── systemjs.config.js
│ ├── server.js
│ ├── server
│ │ └── routes.js
│ ├── tsconfig.json
│ └── yarn.lock
└── optionB
│ ├── .gitignore
│ ├── README.md
│ ├── gulpfile.js
│ ├── index.html
│ ├── package.json
│ ├── public
│ ├── app.component.js
│ ├── app.component.ts
│ ├── app.module.js
│ ├── app.module.ts
│ ├── app.routing.js
│ ├── app.routing.ts
│ ├── app.template.html
│ ├── home
│ │ ├── home.component.js
│ │ ├── home.component.ts
│ │ ├── home.styles.css
│ │ └── home.template.html
│ ├── main.js
│ ├── main.ts
│ └── shared
│ │ ├── css
│ │ └── styles.css
│ │ ├── socket.service.js
│ │ └── socket.service.ts
│ ├── server.js
│ ├── server
│ └── routes.js
│ ├── systemjs.config.js
│ ├── tsconfig.json
│ └── yarn.lock
└── servers
├── README.md
├── package.json
├── server.js
├── server2.js
├── server_old.js
└── views
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | typings
3 | node_modules
4 | lib
5 | dist
6 | jspm_packages
7 | link-checker-results.txt
8 | npm-debug.log
9 | **/*npm-debug.log.*
10 | *.js.map
11 | _test-output
12 | _temp
13 | .editorconfig
14 | CHANGELOG.md
15 | app/**/*.js
16 | app/**/*.js.map
--------------------------------------------------------------------------------
/README.MD:
--------------------------------------------------------------------------------
1 | # NodeJS Examples
2 |
3 | > **servers** folder
4 | - node Server setups using es6 and Classes
5 | - [Video Walk-Through](https://www.youtube.com/watch?v=b4GPyuqBsuA)
6 |
7 | > **mongoose** folder
8 | - using Promises with mongoose
9 | - [Video Walk-Through](https://www.youtube.com/watch?v=Eqhero22-Rg)
10 |
11 | > **mean_setup** folder
12 | - basic MEAN starter using gulp
13 | - [Video Walk-Through](https://www.youtube.com/watch?v=x-l12DWwbUo)
14 |
15 | > **ng2_node** folder
16 | - different options for setting up Angular 2 with Node.js
17 | - [Video Walk-Through](https://www.youtube.com/watch?v=9J-eo1gRJ8s)
18 |
19 | > **imgur_scraping** folder
20 | - scrape imgur using request/cheerio + callback vs promise example
21 | - [Video Walk-Through](https://www.youtube.com/watch?v=5AtGTi3hviQ)
--------------------------------------------------------------------------------
/imgur_scraping/app.js:
--------------------------------------------------------------------------------
1 | const scraper = require('./scraper');
2 | const fs = require('fs');
3 | const url = 'http://imgur.com/gallery/hj4NW';
4 | const path = 'text.txt'
5 |
6 | // Callback example
7 | // scraper.imgScrape(url, (data) => {
8 | // console.log('data from scraper received');
9 | // console.log(data);
10 | // })
11 |
12 | // Promise example
13 | scraper.imgScrape2(url)
14 | .then((data) => {
15 | console.log('data from scraper received ');
16 | fs.writeFile(path, JSON.stringify(data), (error) => {
17 | if(error) {
18 | console.log(error);
19 | }
20 | console.log('Successfully wrote to ' + path);
21 | })
22 | })
23 | .catch((error) => {
24 | console.log('error scraping data');
25 | })
--------------------------------------------------------------------------------
/imgur_scraping/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "imgur",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "app.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "cheerio": "^0.22.0",
13 | "request": "^2.81.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/imgur_scraping/scraper.js:
--------------------------------------------------------------------------------
1 | const request = require('request');
2 | const cheerio = require('cheerio');
3 |
4 | // Callback Example
5 | exports.imgScrape = (url, cb) => {
6 | request(url, (error, resp, body) => {
7 | if(error) {
8 | cb({
9 | error: error
10 | });
11 | }
12 | let $ = cheerio.load(body);
13 | let $url = url;
14 | let $img = $('.post-image img').attr('src');
15 | let $title = $('.post-title').text();
16 | let $desc = $('[itemprop=description]').text();
17 |
18 | let image = {
19 | url: $url,
20 | img: "http:" + $img,
21 | title: $title,
22 | description: $desc
23 | }
24 |
25 | // respond with the final JSON
26 | console.log('scraped from scraper.js ', image);
27 | cb(image);
28 |
29 | });
30 | }
31 |
32 | // Promise Example
33 | exports.imgScrape2 = (url) => {
34 | return new Promise((resolve, reject) => {
35 | request(url, (error, resp, body) => {
36 | if(error) {
37 | reject(error);
38 | }
39 | let $ = cheerio.load(body);
40 | let $url = url;
41 | let $img = $('.post-image img').attr('src');
42 | let $title = $('.post-title').text();
43 | let $desc = $('[itemprop=description]').text();
44 |
45 | let image = {
46 | url: $url,
47 | img: "http:" + $img,
48 | title: $title,
49 | description: $desc
50 | }
51 |
52 | // respond with the final JSON
53 | console.log('scraped from scraper.js ', image);
54 | resolve(image);
55 |
56 | });
57 | })
58 | }
--------------------------------------------------------------------------------
/mean_setup/README.md:
--------------------------------------------------------------------------------
1 | ## MEAN Starter##
2 |
3 | > minimal setup to start hacking MEAN stack apps
4 |
5 | ## How To Use##
6 | npm install
7 |
8 | gulp copy:libs
9 |
10 | npm start
11 |
12 | running on localhost:3000
13 |
14 |
--------------------------------------------------------------------------------
/mean_setup/gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp'),
2 | sass = require('gulp-sass'),
3 | csso = require('gulp-csso'),
4 | uglify = require('gulp-uglify'),
5 | concat = require('gulp-concat'),
6 | plumber = require('gulp-plumber'),
7 | del = require('del'),
8 | sequence = require('run-sequence'),
9 | jsPath = 'public/app',
10 | jsDist = 'public/dist',
11 | cssPath = 'public/assets/css',
12 | cssDist = 'public/assets/css/dist',
13 | libPath = 'public/lib',
14 | nodeModulesPath = 'node_modules';
15 |
16 | gulp.task('sass', function() {
17 | gulp.src(cssPath + '/*.scss')
18 | .pipe(plumber())
19 | .pipe(sass({ errLogToConsole: true }))
20 | .pipe(csso())
21 | .pipe(gulp.dest(cssDist));
22 | });
23 |
24 | gulp.task('clean', function () {
25 | return del(libPath + '/**/*', { force: true });
26 | });
27 |
28 | gulp.task('copy:libs', function (done) {
29 | sequence('clean', 'copy:vendor', 'copy:rxjs', 'copy:angular', 'copy:bootstrap', done);
30 | });
31 |
32 | gulp.task('copy:vendor', function() {
33 | return gulp.src([
34 | nodeModulesPath + '/core-js/client/**/*',
35 | nodeModulesPath + '/zone.js/dist/zone.js',
36 | nodeModulesPath + '/reflect-metadata/**/*',
37 | nodeModulesPath + '/systemjs/dist/system-polyfills.js',
38 | nodeModulesPath + '/systemjs/dist/system.src.js'
39 | ])
40 | .pipe(gulp.dest(libPath));
41 | });
42 |
43 | gulp.task('copy:rxjs', function() {
44 | return gulp.src([
45 | nodeModulesPath + '/rxjs/**/*'
46 | ])
47 | .pipe(gulp.dest(libPath + '/rxjs'));
48 | });
49 |
50 | gulp.task('copy:angular', function() {
51 | return gulp
52 | .src([nodeModulesPath + '/@angular/**/*'])
53 | .pipe(gulp.dest(libPath + '/@angular'));
54 | });
55 |
56 | gulp.task('copy:bootstrap', function() {
57 | return gulp
58 | .src([nodeModulesPath + '/bootstrap/**/*'])
59 | .pipe(gulp.dest(libPath + '/bootstrap'));
60 | });
61 |
62 | gulp.task('compressScripts', function() {
63 | gulp.src([
64 | jsPath + '/**/*.js'
65 | ])
66 | .pipe(concat('scripts.min.js'))
67 | .pipe(uglify())
68 | .pipe(gulp.dest(jsDist));
69 | });
70 |
71 | gulp.task('watch', function() {
72 |
73 | gulp.watch(cssPath + '/*.scss', ['sass']);
74 |
75 | gulp.watch([
76 | jsPath + '/**/*.js', ['compressScripts']
77 | ]);
78 |
79 | });
80 |
81 | gulp.task('default', ['sass', 'compressScripts', 'watch']);
82 |
83 |
--------------------------------------------------------------------------------
/mean_setup/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mean_setup",
3 | "version": "1.0.0",
4 | "repository": {
5 | "url": ""
6 | },
7 | "license": "MIT",
8 | "scripts": {
9 | "tsc": "tsc",
10 | "tsc:w": "tsc -w",
11 | "server": "node server.js",
12 | "start": "concurrently \"npm run tsc:w\" \"nodemon server.js\""
13 | },
14 | "dependencies": {
15 | "@angular/common": "~2.3.0",
16 | "@angular/compiler": "~2.3.0",
17 | "@angular/core": "~2.3.0",
18 | "@angular/forms": "~2.3.0",
19 | "@angular/http": "~2.3.0",
20 | "@angular/platform-browser": "~2.3.0",
21 | "@angular/platform-browser-dynamic": "~2.3.0",
22 | "@angular/router": "~3.3.0",
23 | "@angular/upgrade": "2.2.0",
24 | "bootstrap": "^4.0.0-alpha.5",
25 |
26 | "angular-in-memory-web-api": "~0.2.1",
27 | "systemjs": "0.19.40",
28 | "core-js": "^2.4.1",
29 | "reflect-metadata": "^0.1.8",
30 | "rxjs": "5.0.0-rc.4",
31 | "zone.js": "0.7.2",
32 |
33 | "body-parser": "^1.15.2",
34 | "compression": "1.6.0",
35 | "cookie-parser": "^1.4.3",
36 | "connect-mongo": "1.3.2",
37 | "csurf": "^1.9.0",
38 | "ejs": "2.5.2",
39 | "errorhandler": "^1.5.0",
40 | "express": "^4.14.0",
41 | "express-session": "^1.14.2",
42 | "method-override": "2.3.6",
43 | "mongoose": "^4.6.8",
44 | "morgan": "~1.7.0",
45 | "serve-favicon": "~2.3.2"
46 | },
47 | "devDependencies": {
48 | "concurrently": "^3.1.0",
49 | "lite-server": "^2.2.2",
50 | "typescript": "2.0.10",
51 |
52 | "del": "^2.2.2",
53 | "gulp": "^3.9.1",
54 | "gulp-concat": "^2.6.1",
55 | "gulp-csso": "^2.0.0",
56 | "gulp-plumber": "^1.1.0",
57 | "gulp-sass": "^2.3.2",
58 | "gulp-uglify": "^2.0.0",
59 | "run-sequence": "^1.2.2",
60 |
61 | "@types/core-js": "^0.9.34",
62 | "@types/node": "^6.0.48"
63 | }
64 | }
--------------------------------------------------------------------------------
/mean_setup/public/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ title }}
4 |
Lalalal is a modified jumbotron that occupies the entire horizontal space of its parent.
5 |
6 |
--------------------------------------------------------------------------------
/mean_setup/public/app/app.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var AppComponent = (function () {
13 | function AppComponent() {
14 | this.title = "My MEAN Setup";
15 | }
16 | AppComponent = __decorate([
17 | core_1.Component({
18 | moduleId: module.id,
19 | selector: 'mt-app',
20 | templateUrl: 'app.component.html'
21 | }),
22 | __metadata('design:paramtypes', [])
23 | ], AppComponent);
24 | return AppComponent;
25 | }());
26 | exports.AppComponent = AppComponent;
27 | //# sourceMappingURL=app.component.js.map
--------------------------------------------------------------------------------
/mean_setup/public/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | moduleId: module.id,
5 | selector: 'mt-app',
6 | templateUrl: 'app.component.html'
7 | })
8 |
9 | export class AppComponent {
10 |
11 | title: string = "My MEAN Setup";
12 | }
--------------------------------------------------------------------------------
/mean_setup/public/app/app.module.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var platform_browser_1 = require('@angular/platform-browser');
13 | var forms_1 = require('@angular/forms');
14 | var app_component_1 = require('./app.component');
15 | var AppModule = (function () {
16 | function AppModule() {
17 | }
18 | AppModule = __decorate([
19 | core_1.NgModule({
20 | imports: [platform_browser_1.BrowserModule,
21 | forms_1.FormsModule],
22 | declarations: [app_component_1.AppComponent
23 | ],
24 | bootstrap: [app_component_1.AppComponent]
25 | }),
26 | __metadata('design:paramtypes', [])
27 | ], AppModule);
28 | return AppModule;
29 | }());
30 | exports.AppModule = AppModule;
31 | //# sourceMappingURL=app.module.js.map
--------------------------------------------------------------------------------
/mean_setup/public/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { BrowserModule } from '@angular/platform-browser';
3 | import { FormsModule } from '@angular/forms';
4 | import { AppComponent } from './app.component';
5 |
6 | @NgModule({
7 | imports: [ BrowserModule,
8 | FormsModule ],
9 | declarations: [ AppComponent
10 | ],
11 | bootstrap: [ AppComponent ]
12 | })
13 |
14 | export class AppModule { }
--------------------------------------------------------------------------------
/mean_setup/public/app/app.routing.js:
--------------------------------------------------------------------------------
1 | //# sourceMappingURL=app.routing.js.map
--------------------------------------------------------------------------------
/mean_setup/public/app/app.routing.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jakblak/nodeJS_examples/5a0291d0789335dd9cc358b4e613a11ff7b461db/mean_setup/public/app/app.routing.ts
--------------------------------------------------------------------------------
/mean_setup/public/app/main.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var platform_browser_dynamic_1 = require('@angular/platform-browser-dynamic');
3 | var app_module_1 = require('./app.module');
4 | var platform = platform_browser_dynamic_1.platformBrowserDynamic();
5 | platform.bootstrapModule(app_module_1.AppModule);
6 | //# sourceMappingURL=main.js.map
--------------------------------------------------------------------------------
/mean_setup/public/app/main.ts:
--------------------------------------------------------------------------------
1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2 | import { AppModule } from './app.module';
3 |
4 | const platform = platformBrowserDynamic();
5 |
6 | platform.bootstrapModule(AppModule);
--------------------------------------------------------------------------------
/mean_setup/public/assets/css/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jakblak/nodeJS_examples/5a0291d0789335dd9cc358b4e613a11ff7b461db/mean_setup/public/assets/css/styles.css
--------------------------------------------------------------------------------
/mean_setup/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | MEAN Trello App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/mean_setup/public/systemjs.config.js:
--------------------------------------------------------------------------------
1 | (function(global) {
2 |
3 | // map tells the System loader where to look for things
4 | var map = {
5 | 'app': 'app', // 'dist',
6 | '@angular': 'lib/@angular',
7 | 'rxjs': 'lib/rxjs'
8 | };
9 |
10 | // packages tells the System loader how to load when no filename and/or no extension
11 | var packages = {
12 | 'app': { main: 'main.js', defaultExtension: 'js' },
13 | 'rxjs': { defaultExtension: 'js' }
14 | };
15 |
16 | var ngPackageNames = [
17 | 'common',
18 | 'compiler',
19 | 'core',
20 | 'forms',
21 | 'http',
22 | 'platform-browser',
23 | 'platform-browser-dynamic',
24 | 'router',
25 | 'upgrade',
26 | ];
27 |
28 | // Individual files (~300 requests):
29 | function packIndex(pkgName) {
30 | packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
31 | }
32 |
33 | // Bundled (~40 requests):
34 | function packUmd(pkgName) {
35 | packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
36 | }
37 |
38 | // Most environments should use UMD; some (Karma) need the individual index files
39 | var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
40 | // Add package entries for angular packages
41 | ngPackageNames.forEach(setPackageConfig);
42 |
43 | var config = {
44 | map: map,
45 | packages: packages
46 | };
47 |
48 | System.config(config);
49 |
50 | })(this);
--------------------------------------------------------------------------------
/mean_setup/server.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Entry point to Node server
3 | */
4 |
5 | // Set default node environment to development
6 | process.env.NODE_ENV = process.env.NODE_ENV || 'development';
7 |
8 | // Load the module dependencies
9 | const initDatabase = require('./server/config/database');
10 | const configureExpress = require('./server/config/express');
11 | // const configurePassport = require('.server/config/passport');
12 | const port = 3000;
13 |
14 | // Open DB and create a new Mongoose connection instance
15 | const db = initDatabase();
16 |
17 | // Create a new Express application instance
18 | const app = configureExpress(db);
19 |
20 | // Configure the Passport middleware
21 | // const passport = configurePassport();
22 |
23 | // Use the Express application instance to listen to the '3000' port
24 | app.listen(port, (err) => {
25 | console.log('[%s] Listening on http://localhost:%d', process.env.NODE_ENV, port);
26 | });
27 |
28 | // Use the module.exports property to expose our Express application instance for external usage
29 | module.exports = app;
--------------------------------------------------------------------------------
/mean_setup/server/config/config.js:
--------------------------------------------------------------------------------
1 | // Load the correct configuration file according to the 'NODE_ENV' variable
2 | 'use strict';
3 |
4 | if (!process.env.NODE_ENV) process.env.NODE_ENV = 'development';
5 |
6 | const env = process.env.NODE_ENV;
7 |
8 | console.log(`Node environment: ${env}`);
9 | console.log(`loading config.${env}.json`);
10 |
11 | module.exports = require(`./env/${env}.json`);
--------------------------------------------------------------------------------
/mean_setup/server/config/database.js:
--------------------------------------------------------------------------------
1 | // Module dependencies
2 | const mongoose = require('mongoose');
3 | const dbConfig = require('./config').databaseConfig;
4 | const connectionString = 'mongodb://' + dbConfig.host + '/' + dbConfig.database;
5 |
6 | // Define the Mongoose configuration method
7 | module.exports = function() {
8 |
9 | // Use Mongoose to connect to MongoDB
10 | // function open() {
11 | // mongoose.connect(connectionString);
12 | // mongoose.connection.on('open', () => {
13 | // console.log('We have connected to mongodb');
14 | // });
15 | // }
16 |
17 | const db = mongoose.connect(connectionString);
18 |
19 | // Load the 'User' model
20 | // require('../app/models/user.server.model');
21 | // require('../app/models/article.server.model');
22 |
23 | // Return the Mongoose connection instance
24 | return db;
25 | };
--------------------------------------------------------------------------------
/mean_setup/server/config/env/development.json:
--------------------------------------------------------------------------------
1 | {
2 | "databaseConfig": {
3 | "host": "localhost",
4 | "database": "mean-trello",
5 | "sessionSecret": "developmentSessionSecret"
6 | }
7 | }
--------------------------------------------------------------------------------
/mean_setup/server/config/express.js:
--------------------------------------------------------------------------------
1 | // Load the module dependencies
2 | const config = require('./config');
3 | const path = require('path');
4 | const express = require('express');
5 | const morgan = require('morgan');
6 | const compress = require('compression');
7 | const bodyParser = require('body-parser');
8 | const cookieParser = require('cookie-parser');
9 | const errorhandler = require('errorhandler');
10 | const csrf = require('csurf');
11 | const methodOverride = require('method-override');
12 | const session = require('express-session');
13 | const MongoStore = require('connect-mongo')(session);
14 |
15 | // Define the Express configuration method
16 | module.exports = function(db) {
17 | // Create a new Express application instance
18 | const app = express();
19 |
20 | // Use the 'NODE_ENV' variable to activate the 'morgan' logger or 'compress' middleware
21 | if (process.env.NODE_ENV === 'development') {
22 | app.use(morgan('dev'));
23 | } else if (process.env.NODE_ENV === 'production') {
24 | app.use(compress());
25 | }
26 |
27 | // Use the 'body-parser' and 'method-override' middleware functions
28 | app.use(bodyParser.urlencoded({
29 | extended: true
30 | }));
31 | app.use(bodyParser.json());
32 | app.use(methodOverride());
33 | app.use(errorhandler());
34 | app.use(cookieParser());
35 | app.use(csrf({ cookie: true }));
36 |
37 | app.use(function (req, res, next) {
38 | var csrfToken = req.csrfToken();
39 | res.locals._csrf = csrfToken;
40 | res.cookie('XSRF-TOKEN', csrfToken);
41 | next();
42 | });
43 |
44 | // Configure the MongoDB session storage
45 | const mongoStore = new MongoStore({
46 | mongooseConnection: db.connection
47 | });
48 |
49 | // Configure the 'session' middleware
50 | app.use(session({
51 | name: 'sid',
52 | saveUninitialized: false,
53 | resave: true,
54 | secret: "416351*&(^&*FJIAS",
55 | // secret: process.env.sessionSecret,
56 | store: mongoStore
57 | }));
58 |
59 | // Set the application view engine and 'views' folder
60 | app.set('views', './server/views');
61 | app.set('view engine', 'ejs');
62 |
63 | // Configure static file serving
64 | app.use('/', express.static(path.resolve('./public')));
65 |
66 | // Load the routing files
67 | // require('../app/routes/users.server.routes.js')(app);
68 |
69 | // Return the Server instance
70 | return app;
71 | };
--------------------------------------------------------------------------------
/mean_setup/server/views/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Page Not Found :(
6 |
141 |
142 |
143 |
144 |
Not found :(
145 |
Sorry, but the page you were trying to view does not exist.
146 |
It looks like this was the result of either:
147 |
148 | - a mistyped address
149 | - an out-of-date link
150 |
151 |
154 |
155 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/mean_setup/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "commonjs",
5 | "moduleResolution": "node",
6 | "sourceMap": true,
7 | "emitDecoratorMetadata": true,
8 | "experimentalDecorators": true,
9 | "removeComments": false,
10 | "noImplicitAny": true,
11 | "suppressImplicitAnyIndexErrors": true
12 | },
13 | "exclude": [
14 | "node_modules",
15 | "public/lib"
16 | ]
17 | }
--------------------------------------------------------------------------------
/mongoose/README.md:
--------------------------------------------------------------------------------
1 | # CRUD examples using Mongoose
2 |
3 | - added Promise example to app2.js
--------------------------------------------------------------------------------
/mongoose/app.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const app = express();
3 | const bodyParser = require('body-parser');
4 | const mongoose = require('mongoose');
5 | const Book = require('./Book.model');
6 |
7 | const port = 8080;
8 | const db = 'mongodb://localhost/example';
9 |
10 | mongoose.connect(db);
11 |
12 | app.use(bodyParser.json());
13 | app.use(bodyParser.urlencoded({
14 | extended: true
15 | }));
16 |
17 | app.get('/', (req, res) =>
18 | res.send('happy to be here'));
19 |
20 | app.get('/books', (req, res) => {
21 | console.log('getting all books');
22 | Book.find({})
23 | .exec((err, books) => {
24 | if(err) {
25 | res.send('error occured')
26 | } else {
27 | console.log(books);
28 | res.json(books);
29 | }
30 | })
31 | });
32 |
33 | app.get('/books/:id', (req, res) =>
34 | // console.log('getting all books');
35 | Book.findOne({
36 | _id: req.params.id
37 | })
38 | .exec((err, books) => {
39 | if(err) {
40 | res.send('error occured')
41 | } else {
42 | console.log(books);
43 | res.json(books);
44 | }
45 | }));
46 |
47 | app.post('/book', (req, res) => {
48 | let newBook = new Book();
49 |
50 | newBook.title = req.body.title;
51 | newBook.author = req.body.author;
52 | newBook.category = req.body.category;
53 |
54 | newBook.save((err, book) => {
55 | if(err) {
56 | res.send('error saving book');
57 | } else {
58 | console.log(book);
59 | res.send(book);
60 | }
61 | })
62 | });
63 |
64 | app.post('/book2', (req, res) =>
65 | Book.create(req.body, (err, book) => {
66 | if(err) {
67 | res.send('error saving book');
68 | } else {
69 | console.log(book);
70 | res.send(book);
71 | }
72 | }));
73 |
74 | app.put('/book/:id', (req, res) =>
75 | Book.findOneAndUpdate({
76 | _id: req.params.id
77 | },
78 | { $set: { title: req.body.title }
79 | }, {upsert: true}, (err, newBook) => {
80 | if (err) {
81 | res.send('error updating ');
82 | } else {
83 | console.log(newBook);
84 | res.send(newBook);
85 | }
86 | }));
87 |
88 | app.delete('/book/:id', (req, res) =>
89 | Book.findOneAndRemove({
90 | _id: req.params.id
91 | }, (err, book) => {
92 | if(err) {
93 | res.send('error removing')
94 | } else {
95 | console.log(book);
96 | res.status(204);
97 | }
98 | }));
99 |
100 | app.listen(port, () =>
101 | console.log('app listening on port ' + port));
--------------------------------------------------------------------------------
/mongoose/app2.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const app = express();
3 | const bodyParser = require('body-parser');
4 | const mongoose = require('mongoose');
5 | const Book = require('./Book.model');
6 |
7 | const port = 8080;
8 | const db = 'mongodb://localhost/example';
9 |
10 | // Use native ES6 promises
11 | mongoose.Promise = global.Promise;
12 | mongoose.connect(db);
13 |
14 | // connect to mongo function
15 | // const open = () => {
16 | // let connection = mongoose.connection;
17 | // mongoose.Promise = global.Promise;
18 | // mongoose.connect(db);
19 | // mongoose.connection.on('open', () => {
20 | // console.log('We have connected to mongodb');
21 | // });
22 | // return connection;
23 | // };
24 |
25 | // open();
26 |
27 | app.use(bodyParser.json());
28 | app.use(bodyParser.urlencoded({
29 | extended: true
30 | }));
31 |
32 | app.get('/', (req, res) =>
33 | res.send('happy to be here'));
34 |
35 | app.get('/books', (req, res) => {
36 | console.log('getting all books');
37 | Book.find({})
38 | .exec((err, books) => {
39 | if(err) {
40 | res.send('error occured')
41 | } else {
42 | console.log(books);
43 | res.json(books);
44 | }
45 | })
46 | });
47 |
48 | // app.get('/books', (req, res) => {
49 | // console.log('getting all books');
50 | // Book.find({})
51 | // .exec((err, books) => {
52 | // if(err) {
53 | // res.send('error occured')
54 | // } else {
55 | // console.log(books);
56 | // res.json(books);
57 | // }
58 | // })
59 | // });
60 |
61 | // Promise Example
62 | app.get('/books', (req, res) => {
63 | console.log('getting all books');
64 | Book.find({})
65 | .exec()
66 | .then((books) => {
67 | console(books);
68 | res.json(books);
69 | })
70 | .catch((err) => {
71 | res.send('error occured');
72 | });
73 | });
74 |
75 | app.get('/books/:id', (req, res) =>
76 | // console.log('getting all books');
77 | Book.findOne({
78 | _id: req.params.id
79 | })
80 | .exec((err, books) => {
81 | if(err) {
82 | res.send('error occured')
83 | } else {
84 | console.log(books);
85 | res.json(books);
86 | }
87 | }));
88 |
89 | app.post('/book', (req, res) => {
90 | let newBook = new Book();
91 |
92 | newBook.title = req.body.title;
93 | newBook.author = req.body.author;
94 | newBook.category = req.body.category;
95 |
96 | newBook.save((err, book) => {
97 | if(err) {
98 | res.send('error saving book');
99 | } else {
100 | console.log(book);
101 | res.send(book);
102 | }
103 | })
104 | });
105 |
106 | app.post('/book2', (req, res) =>
107 | Book.create(req.body, (err, book) => {
108 | if(err) {
109 | res.send('error saving book');
110 | } else {
111 | console.log(book);
112 | res.send(book);
113 | }
114 | }));
115 |
116 | app.put('/book/:id', (req, res) =>
117 | Book.findOneAndUpdate({
118 | _id: req.params.id
119 | },
120 | { $set: { title: req.body.title }
121 | }, {upsert: true}, (err, newBook) => {
122 | if (err) {
123 | res.send('error updating ');
124 | } else {
125 | console.log(newBook);
126 | res.send(newBook);
127 | }
128 | }));
129 |
130 | app.delete('/book/:id', (req, res) =>
131 | Book.findOneAndRemove({
132 | _id: req.params.id
133 | }, (err, book) => {
134 | if(err) {
135 | res.send('error removing')
136 | } else {
137 | console.log(book);
138 | res.status(204);
139 | }
140 | }));
141 |
142 | app.listen(port, () =>
143 | console.log('app listening on port ' + port));
--------------------------------------------------------------------------------
/mongoose/book.model.js:
--------------------------------------------------------------------------------
1 | var mongoose = require('mongoose');
2 | var Schema = mongoose.Schema;
3 |
4 | var BookSchema = new Schema({
5 | title: String,
6 | author: String,
7 | category: String
8 | });
9 |
10 | module.exports = mongoose.model('Book', BookSchema);
--------------------------------------------------------------------------------
/mongoose/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mongoose_app",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "app.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "body-parser": "^1.15.2",
13 | "express": "^4.14.0",
14 | "mongoose": "^4.7.4"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ng2_node/optionA/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | typings
3 | node_modules
4 | lib
5 | dist
6 | jspm_packages
7 | link-checker-results.txt
8 | npm-debug.log
9 | **/*npm-debug.log.*
10 | *.js.map
11 | _test-output
12 | _temp
13 | .editorconfig
14 | CHANGELOG.md
15 | app/**/*.js
16 | app/**/*.js.map
--------------------------------------------------------------------------------
/ng2_node/optionA/README.md:
--------------------------------------------------------------------------------
1 | ## Node + Angular 2 with 1 server
2 |
3 | ## Run the project
4 | - `npm i` or `yarn`
5 | - `gulp`
6 | - command prompt 1 type `tsc` to compile Typescript files
7 | - command prompt 2 type `nodemon server.js` or `node server.js`
8 |
9 | ### Navigate to port 8000
10 |
11 | - includes socket.io setup
--------------------------------------------------------------------------------
/ng2_node/optionA/gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp'),
2 | del = require('del'),
3 | sequence = require('run-sequence'),
4 | libPath = 'public/lib',
5 | nodeModulesPath = 'node_modules';
6 |
7 | gulp.task('clean', function () {
8 | return del(libPath + '/**/*', { force: true });
9 | });
10 |
11 | gulp.task('copy:libs', function (done) {
12 | sequence('clean', 'copy:vendor', 'copy:rxjs', 'copy:angular', 'copy:bootstrap', 'copy:socketIO', done);
13 | });
14 |
15 | gulp.task('copy:vendor', function() {
16 | return gulp
17 | .src([
18 | nodeModulesPath + '/core-js/client/**/*',
19 | nodeModulesPath + '/zone.js/dist/zone.js',
20 | nodeModulesPath + '/reflect-metadata/**/*',
21 | nodeModulesPath + '/systemjs/dist/system-polyfills.js',
22 | nodeModulesPath + '/systemjs/dist/system.src.js'])
23 | .pipe(gulp.dest(libPath));
24 | });
25 |
26 | gulp.task('copy:rxjs', function() {
27 | return gulp
28 | .src([nodeModulesPath + '/rxjs/**/*'])
29 | .pipe(gulp.dest(libPath + '/rxjs'));
30 | });
31 |
32 | gulp.task('copy:angular', function() {
33 | return gulp
34 | .src([nodeModulesPath + '/@angular/**/*'])
35 | .pipe(gulp.dest(libPath + '/@angular'));
36 | });
37 |
38 | gulp.task('copy:bootstrap', function() {
39 | return gulp
40 | .src([nodeModulesPath + '/bootstrap/**/*'])
41 | .pipe(gulp.dest(libPath + '/bootstrap'));
42 | });
43 |
44 | gulp.task('copy:socketIO', function() {
45 | return gulp
46 | .src([nodeModulesPath + '/socket.io-client/**/*'])
47 | .pipe(gulp.dest(libPath + '/socket.io-client'));
48 | });
49 |
50 | gulp.task('default', ['copy:libs']);
--------------------------------------------------------------------------------
/ng2_node/optionA/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular2-socket.io",
3 | "version": "1.0.0",
4 | "description": "Simple chat app using socket.io, angular 2 and a node.js web server",
5 | "scripts": {
6 | "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
7 | "lite": "lite-server",
8 | "postinstall": "typings install",
9 | "tsc": "tsc",
10 | "tsc:w": "tsc -w",
11 | "typings": "typings"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "MIT",
16 | "dependencies": {
17 | "@angular/common": "~2.4.0",
18 | "@angular/compiler": "~2.4.0",
19 | "@angular/core": "~2.4.0",
20 | "@angular/forms": "~2.4.0",
21 | "@angular/http": "~2.4.0",
22 | "@angular/platform-browser": "~2.4.0",
23 | "@angular/platform-browser-dynamic": "~2.4.0",
24 | "@angular/router": "~3.4.0",
25 | "@angular/upgrade": "^2.4.9",
26 | "@types/socket.io": "^1.4.28",
27 | "angular-in-memory-web-api": "~0.2.4",
28 | "bootstrap": "^3.3.7",
29 | "core-js": "^2.4.1",
30 | "express": "^4.13.4",
31 | "path": "^0.12.7",
32 | "rxjs": "5.0.1",
33 | "socket.io": "1.4.5",
34 | "systemjs": "0.19.40",
35 | "zone.js": "^0.7.4"
36 | },
37 | "devDependencies": {
38 | "concurrently": "^3.2.0",
39 | "lite-server": "^2.2.2",
40 | "typescript": "~2.0.10",
41 | "@types/node": "^6.0.46",
42 | "@types/jasmine": "2.5.36",
43 | "@types/socket.io-client": "1.4.29",
44 | "del": "^2.2.2",
45 | "gulp": "^3.9.1",
46 | "run-sequence": "^1.2.2"
47 | },
48 | "repository": {}
49 | }
50 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/app.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var AppComponent = (function () {
13 | function AppComponent() {
14 | this.appName = "Angular 2 Chat App";
15 | }
16 | AppComponent = __decorate([
17 | core_1.Component({
18 | moduleId: module.id,
19 | selector: 'ch-app',
20 | templateUrl: 'app.template.html'
21 | }),
22 | __metadata('design:paramtypes', [])
23 | ], AppComponent);
24 | return AppComponent;
25 | }());
26 | exports.AppComponent = AppComponent;
27 | //# sourceMappingURL=app.component.js.map
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | moduleId: module.id,
5 | selector: 'ch-app',
6 | templateUrl: 'app.template.html'
7 | })
8 |
9 | export class AppComponent {
10 | appName: string = "Angular 2 Chat App";
11 | }
12 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/app.module.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var platform_browser_1 = require('@angular/platform-browser');
13 | var forms_1 = require('@angular/forms');
14 | var app_component_1 = require('./app.component');
15 | var home_component_1 = require('./home/home.component');
16 | var socket_service_1 = require('./shared/socket.service');
17 | var AppModule = (function () {
18 | function AppModule() {
19 | }
20 | AppModule = __decorate([
21 | core_1.NgModule({
22 | imports: [platform_browser_1.BrowserModule,
23 | forms_1.FormsModule
24 | ],
25 | declarations: [app_component_1.AppComponent,
26 | home_component_1.HomeComponent],
27 | providers: [socket_service_1.SocketService],
28 | bootstrap: [app_component_1.AppComponent]
29 | }),
30 | __metadata('design:paramtypes', [])
31 | ], AppModule);
32 | return AppModule;
33 | }());
34 | exports.AppModule = AppModule;
35 | //# sourceMappingURL=app.module.js.map
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { BrowserModule } from '@angular/platform-browser';
3 | import { FormsModule } from '@angular/forms';
4 |
5 | import { AppComponent } from './app.component';
6 | import { HomeComponent } from './home/home.component';
7 |
8 | import { SocketService } from './shared/socket.service';
9 |
10 | @NgModule({
11 | imports: [ BrowserModule,
12 | FormsModule
13 | ],
14 | declarations: [ AppComponent,
15 | HomeComponent],
16 | providers: [ SocketService ],
17 | bootstrap: [ AppComponent ]
18 | })
19 |
20 | export class AppModule { }
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/app.routing.js:
--------------------------------------------------------------------------------
1 | //# sourceMappingURL=app.routing.js.map
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/app.routing.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jakblak/nodeJS_examples/5a0291d0789335dd9cc358b4e613a11ff7b461db/ng2_node/optionA/public/app/app.routing.ts
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/app.template.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/home/home.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var io = require('socket.io-client');
13 | var HomeComponent = (function () {
14 | function HomeComponent() {
15 | // this.socket = io.connect('http://localhost:8000');
16 | this.socket = io.connect();
17 | }
18 | HomeComponent.prototype.ngOnInit = function () {
19 | var _this = this;
20 | this.messages = new Array();
21 | this.socket.on('message-received', function (msg) {
22 | _this.messages.push(msg);
23 | console.log(msg);
24 | console.log(_this.messages);
25 | });
26 | this.socket.emit('event1', {
27 | msg: 'Client to server, can you hear me server?'
28 | });
29 | this.socket.on('event2', function (data) {
30 | console.log(data.msg);
31 | _this.socket.emit('event3', {
32 | msg: 'Yes, its working for me!!'
33 | });
34 | });
35 | this.socket.on('event4', function (data) {
36 | console.log(data.msg);
37 | });
38 | };
39 | HomeComponent.prototype.sendMessage = function () {
40 | var message = {
41 | text: this.messageText
42 | };
43 | this.socket.emit('send-message', message);
44 | // console.log(message.text);
45 | this.messageText = '';
46 | };
47 | HomeComponent = __decorate([
48 | core_1.Component({
49 | moduleId: module.id,
50 | selector: 'ch-home',
51 | styleUrls: ['home.styles.css'],
52 | templateUrl: 'home.template.html'
53 | }),
54 | __metadata('design:paramtypes', [])
55 | ], HomeComponent);
56 | return HomeComponent;
57 | }());
58 | exports.HomeComponent = HomeComponent;
59 | //# sourceMappingURL=home.component.js.map
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/home/home.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import * as io from 'socket.io-client';
3 |
4 | @Component({
5 | moduleId: module.id,
6 | selector: 'ch-home',
7 | styleUrls: ['home.styles.css'],
8 | templateUrl: 'home.template.html'
9 | })
10 |
11 | export class HomeComponent implements OnInit {
12 | messageText: string;
13 | messages: Array;
14 | socket: SocketIOClient.Socket;
15 |
16 | constructor() {
17 | // this.socket = io.connect('http://localhost:8000');
18 | this.socket = io.connect();
19 | }
20 |
21 | ngOnInit() {
22 | this.messages = new Array();
23 |
24 | this.socket.on('message-received', (msg: any) => {
25 | this.messages.push(msg);
26 | console.log(msg);
27 | console.log(this.messages);
28 | });
29 | this.socket.emit('event1', {
30 | msg: 'Client to server, can you hear me server?'
31 | });
32 | this.socket.on('event2', (data: any) => {
33 | console.log(data.msg);
34 | this.socket.emit('event3', {
35 | msg: 'Yes, its working for me!!'
36 | });
37 | });
38 | this.socket.on('event4', (data: any) => {
39 | console.log(data.msg);
40 | });
41 | }
42 |
43 | sendMessage() {
44 | const message = {
45 | text: this.messageText
46 | };
47 | this.socket.emit('send-message', message);
48 | // console.log(message.text);
49 | this.messageText = '';
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/home/home.styles.css:
--------------------------------------------------------------------------------
1 | * {
2 | box-sizing: border-box;
3 | }
4 |
5 | body {
6 | background-color: #edeff2;
7 | font-family: "Calibri", "Roboto", sans-serif;
8 | }
9 |
10 | .chat_window {
11 | position: absolute;
12 | width: calc(100% - 20px);
13 | max-width: 800px;
14 | height: 500px;
15 | border-radius: 10px;
16 | background-color: #fff;
17 | left: 50%;
18 | top: 50%;
19 | transform: translateX(-50%) translateY(-50%);
20 | box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
21 | background-color: #f8f8f8;
22 | overflow: hidden;
23 | }
24 |
25 | .top_menu {
26 | background-color: #fff;
27 | width: 100%;
28 | padding: 20px 0 15px;
29 | box-shadow: 0 1px 30px rgba(0, 0, 0, 0.1);
30 | }
31 | .top_menu .buttons {
32 | margin: 3px 0 0 20px;
33 | position: absolute;
34 | }
35 | .top_menu .buttons .button {
36 | width: 16px;
37 | height: 16px;
38 | border-radius: 50%;
39 | display: inline-block;
40 | margin-right: 10px;
41 | position: relative;
42 | }
43 | .top_menu .buttons .button.close {
44 | background-color: #f5886e;
45 | }
46 | .top_menu .buttons .button.minimize {
47 | background-color: #fdbf68;
48 | }
49 | .top_menu .buttons .button.maximize {
50 | background-color: #a3d063;
51 | }
52 | .top_menu .title {
53 | text-align: center;
54 | color: #bcbdc0;
55 | font-size: 20px;
56 | }
57 |
58 | .messages {
59 | position: relative;
60 | list-style: none;
61 | padding: 20px 10px 0 10px;
62 | margin: 0;
63 | height: 347px;
64 | overflow: scroll;
65 | }
66 | .messages .message {
67 | clear: both;
68 | overflow: hidden;
69 | margin-bottom: 20px;
70 | transition: all 0.5s linear;
71 | opacity: 0;
72 | }
73 | .messages .message.left .avatar {
74 | background-color: #f5886e;
75 | float: left;
76 | }
77 | .messages .message.left .text_wrapper {
78 | background-color: #ffe6cb;
79 | margin-left: 20px;
80 | }
81 | .messages .message.left .text_wrapper::after, .messages .message.left .text_wrapper::before {
82 | right: 100%;
83 | border-right-color: #ffe6cb;
84 | }
85 | .messages .message.left .text {
86 | color: #c48843;
87 | }
88 | .messages .message.right .avatar {
89 | background-color: #fdbf68;
90 | float: right;
91 | }
92 | .messages .message.right .text_wrapper {
93 | background-color: #c7eafc;
94 | margin-right: 20px;
95 | float: right;
96 | }
97 | .messages .message.right .text_wrapper::after, .messages .message.right .text_wrapper::before {
98 | left: 100%;
99 | border-left-color: #c7eafc;
100 | }
101 | .messages .message.right .text {
102 | color: #45829b;
103 | }
104 | .messages .message.appeared {
105 | opacity: 1;
106 | }
107 | .messages .message .avatar {
108 | width: 60px;
109 | height: 60px;
110 | border-radius: 50%;
111 | display: inline-block;
112 | }
113 | .messages .message .text_wrapper {
114 | display: inline-block;
115 | padding: 20px;
116 | border-radius: 6px;
117 | width: calc(100% - 85px);
118 | min-width: 100px;
119 | position: relative;
120 | }
121 | .messages .message .text_wrapper::after, .messages .message .text_wrapper:before {
122 | top: 18px;
123 | border: solid transparent;
124 | content: " ";
125 | height: 0;
126 | width: 0;
127 | position: absolute;
128 | pointer-events: none;
129 | }
130 | .messages .message .text_wrapper::after {
131 | border-width: 13px;
132 | margin-top: 0px;
133 | }
134 | .messages .message .text_wrapper::before {
135 | border-width: 15px;
136 | margin-top: -2px;
137 | }
138 | .messages .message .text_wrapper .text {
139 | font-size: 18px;
140 | font-weight: 300;
141 | }
142 |
143 | .bottom_wrapper {
144 | position: relative;
145 | width: 100%;
146 | background-color: #fff;
147 | padding: 20px 20px;
148 | position: absolute;
149 | bottom: 0;
150 | }
151 | .bottom_wrapper .message_input_wrapper {
152 | display: inline-block;
153 | height: 50px;
154 | border-radius: 25px;
155 | border: 1px solid #bcbdc0;
156 | width: calc(100% - 160px);
157 | position: relative;
158 | padding: 0 20px;
159 | }
160 | .bottom_wrapper .message_input_wrapper .message_input {
161 | border: none;
162 | height: 100%;
163 | box-sizing: border-box;
164 | width: calc(100% - 40px);
165 | position: absolute;
166 | outline-width: 0;
167 | color: gray;
168 | }
169 | .bottom_wrapper .send_message {
170 | width: 140px;
171 | height: 50px;
172 | display: inline-block;
173 | border-radius: 50px;
174 | background-color: #a3d063;
175 | border: 2px solid #a3d063;
176 | color: #fff;
177 | cursor: pointer;
178 | transition: all 0.2s linear;
179 | text-align: center;
180 | float: right;
181 | }
182 | .bottom_wrapper .send_message:hover {
183 | color: #a3d063;
184 | background-color: #fff;
185 | }
186 | .bottom_wrapper .send_message .text {
187 | font-size: 18px;
188 | font-weight: 300;
189 | display: inline-block;
190 | line-height: 48px;
191 | }
192 |
193 | .message_template {
194 | display: none;
195 | }
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/home/home.template.html:
--------------------------------------------------------------------------------
1 |
37 |
38 |
39 |
53 |
54 |
55 |
56 | -
57 |
58 |
59 |
60 |
61 | {{ message.text }}
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/main.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var platform_browser_dynamic_1 = require('@angular/platform-browser-dynamic');
3 | var app_module_1 = require('./app.module');
4 | platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(app_module_1.AppModule);
5 | //# sourceMappingURL=main.js.map
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/main.ts:
--------------------------------------------------------------------------------
1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2 | import { AppModule } from './app.module';
3 |
4 | platformBrowserDynamic().bootstrapModule(AppModule);
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/shared/css/styles.css:
--------------------------------------------------------------------------------
1 | /* Navbar */
2 | .nav .navbar-nav {
3 | font-size: 15px;
4 | }
5 | #searchForm {
6 | margin-right: 100px;
7 | }
8 | @media (max-width: 1200px) {
9 | #searchForm {
10 | display: none;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/shared/socket.service.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var SocketService = (function () {
13 | function SocketService() {
14 | }
15 | SocketService = __decorate([
16 | core_1.Injectable(),
17 | __metadata('design:paramtypes', [])
18 | ], SocketService);
19 | return SocketService;
20 | }());
21 | exports.SocketService = SocketService;
22 | //# sourceMappingURL=socket.service.js.map
--------------------------------------------------------------------------------
/ng2_node/optionA/public/app/shared/socket.service.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 | import * as io from 'socket.io-client';
3 |
4 | @Injectable()
5 | export class SocketService {
6 |
7 | // constructor() {
8 | // this.socket = io.connect('http://localhost:8000');
9 | // this.socket.on("connection", () => console.log("this is onl a test"));
10 | // }
11 |
12 | // socket.on('event1', function (data) {
13 | // console.log(data.msg);
14 | // socket.emit('event2', { msg: 'Yes, its working for me !!' });
15 | // });
16 |
17 | // on(eventName: any, callback: any) {
18 | // if (this.socket) {
19 | // this.socket.on(eventName, function(data: any) {
20 | // callback(data);
21 | // });
22 | // }
23 | // };
24 |
25 | // emit(eventName: any, data: any) {
26 | // if (this.socket) {
27 | // this.socket.emit(eventName, data);
28 | // }
29 | // };
30 |
31 | // removeListener(eventName: any) {
32 | // if (this.socket) {
33 | // this.socket.removeListener(eventName);
34 | // }
35 | // };
36 | }
37 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | NG2 Chat App
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
27 |
28 |
29 |
30 | Loading App...
31 |
32 |
33 |
--------------------------------------------------------------------------------
/ng2_node/optionA/public/systemjs.config.js:
--------------------------------------------------------------------------------
1 | (function(global) {
2 |
3 | // map tells the System loader where to look for things
4 | var map = {
5 | 'app': 'app', // 'dist',
6 | '@angular': 'lib/@angular',
7 | 'rxjs': 'lib/rxjs',
8 | 'socket.io-client': 'lib/socket.io-client'
9 | };
10 |
11 | // packages tells the System loader how to load when no filename and/or no extension
12 | var packages = {
13 | 'app': { main: 'main.js', defaultExtension: 'js' },
14 | 'rxjs': { defaultExtension: 'js' },
15 | 'socket.io-client': { main: 'socket.io.js'}
16 | };
17 |
18 | var ngPackageNames = [
19 | 'common',
20 | 'compiler',
21 | 'core',
22 | 'forms',
23 | 'http',
24 | 'platform-browser',
25 | 'platform-browser-dynamic',
26 | 'router',
27 | 'upgrade',
28 | ];
29 |
30 | // Individual files (~300 requests):
31 | function packIndex(pkgName) {
32 | packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
33 | }
34 |
35 | // Bundled (~40 requests):
36 | function packUmd(pkgName) {
37 | packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
38 | }
39 |
40 | // Most environments should use UMD; some (Karma) need the individual index files
41 | var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
42 | // Add package entries for angular packages
43 | ngPackageNames.forEach(setPackageConfig);
44 |
45 | var config = {
46 | map: map,
47 | packages: packages
48 | };
49 |
50 | System.config(config);
51 |
52 | })(this);
--------------------------------------------------------------------------------
/ng2_node/optionA/server.js:
--------------------------------------------------------------------------------
1 | var express = require('express');
2 | var path = require('path');
3 | var app = express();
4 | var server = require('http').Server(app);
5 | var io = require('socket.io')(server);
6 |
7 | var port = 8000;
8 |
9 | app.use(express.static(path.join(__dirname, "public")));
10 |
11 | io.on('connection', (socket) => {
12 | console.log('new connection made');
13 |
14 | socket.on('send-message', (data) => {
15 | console.log(data.text);
16 | io.emit('message-received', data);
17 | });
18 |
19 | socket.on('event1', (data) => {
20 | console.log(data.msg);
21 | });
22 |
23 | socket.emit('event2', {
24 | msg: 'Server to client, do you read me? Over.'
25 | });
26 |
27 | socket.on('event3', (data) => {
28 | console.log(data.msg);
29 | socket.emit('event4', {
30 | msg: 'Loud and clear :)'
31 | });
32 | });
33 |
34 | });
35 |
36 | server.listen(port, () => {
37 | console.log("Listening on port " + port);
38 | });
--------------------------------------------------------------------------------
/ng2_node/optionA/server/routes.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jakblak/nodeJS_examples/5a0291d0789335dd9cc358b4e613a11ff7b461db/ng2_node/optionA/server/routes.js
--------------------------------------------------------------------------------
/ng2_node/optionA/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "commonjs",
5 | "moduleResolution": "node",
6 | "sourceMap": true,
7 | "emitDecoratorMetadata": true,
8 | "experimentalDecorators": true,
9 | "lib": [ "es2015", "dom" ],
10 | "noImplicitAny": true,
11 | "suppressImplicitAnyIndexErrors": true
12 | }
13 | }
--------------------------------------------------------------------------------
/ng2_node/optionA/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@angular/common@~2.4.0":
6 | version "2.4.9"
7 | resolved "https://registry.yarnpkg.com/@angular/common/-/common-2.4.9.tgz#3094f973e18330526256dcd13fcf27609b7abc08"
8 |
9 | "@angular/compiler@~2.4.0":
10 | version "2.4.9"
11 | resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-2.4.9.tgz#ee159181c4013046598e1d176b45063bddb141f6"
12 |
13 | "@angular/core@~2.4.0":
14 | version "2.4.9"
15 | resolved "https://registry.yarnpkg.com/@angular/core/-/core-2.4.9.tgz#85dca2afa4021be91512c97597702ac8d73092e6"
16 |
17 | "@angular/forms@~2.4.0":
18 | version "2.4.9"
19 | resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-2.4.9.tgz#a1ee9f403267fd78041f9ee77d1c9c24150e1d7c"
20 |
21 | "@angular/http@~2.4.0":
22 | version "2.4.9"
23 | resolved "https://registry.yarnpkg.com/@angular/http/-/http-2.4.9.tgz#a7de980d564ac25a497c5e822d2b941c1f143d48"
24 |
25 | "@angular/platform-browser-dynamic@~2.4.0":
26 | version "2.4.9"
27 | resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-2.4.9.tgz#353b92e8670065ab5b1b6baea3a96928b174ee09"
28 |
29 | "@angular/platform-browser@~2.4.0":
30 | version "2.4.9"
31 | resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-2.4.9.tgz#936139a1e0d280394988473a8a11d922d768f89e"
32 |
33 | "@angular/router@~3.4.0":
34 | version "3.4.9"
35 | resolved "https://registry.yarnpkg.com/@angular/router/-/router-3.4.9.tgz#2525384124140fefae20bf661262b611f28ffc92"
36 |
37 | "@angular/upgrade@^2.4.9":
38 | version "2.4.9"
39 | resolved "https://registry.yarnpkg.com/@angular/upgrade/-/upgrade-2.4.9.tgz#931e1e8413d54cf921b2752cbcc2ce791b7a4966"
40 |
41 | "@types/jasmine@2.5.36":
42 | version "2.5.36"
43 | resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.5.36.tgz#6d804b79a57e9380d766a2680e9362c17d9556d2"
44 |
45 | "@types/node@*", "@types/node@^6.0.46":
46 | version "6.0.65"
47 | resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.65.tgz#c00faa7ffcfc9842b5dd7bf650872562504d5670"
48 |
49 | "@types/socket.io-client@1.4.29":
50 | version "1.4.29"
51 | resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.29.tgz#f8743070cee93175e36e0b6a77a8af73e58ccb32"
52 |
53 | "@types/socket.io@^1.4.28":
54 | version "1.4.28"
55 | resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-1.4.28.tgz#52ff4a45ee7b58d275af13ced3947487ede07a1b"
56 | dependencies:
57 | "@types/node" "*"
58 |
59 | abbrev@1:
60 | version "1.1.0"
61 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
62 |
63 | accepts@1.1.4:
64 | version "1.1.4"
65 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a"
66 | dependencies:
67 | mime-types "~2.0.4"
68 | negotiator "0.4.9"
69 |
70 | accepts@1.3.3, accepts@~1.3.3:
71 | version "1.3.3"
72 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
73 | dependencies:
74 | mime-types "~2.1.11"
75 | negotiator "0.6.1"
76 |
77 | acorn-jsx@^3.0.1:
78 | version "3.0.1"
79 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
80 | dependencies:
81 | acorn "^3.0.4"
82 |
83 | acorn-object-spread@^1.0.0:
84 | version "1.0.0"
85 | resolved "https://registry.yarnpkg.com/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz#48ead0f4a8eb16995a17a0db9ffc6acaada4ba68"
86 | dependencies:
87 | acorn "^3.1.0"
88 |
89 | acorn@^3.0.4, acorn@^3.1.0:
90 | version "3.3.0"
91 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
92 |
93 | after@0.8.1:
94 | version "0.8.1"
95 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627"
96 |
97 | ajv@^4.9.1:
98 | version "4.11.5"
99 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd"
100 | dependencies:
101 | co "^4.6.0"
102 | json-stable-stringify "^1.0.1"
103 |
104 | angular-in-memory-web-api@~0.2.4:
105 | version "0.2.5"
106 | resolved "https://registry.yarnpkg.com/angular-in-memory-web-api/-/angular-in-memory-web-api-0.2.5.tgz#bd599ec6f5b86fa5173dd7bb5710f393e804dd05"
107 |
108 | ansi-regex@^0.2.0, ansi-regex@^0.2.1:
109 | version "0.2.1"
110 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
111 |
112 | ansi-regex@^2.0.0:
113 | version "2.1.1"
114 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
115 |
116 | ansi-styles@^1.1.0:
117 | version "1.1.0"
118 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
119 |
120 | ansi-styles@^2.2.1:
121 | version "2.2.1"
122 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
123 |
124 | anymatch@^1.3.0:
125 | version "1.3.0"
126 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507"
127 | dependencies:
128 | arrify "^1.0.0"
129 | micromatch "^2.1.5"
130 |
131 | aproba@^1.0.3:
132 | version "1.1.1"
133 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab"
134 |
135 | archy@^1.0.0:
136 | version "1.0.0"
137 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
138 |
139 | are-we-there-yet@~1.1.2:
140 | version "1.1.2"
141 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3"
142 | dependencies:
143 | delegates "^1.0.0"
144 | readable-stream "^2.0.0 || ^1.1.13"
145 |
146 | arr-diff@^2.0.0:
147 | version "2.0.0"
148 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
149 | dependencies:
150 | arr-flatten "^1.0.1"
151 |
152 | arr-flatten@^1.0.1:
153 | version "1.0.1"
154 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b"
155 |
156 | array-differ@^1.0.0:
157 | version "1.0.0"
158 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
159 |
160 | array-flatten@1.1.1:
161 | version "1.1.1"
162 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
163 |
164 | array-union@^1.0.1:
165 | version "1.0.2"
166 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
167 | dependencies:
168 | array-uniq "^1.0.1"
169 |
170 | array-uniq@^1.0.1, array-uniq@^1.0.2:
171 | version "1.0.3"
172 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
173 |
174 | array-unique@^0.2.1:
175 | version "0.2.1"
176 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
177 |
178 | arraybuffer.slice@0.0.6:
179 | version "0.0.6"
180 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
181 |
182 | arrify@^1.0.0:
183 | version "1.0.1"
184 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
185 |
186 | asn1@~0.2.3:
187 | version "0.2.3"
188 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
189 |
190 | assert-plus@^0.2.0:
191 | version "0.2.0"
192 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
193 |
194 | assert-plus@^1.0.0:
195 | version "1.0.0"
196 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
197 |
198 | async-each-series@0.1.1:
199 | version "0.1.1"
200 | resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432"
201 |
202 | async-each@^1.0.0:
203 | version "1.0.1"
204 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
205 |
206 | async@1.5.2:
207 | version "1.5.2"
208 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
209 |
210 | asynckit@^0.4.0:
211 | version "0.4.0"
212 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
213 |
214 | aws-sign2@~0.6.0:
215 | version "0.6.0"
216 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
217 |
218 | aws4@^1.2.1:
219 | version "1.6.0"
220 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
221 |
222 | backo2@1.0.2:
223 | version "1.0.2"
224 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
225 |
226 | balanced-match@^0.4.1:
227 | version "0.4.2"
228 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
229 |
230 | base64-arraybuffer@0.1.2:
231 | version "0.1.2"
232 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154"
233 |
234 | base64-arraybuffer@0.1.5:
235 | version "0.1.5"
236 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
237 |
238 | base64id@0.1.0:
239 | version "0.1.0"
240 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f"
241 |
242 | batch@0.5.3:
243 | version "0.5.3"
244 | resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464"
245 |
246 | bcrypt-pbkdf@^1.0.0:
247 | version "1.0.1"
248 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
249 | dependencies:
250 | tweetnacl "^0.14.3"
251 |
252 | beeper@^1.0.0:
253 | version "1.1.1"
254 | resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
255 |
256 | benchmark@1.0.0:
257 | version "1.0.0"
258 | resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73"
259 |
260 | better-assert@~1.0.0:
261 | version "1.0.2"
262 | resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
263 | dependencies:
264 | callsite "1.0.0"
265 |
266 | binary-extensions@^1.0.0:
267 | version "1.8.0"
268 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
269 |
270 | blob@0.0.4:
271 | version "0.0.4"
272 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
273 |
274 | block-stream@*:
275 | version "0.0.9"
276 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
277 | dependencies:
278 | inherits "~2.0.0"
279 |
280 | boom@2.x.x:
281 | version "2.10.1"
282 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
283 | dependencies:
284 | hoek "2.x.x"
285 |
286 | bootstrap@^3.3.7:
287 | version "3.3.7"
288 | resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71"
289 |
290 | brace-expansion@^1.0.0:
291 | version "1.1.6"
292 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
293 | dependencies:
294 | balanced-match "^0.4.1"
295 | concat-map "0.0.1"
296 |
297 | braces@^1.8.2:
298 | version "1.8.5"
299 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
300 | dependencies:
301 | expand-range "^1.8.1"
302 | preserve "^0.2.0"
303 | repeat-element "^1.1.2"
304 |
305 | browser-sync-client@2.4.5:
306 | version "2.4.5"
307 | resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.4.5.tgz#976afab1a54f255baa38fe22ae3c0d3753ad337b"
308 | dependencies:
309 | etag "^1.7.0"
310 | fresh "^0.3.0"
311 |
312 | browser-sync-ui@0.6.3:
313 | version "0.6.3"
314 | resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-0.6.3.tgz#640a537c180689303d5be92bc476b9ebc441c0bc"
315 | dependencies:
316 | async-each-series "0.1.1"
317 | connect-history-api-fallback "^1.1.0"
318 | immutable "^3.7.6"
319 | server-destroy "1.0.1"
320 | stream-throttle "^0.1.3"
321 | weinre "^2.0.0-pre-I0Z7U9OV"
322 |
323 | browser-sync@^2.18.5:
324 | version "2.18.8"
325 | resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.18.8.tgz#2fb4de253798d7cfb839afb9c2f801968490cec2"
326 | dependencies:
327 | browser-sync-client "2.4.5"
328 | browser-sync-ui "0.6.3"
329 | bs-recipes "1.3.4"
330 | chokidar "1.6.1"
331 | connect "3.5.0"
332 | dev-ip "^1.0.1"
333 | easy-extender "2.3.2"
334 | eazy-logger "3.0.2"
335 | emitter-steward "^1.0.0"
336 | fs-extra "1.0.0"
337 | http-proxy "1.15.2"
338 | immutable "3.8.1"
339 | localtunnel "1.8.2"
340 | micromatch "2.3.11"
341 | opn "4.0.2"
342 | portscanner "2.1.1"
343 | qs "6.2.1"
344 | resp-modifier "6.0.2"
345 | rx "4.1.0"
346 | serve-index "1.8.0"
347 | serve-static "1.11.1"
348 | server-destroy "1.0.1"
349 | socket.io "1.6.0"
350 | socket.io-client "1.6.0"
351 | ua-parser-js "0.7.12"
352 | yargs "6.4.0"
353 |
354 | bs-recipes@1.3.4:
355 | version "1.3.4"
356 | resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585"
357 |
358 | buble@^0.12.0:
359 | version "0.12.5"
360 | resolved "https://registry.yarnpkg.com/buble/-/buble-0.12.5.tgz#c66ffe92f9f4a3c65d3256079b711e2bd0bc5013"
361 | dependencies:
362 | acorn "^3.1.0"
363 | acorn-jsx "^3.0.1"
364 | acorn-object-spread "^1.0.0"
365 | chalk "^1.1.3"
366 | magic-string "^0.14.0"
367 | minimist "^1.2.0"
368 | os-homedir "^1.0.1"
369 |
370 | bubleify@^0.5.1:
371 | version "0.5.1"
372 | resolved "https://registry.yarnpkg.com/bubleify/-/bubleify-0.5.1.tgz#f65c47cee31b80cad8b9e747bbe187d7fe51e927"
373 | dependencies:
374 | buble "^0.12.0"
375 | object-assign "^4.0.1"
376 |
377 | buffer-shims@^1.0.0:
378 | version "1.0.0"
379 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
380 |
381 | builtin-modules@^1.0.0:
382 | version "1.1.1"
383 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
384 |
385 | callsite@1.0.0:
386 | version "1.0.0"
387 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
388 |
389 | camelcase@^1.2.1:
390 | version "1.2.1"
391 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
392 |
393 | camelcase@^3.0.0:
394 | version "3.0.0"
395 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
396 |
397 | caseless@~0.11.0:
398 | version "0.11.0"
399 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
400 |
401 | caseless@~0.12.0:
402 | version "0.12.0"
403 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
404 |
405 | chalk@*, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
406 | version "1.1.3"
407 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
408 | dependencies:
409 | ansi-styles "^2.2.1"
410 | escape-string-regexp "^1.0.2"
411 | has-ansi "^2.0.0"
412 | strip-ansi "^3.0.0"
413 | supports-color "^2.0.0"
414 |
415 | chalk@0.5.1:
416 | version "0.5.1"
417 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
418 | dependencies:
419 | ansi-styles "^1.1.0"
420 | escape-string-regexp "^1.0.0"
421 | has-ansi "^0.1.0"
422 | strip-ansi "^0.3.0"
423 | supports-color "^0.2.0"
424 |
425 | chokidar@1.6.1:
426 | version "1.6.1"
427 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2"
428 | dependencies:
429 | anymatch "^1.3.0"
430 | async-each "^1.0.0"
431 | glob-parent "^2.0.0"
432 | inherits "^2.0.1"
433 | is-binary-path "^1.0.0"
434 | is-glob "^2.0.0"
435 | path-is-absolute "^1.0.0"
436 | readdirp "^2.0.0"
437 | optionalDependencies:
438 | fsevents "^1.0.0"
439 |
440 | cliui@^3.0.3, cliui@^3.2.0:
441 | version "3.2.0"
442 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
443 | dependencies:
444 | string-width "^1.0.1"
445 | strip-ansi "^3.0.1"
446 | wrap-ansi "^2.0.0"
447 |
448 | clone-stats@^0.0.1:
449 | version "0.0.1"
450 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
451 |
452 | clone@^0.2.0:
453 | version "0.2.0"
454 | resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
455 |
456 | clone@^1.0.0, clone@^1.0.2:
457 | version "1.0.2"
458 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
459 |
460 | co@^4.6.0:
461 | version "4.6.0"
462 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
463 |
464 | code-point-at@^1.0.0:
465 | version "1.1.0"
466 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
467 |
468 | combined-stream@^1.0.5, combined-stream@~1.0.5:
469 | version "1.0.5"
470 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
471 | dependencies:
472 | delayed-stream "~1.0.0"
473 |
474 | commander@2.6.0, commander@^2.2.0:
475 | version "2.6.0"
476 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d"
477 |
478 | commander@^2.9.0:
479 | version "2.9.0"
480 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
481 | dependencies:
482 | graceful-readlink ">= 1.0.0"
483 |
484 | component-bind@1.0.0:
485 | version "1.0.0"
486 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
487 |
488 | component-emitter@1.1.2:
489 | version "1.1.2"
490 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
491 |
492 | component-emitter@1.2.0:
493 | version "1.2.0"
494 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe"
495 |
496 | component-emitter@1.2.1:
497 | version "1.2.1"
498 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
499 |
500 | component-inherit@0.0.3:
501 | version "0.0.3"
502 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
503 |
504 | concat-map@0.0.1:
505 | version "0.0.1"
506 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
507 |
508 | concurrently@^3.2.0:
509 | version "3.4.0"
510 | resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.4.0.tgz#60662b3defde07375bae19aac0ab780ec748ba79"
511 | dependencies:
512 | chalk "0.5.1"
513 | commander "2.6.0"
514 | date-fns "^1.23.0"
515 | lodash "^4.5.1"
516 | rx "2.3.24"
517 | spawn-command "^0.0.2-1"
518 | supports-color "^3.2.3"
519 | tree-kill "^1.1.0"
520 |
521 | connect-history-api-fallback@^1.1.0, connect-history-api-fallback@^1.2.0:
522 | version "1.3.0"
523 | resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169"
524 |
525 | connect-logger@0.0.1:
526 | version "0.0.1"
527 | resolved "https://registry.yarnpkg.com/connect-logger/-/connect-logger-0.0.1.tgz#4d999978a1d20bb4608e7cd434d741652255174b"
528 | dependencies:
529 | moment "*"
530 |
531 | connect@1.x:
532 | version "1.9.2"
533 | resolved "https://registry.yarnpkg.com/connect/-/connect-1.9.2.tgz#42880a22e9438ae59a8add74e437f58ae8e52807"
534 | dependencies:
535 | formidable "1.0.x"
536 | mime ">= 0.0.1"
537 | qs ">= 0.4.0"
538 |
539 | connect@3.5.0:
540 | version "3.5.0"
541 | resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198"
542 | dependencies:
543 | debug "~2.2.0"
544 | finalhandler "0.5.0"
545 | parseurl "~1.3.1"
546 | utils-merge "1.0.0"
547 |
548 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
549 | version "1.1.0"
550 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
551 |
552 | content-disposition@0.5.2:
553 | version "0.5.2"
554 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
555 |
556 | content-type@~1.0.2:
557 | version "1.0.2"
558 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
559 |
560 | cookie-signature@1.0.6:
561 | version "1.0.6"
562 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
563 |
564 | cookie@0.3.1:
565 | version "0.3.1"
566 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
567 |
568 | core-js@^2.4.1:
569 | version "2.4.1"
570 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
571 |
572 | core-util-is@~1.0.0:
573 | version "1.0.2"
574 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
575 |
576 | cryptiles@2.x.x:
577 | version "2.0.5"
578 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
579 | dependencies:
580 | boom "2.x.x"
581 |
582 | dashdash@^1.12.0:
583 | version "1.14.1"
584 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
585 | dependencies:
586 | assert-plus "^1.0.0"
587 |
588 | date-fns@^1.23.0:
589 | version "1.28.0"
590 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.0.tgz#3b12f54b66467807bb95e5930caf7bfb4170bc1a"
591 |
592 | dateformat@^2.0.0:
593 | version "2.0.0"
594 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
595 |
596 | debug@0.7.4:
597 | version "0.7.4"
598 | resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
599 |
600 | debug@2.2.0, debug@~2.2.0:
601 | version "2.2.0"
602 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
603 | dependencies:
604 | ms "0.7.1"
605 |
606 | debug@2.3.3:
607 | version "2.3.3"
608 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
609 | dependencies:
610 | ms "0.7.2"
611 |
612 | debug@2.6.1, debug@^2.2.0:
613 | version "2.6.1"
614 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351"
615 | dependencies:
616 | ms "0.7.2"
617 |
618 | decamelize@^1.0.0, decamelize@^1.1.1:
619 | version "1.2.0"
620 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
621 |
622 | deep-extend@~0.4.0:
623 | version "0.4.1"
624 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
625 |
626 | defaults@^1.0.0:
627 | version "1.0.3"
628 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
629 | dependencies:
630 | clone "^1.0.2"
631 |
632 | del@^2.2.2:
633 | version "2.2.2"
634 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
635 | dependencies:
636 | globby "^5.0.0"
637 | is-path-cwd "^1.0.0"
638 | is-path-in-cwd "^1.0.0"
639 | object-assign "^4.0.1"
640 | pify "^2.0.0"
641 | pinkie-promise "^2.0.0"
642 | rimraf "^2.2.8"
643 |
644 | delayed-stream@~1.0.0:
645 | version "1.0.0"
646 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
647 |
648 | delegates@^1.0.0:
649 | version "1.0.0"
650 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
651 |
652 | depd@1.1.0, depd@~1.1.0:
653 | version "1.1.0"
654 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
655 |
656 | deprecated@^0.0.1:
657 | version "0.0.1"
658 | resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19"
659 |
660 | destroy@~1.0.4:
661 | version "1.0.4"
662 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
663 |
664 | detect-file@^0.1.0:
665 | version "0.1.0"
666 | resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
667 | dependencies:
668 | fs-exists-sync "^0.1.0"
669 |
670 | dev-ip@^1.0.1:
671 | version "1.0.1"
672 | resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0"
673 |
674 | duplexer2@0.0.2:
675 | version "0.0.2"
676 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
677 | dependencies:
678 | readable-stream "~1.1.9"
679 |
680 | easy-extender@2.3.2:
681 | version "2.3.2"
682 | resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.2.tgz#3d3248febe2b159607316d8f9cf491c16648221d"
683 | dependencies:
684 | lodash "^3.10.1"
685 |
686 | eazy-logger@3.0.2:
687 | version "3.0.2"
688 | resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.0.2.tgz#a325aa5e53d13a2225889b2ac4113b2b9636f4fc"
689 | dependencies:
690 | tfunk "^3.0.1"
691 |
692 | ecc-jsbn@~0.1.1:
693 | version "0.1.1"
694 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
695 | dependencies:
696 | jsbn "~0.1.0"
697 |
698 | ee-first@1.1.1:
699 | version "1.1.1"
700 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
701 |
702 | emitter-steward@^1.0.0:
703 | version "1.0.0"
704 | resolved "https://registry.yarnpkg.com/emitter-steward/-/emitter-steward-1.0.0.tgz#f3411ade9758a7565df848b2da0cbbd1b46cbd64"
705 |
706 | encodeurl@~1.0.1:
707 | version "1.0.1"
708 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
709 |
710 | end-of-stream@~0.1.5:
711 | version "0.1.5"
712 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf"
713 | dependencies:
714 | once "~1.3.0"
715 |
716 | engine.io-client@1.6.8:
717 | version "1.6.8"
718 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.6.8.tgz#6e2db11648b45e405c46b172ea3e3dac37cc0ceb"
719 | dependencies:
720 | component-emitter "1.1.2"
721 | component-inherit "0.0.3"
722 | debug "2.2.0"
723 | engine.io-parser "1.2.4"
724 | has-cors "1.1.0"
725 | indexof "0.0.1"
726 | parsejson "0.0.1"
727 | parseqs "0.0.2"
728 | parseuri "0.0.4"
729 | ws "1.0.1"
730 | xmlhttprequest-ssl "1.5.1"
731 | yeast "0.1.2"
732 |
733 | engine.io-client@1.8.0:
734 | version "1.8.0"
735 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.0.tgz#7b730e4127414087596d9be3c88d2bc5fdb6cf5c"
736 | dependencies:
737 | component-emitter "1.2.1"
738 | component-inherit "0.0.3"
739 | debug "2.3.3"
740 | engine.io-parser "1.3.1"
741 | has-cors "1.1.0"
742 | indexof "0.0.1"
743 | parsejson "0.0.3"
744 | parseqs "0.0.5"
745 | parseuri "0.0.5"
746 | ws "1.1.1"
747 | xmlhttprequest-ssl "1.5.3"
748 | yeast "0.1.2"
749 |
750 | engine.io-parser@1.2.4:
751 | version "1.2.4"
752 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42"
753 | dependencies:
754 | after "0.8.1"
755 | arraybuffer.slice "0.0.6"
756 | base64-arraybuffer "0.1.2"
757 | blob "0.0.4"
758 | has-binary "0.1.6"
759 | utf8 "2.1.0"
760 |
761 | engine.io-parser@1.3.1:
762 | version "1.3.1"
763 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.1.tgz#9554f1ae33107d6fbd170ca5466d2f833f6a07cf"
764 | dependencies:
765 | after "0.8.1"
766 | arraybuffer.slice "0.0.6"
767 | base64-arraybuffer "0.1.5"
768 | blob "0.0.4"
769 | has-binary "0.1.6"
770 | wtf-8 "1.0.0"
771 |
772 | engine.io@1.6.8:
773 | version "1.6.8"
774 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.6.8.tgz#de05a06b757e7517695e088c7b051c47819f511b"
775 | dependencies:
776 | accepts "1.1.4"
777 | base64id "0.1.0"
778 | debug "2.2.0"
779 | engine.io-parser "1.2.4"
780 | ws "1.0.1"
781 |
782 | engine.io@1.8.0:
783 | version "1.8.0"
784 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.0.tgz#3eeb5f264cb75dbbec1baaea26d61f5a4eace2aa"
785 | dependencies:
786 | accepts "1.3.3"
787 | base64id "0.1.0"
788 | cookie "0.3.1"
789 | debug "2.3.3"
790 | engine.io-parser "1.3.1"
791 | ws "1.1.1"
792 |
793 | error-ex@^1.2.0:
794 | version "1.3.1"
795 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
796 | dependencies:
797 | is-arrayish "^0.2.1"
798 |
799 | escape-html@~1.0.3:
800 | version "1.0.3"
801 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
802 |
803 | escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2:
804 | version "1.0.5"
805 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
806 |
807 | etag@^1.7.0, etag@~1.8.0:
808 | version "1.8.0"
809 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051"
810 |
811 | etag@~1.7.0:
812 | version "1.7.0"
813 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8"
814 |
815 | eventemitter3@1.x.x:
816 | version "1.2.0"
817 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
818 |
819 | expand-brackets@^0.1.4:
820 | version "0.1.5"
821 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
822 | dependencies:
823 | is-posix-bracket "^0.1.0"
824 |
825 | expand-range@^1.8.1:
826 | version "1.8.2"
827 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
828 | dependencies:
829 | fill-range "^2.1.0"
830 |
831 | expand-tilde@^1.2.1, expand-tilde@^1.2.2:
832 | version "1.2.2"
833 | resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
834 | dependencies:
835 | os-homedir "^1.0.1"
836 |
837 | express@2.5.x:
838 | version "2.5.11"
839 | resolved "https://registry.yarnpkg.com/express/-/express-2.5.11.tgz#4ce8ea1f3635e69e49f0ebb497b6a4b0a51ce6f0"
840 | dependencies:
841 | connect "1.x"
842 | mime "1.2.4"
843 | mkdirp "0.3.0"
844 | qs "0.4.x"
845 |
846 | express@^4.13.4:
847 | version "4.15.2"
848 | resolved "https://registry.yarnpkg.com/express/-/express-4.15.2.tgz#af107fc148504457f2dca9a6f2571d7129b97b35"
849 | dependencies:
850 | accepts "~1.3.3"
851 | array-flatten "1.1.1"
852 | content-disposition "0.5.2"
853 | content-type "~1.0.2"
854 | cookie "0.3.1"
855 | cookie-signature "1.0.6"
856 | debug "2.6.1"
857 | depd "~1.1.0"
858 | encodeurl "~1.0.1"
859 | escape-html "~1.0.3"
860 | etag "~1.8.0"
861 | finalhandler "~1.0.0"
862 | fresh "0.5.0"
863 | merge-descriptors "1.0.1"
864 | methods "~1.1.2"
865 | on-finished "~2.3.0"
866 | parseurl "~1.3.1"
867 | path-to-regexp "0.1.7"
868 | proxy-addr "~1.1.3"
869 | qs "6.4.0"
870 | range-parser "~1.2.0"
871 | send "0.15.1"
872 | serve-static "1.12.1"
873 | setprototypeof "1.0.3"
874 | statuses "~1.3.1"
875 | type-is "~1.6.14"
876 | utils-merge "1.0.0"
877 | vary "~1.1.0"
878 |
879 | extend@^3.0.0, extend@~3.0.0:
880 | version "3.0.0"
881 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
882 |
883 | extglob@^0.3.1:
884 | version "0.3.2"
885 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
886 | dependencies:
887 | is-extglob "^1.0.0"
888 |
889 | extsprintf@1.0.2:
890 | version "1.0.2"
891 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
892 |
893 | fancy-log@^1.1.0:
894 | version "1.3.0"
895 | resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
896 | dependencies:
897 | chalk "^1.1.1"
898 | time-stamp "^1.0.0"
899 |
900 | filename-regex@^2.0.0:
901 | version "2.0.0"
902 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
903 |
904 | fill-range@^2.1.0:
905 | version "2.2.3"
906 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
907 | dependencies:
908 | is-number "^2.1.0"
909 | isobject "^2.0.0"
910 | randomatic "^1.1.3"
911 | repeat-element "^1.1.2"
912 | repeat-string "^1.5.2"
913 |
914 | finalhandler@0.5.0:
915 | version "0.5.0"
916 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7"
917 | dependencies:
918 | debug "~2.2.0"
919 | escape-html "~1.0.3"
920 | on-finished "~2.3.0"
921 | statuses "~1.3.0"
922 | unpipe "~1.0.0"
923 |
924 | finalhandler@~1.0.0:
925 | version "1.0.0"
926 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.0.tgz#b5691c2c0912092f18ac23e9416bde5cd7dc6755"
927 | dependencies:
928 | debug "2.6.1"
929 | encodeurl "~1.0.1"
930 | escape-html "~1.0.3"
931 | on-finished "~2.3.0"
932 | parseurl "~1.3.1"
933 | statuses "~1.3.1"
934 | unpipe "~1.0.0"
935 |
936 | find-index@^0.1.1:
937 | version "0.1.1"
938 | resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
939 |
940 | find-up@^1.0.0:
941 | version "1.1.2"
942 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
943 | dependencies:
944 | path-exists "^2.0.0"
945 | pinkie-promise "^2.0.0"
946 |
947 | findup-sync@^0.4.2:
948 | version "0.4.3"
949 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
950 | dependencies:
951 | detect-file "^0.1.0"
952 | is-glob "^2.0.1"
953 | micromatch "^2.3.7"
954 | resolve-dir "^0.1.0"
955 |
956 | fined@^1.0.1:
957 | version "1.0.2"
958 | resolved "https://registry.yarnpkg.com/fined/-/fined-1.0.2.tgz#5b28424b760d7598960b7ef8480dff8ad3660e97"
959 | dependencies:
960 | expand-tilde "^1.2.1"
961 | lodash.assignwith "^4.0.7"
962 | lodash.isempty "^4.2.1"
963 | lodash.isplainobject "^4.0.4"
964 | lodash.isstring "^4.0.1"
965 | lodash.pick "^4.2.1"
966 | parse-filepath "^1.0.1"
967 |
968 | first-chunk-stream@^1.0.0:
969 | version "1.0.0"
970 | resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e"
971 |
972 | flagged-respawn@^0.3.2:
973 | version "0.3.2"
974 | resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
975 |
976 | for-in@^1.0.1:
977 | version "1.0.2"
978 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
979 |
980 | for-own@^0.1.4:
981 | version "0.1.5"
982 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
983 | dependencies:
984 | for-in "^1.0.1"
985 |
986 | forever-agent@~0.6.1:
987 | version "0.6.1"
988 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
989 |
990 | form-data@~2.1.1:
991 | version "2.1.2"
992 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4"
993 | dependencies:
994 | asynckit "^0.4.0"
995 | combined-stream "^1.0.5"
996 | mime-types "^2.1.12"
997 |
998 | formidable@1.0.x:
999 | version "1.0.17"
1000 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559"
1001 |
1002 | forwarded@~0.1.0:
1003 | version "0.1.0"
1004 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363"
1005 |
1006 | fresh@0.3.0, fresh@^0.3.0:
1007 | version "0.3.0"
1008 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f"
1009 |
1010 | fresh@0.5.0:
1011 | version "0.5.0"
1012 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
1013 |
1014 | fs-exists-sync@^0.1.0:
1015 | version "0.1.0"
1016 | resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
1017 |
1018 | fs-extra@1.0.0:
1019 | version "1.0.0"
1020 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
1021 | dependencies:
1022 | graceful-fs "^4.1.2"
1023 | jsonfile "^2.1.0"
1024 | klaw "^1.0.0"
1025 |
1026 | fs.realpath@^1.0.0:
1027 | version "1.0.0"
1028 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1029 |
1030 | fsevents@^1.0.0:
1031 | version "1.1.1"
1032 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff"
1033 | dependencies:
1034 | nan "^2.3.0"
1035 | node-pre-gyp "^0.6.29"
1036 |
1037 | fstream-ignore@~1.0.5:
1038 | version "1.0.5"
1039 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
1040 | dependencies:
1041 | fstream "^1.0.0"
1042 | inherits "2"
1043 | minimatch "^3.0.0"
1044 |
1045 | fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10:
1046 | version "1.0.11"
1047 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
1048 | dependencies:
1049 | graceful-fs "^4.1.2"
1050 | inherits "~2.0.0"
1051 | mkdirp ">=0.5 0"
1052 | rimraf "2"
1053 |
1054 | gauge@~2.7.1:
1055 | version "2.7.3"
1056 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09"
1057 | dependencies:
1058 | aproba "^1.0.3"
1059 | console-control-strings "^1.0.0"
1060 | has-unicode "^2.0.0"
1061 | object-assign "^4.1.0"
1062 | signal-exit "^3.0.0"
1063 | string-width "^1.0.1"
1064 | strip-ansi "^3.0.1"
1065 | wide-align "^1.1.0"
1066 |
1067 | gaze@^0.5.1:
1068 | version "0.5.2"
1069 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f"
1070 | dependencies:
1071 | globule "~0.1.0"
1072 |
1073 | generate-function@^2.0.0:
1074 | version "2.0.0"
1075 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
1076 |
1077 | generate-object-property@^1.1.0:
1078 | version "1.2.0"
1079 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
1080 | dependencies:
1081 | is-property "^1.0.0"
1082 |
1083 | get-caller-file@^1.0.1:
1084 | version "1.0.2"
1085 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
1086 |
1087 | getpass@^0.1.1:
1088 | version "0.1.6"
1089 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6"
1090 | dependencies:
1091 | assert-plus "^1.0.0"
1092 |
1093 | glob-base@^0.3.0:
1094 | version "0.3.0"
1095 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
1096 | dependencies:
1097 | glob-parent "^2.0.0"
1098 | is-glob "^2.0.0"
1099 |
1100 | glob-parent@^2.0.0:
1101 | version "2.0.0"
1102 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
1103 | dependencies:
1104 | is-glob "^2.0.0"
1105 |
1106 | glob-stream@^3.1.5:
1107 | version "3.1.18"
1108 | resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b"
1109 | dependencies:
1110 | glob "^4.3.1"
1111 | glob2base "^0.0.12"
1112 | minimatch "^2.0.1"
1113 | ordered-read-streams "^0.1.0"
1114 | through2 "^0.6.1"
1115 | unique-stream "^1.0.0"
1116 |
1117 | glob-watcher@^0.0.6:
1118 | version "0.0.6"
1119 | resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b"
1120 | dependencies:
1121 | gaze "^0.5.1"
1122 |
1123 | glob2base@^0.0.12:
1124 | version "0.0.12"
1125 | resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
1126 | dependencies:
1127 | find-index "^0.1.1"
1128 |
1129 | glob@^4.3.1:
1130 | version "4.5.3"
1131 | resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f"
1132 | dependencies:
1133 | inflight "^1.0.4"
1134 | inherits "2"
1135 | minimatch "^2.0.1"
1136 | once "^1.3.0"
1137 |
1138 | glob@^7.0.3, glob@^7.0.5:
1139 | version "7.1.1"
1140 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
1141 | dependencies:
1142 | fs.realpath "^1.0.0"
1143 | inflight "^1.0.4"
1144 | inherits "2"
1145 | minimatch "^3.0.2"
1146 | once "^1.3.0"
1147 | path-is-absolute "^1.0.0"
1148 |
1149 | glob@~3.1.21:
1150 | version "3.1.21"
1151 | resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
1152 | dependencies:
1153 | graceful-fs "~1.2.0"
1154 | inherits "1"
1155 | minimatch "~0.2.11"
1156 |
1157 | global-modules@^0.2.3:
1158 | version "0.2.3"
1159 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
1160 | dependencies:
1161 | global-prefix "^0.1.4"
1162 | is-windows "^0.2.0"
1163 |
1164 | global-prefix@^0.1.4:
1165 | version "0.1.5"
1166 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
1167 | dependencies:
1168 | homedir-polyfill "^1.0.0"
1169 | ini "^1.3.4"
1170 | is-windows "^0.2.0"
1171 | which "^1.2.12"
1172 |
1173 | globby@^5.0.0:
1174 | version "5.0.0"
1175 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
1176 | dependencies:
1177 | array-union "^1.0.1"
1178 | arrify "^1.0.0"
1179 | glob "^7.0.3"
1180 | object-assign "^4.0.1"
1181 | pify "^2.0.0"
1182 | pinkie-promise "^2.0.0"
1183 |
1184 | globule@~0.1.0:
1185 | version "0.1.0"
1186 | resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5"
1187 | dependencies:
1188 | glob "~3.1.21"
1189 | lodash "~1.0.1"
1190 | minimatch "~0.2.11"
1191 |
1192 | glogg@^1.0.0:
1193 | version "1.0.0"
1194 | resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
1195 | dependencies:
1196 | sparkles "^1.0.0"
1197 |
1198 | graceful-fs@^3.0.0:
1199 | version "3.0.11"
1200 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
1201 | dependencies:
1202 | natives "^1.1.0"
1203 |
1204 | graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
1205 | version "4.1.11"
1206 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
1207 |
1208 | graceful-fs@~1.2.0:
1209 | version "1.2.3"
1210 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
1211 |
1212 | "graceful-readlink@>= 1.0.0":
1213 | version "1.0.1"
1214 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
1215 |
1216 | gulp-util@*, gulp-util@^3.0.0:
1217 | version "3.0.8"
1218 | resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
1219 | dependencies:
1220 | array-differ "^1.0.0"
1221 | array-uniq "^1.0.2"
1222 | beeper "^1.0.0"
1223 | chalk "^1.0.0"
1224 | dateformat "^2.0.0"
1225 | fancy-log "^1.1.0"
1226 | gulplog "^1.0.0"
1227 | has-gulplog "^0.1.0"
1228 | lodash._reescape "^3.0.0"
1229 | lodash._reevaluate "^3.0.0"
1230 | lodash._reinterpolate "^3.0.0"
1231 | lodash.template "^3.0.0"
1232 | minimist "^1.1.0"
1233 | multipipe "^0.1.2"
1234 | object-assign "^3.0.0"
1235 | replace-ext "0.0.1"
1236 | through2 "^2.0.0"
1237 | vinyl "^0.5.0"
1238 |
1239 | gulp@^3.9.1:
1240 | version "3.9.1"
1241 | resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4"
1242 | dependencies:
1243 | archy "^1.0.0"
1244 | chalk "^1.0.0"
1245 | deprecated "^0.0.1"
1246 | gulp-util "^3.0.0"
1247 | interpret "^1.0.0"
1248 | liftoff "^2.1.0"
1249 | minimist "^1.1.0"
1250 | orchestrator "^0.3.0"
1251 | pretty-hrtime "^1.0.0"
1252 | semver "^4.1.0"
1253 | tildify "^1.0.0"
1254 | v8flags "^2.0.2"
1255 | vinyl-fs "^0.3.0"
1256 |
1257 | gulplog@^1.0.0:
1258 | version "1.0.0"
1259 | resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
1260 | dependencies:
1261 | glogg "^1.0.0"
1262 |
1263 | har-schema@^1.0.5:
1264 | version "1.0.5"
1265 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
1266 |
1267 | har-validator@~2.0.6:
1268 | version "2.0.6"
1269 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
1270 | dependencies:
1271 | chalk "^1.1.1"
1272 | commander "^2.9.0"
1273 | is-my-json-valid "^2.12.4"
1274 | pinkie-promise "^2.0.0"
1275 |
1276 | har-validator@~4.2.1:
1277 | version "4.2.1"
1278 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
1279 | dependencies:
1280 | ajv "^4.9.1"
1281 | har-schema "^1.0.5"
1282 |
1283 | has-ansi@^0.1.0:
1284 | version "0.1.0"
1285 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
1286 | dependencies:
1287 | ansi-regex "^0.2.0"
1288 |
1289 | has-ansi@^2.0.0:
1290 | version "2.0.0"
1291 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
1292 | dependencies:
1293 | ansi-regex "^2.0.0"
1294 |
1295 | has-binary@0.1.6:
1296 | version "0.1.6"
1297 | resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10"
1298 | dependencies:
1299 | isarray "0.0.1"
1300 |
1301 | has-binary@0.1.7:
1302 | version "0.1.7"
1303 | resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
1304 | dependencies:
1305 | isarray "0.0.1"
1306 |
1307 | has-cors@1.1.0:
1308 | version "1.1.0"
1309 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
1310 |
1311 | has-flag@^1.0.0:
1312 | version "1.0.0"
1313 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
1314 |
1315 | has-gulplog@^0.1.0:
1316 | version "0.1.0"
1317 | resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
1318 | dependencies:
1319 | sparkles "^1.0.0"
1320 |
1321 | has-unicode@^2.0.0:
1322 | version "2.0.1"
1323 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
1324 |
1325 | hawk@~3.1.3:
1326 | version "3.1.3"
1327 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
1328 | dependencies:
1329 | boom "2.x.x"
1330 | cryptiles "2.x.x"
1331 | hoek "2.x.x"
1332 | sntp "1.x.x"
1333 |
1334 | hoek@2.x.x:
1335 | version "2.16.3"
1336 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
1337 |
1338 | homedir-polyfill@^1.0.0:
1339 | version "1.0.1"
1340 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
1341 | dependencies:
1342 | parse-passwd "^1.0.0"
1343 |
1344 | hosted-git-info@^2.1.4:
1345 | version "2.2.0"
1346 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5"
1347 |
1348 | http-errors@~1.5.0:
1349 | version "1.5.1"
1350 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750"
1351 | dependencies:
1352 | inherits "2.0.3"
1353 | setprototypeof "1.0.2"
1354 | statuses ">= 1.3.1 < 2"
1355 |
1356 | http-errors@~1.6.1:
1357 | version "1.6.1"
1358 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257"
1359 | dependencies:
1360 | depd "1.1.0"
1361 | inherits "2.0.3"
1362 | setprototypeof "1.0.3"
1363 | statuses ">= 1.3.1 < 2"
1364 |
1365 | http-proxy@1.15.2:
1366 | version "1.15.2"
1367 | resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31"
1368 | dependencies:
1369 | eventemitter3 "1.x.x"
1370 | requires-port "1.x.x"
1371 |
1372 | http-signature@~1.1.0:
1373 | version "1.1.1"
1374 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
1375 | dependencies:
1376 | assert-plus "^0.2.0"
1377 | jsprim "^1.2.2"
1378 | sshpk "^1.7.0"
1379 |
1380 | immutable@3.8.1, immutable@^3.7.6:
1381 | version "3.8.1"
1382 | resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2"
1383 |
1384 | indexof@0.0.1:
1385 | version "0.0.1"
1386 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
1387 |
1388 | inflight@^1.0.4:
1389 | version "1.0.6"
1390 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1391 | dependencies:
1392 | once "^1.3.0"
1393 | wrappy "1"
1394 |
1395 | inherits@1:
1396 | version "1.0.2"
1397 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
1398 |
1399 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1:
1400 | version "2.0.3"
1401 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1402 |
1403 | inherits@2.0.1:
1404 | version "2.0.1"
1405 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
1406 |
1407 | ini@^1.3.4, ini@~1.3.0:
1408 | version "1.3.4"
1409 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
1410 |
1411 | interpret@^1.0.0:
1412 | version "1.0.1"
1413 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c"
1414 |
1415 | invert-kv@^1.0.0:
1416 | version "1.0.0"
1417 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
1418 |
1419 | ipaddr.js@1.2.0:
1420 | version "1.2.0"
1421 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4"
1422 |
1423 | is-absolute@^0.2.3:
1424 | version "0.2.6"
1425 | resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb"
1426 | dependencies:
1427 | is-relative "^0.2.1"
1428 | is-windows "^0.2.0"
1429 |
1430 | is-arrayish@^0.2.1:
1431 | version "0.2.1"
1432 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1433 |
1434 | is-binary-path@^1.0.0:
1435 | version "1.0.1"
1436 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
1437 | dependencies:
1438 | binary-extensions "^1.0.0"
1439 |
1440 | is-buffer@^1.0.2:
1441 | version "1.1.5"
1442 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
1443 |
1444 | is-builtin-module@^1.0.0:
1445 | version "1.0.0"
1446 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
1447 | dependencies:
1448 | builtin-modules "^1.0.0"
1449 |
1450 | is-dotfile@^1.0.0:
1451 | version "1.0.2"
1452 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
1453 |
1454 | is-equal-shallow@^0.1.3:
1455 | version "0.1.3"
1456 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
1457 | dependencies:
1458 | is-primitive "^2.0.0"
1459 |
1460 | is-extendable@^0.1.1:
1461 | version "0.1.1"
1462 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1463 |
1464 | is-extglob@^1.0.0:
1465 | version "1.0.0"
1466 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
1467 |
1468 | is-fullwidth-code-point@^1.0.0:
1469 | version "1.0.0"
1470 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1471 | dependencies:
1472 | number-is-nan "^1.0.0"
1473 |
1474 | is-glob@^2.0.0, is-glob@^2.0.1:
1475 | version "2.0.1"
1476 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
1477 | dependencies:
1478 | is-extglob "^1.0.0"
1479 |
1480 | is-my-json-valid@^2.12.4:
1481 | version "2.16.0"
1482 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693"
1483 | dependencies:
1484 | generate-function "^2.0.0"
1485 | generate-object-property "^1.1.0"
1486 | jsonpointer "^4.0.0"
1487 | xtend "^4.0.0"
1488 |
1489 | is-number-like@^1.0.3:
1490 | version "1.0.7"
1491 | resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.7.tgz#a38d6b0fd2cd4282449128859eed86c03fd23552"
1492 | dependencies:
1493 | bubleify "^0.5.1"
1494 | lodash.isfinite "^3.3.2"
1495 |
1496 | is-number@^2.0.2, is-number@^2.1.0:
1497 | version "2.1.0"
1498 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
1499 | dependencies:
1500 | kind-of "^3.0.2"
1501 |
1502 | is-path-cwd@^1.0.0:
1503 | version "1.0.0"
1504 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
1505 |
1506 | is-path-in-cwd@^1.0.0:
1507 | version "1.0.0"
1508 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
1509 | dependencies:
1510 | is-path-inside "^1.0.0"
1511 |
1512 | is-path-inside@^1.0.0:
1513 | version "1.0.0"
1514 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
1515 | dependencies:
1516 | path-is-inside "^1.0.1"
1517 |
1518 | is-posix-bracket@^0.1.0:
1519 | version "0.1.1"
1520 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
1521 |
1522 | is-primitive@^2.0.0:
1523 | version "2.0.0"
1524 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
1525 |
1526 | is-property@^1.0.0:
1527 | version "1.0.2"
1528 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
1529 |
1530 | is-relative@^0.2.1:
1531 | version "0.2.1"
1532 | resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5"
1533 | dependencies:
1534 | is-unc-path "^0.1.1"
1535 |
1536 | is-typedarray@~1.0.0:
1537 | version "1.0.0"
1538 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1539 |
1540 | is-unc-path@^0.1.1:
1541 | version "0.1.2"
1542 | resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9"
1543 | dependencies:
1544 | unc-path-regex "^0.1.0"
1545 |
1546 | is-utf8@^0.2.0:
1547 | version "0.2.1"
1548 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
1549 |
1550 | is-windows@^0.2.0:
1551 | version "0.2.0"
1552 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
1553 |
1554 | isarray@0.0.1:
1555 | version "0.0.1"
1556 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
1557 |
1558 | isarray@1.0.0, isarray@~1.0.0:
1559 | version "1.0.0"
1560 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1561 |
1562 | isexe@^1.1.1:
1563 | version "1.1.2"
1564 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0"
1565 |
1566 | isobject@^2.0.0:
1567 | version "2.1.0"
1568 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1569 | dependencies:
1570 | isarray "1.0.0"
1571 |
1572 | isstream@~0.1.2:
1573 | version "0.1.2"
1574 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1575 |
1576 | jodid25519@^1.0.0:
1577 | version "1.0.2"
1578 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
1579 | dependencies:
1580 | jsbn "~0.1.0"
1581 |
1582 | jsbn@~0.1.0:
1583 | version "0.1.1"
1584 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
1585 |
1586 | json-schema@0.2.3:
1587 | version "0.2.3"
1588 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
1589 |
1590 | json-stable-stringify@^1.0.1:
1591 | version "1.0.1"
1592 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
1593 | dependencies:
1594 | jsonify "~0.0.0"
1595 |
1596 | json-stringify-safe@~5.0.1:
1597 | version "5.0.1"
1598 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
1599 |
1600 | json3@3.2.6:
1601 | version "3.2.6"
1602 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b"
1603 |
1604 | json3@3.3.2:
1605 | version "3.3.2"
1606 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
1607 |
1608 | jsonfile@^2.1.0:
1609 | version "2.4.0"
1610 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
1611 | optionalDependencies:
1612 | graceful-fs "^4.1.6"
1613 |
1614 | jsonify@~0.0.0:
1615 | version "0.0.0"
1616 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
1617 |
1618 | jsonpointer@^4.0.0:
1619 | version "4.0.1"
1620 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
1621 |
1622 | jsprim@^1.2.2:
1623 | version "1.3.1"
1624 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252"
1625 | dependencies:
1626 | extsprintf "1.0.2"
1627 | json-schema "0.2.3"
1628 | verror "1.3.6"
1629 |
1630 | kind-of@^3.0.2:
1631 | version "3.1.0"
1632 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47"
1633 | dependencies:
1634 | is-buffer "^1.0.2"
1635 |
1636 | klaw@^1.0.0:
1637 | version "1.3.1"
1638 | resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
1639 | optionalDependencies:
1640 | graceful-fs "^4.1.9"
1641 |
1642 | lcid@^1.0.0:
1643 | version "1.0.0"
1644 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
1645 | dependencies:
1646 | invert-kv "^1.0.0"
1647 |
1648 | liftoff@^2.1.0:
1649 | version "2.3.0"
1650 | resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385"
1651 | dependencies:
1652 | extend "^3.0.0"
1653 | findup-sync "^0.4.2"
1654 | fined "^1.0.1"
1655 | flagged-respawn "^0.3.2"
1656 | lodash.isplainobject "^4.0.4"
1657 | lodash.isstring "^4.0.1"
1658 | lodash.mapvalues "^4.4.0"
1659 | rechoir "^0.6.2"
1660 | resolve "^1.1.7"
1661 |
1662 | limiter@^1.0.5:
1663 | version "1.1.0"
1664 | resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.0.tgz#6e2bd12ca3fcdaa11f224e2e53c896df3f08d913"
1665 |
1666 | lite-server@^2.2.2:
1667 | version "2.3.0"
1668 | resolved "https://registry.yarnpkg.com/lite-server/-/lite-server-2.3.0.tgz#5b4cc8f5d5fd4836105480ab2ac48a3a0de2b0c8"
1669 | dependencies:
1670 | browser-sync "^2.18.5"
1671 | connect-history-api-fallback "^1.2.0"
1672 | connect-logger "0.0.1"
1673 | lodash "^4.11.1"
1674 | minimist "1.2.0"
1675 |
1676 | load-json-file@^1.0.0:
1677 | version "1.1.0"
1678 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
1679 | dependencies:
1680 | graceful-fs "^4.1.2"
1681 | parse-json "^2.2.0"
1682 | pify "^2.0.0"
1683 | pinkie-promise "^2.0.0"
1684 | strip-bom "^2.0.0"
1685 |
1686 | localtunnel@1.8.2:
1687 | version "1.8.2"
1688 | resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-1.8.2.tgz#913051e8328b51f75ad8a22ad1f5c5b8c599a359"
1689 | dependencies:
1690 | debug "2.2.0"
1691 | openurl "1.1.0"
1692 | request "2.78.0"
1693 | yargs "3.29.0"
1694 |
1695 | lodash._basecopy@^3.0.0:
1696 | version "3.0.1"
1697 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
1698 |
1699 | lodash._basetostring@^3.0.0:
1700 | version "3.0.1"
1701 | resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
1702 |
1703 | lodash._basevalues@^3.0.0:
1704 | version "3.0.0"
1705 | resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
1706 |
1707 | lodash._getnative@^3.0.0:
1708 | version "3.9.1"
1709 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
1710 |
1711 | lodash._isiterateecall@^3.0.0:
1712 | version "3.0.9"
1713 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
1714 |
1715 | lodash._reescape@^3.0.0:
1716 | version "3.0.0"
1717 | resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
1718 |
1719 | lodash._reevaluate@^3.0.0:
1720 | version "3.0.0"
1721 | resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
1722 |
1723 | lodash._reinterpolate@^3.0.0:
1724 | version "3.0.0"
1725 | resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
1726 |
1727 | lodash._root@^3.0.0:
1728 | version "3.0.1"
1729 | resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
1730 |
1731 | lodash.assignwith@^4.0.7:
1732 | version "4.2.0"
1733 | resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb"
1734 |
1735 | lodash.escape@^3.0.0:
1736 | version "3.2.0"
1737 | resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
1738 | dependencies:
1739 | lodash._root "^3.0.0"
1740 |
1741 | lodash.isarguments@^3.0.0:
1742 | version "3.1.0"
1743 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
1744 |
1745 | lodash.isarray@^3.0.0:
1746 | version "3.0.4"
1747 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
1748 |
1749 | lodash.isempty@^4.2.1:
1750 | version "4.4.0"
1751 | resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
1752 |
1753 | lodash.isfinite@^3.3.2:
1754 | version "3.3.2"
1755 | resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3"
1756 |
1757 | lodash.isplainobject@^4.0.4:
1758 | version "4.0.6"
1759 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
1760 |
1761 | lodash.isstring@^4.0.1:
1762 | version "4.0.1"
1763 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
1764 |
1765 | lodash.keys@^3.0.0:
1766 | version "3.1.2"
1767 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
1768 | dependencies:
1769 | lodash._getnative "^3.0.0"
1770 | lodash.isarguments "^3.0.0"
1771 | lodash.isarray "^3.0.0"
1772 |
1773 | lodash.mapvalues@^4.4.0:
1774 | version "4.6.0"
1775 | resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
1776 |
1777 | lodash.pick@^4.2.1:
1778 | version "4.4.0"
1779 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
1780 |
1781 | lodash.restparam@^3.0.0:
1782 | version "3.6.1"
1783 | resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
1784 |
1785 | lodash.template@^3.0.0:
1786 | version "3.6.2"
1787 | resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
1788 | dependencies:
1789 | lodash._basecopy "^3.0.0"
1790 | lodash._basetostring "^3.0.0"
1791 | lodash._basevalues "^3.0.0"
1792 | lodash._isiterateecall "^3.0.0"
1793 | lodash._reinterpolate "^3.0.0"
1794 | lodash.escape "^3.0.0"
1795 | lodash.keys "^3.0.0"
1796 | lodash.restparam "^3.0.0"
1797 | lodash.templatesettings "^3.0.0"
1798 |
1799 | lodash.templatesettings@^3.0.0:
1800 | version "3.1.1"
1801 | resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
1802 | dependencies:
1803 | lodash._reinterpolate "^3.0.0"
1804 | lodash.escape "^3.0.0"
1805 |
1806 | lodash@^3.10.1:
1807 | version "3.10.1"
1808 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
1809 |
1810 | lodash@^4.11.1, lodash@^4.5.1:
1811 | version "4.17.4"
1812 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
1813 |
1814 | lodash@~1.0.1:
1815 | version "1.0.2"
1816 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551"
1817 |
1818 | lru-cache@2:
1819 | version "2.7.3"
1820 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
1821 |
1822 | magic-string@^0.14.0:
1823 | version "0.14.0"
1824 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.14.0.tgz#57224aef1701caeed273b17a39a956e72b172462"
1825 | dependencies:
1826 | vlq "^0.2.1"
1827 |
1828 | map-cache@^0.2.0:
1829 | version "0.2.2"
1830 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
1831 |
1832 | media-typer@0.3.0:
1833 | version "0.3.0"
1834 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
1835 |
1836 | merge-descriptors@1.0.1:
1837 | version "1.0.1"
1838 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
1839 |
1840 | methods@~1.1.2:
1841 | version "1.1.2"
1842 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
1843 |
1844 | micromatch@2.3.11, micromatch@^2.1.5, micromatch@^2.3.7:
1845 | version "2.3.11"
1846 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
1847 | dependencies:
1848 | arr-diff "^2.0.0"
1849 | array-unique "^0.2.1"
1850 | braces "^1.8.2"
1851 | expand-brackets "^0.1.4"
1852 | extglob "^0.3.1"
1853 | filename-regex "^2.0.0"
1854 | is-extglob "^1.0.0"
1855 | is-glob "^2.0.1"
1856 | kind-of "^3.0.2"
1857 | normalize-path "^2.0.1"
1858 | object.omit "^2.0.0"
1859 | parse-glob "^3.0.4"
1860 | regex-cache "^0.4.2"
1861 |
1862 | mime-db@~1.12.0:
1863 | version "1.12.0"
1864 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7"
1865 |
1866 | mime-db@~1.26.0:
1867 | version "1.26.0"
1868 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff"
1869 |
1870 | mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7:
1871 | version "2.1.14"
1872 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"
1873 | dependencies:
1874 | mime-db "~1.26.0"
1875 |
1876 | mime-types@~2.0.4:
1877 | version "2.0.14"
1878 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6"
1879 | dependencies:
1880 | mime-db "~1.12.0"
1881 |
1882 | mime@1.2.4:
1883 | version "1.2.4"
1884 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.4.tgz#11b5fdaf29c2509255176b80ad520294f5de92b7"
1885 |
1886 | mime@1.3.4, "mime@>= 0.0.1":
1887 | version "1.3.4"
1888 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
1889 |
1890 | minimatch@^2.0.1:
1891 | version "2.0.10"
1892 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
1893 | dependencies:
1894 | brace-expansion "^1.0.0"
1895 |
1896 | minimatch@^3.0.0, minimatch@^3.0.2:
1897 | version "3.0.3"
1898 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
1899 | dependencies:
1900 | brace-expansion "^1.0.0"
1901 |
1902 | minimatch@~0.2.11:
1903 | version "0.2.14"
1904 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
1905 | dependencies:
1906 | lru-cache "2"
1907 | sigmund "~1.0.0"
1908 |
1909 | minimist@0.0.8:
1910 | version "0.0.8"
1911 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1912 |
1913 | minimist@1.2.0, minimist@^1.1.0, minimist@^1.2.0:
1914 | version "1.2.0"
1915 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1916 |
1917 | mkdirp@0.3.0:
1918 | version "0.3.0"
1919 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
1920 |
1921 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@~0.5.1:
1922 | version "0.5.1"
1923 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1924 | dependencies:
1925 | minimist "0.0.8"
1926 |
1927 | moment@*:
1928 | version "2.17.1"
1929 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82"
1930 |
1931 | ms@0.7.1:
1932 | version "0.7.1"
1933 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
1934 |
1935 | ms@0.7.2:
1936 | version "0.7.2"
1937 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
1938 |
1939 | multipipe@^0.1.2:
1940 | version "0.1.2"
1941 | resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
1942 | dependencies:
1943 | duplexer2 "0.0.2"
1944 |
1945 | nan@^2.3.0:
1946 | version "2.5.1"
1947 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2"
1948 |
1949 | natives@^1.1.0:
1950 | version "1.1.0"
1951 | resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31"
1952 |
1953 | negotiator@0.4.9:
1954 | version "0.4.9"
1955 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f"
1956 |
1957 | negotiator@0.6.1:
1958 | version "0.6.1"
1959 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
1960 |
1961 | node-pre-gyp@^0.6.29:
1962 | version "0.6.33"
1963 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz#640ac55198f6a925972e0c16c4ac26a034d5ecc9"
1964 | dependencies:
1965 | mkdirp "~0.5.1"
1966 | nopt "~3.0.6"
1967 | npmlog "^4.0.1"
1968 | rc "~1.1.6"
1969 | request "^2.79.0"
1970 | rimraf "~2.5.4"
1971 | semver "~5.3.0"
1972 | tar "~2.2.1"
1973 | tar-pack "~3.3.0"
1974 |
1975 | node-uuid@~1.4.7:
1976 | version "1.4.7"
1977 | resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f"
1978 |
1979 | nopt@3.0.x, nopt@~3.0.6:
1980 | version "3.0.6"
1981 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
1982 | dependencies:
1983 | abbrev "1"
1984 |
1985 | normalize-package-data@^2.3.2:
1986 | version "2.3.6"
1987 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.6.tgz#498fa420c96401f787402ba21e600def9f981fff"
1988 | dependencies:
1989 | hosted-git-info "^2.1.4"
1990 | is-builtin-module "^1.0.0"
1991 | semver "2 || 3 || 4 || 5"
1992 | validate-npm-package-license "^3.0.1"
1993 |
1994 | normalize-path@^2.0.1:
1995 | version "2.0.1"
1996 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a"
1997 |
1998 | npmlog@^4.0.1:
1999 | version "4.0.2"
2000 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f"
2001 | dependencies:
2002 | are-we-there-yet "~1.1.2"
2003 | console-control-strings "~1.1.0"
2004 | gauge "~2.7.1"
2005 | set-blocking "~2.0.0"
2006 |
2007 | number-is-nan@^1.0.0:
2008 | version "1.0.1"
2009 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
2010 |
2011 | oauth-sign@~0.8.1:
2012 | version "0.8.2"
2013 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
2014 |
2015 | object-assign@4.1.0:
2016 | version "4.1.0"
2017 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
2018 |
2019 | object-assign@^3.0.0:
2020 | version "3.0.0"
2021 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
2022 |
2023 | object-assign@^4.0.1, object-assign@^4.1.0:
2024 | version "4.1.1"
2025 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
2026 |
2027 | object-component@0.0.3:
2028 | version "0.0.3"
2029 | resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
2030 |
2031 | object-path@^0.9.0:
2032 | version "0.9.2"
2033 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5"
2034 |
2035 | object.omit@^2.0.0:
2036 | version "2.0.1"
2037 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
2038 | dependencies:
2039 | for-own "^0.1.4"
2040 | is-extendable "^0.1.1"
2041 |
2042 | on-finished@~2.3.0:
2043 | version "2.3.0"
2044 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
2045 | dependencies:
2046 | ee-first "1.1.1"
2047 |
2048 | once@^1.3.0:
2049 | version "1.4.0"
2050 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2051 | dependencies:
2052 | wrappy "1"
2053 |
2054 | once@~1.3.0, once@~1.3.3:
2055 | version "1.3.3"
2056 | resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20"
2057 | dependencies:
2058 | wrappy "1"
2059 |
2060 | openurl@1.1.0:
2061 | version "1.1.0"
2062 | resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.0.tgz#e2f2189d999c04823201f083f0f1a7cd8903187a"
2063 |
2064 | opn@4.0.2:
2065 | version "4.0.2"
2066 | resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
2067 | dependencies:
2068 | object-assign "^4.0.1"
2069 | pinkie-promise "^2.0.0"
2070 |
2071 | options@>=0.0.5:
2072 | version "0.0.6"
2073 | resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
2074 |
2075 | orchestrator@^0.3.0:
2076 | version "0.3.8"
2077 | resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e"
2078 | dependencies:
2079 | end-of-stream "~0.1.5"
2080 | sequencify "~0.0.7"
2081 | stream-consume "~0.1.0"
2082 |
2083 | ordered-read-streams@^0.1.0:
2084 | version "0.1.0"
2085 | resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126"
2086 |
2087 | os-homedir@^1.0.0, os-homedir@^1.0.1:
2088 | version "1.0.2"
2089 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
2090 |
2091 | os-locale@^1.4.0:
2092 | version "1.4.0"
2093 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
2094 | dependencies:
2095 | lcid "^1.0.0"
2096 |
2097 | parse-filepath@^1.0.1:
2098 | version "1.0.1"
2099 | resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73"
2100 | dependencies:
2101 | is-absolute "^0.2.3"
2102 | map-cache "^0.2.0"
2103 | path-root "^0.1.1"
2104 |
2105 | parse-glob@^3.0.4:
2106 | version "3.0.4"
2107 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
2108 | dependencies:
2109 | glob-base "^0.3.0"
2110 | is-dotfile "^1.0.0"
2111 | is-extglob "^1.0.0"
2112 | is-glob "^2.0.0"
2113 |
2114 | parse-json@^2.2.0:
2115 | version "2.2.0"
2116 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
2117 | dependencies:
2118 | error-ex "^1.2.0"
2119 |
2120 | parse-passwd@^1.0.0:
2121 | version "1.0.0"
2122 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
2123 |
2124 | parsejson@0.0.1:
2125 | version "0.0.1"
2126 | resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc"
2127 | dependencies:
2128 | better-assert "~1.0.0"
2129 |
2130 | parsejson@0.0.3:
2131 | version "0.0.3"
2132 | resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
2133 | dependencies:
2134 | better-assert "~1.0.0"
2135 |
2136 | parseqs@0.0.2:
2137 | version "0.0.2"
2138 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7"
2139 | dependencies:
2140 | better-assert "~1.0.0"
2141 |
2142 | parseqs@0.0.5:
2143 | version "0.0.5"
2144 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
2145 | dependencies:
2146 | better-assert "~1.0.0"
2147 |
2148 | parseuri@0.0.4:
2149 | version "0.0.4"
2150 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350"
2151 | dependencies:
2152 | better-assert "~1.0.0"
2153 |
2154 | parseuri@0.0.5:
2155 | version "0.0.5"
2156 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
2157 | dependencies:
2158 | better-assert "~1.0.0"
2159 |
2160 | parseurl@~1.3.1:
2161 | version "1.3.1"
2162 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
2163 |
2164 | path-exists@^2.0.0:
2165 | version "2.1.0"
2166 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
2167 | dependencies:
2168 | pinkie-promise "^2.0.0"
2169 |
2170 | path-is-absolute@^1.0.0:
2171 | version "1.0.1"
2172 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2173 |
2174 | path-is-inside@^1.0.1:
2175 | version "1.0.2"
2176 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
2177 |
2178 | path-parse@^1.0.5:
2179 | version "1.0.5"
2180 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
2181 |
2182 | path-root-regex@^0.1.0:
2183 | version "0.1.2"
2184 | resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
2185 |
2186 | path-root@^0.1.1:
2187 | version "0.1.1"
2188 | resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
2189 | dependencies:
2190 | path-root-regex "^0.1.0"
2191 |
2192 | path-to-regexp@0.1.7:
2193 | version "0.1.7"
2194 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
2195 |
2196 | path-type@^1.0.0:
2197 | version "1.1.0"
2198 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
2199 | dependencies:
2200 | graceful-fs "^4.1.2"
2201 | pify "^2.0.0"
2202 | pinkie-promise "^2.0.0"
2203 |
2204 | path@^0.12.7:
2205 | version "0.12.7"
2206 | resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"
2207 | dependencies:
2208 | process "^0.11.1"
2209 | util "^0.10.3"
2210 |
2211 | performance-now@^0.2.0:
2212 | version "0.2.0"
2213 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
2214 |
2215 | pify@^2.0.0:
2216 | version "2.3.0"
2217 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
2218 |
2219 | pinkie-promise@^2.0.0:
2220 | version "2.0.1"
2221 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
2222 | dependencies:
2223 | pinkie "^2.0.0"
2224 |
2225 | pinkie@^2.0.0:
2226 | version "2.0.4"
2227 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
2228 |
2229 | portscanner@2.1.1:
2230 | version "2.1.1"
2231 | resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.1.1.tgz#eabb409e4de24950f5a2a516d35ae769343fbb96"
2232 | dependencies:
2233 | async "1.5.2"
2234 | is-number-like "^1.0.3"
2235 |
2236 | preserve@^0.2.0:
2237 | version "0.2.0"
2238 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
2239 |
2240 | pretty-hrtime@^1.0.0:
2241 | version "1.0.3"
2242 | resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
2243 |
2244 | process-nextick-args@~1.0.6:
2245 | version "1.0.7"
2246 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
2247 |
2248 | process@^0.11.1:
2249 | version "0.11.9"
2250 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1"
2251 |
2252 | proxy-addr@~1.1.3:
2253 | version "1.1.3"
2254 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.3.tgz#dc97502f5722e888467b3fa2297a7b1ff47df074"
2255 | dependencies:
2256 | forwarded "~0.1.0"
2257 | ipaddr.js "1.2.0"
2258 |
2259 | punycode@^1.4.1:
2260 | version "1.4.1"
2261 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
2262 |
2263 | qs@0.4.x:
2264 | version "0.4.2"
2265 | resolved "https://registry.yarnpkg.com/qs/-/qs-0.4.2.tgz#3cac4c861e371a8c9c4770ac23cda8de639b8e5f"
2266 |
2267 | qs@6.2.1:
2268 | version "6.2.1"
2269 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625"
2270 |
2271 | qs@6.4.0, "qs@>= 0.4.0", qs@~6.4.0:
2272 | version "6.4.0"
2273 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
2274 |
2275 | qs@~6.3.0:
2276 | version "6.3.2"
2277 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
2278 |
2279 | randomatic@^1.1.3:
2280 | version "1.1.6"
2281 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
2282 | dependencies:
2283 | is-number "^2.0.2"
2284 | kind-of "^3.0.2"
2285 |
2286 | range-parser@~1.2.0:
2287 | version "1.2.0"
2288 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
2289 |
2290 | rc@~1.1.6:
2291 | version "1.1.7"
2292 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea"
2293 | dependencies:
2294 | deep-extend "~0.4.0"
2295 | ini "~1.3.0"
2296 | minimist "^1.2.0"
2297 | strip-json-comments "~2.0.1"
2298 |
2299 | read-pkg-up@^1.0.1:
2300 | version "1.0.1"
2301 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
2302 | dependencies:
2303 | find-up "^1.0.0"
2304 | read-pkg "^1.0.0"
2305 |
2306 | read-pkg@^1.0.0:
2307 | version "1.1.0"
2308 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
2309 | dependencies:
2310 | load-json-file "^1.0.0"
2311 | normalize-package-data "^2.3.2"
2312 | path-type "^1.0.0"
2313 |
2314 | "readable-stream@>=1.0.33-1 <1.1.0-0":
2315 | version "1.0.34"
2316 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
2317 | dependencies:
2318 | core-util-is "~1.0.0"
2319 | inherits "~2.0.1"
2320 | isarray "0.0.1"
2321 | string_decoder "~0.10.x"
2322 |
2323 | "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.1.5:
2324 | version "2.2.3"
2325 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729"
2326 | dependencies:
2327 | buffer-shims "^1.0.0"
2328 | core-util-is "~1.0.0"
2329 | inherits "~2.0.1"
2330 | isarray "~1.0.0"
2331 | process-nextick-args "~1.0.6"
2332 | string_decoder "~0.10.x"
2333 | util-deprecate "~1.0.1"
2334 |
2335 | readable-stream@~1.1.9:
2336 | version "1.1.14"
2337 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
2338 | dependencies:
2339 | core-util-is "~1.0.0"
2340 | inherits "~2.0.1"
2341 | isarray "0.0.1"
2342 | string_decoder "~0.10.x"
2343 |
2344 | readable-stream@~2.1.4:
2345 | version "2.1.5"
2346 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
2347 | dependencies:
2348 | buffer-shims "^1.0.0"
2349 | core-util-is "~1.0.0"
2350 | inherits "~2.0.1"
2351 | isarray "~1.0.0"
2352 | process-nextick-args "~1.0.6"
2353 | string_decoder "~0.10.x"
2354 | util-deprecate "~1.0.1"
2355 |
2356 | readdirp@^2.0.0:
2357 | version "2.1.0"
2358 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
2359 | dependencies:
2360 | graceful-fs "^4.1.2"
2361 | minimatch "^3.0.2"
2362 | readable-stream "^2.0.2"
2363 | set-immediate-shim "^1.0.1"
2364 |
2365 | rechoir@^0.6.2:
2366 | version "0.6.2"
2367 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
2368 | dependencies:
2369 | resolve "^1.1.6"
2370 |
2371 | regex-cache@^0.4.2:
2372 | version "0.4.3"
2373 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
2374 | dependencies:
2375 | is-equal-shallow "^0.1.3"
2376 | is-primitive "^2.0.0"
2377 |
2378 | repeat-element@^1.1.2:
2379 | version "1.1.2"
2380 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
2381 |
2382 | repeat-string@^1.5.2:
2383 | version "1.6.1"
2384 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
2385 |
2386 | replace-ext@0.0.1:
2387 | version "0.0.1"
2388 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
2389 |
2390 | request@2.78.0:
2391 | version "2.78.0"
2392 | resolved "https://registry.yarnpkg.com/request/-/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc"
2393 | dependencies:
2394 | aws-sign2 "~0.6.0"
2395 | aws4 "^1.2.1"
2396 | caseless "~0.11.0"
2397 | combined-stream "~1.0.5"
2398 | extend "~3.0.0"
2399 | forever-agent "~0.6.1"
2400 | form-data "~2.1.1"
2401 | har-validator "~2.0.6"
2402 | hawk "~3.1.3"
2403 | http-signature "~1.1.0"
2404 | is-typedarray "~1.0.0"
2405 | isstream "~0.1.2"
2406 | json-stringify-safe "~5.0.1"
2407 | mime-types "~2.1.7"
2408 | node-uuid "~1.4.7"
2409 | oauth-sign "~0.8.1"
2410 | qs "~6.3.0"
2411 | stringstream "~0.0.4"
2412 | tough-cookie "~2.3.0"
2413 | tunnel-agent "~0.4.1"
2414 |
2415 | request@^2.79.0:
2416 | version "2.81.0"
2417 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
2418 | dependencies:
2419 | aws-sign2 "~0.6.0"
2420 | aws4 "^1.2.1"
2421 | caseless "~0.12.0"
2422 | combined-stream "~1.0.5"
2423 | extend "~3.0.0"
2424 | forever-agent "~0.6.1"
2425 | form-data "~2.1.1"
2426 | har-validator "~4.2.1"
2427 | hawk "~3.1.3"
2428 | http-signature "~1.1.0"
2429 | is-typedarray "~1.0.0"
2430 | isstream "~0.1.2"
2431 | json-stringify-safe "~5.0.1"
2432 | mime-types "~2.1.7"
2433 | oauth-sign "~0.8.1"
2434 | performance-now "^0.2.0"
2435 | qs "~6.4.0"
2436 | safe-buffer "^5.0.1"
2437 | stringstream "~0.0.4"
2438 | tough-cookie "~2.3.0"
2439 | tunnel-agent "^0.6.0"
2440 | uuid "^3.0.0"
2441 |
2442 | require-directory@^2.1.1:
2443 | version "2.1.1"
2444 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
2445 |
2446 | require-main-filename@^1.0.1:
2447 | version "1.0.1"
2448 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
2449 |
2450 | requires-port@1.x.x:
2451 | version "1.0.0"
2452 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
2453 |
2454 | resolve-dir@^0.1.0:
2455 | version "0.1.1"
2456 | resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
2457 | dependencies:
2458 | expand-tilde "^1.2.2"
2459 | global-modules "^0.2.3"
2460 |
2461 | resolve@^1.1.6, resolve@^1.1.7:
2462 | version "1.3.2"
2463 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235"
2464 | dependencies:
2465 | path-parse "^1.0.5"
2466 |
2467 | resp-modifier@6.0.2:
2468 | version "6.0.2"
2469 | resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f"
2470 | dependencies:
2471 | debug "^2.2.0"
2472 | minimatch "^3.0.2"
2473 |
2474 | rimraf@2, rimraf@^2.2.8:
2475 | version "2.6.1"
2476 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
2477 | dependencies:
2478 | glob "^7.0.5"
2479 |
2480 | rimraf@~2.5.1, rimraf@~2.5.4:
2481 | version "2.5.4"
2482 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
2483 | dependencies:
2484 | glob "^7.0.5"
2485 |
2486 | run-sequence@^1.2.2:
2487 | version "1.2.2"
2488 | resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-1.2.2.tgz#5095a0bebe98733b0140bd08dd80ec030ddacdeb"
2489 | dependencies:
2490 | chalk "*"
2491 | gulp-util "*"
2492 |
2493 | rx@2.3.24:
2494 | version "2.3.24"
2495 | resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7"
2496 |
2497 | rx@4.1.0:
2498 | version "4.1.0"
2499 | resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
2500 |
2501 | rxjs@5.0.1:
2502 | version "5.0.1"
2503 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.0.1.tgz#3a69bdf9f0ca0a986303370d4708f72bdfac8356"
2504 | dependencies:
2505 | symbol-observable "^1.0.1"
2506 |
2507 | safe-buffer@^5.0.1:
2508 | version "5.0.1"
2509 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
2510 |
2511 | "semver@2 || 3 || 4 || 5", semver@~5.3.0:
2512 | version "5.3.0"
2513 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
2514 |
2515 | semver@^4.1.0:
2516 | version "4.3.6"
2517 | resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
2518 |
2519 | send@0.14.1:
2520 | version "0.14.1"
2521 | resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a"
2522 | dependencies:
2523 | debug "~2.2.0"
2524 | depd "~1.1.0"
2525 | destroy "~1.0.4"
2526 | encodeurl "~1.0.1"
2527 | escape-html "~1.0.3"
2528 | etag "~1.7.0"
2529 | fresh "0.3.0"
2530 | http-errors "~1.5.0"
2531 | mime "1.3.4"
2532 | ms "0.7.1"
2533 | on-finished "~2.3.0"
2534 | range-parser "~1.2.0"
2535 | statuses "~1.3.0"
2536 |
2537 | send@0.15.1:
2538 | version "0.15.1"
2539 | resolved "https://registry.yarnpkg.com/send/-/send-0.15.1.tgz#8a02354c26e6f5cca700065f5f0cdeba90ec7b5f"
2540 | dependencies:
2541 | debug "2.6.1"
2542 | depd "~1.1.0"
2543 | destroy "~1.0.4"
2544 | encodeurl "~1.0.1"
2545 | escape-html "~1.0.3"
2546 | etag "~1.8.0"
2547 | fresh "0.5.0"
2548 | http-errors "~1.6.1"
2549 | mime "1.3.4"
2550 | ms "0.7.2"
2551 | on-finished "~2.3.0"
2552 | range-parser "~1.2.0"
2553 | statuses "~1.3.1"
2554 |
2555 | sequencify@~0.0.7:
2556 | version "0.0.7"
2557 | resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c"
2558 |
2559 | serve-index@1.8.0:
2560 | version "1.8.0"
2561 | resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b"
2562 | dependencies:
2563 | accepts "~1.3.3"
2564 | batch "0.5.3"
2565 | debug "~2.2.0"
2566 | escape-html "~1.0.3"
2567 | http-errors "~1.5.0"
2568 | mime-types "~2.1.11"
2569 | parseurl "~1.3.1"
2570 |
2571 | serve-static@1.11.1:
2572 | version "1.11.1"
2573 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805"
2574 | dependencies:
2575 | encodeurl "~1.0.1"
2576 | escape-html "~1.0.3"
2577 | parseurl "~1.3.1"
2578 | send "0.14.1"
2579 |
2580 | serve-static@1.12.1:
2581 | version "1.12.1"
2582 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.1.tgz#7443a965e3ced647aceb5639fa06bf4d1bbe0039"
2583 | dependencies:
2584 | encodeurl "~1.0.1"
2585 | escape-html "~1.0.3"
2586 | parseurl "~1.3.1"
2587 | send "0.15.1"
2588 |
2589 | server-destroy@1.0.1:
2590 | version "1.0.1"
2591 | resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd"
2592 |
2593 | set-blocking@^2.0.0, set-blocking@~2.0.0:
2594 | version "2.0.0"
2595 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2596 |
2597 | set-immediate-shim@^1.0.1:
2598 | version "1.0.1"
2599 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
2600 |
2601 | setprototypeof@1.0.2:
2602 | version "1.0.2"
2603 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08"
2604 |
2605 | setprototypeof@1.0.3:
2606 | version "1.0.3"
2607 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
2608 |
2609 | sigmund@~1.0.0:
2610 | version "1.0.1"
2611 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
2612 |
2613 | signal-exit@^3.0.0:
2614 | version "3.0.2"
2615 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
2616 |
2617 | sntp@1.x.x:
2618 | version "1.0.9"
2619 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
2620 | dependencies:
2621 | hoek "2.x.x"
2622 |
2623 | socket.io-adapter@0.4.0:
2624 | version "0.4.0"
2625 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f"
2626 | dependencies:
2627 | debug "2.2.0"
2628 | socket.io-parser "2.2.2"
2629 |
2630 | socket.io-adapter@0.5.0:
2631 | version "0.5.0"
2632 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
2633 | dependencies:
2634 | debug "2.3.3"
2635 | socket.io-parser "2.3.1"
2636 |
2637 | socket.io-client@1.4.5:
2638 | version "1.4.5"
2639 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.4.5.tgz#400d630c31e7c9579e45173f977e4f5bd8dc7d2e"
2640 | dependencies:
2641 | backo2 "1.0.2"
2642 | component-bind "1.0.0"
2643 | component-emitter "1.2.0"
2644 | debug "2.2.0"
2645 | engine.io-client "1.6.8"
2646 | has-binary "0.1.7"
2647 | indexof "0.0.1"
2648 | object-component "0.0.3"
2649 | parseuri "0.0.4"
2650 | socket.io-parser "2.2.6"
2651 | to-array "0.1.4"
2652 |
2653 | socket.io-client@1.6.0:
2654 | version "1.6.0"
2655 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.6.0.tgz#5b668f4f771304dfeed179064708386fa6717853"
2656 | dependencies:
2657 | backo2 "1.0.2"
2658 | component-bind "1.0.0"
2659 | component-emitter "1.2.1"
2660 | debug "2.3.3"
2661 | engine.io-client "1.8.0"
2662 | has-binary "0.1.7"
2663 | indexof "0.0.1"
2664 | object-component "0.0.3"
2665 | parseuri "0.0.5"
2666 | socket.io-parser "2.3.1"
2667 | to-array "0.1.4"
2668 |
2669 | socket.io-parser@2.2.2:
2670 | version "2.2.2"
2671 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417"
2672 | dependencies:
2673 | benchmark "1.0.0"
2674 | component-emitter "1.1.2"
2675 | debug "0.7.4"
2676 | isarray "0.0.1"
2677 | json3 "3.2.6"
2678 |
2679 | socket.io-parser@2.2.6:
2680 | version "2.2.6"
2681 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99"
2682 | dependencies:
2683 | benchmark "1.0.0"
2684 | component-emitter "1.1.2"
2685 | debug "2.2.0"
2686 | isarray "0.0.1"
2687 | json3 "3.3.2"
2688 |
2689 | socket.io-parser@2.3.1:
2690 | version "2.3.1"
2691 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
2692 | dependencies:
2693 | component-emitter "1.1.2"
2694 | debug "2.2.0"
2695 | isarray "0.0.1"
2696 | json3 "3.3.2"
2697 |
2698 | socket.io@1.4.5:
2699 | version "1.4.5"
2700 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.4.5.tgz#f202f49eeb9cf7cf6c0971ad75d8d96d451ea4f7"
2701 | dependencies:
2702 | debug "2.2.0"
2703 | engine.io "1.6.8"
2704 | has-binary "0.1.7"
2705 | socket.io-adapter "0.4.0"
2706 | socket.io-client "1.4.5"
2707 | socket.io-parser "2.2.6"
2708 |
2709 | socket.io@1.6.0:
2710 | version "1.6.0"
2711 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.6.0.tgz#3e40d932637e6bd923981b25caf7c53e83b6e2e1"
2712 | dependencies:
2713 | debug "2.3.3"
2714 | engine.io "1.8.0"
2715 | has-binary "0.1.7"
2716 | object-assign "4.1.0"
2717 | socket.io-adapter "0.5.0"
2718 | socket.io-client "1.6.0"
2719 | socket.io-parser "2.3.1"
2720 |
2721 | sparkles@^1.0.0:
2722 | version "1.0.0"
2723 | resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
2724 |
2725 | spawn-command@^0.0.2-1:
2726 | version "0.0.2"
2727 | resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e"
2728 |
2729 | spdx-correct@~1.0.0:
2730 | version "1.0.2"
2731 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
2732 | dependencies:
2733 | spdx-license-ids "^1.0.2"
2734 |
2735 | spdx-expression-parse@~1.0.0:
2736 | version "1.0.4"
2737 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
2738 |
2739 | spdx-license-ids@^1.0.2:
2740 | version "1.2.2"
2741 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
2742 |
2743 | sshpk@^1.7.0:
2744 | version "1.11.0"
2745 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77"
2746 | dependencies:
2747 | asn1 "~0.2.3"
2748 | assert-plus "^1.0.0"
2749 | dashdash "^1.12.0"
2750 | getpass "^0.1.1"
2751 | optionalDependencies:
2752 | bcrypt-pbkdf "^1.0.0"
2753 | ecc-jsbn "~0.1.1"
2754 | jodid25519 "^1.0.0"
2755 | jsbn "~0.1.0"
2756 | tweetnacl "~0.14.0"
2757 |
2758 | "statuses@>= 1.3.1 < 2", statuses@~1.3.0, statuses@~1.3.1:
2759 | version "1.3.1"
2760 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
2761 |
2762 | stream-consume@~0.1.0:
2763 | version "0.1.0"
2764 | resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f"
2765 |
2766 | stream-throttle@^0.1.3:
2767 | version "0.1.3"
2768 | resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3"
2769 | dependencies:
2770 | commander "^2.2.0"
2771 | limiter "^1.0.5"
2772 |
2773 | string-width@^1.0.1, string-width@^1.0.2:
2774 | version "1.0.2"
2775 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2776 | dependencies:
2777 | code-point-at "^1.0.0"
2778 | is-fullwidth-code-point "^1.0.0"
2779 | strip-ansi "^3.0.0"
2780 |
2781 | string_decoder@~0.10.x:
2782 | version "0.10.31"
2783 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
2784 |
2785 | stringstream@~0.0.4:
2786 | version "0.0.5"
2787 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
2788 |
2789 | strip-ansi@^0.3.0:
2790 | version "0.3.0"
2791 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220"
2792 | dependencies:
2793 | ansi-regex "^0.2.1"
2794 |
2795 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
2796 | version "3.0.1"
2797 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2798 | dependencies:
2799 | ansi-regex "^2.0.0"
2800 |
2801 | strip-bom@^1.0.0:
2802 | version "1.0.0"
2803 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794"
2804 | dependencies:
2805 | first-chunk-stream "^1.0.0"
2806 | is-utf8 "^0.2.0"
2807 |
2808 | strip-bom@^2.0.0:
2809 | version "2.0.0"
2810 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
2811 | dependencies:
2812 | is-utf8 "^0.2.0"
2813 |
2814 | strip-json-comments@~2.0.1:
2815 | version "2.0.1"
2816 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
2817 |
2818 | supports-color@^0.2.0:
2819 | version "0.2.0"
2820 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
2821 |
2822 | supports-color@^2.0.0:
2823 | version "2.0.0"
2824 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
2825 |
2826 | supports-color@^3.2.3:
2827 | version "3.2.3"
2828 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
2829 | dependencies:
2830 | has-flag "^1.0.0"
2831 |
2832 | symbol-observable@^1.0.1:
2833 | version "1.0.4"
2834 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
2835 |
2836 | systemjs@0.19.40:
2837 | version "0.19.40"
2838 | resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.40.tgz#158f64a9f4ef541a7fda6b40e527ee46b6c54cd0"
2839 | dependencies:
2840 | when "^3.7.5"
2841 |
2842 | tar-pack@~3.3.0:
2843 | version "3.3.0"
2844 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae"
2845 | dependencies:
2846 | debug "~2.2.0"
2847 | fstream "~1.0.10"
2848 | fstream-ignore "~1.0.5"
2849 | once "~1.3.3"
2850 | readable-stream "~2.1.4"
2851 | rimraf "~2.5.1"
2852 | tar "~2.2.1"
2853 | uid-number "~0.0.6"
2854 |
2855 | tar@~2.2.1:
2856 | version "2.2.1"
2857 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
2858 | dependencies:
2859 | block-stream "*"
2860 | fstream "^1.0.2"
2861 | inherits "2"
2862 |
2863 | tfunk@^3.0.1:
2864 | version "3.1.0"
2865 | resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.1.0.tgz#38e4414fc64977d87afdaa72facb6d29f82f7b5b"
2866 | dependencies:
2867 | chalk "^1.1.1"
2868 | object-path "^0.9.0"
2869 |
2870 | through2@^0.6.1:
2871 | version "0.6.5"
2872 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
2873 | dependencies:
2874 | readable-stream ">=1.0.33-1 <1.1.0-0"
2875 | xtend ">=4.0.0 <4.1.0-0"
2876 |
2877 | through2@^2.0.0:
2878 | version "2.0.3"
2879 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
2880 | dependencies:
2881 | readable-stream "^2.1.5"
2882 | xtend "~4.0.1"
2883 |
2884 | tildify@^1.0.0:
2885 | version "1.2.0"
2886 | resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
2887 | dependencies:
2888 | os-homedir "^1.0.0"
2889 |
2890 | time-stamp@^1.0.0:
2891 | version "1.0.1"
2892 | resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151"
2893 |
2894 | to-array@0.1.4:
2895 | version "0.1.4"
2896 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
2897 |
2898 | tough-cookie@~2.3.0:
2899 | version "2.3.2"
2900 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
2901 | dependencies:
2902 | punycode "^1.4.1"
2903 |
2904 | tree-kill@^1.1.0:
2905 | version "1.1.0"
2906 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.1.0.tgz#c963dcf03722892ec59cba569e940b71954d1729"
2907 |
2908 | tunnel-agent@^0.6.0:
2909 | version "0.6.0"
2910 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
2911 | dependencies:
2912 | safe-buffer "^5.0.1"
2913 |
2914 | tunnel-agent@~0.4.1:
2915 | version "0.4.3"
2916 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
2917 |
2918 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
2919 | version "0.14.5"
2920 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
2921 |
2922 | type-is@~1.6.14:
2923 | version "1.6.14"
2924 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2"
2925 | dependencies:
2926 | media-typer "0.3.0"
2927 | mime-types "~2.1.13"
2928 |
2929 | typescript@~2.0.10:
2930 | version "2.0.10"
2931 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.0.10.tgz#ccdd4ed86fd5550a407101a0814012e1b3fac3dd"
2932 |
2933 | ua-parser-js@0.7.12:
2934 | version "0.7.12"
2935 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb"
2936 |
2937 | uid-number@~0.0.6:
2938 | version "0.0.6"
2939 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
2940 |
2941 | ultron@1.0.x:
2942 | version "1.0.2"
2943 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
2944 |
2945 | unc-path-regex@^0.1.0:
2946 | version "0.1.2"
2947 | resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
2948 |
2949 | underscore@1.7.x:
2950 | version "1.7.0"
2951 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
2952 |
2953 | unique-stream@^1.0.0:
2954 | version "1.0.0"
2955 | resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b"
2956 |
2957 | unpipe@~1.0.0:
2958 | version "1.0.0"
2959 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
2960 |
2961 | user-home@^1.1.1:
2962 | version "1.1.1"
2963 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
2964 |
2965 | utf8@2.1.0:
2966 | version "2.1.0"
2967 | resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5"
2968 |
2969 | util-deprecate@~1.0.1:
2970 | version "1.0.2"
2971 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2972 |
2973 | util@^0.10.3:
2974 | version "0.10.3"
2975 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
2976 | dependencies:
2977 | inherits "2.0.1"
2978 |
2979 | utils-merge@1.0.0:
2980 | version "1.0.0"
2981 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
2982 |
2983 | uuid@^3.0.0:
2984 | version "3.0.1"
2985 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
2986 |
2987 | v8flags@^2.0.2:
2988 | version "2.0.11"
2989 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881"
2990 | dependencies:
2991 | user-home "^1.1.1"
2992 |
2993 | validate-npm-package-license@^3.0.1:
2994 | version "3.0.1"
2995 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
2996 | dependencies:
2997 | spdx-correct "~1.0.0"
2998 | spdx-expression-parse "~1.0.0"
2999 |
3000 | vary@~1.1.0:
3001 | version "1.1.0"
3002 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140"
3003 |
3004 | verror@1.3.6:
3005 | version "1.3.6"
3006 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
3007 | dependencies:
3008 | extsprintf "1.0.2"
3009 |
3010 | vinyl-fs@^0.3.0:
3011 | version "0.3.14"
3012 | resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6"
3013 | dependencies:
3014 | defaults "^1.0.0"
3015 | glob-stream "^3.1.5"
3016 | glob-watcher "^0.0.6"
3017 | graceful-fs "^3.0.0"
3018 | mkdirp "^0.5.0"
3019 | strip-bom "^1.0.0"
3020 | through2 "^0.6.1"
3021 | vinyl "^0.4.0"
3022 |
3023 | vinyl@^0.4.0:
3024 | version "0.4.6"
3025 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
3026 | dependencies:
3027 | clone "^0.2.0"
3028 | clone-stats "^0.0.1"
3029 |
3030 | vinyl@^0.5.0:
3031 | version "0.5.3"
3032 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
3033 | dependencies:
3034 | clone "^1.0.0"
3035 | clone-stats "^0.0.1"
3036 | replace-ext "0.0.1"
3037 |
3038 | vlq@^0.2.1:
3039 | version "0.2.1"
3040 | resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c"
3041 |
3042 | weinre@^2.0.0-pre-I0Z7U9OV:
3043 | version "2.0.0-pre-I0Z7U9OV"
3044 | resolved "https://registry.yarnpkg.com/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz#fef8aa223921f7b40bbbbd4c3ed4302f6fd0a813"
3045 | dependencies:
3046 | express "2.5.x"
3047 | nopt "3.0.x"
3048 | underscore "1.7.x"
3049 |
3050 | when@^3.7.5:
3051 | version "3.7.8"
3052 | resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82"
3053 |
3054 | which-module@^1.0.0:
3055 | version "1.0.0"
3056 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
3057 |
3058 | which@^1.2.12:
3059 | version "1.2.12"
3060 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192"
3061 | dependencies:
3062 | isexe "^1.1.1"
3063 |
3064 | wide-align@^1.1.0:
3065 | version "1.1.0"
3066 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad"
3067 | dependencies:
3068 | string-width "^1.0.1"
3069 |
3070 | window-size@^0.1.2:
3071 | version "0.1.4"
3072 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
3073 |
3074 | window-size@^0.2.0:
3075 | version "0.2.0"
3076 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
3077 |
3078 | wrap-ansi@^2.0.0:
3079 | version "2.1.0"
3080 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
3081 | dependencies:
3082 | string-width "^1.0.1"
3083 | strip-ansi "^3.0.1"
3084 |
3085 | wrappy@1:
3086 | version "1.0.2"
3087 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
3088 |
3089 | ws@1.0.1:
3090 | version "1.0.1"
3091 | resolved "https://registry.yarnpkg.com/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9"
3092 | dependencies:
3093 | options ">=0.0.5"
3094 | ultron "1.0.x"
3095 |
3096 | ws@1.1.1:
3097 | version "1.1.1"
3098 | resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018"
3099 | dependencies:
3100 | options ">=0.0.5"
3101 | ultron "1.0.x"
3102 |
3103 | wtf-8@1.0.0:
3104 | version "1.0.0"
3105 | resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
3106 |
3107 | xmlhttprequest-ssl@1.5.1:
3108 | version "1.5.1"
3109 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67"
3110 |
3111 | xmlhttprequest-ssl@1.5.3:
3112 | version "1.5.3"
3113 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
3114 |
3115 | "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1:
3116 | version "4.0.1"
3117 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
3118 |
3119 | y18n@^3.2.0, y18n@^3.2.1:
3120 | version "3.2.1"
3121 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
3122 |
3123 | yargs-parser@^4.1.0:
3124 | version "4.2.1"
3125 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
3126 | dependencies:
3127 | camelcase "^3.0.0"
3128 |
3129 | yargs@3.29.0:
3130 | version "3.29.0"
3131 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.29.0.tgz#1aab9660eae79d8b8f675bcaeeab6ee34c2cf69c"
3132 | dependencies:
3133 | camelcase "^1.2.1"
3134 | cliui "^3.0.3"
3135 | decamelize "^1.0.0"
3136 | os-locale "^1.4.0"
3137 | window-size "^0.1.2"
3138 | y18n "^3.2.0"
3139 |
3140 | yargs@6.4.0:
3141 | version "6.4.0"
3142 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.4.0.tgz#816e1a866d5598ccf34e5596ddce22d92da490d4"
3143 | dependencies:
3144 | camelcase "^3.0.0"
3145 | cliui "^3.2.0"
3146 | decamelize "^1.1.1"
3147 | get-caller-file "^1.0.1"
3148 | os-locale "^1.4.0"
3149 | read-pkg-up "^1.0.1"
3150 | require-directory "^2.1.1"
3151 | require-main-filename "^1.0.1"
3152 | set-blocking "^2.0.0"
3153 | string-width "^1.0.2"
3154 | which-module "^1.0.0"
3155 | window-size "^0.2.0"
3156 | y18n "^3.2.1"
3157 | yargs-parser "^4.1.0"
3158 |
3159 | yeast@0.1.2:
3160 | version "0.1.2"
3161 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
3162 |
3163 | zone.js@^0.7.4:
3164 | version "0.7.8"
3165 | resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.8.tgz#4f3fe8834d44597f2639053a0fa438df34fffded"
3166 |
--------------------------------------------------------------------------------
/ng2_node/optionB/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | typings
3 | node_modules
4 | lib
5 | dist
6 | jspm_packages
7 | link-checker-results.txt
8 | npm-debug.log
9 | **/*npm-debug.log.*
10 | *.js.map
11 | _test-output
12 | _temp
13 | .editorconfig
14 | CHANGELOG.md
15 | app/**/*.js
16 | app/**/*.js.map
--------------------------------------------------------------------------------
/ng2_node/optionB/README.md:
--------------------------------------------------------------------------------
1 | ## Node + Angular 2 with 2 servers
2 |
3 | ## Run the project
4 | - `npm i` or `yarn`
5 | - command prompt 1 type `nodemon server.js` or `node server.js`
6 | - command prompt 2 type `npm start` to load the lite-server and run application
7 |
8 | ### Project opens on Port 3000
9 |
10 | - includes socket.io setup
--------------------------------------------------------------------------------
/ng2_node/optionB/gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp'),
2 | del = require('del'),
3 | sequence = require('run-sequence'),
4 | libPath = 'public/lib',
5 | nodeModulesPath = 'node_modules';
6 |
7 | gulp.task('clean', function () {
8 | return del(libPath + '/**/*', { force: true });
9 | });
10 |
11 | gulp.task('copy:libs', function (done) {
12 | sequence('clean', 'copy:vendor', 'copy:rxjs', 'copy:angular', 'copy:bootstrap', 'copy:socketIO', done);
13 | });
14 |
15 | gulp.task('copy:vendor', function() {
16 | return gulp
17 | .src([
18 | nodeModulesPath + '/core-js/client/**/*',
19 | nodeModulesPath + '/zone.js/dist/zone.js',
20 | nodeModulesPath + '/reflect-metadata/**/*',
21 | nodeModulesPath + '/systemjs/dist/system-polyfills.js',
22 | nodeModulesPath + '/systemjs/dist/system.src.js'])
23 | .pipe(gulp.dest(libPath));
24 | });
25 |
26 | gulp.task('copy:rxjs', function() {
27 | return gulp
28 | .src([nodeModulesPath + '/rxjs/**/*'])
29 | .pipe(gulp.dest(libPath + '/rxjs'));
30 | });
31 |
32 | gulp.task('copy:angular', function() {
33 | return gulp
34 | .src([nodeModulesPath + '/@angular/**/*'])
35 | .pipe(gulp.dest(libPath + '/@angular'));
36 | });
37 |
38 | gulp.task('copy:bootstrap', function() {
39 | return gulp
40 | .src([nodeModulesPath + '/bootstrap/**/*'])
41 | .pipe(gulp.dest(libPath + '/bootstrap'));
42 | });
43 |
44 | gulp.task('copy:socketIO', function() {
45 | return gulp
46 | .src([nodeModulesPath + '/socket.io-client/**/*'])
47 | .pipe(gulp.dest(libPath + '/socket.io-client'));
48 | });
49 |
50 | gulp.task('default', ['copy:libs']);
--------------------------------------------------------------------------------
/ng2_node/optionB/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | NG2 Chat App
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
30 |
31 |
32 |
33 | Loading App...
34 |
35 |
36 |
--------------------------------------------------------------------------------
/ng2_node/optionB/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular2-socket.io",
3 | "version": "1.0.0",
4 | "description": "Simple chat app using socket.io, angular 2 and a node.js web server",
5 | "scripts": {
6 | "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
7 | "lite": "lite-server",
8 | "postinstall": "typings install",
9 | "tsc": "tsc",
10 | "tsc:w": "tsc -w",
11 | "typings": "typings"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "MIT",
16 | "dependencies": {
17 | "@angular/common": "~2.4.0",
18 | "@angular/compiler": "~2.4.0",
19 | "@angular/core": "~2.4.0",
20 | "@angular/forms": "~2.4.0",
21 | "@angular/http": "~2.4.0",
22 | "@angular/platform-browser": "~2.4.0",
23 | "@angular/platform-browser-dynamic": "~2.4.0",
24 | "@angular/router": "~3.4.0",
25 | "@angular/upgrade": "^2.4.9",
26 | "@types/socket.io": "^1.4.28",
27 | "angular-in-memory-web-api": "~0.2.4",
28 | "bootstrap": "^3.3.7",
29 | "core-js": "^2.4.1",
30 | "express": "^4.13.4",
31 | "path": "^0.12.7",
32 | "rxjs": "5.0.1",
33 | "socket.io": "1.4.5",
34 | "systemjs": "0.19.40",
35 | "zone.js": "^0.7.4"
36 | },
37 | "devDependencies": {
38 | "concurrently": "^3.2.0",
39 | "lite-server": "^2.2.2",
40 | "typescript": "~2.0.10",
41 | "@types/node": "^6.0.46",
42 | "@types/jasmine": "2.5.36",
43 | "@types/socket.io-client": "1.4.29",
44 | "del": "^2.2.2",
45 | "gulp": "^3.9.1",
46 | "run-sequence": "^1.2.2"
47 | },
48 | "repository": {}
49 | }
50 |
--------------------------------------------------------------------------------
/ng2_node/optionB/public/app.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var AppComponent = (function () {
13 | function AppComponent() {
14 | this.appName = "Angular 2 Chat App";
15 | }
16 | AppComponent = __decorate([
17 | core_1.Component({
18 | moduleId: module.id,
19 | selector: 'ch-app',
20 | templateUrl: 'app.template.html'
21 | }),
22 | __metadata('design:paramtypes', [])
23 | ], AppComponent);
24 | return AppComponent;
25 | }());
26 | exports.AppComponent = AppComponent;
27 | //# sourceMappingURL=app.component.js.map
--------------------------------------------------------------------------------
/ng2_node/optionB/public/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | moduleId: module.id,
5 | selector: 'ch-app',
6 | templateUrl: 'app.template.html'
7 | })
8 |
9 | export class AppComponent {
10 | appName: string = "Angular 2 Chat App";
11 | }
12 |
--------------------------------------------------------------------------------
/ng2_node/optionB/public/app.module.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var platform_browser_1 = require('@angular/platform-browser');
13 | var forms_1 = require('@angular/forms');
14 | var app_component_1 = require('./app.component');
15 | var home_component_1 = require('./home/home.component');
16 | var socket_service_1 = require('./shared/socket.service');
17 | var AppModule = (function () {
18 | function AppModule() {
19 | }
20 | AppModule = __decorate([
21 | core_1.NgModule({
22 | imports: [platform_browser_1.BrowserModule,
23 | forms_1.FormsModule
24 | ],
25 | declarations: [app_component_1.AppComponent,
26 | home_component_1.HomeComponent],
27 | providers: [socket_service_1.SocketService],
28 | bootstrap: [app_component_1.AppComponent]
29 | }),
30 | __metadata('design:paramtypes', [])
31 | ], AppModule);
32 | return AppModule;
33 | }());
34 | exports.AppModule = AppModule;
35 | //# sourceMappingURL=app.module.js.map
--------------------------------------------------------------------------------
/ng2_node/optionB/public/app.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { BrowserModule } from '@angular/platform-browser';
3 | import { FormsModule } from '@angular/forms';
4 |
5 | import { AppComponent } from './app.component';
6 | import { HomeComponent } from './home/home.component';
7 |
8 | import { SocketService } from './shared/socket.service';
9 |
10 | @NgModule({
11 | imports: [ BrowserModule,
12 | FormsModule
13 | ],
14 | declarations: [ AppComponent,
15 | HomeComponent],
16 | providers: [ SocketService ],
17 | bootstrap: [ AppComponent ]
18 | })
19 |
20 | export class AppModule { }
--------------------------------------------------------------------------------
/ng2_node/optionB/public/app.routing.js:
--------------------------------------------------------------------------------
1 | //# sourceMappingURL=app.routing.js.map
--------------------------------------------------------------------------------
/ng2_node/optionB/public/app.routing.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jakblak/nodeJS_examples/5a0291d0789335dd9cc358b4e613a11ff7b461db/ng2_node/optionB/public/app.routing.ts
--------------------------------------------------------------------------------
/ng2_node/optionB/public/app.template.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ng2_node/optionB/public/home/home.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var io = require('socket.io-client');
13 | var HomeComponent = (function () {
14 | function HomeComponent() {
15 | this.socket = io.connect('http://localhost:8000');
16 | // this.socket = io.connect();
17 | }
18 | HomeComponent.prototype.ngOnInit = function () {
19 | var _this = this;
20 | this.socket.emit('event1', {
21 | msg: 'Client to server, can you hear me server?'
22 | });
23 | this.socket.on('event2', function (data) {
24 | console.log(data.msg);
25 | _this.socket.emit('event3', {
26 | msg: 'Yes, its working for me!!'
27 | });
28 | });
29 | this.socket.on('event4', function (data) {
30 | console.log(data.msg);
31 | });
32 | };
33 | HomeComponent = __decorate([
34 | core_1.Component({
35 | moduleId: module.id,
36 | selector: 'ch-home',
37 | styleUrls: ['home.styles.css'],
38 | templateUrl: 'home.template.html'
39 | }),
40 | __metadata('design:paramtypes', [])
41 | ], HomeComponent);
42 | return HomeComponent;
43 | }());
44 | exports.HomeComponent = HomeComponent;
45 | //# sourceMappingURL=home.component.js.map
--------------------------------------------------------------------------------
/ng2_node/optionB/public/home/home.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import * as io from 'socket.io-client';
3 |
4 | @Component({
5 | moduleId: module.id,
6 | selector: 'ch-home',
7 | styleUrls: ['home.styles.css'],
8 | templateUrl: 'home.template.html'
9 | })
10 |
11 | export class HomeComponent implements OnInit {
12 | messageText: string;
13 | messages: Array;
14 | socket: SocketIOClient.Socket;
15 |
16 | constructor() {
17 | this.socket = io.connect('http://localhost:8000');
18 | // this.socket = io.connect();
19 | }
20 |
21 | ngOnInit() {
22 | this.socket.emit('event1', {
23 | msg: 'Client to server, can you hear me server?'
24 | });
25 |
26 | this.socket.on('event2', (data: any) => {
27 | console.log(data.msg);
28 | this.socket.emit('event3', {
29 | msg: 'Yes, its working for me!!'
30 | });
31 | });
32 |
33 | this.socket.on('event4', (data: any) => {
34 | console.log(data.msg);
35 | });
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/ng2_node/optionB/public/home/home.styles.css:
--------------------------------------------------------------------------------
1 | * {
2 | box-sizing: border-box;
3 | }
4 |
5 | body {
6 | background-color: #edeff2;
7 | font-family: "Calibri", "Roboto", sans-serif;
8 | }
9 |
10 | .chat_window {
11 | position: absolute;
12 | width: calc(100% - 20px);
13 | max-width: 800px;
14 | height: 500px;
15 | border-radius: 10px;
16 | background-color: #fff;
17 | left: 50%;
18 | top: 50%;
19 | transform: translateX(-50%) translateY(-50%);
20 | box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
21 | background-color: #f8f8f8;
22 | overflow: hidden;
23 | }
24 |
25 | .top_menu {
26 | background-color: #fff;
27 | width: 100%;
28 | padding: 20px 0 15px;
29 | box-shadow: 0 1px 30px rgba(0, 0, 0, 0.1);
30 | }
31 | .top_menu .buttons {
32 | margin: 3px 0 0 20px;
33 | position: absolute;
34 | }
35 | .top_menu .buttons .button {
36 | width: 16px;
37 | height: 16px;
38 | border-radius: 50%;
39 | display: inline-block;
40 | margin-right: 10px;
41 | position: relative;
42 | }
43 | .top_menu .buttons .button.close {
44 | background-color: #f5886e;
45 | }
46 | .top_menu .buttons .button.minimize {
47 | background-color: #fdbf68;
48 | }
49 | .top_menu .buttons .button.maximize {
50 | background-color: #a3d063;
51 | }
52 | .top_menu .title {
53 | text-align: center;
54 | color: #bcbdc0;
55 | font-size: 20px;
56 | }
57 |
58 | .messages {
59 | position: relative;
60 | list-style: none;
61 | padding: 20px 10px 0 10px;
62 | margin: 0;
63 | height: 347px;
64 | overflow: scroll;
65 | }
66 | .messages .message {
67 | clear: both;
68 | overflow: hidden;
69 | margin-bottom: 20px;
70 | transition: all 0.5s linear;
71 | opacity: 0;
72 | }
73 | .messages .message.left .avatar {
74 | background-color: #f5886e;
75 | float: left;
76 | }
77 | .messages .message.left .text_wrapper {
78 | background-color: #ffe6cb;
79 | margin-left: 20px;
80 | }
81 | .messages .message.left .text_wrapper::after, .messages .message.left .text_wrapper::before {
82 | right: 100%;
83 | border-right-color: #ffe6cb;
84 | }
85 | .messages .message.left .text {
86 | color: #c48843;
87 | }
88 | .messages .message.right .avatar {
89 | background-color: #fdbf68;
90 | float: right;
91 | }
92 | .messages .message.right .text_wrapper {
93 | background-color: #c7eafc;
94 | margin-right: 20px;
95 | float: right;
96 | }
97 | .messages .message.right .text_wrapper::after, .messages .message.right .text_wrapper::before {
98 | left: 100%;
99 | border-left-color: #c7eafc;
100 | }
101 | .messages .message.right .text {
102 | color: #45829b;
103 | }
104 | .messages .message.appeared {
105 | opacity: 1;
106 | }
107 | .messages .message .avatar {
108 | width: 60px;
109 | height: 60px;
110 | border-radius: 50%;
111 | display: inline-block;
112 | }
113 | .messages .message .text_wrapper {
114 | display: inline-block;
115 | padding: 20px;
116 | border-radius: 6px;
117 | width: calc(100% - 85px);
118 | min-width: 100px;
119 | position: relative;
120 | }
121 | .messages .message .text_wrapper::after, .messages .message .text_wrapper:before {
122 | top: 18px;
123 | border: solid transparent;
124 | content: " ";
125 | height: 0;
126 | width: 0;
127 | position: absolute;
128 | pointer-events: none;
129 | }
130 | .messages .message .text_wrapper::after {
131 | border-width: 13px;
132 | margin-top: 0px;
133 | }
134 | .messages .message .text_wrapper::before {
135 | border-width: 15px;
136 | margin-top: -2px;
137 | }
138 | .messages .message .text_wrapper .text {
139 | font-size: 18px;
140 | font-weight: 300;
141 | }
142 |
143 | .bottom_wrapper {
144 | position: relative;
145 | width: 100%;
146 | background-color: #fff;
147 | padding: 20px 20px;
148 | position: absolute;
149 | bottom: 0;
150 | }
151 | .bottom_wrapper .message_input_wrapper {
152 | display: inline-block;
153 | height: 50px;
154 | border-radius: 25px;
155 | border: 1px solid #bcbdc0;
156 | width: calc(100% - 160px);
157 | position: relative;
158 | padding: 0 20px;
159 | }
160 | .bottom_wrapper .message_input_wrapper .message_input {
161 | border: none;
162 | height: 100%;
163 | box-sizing: border-box;
164 | width: calc(100% - 40px);
165 | position: absolute;
166 | outline-width: 0;
167 | color: gray;
168 | }
169 | .bottom_wrapper .send_message {
170 | width: 140px;
171 | height: 50px;
172 | display: inline-block;
173 | border-radius: 50px;
174 | background-color: #a3d063;
175 | border: 2px solid #a3d063;
176 | color: #fff;
177 | cursor: pointer;
178 | transition: all 0.2s linear;
179 | text-align: center;
180 | float: right;
181 | }
182 | .bottom_wrapper .send_message:hover {
183 | color: #a3d063;
184 | background-color: #fff;
185 | }
186 | .bottom_wrapper .send_message .text {
187 | font-size: 18px;
188 | font-weight: 300;
189 | display: inline-block;
190 | line-height: 48px;
191 | }
192 |
193 | .message_template {
194 | display: none;
195 | }
--------------------------------------------------------------------------------
/ng2_node/optionB/public/home/home.template.html:
--------------------------------------------------------------------------------
1 |
37 |
38 |
39 |
53 |
54 |
55 |
56 | -
57 |
58 |
59 |
60 |
61 | {{ message.text }}
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/ng2_node/optionB/public/main.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var platform_browser_dynamic_1 = require('@angular/platform-browser-dynamic');
3 | var app_module_1 = require('./app.module');
4 | platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(app_module_1.AppModule);
5 | //# sourceMappingURL=main.js.map
--------------------------------------------------------------------------------
/ng2_node/optionB/public/main.ts:
--------------------------------------------------------------------------------
1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2 | import { AppModule } from './app.module';
3 |
4 | platformBrowserDynamic().bootstrapModule(AppModule);
--------------------------------------------------------------------------------
/ng2_node/optionB/public/shared/css/styles.css:
--------------------------------------------------------------------------------
1 | /* Navbar */
2 | .nav .navbar-nav {
3 | font-size: 15px;
4 | }
5 | #searchForm {
6 | margin-right: 100px;
7 | }
8 | @media (max-width: 1200px) {
9 | #searchForm {
10 | display: none;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/ng2_node/optionB/public/shared/socket.service.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | // import * as io from 'socket.io-client';
13 | var SocketService = (function () {
14 | function SocketService() {
15 | }
16 | SocketService = __decorate([
17 | core_1.Injectable(),
18 | __metadata('design:paramtypes', [])
19 | ], SocketService);
20 | return SocketService;
21 | }());
22 | exports.SocketService = SocketService;
23 | //# sourceMappingURL=socket.service.js.map
--------------------------------------------------------------------------------
/ng2_node/optionB/public/shared/socket.service.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 | // import * as io from 'socket.io-client';
3 |
4 | @Injectable()
5 | export class SocketService {
6 | // private socket: any = io.connect('http://localhost:8000');
7 | // socket: SocketIOClient.Socket;
8 |
9 | // constructor() {
10 | // this.socket = io.connect('http://localhost:8000');
11 | // this.socket.on("connection", () => console.log("this is onl a test"));
12 | // }
13 |
14 | // socket.on('event1', function (data) {
15 | // console.log(data.msg);
16 | // socket.emit('event2', { msg: 'Yes, its working for me !!' });
17 | // });
18 |
19 | // on(eventName: any, callback: any) {
20 | // if (this.socket) {
21 | // this.socket.on(eventName, function(data: any) {
22 | // callback(data);
23 | // });
24 | // }
25 | // };
26 |
27 | // emit(eventName: any, data: any) {
28 | // if (this.socket) {
29 | // this.socket.emit(eventName, data);
30 | // }
31 | // };
32 |
33 | // removeListener(eventName: any) {
34 | // if (this.socket) {
35 | // this.socket.removeListener(eventName);
36 | // }
37 | // };
38 | }
39 |
--------------------------------------------------------------------------------
/ng2_node/optionB/server.js:
--------------------------------------------------------------------------------
1 | var express = require('express');
2 | var path = require('path');
3 | var app = express();
4 | var server = require('http').Server(app);
5 | var io = require('socket.io')(server);
6 |
7 | var port = 8000;
8 |
9 | app.use(express.static(path.join(__dirname, "public")));
10 |
11 | io.on('connection', (socket) => {
12 | console.log('new connection made');
13 |
14 | socket.on('event1', (data) => {
15 | console.log(data.msg);
16 | });
17 |
18 | socket.emit('event2', {
19 | msg: 'Server to client, do you read me? Over.'
20 | });
21 |
22 | socket.on('event3', (data) => {
23 | console.log(data.msg);
24 | socket.emit('event4', {
25 | msg: 'Loud and clear :)'
26 | });
27 | });
28 |
29 | });
30 |
31 | server.listen(port, () => {
32 | console.log("Listening on port " + port);
33 | });
--------------------------------------------------------------------------------
/ng2_node/optionB/server/routes.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jakblak/nodeJS_examples/5a0291d0789335dd9cc358b4e613a11ff7b461db/ng2_node/optionB/server/routes.js
--------------------------------------------------------------------------------
/ng2_node/optionB/systemjs.config.js:
--------------------------------------------------------------------------------
1 | (function(global) {
2 |
3 | // map tells the System loader where to look for things
4 | var map = {
5 | 'app': 'public', // 'dist',
6 | '@angular': 'node_modules/@angular',
7 | 'rxjs': 'node_modules/rxjs',
8 | 'angular-in-memory-web-api': 'node_modules/angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
9 | 'socket.io-client': 'node_modules/socket.io-client'
10 | };
11 |
12 | // packages tells the System loader how to load when no filename and/or no extension
13 | var packages = {
14 | 'app': { main: 'main.js', defaultExtension: 'js' },
15 | 'rxjs': { defaultExtension: 'js' },
16 | 'socket.io-client': { main: 'socket.io.js'}
17 | };
18 |
19 | var ngPackageNames = [
20 | 'common',
21 | 'compiler',
22 | 'core',
23 | 'forms',
24 | 'http',
25 | 'platform-browser',
26 | 'platform-browser-dynamic',
27 | 'router',
28 | 'upgrade',
29 | ];
30 |
31 | // Individual files (~300 requests):
32 | function packIndex(pkgName) {
33 | packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
34 | }
35 |
36 | // Bundled (~40 requests):
37 | function packUmd(pkgName) {
38 | packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
39 | }
40 |
41 | // Most environments should use UMD; some (Karma) need the individual index files
42 | var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
43 | // Add package entries for angular packages
44 | ngPackageNames.forEach(setPackageConfig);
45 |
46 | var config = {
47 | map: map,
48 | packages: packages
49 | };
50 |
51 | System.config(config);
52 |
53 | })(this);
--------------------------------------------------------------------------------
/ng2_node/optionB/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "commonjs",
5 | "moduleResolution": "node",
6 | "sourceMap": true,
7 | "emitDecoratorMetadata": true,
8 | "experimentalDecorators": true,
9 | "lib": [ "es2015", "dom" ],
10 | "noImplicitAny": true,
11 | "suppressImplicitAnyIndexErrors": true
12 | }
13 | }
--------------------------------------------------------------------------------
/servers/README.md:
--------------------------------------------------------------------------------
1 | ##Simple Server Examples
2 |
3 | Different ways you can scaffold your simple express app. Includes mongoose and swig.
4 |
5 | ###How to Follow Along
6 | 1. Download the package.json, views and sever_old.js from the repo.
7 | 2. Open a terminal and type: mongod
8 | 3. Open another terminal and type: npm install
9 | 4. convert server_old into classes
10 |
11 | **server.js** - using const and =>
12 |
13 | **server2.js** - uses classes
14 |
15 | **server_old.js** - starting code
--------------------------------------------------------------------------------
/servers/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "server_setups",
3 | "version": "1.0.0",
4 | "repository": {
5 | "url": ""
6 | },
7 | "license": "MIT",
8 | "scripts": {
9 | "start": "nodemon server.js\""
10 | },
11 | "dependencies": {
12 | "body-parser": "^1.15.2",
13 | "compression": "1.6.0",
14 | "cookie-parser": "^1.4.3",
15 | "express": "^4.14.0",
16 | "mongoose": "^4.6.8",
17 | "path": "^0.12.7",
18 | "swig": "^1.4.2",
19 | "serve-favicon": "~2.3.2"
20 | },
21 | "devDependencies": {
22 | }
23 | }
--------------------------------------------------------------------------------
/servers/server.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const path = require('path');
3 | const bodyParser = require('body-parser');
4 | const mongoose = require('mongoose');
5 | const swig = require('swig');
6 | const port = 8000;
7 | const app = express();
8 |
9 | mongoose.connect('mongodb://localhost/meetings');
10 |
11 | app.engine('html', swig.renderFile);
12 |
13 | app.set('views', path.join(__dirname, 'views'));
14 | app.set('view engine', 'html');
15 |
16 | app.use(bodyParser.json());
17 | app.use(bodyParser.urlencoded({ extended: false }));
18 |
19 | app.get('/', (req, res) => {
20 | res.render('index.html');
21 | });
22 |
23 | app.listen(port, () => {
24 | console.log('app listening on port ' + port);
25 | });
--------------------------------------------------------------------------------
/servers/server2.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const path = require('path');
3 | const bodyParser = require('body-parser');
4 | const mongoose = require('mongoose');
5 | const swig = require('swig');
6 | const port = 8001;
7 | const app = express();
8 |
9 | class Server {
10 |
11 | constructor() {
12 | this.initDB();
13 | this.initViewEngine();
14 | this.initExpressMiddleware();
15 | this.initRoutes();
16 | this.start();
17 | }
18 |
19 | start() {
20 | app.listen(port, () =>
21 | console.log('app listening on port ' + port));
22 | }
23 |
24 | initViewEngine() {
25 | app.engine('html', swig.renderFile);
26 | app.set('views', path.join(__dirname, 'views'));
27 | app.set('view engine', 'html');
28 | }
29 |
30 | initExpressMiddleware() {
31 | app.use(bodyParser.json());
32 | app.use(bodyParser.urlencoded({ extended: false }));
33 | }
34 |
35 | initDB() {
36 | mongoose.connect('mongodb://localhost/meetings');
37 | }
38 |
39 | initRoutes() {
40 | app.get('/', (req, res) =>
41 | res.render('index.html'));
42 | }
43 | }
44 |
45 | new Server();
--------------------------------------------------------------------------------
/servers/server_old.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const path = require('path');
3 | const bodyParser = require('body-parser');
4 | const mongoose = require('mongoose');
5 | const swig = require('swig');
6 | const port = 8000;
7 | const app = express();
8 |
9 | class Server {
10 |
11 | constructor() {
12 | this.initDB();
13 | this.initViewEngine();
14 | this.initExpressMiddleware();
15 | this.initRoutes();
16 | this.start();
17 | }
18 |
19 | start() {
20 | app.listen(port, () =>
21 | console.log('app listening on port ' + port));
22 | }
23 |
24 | initViewEngine() {
25 | app.engine('html', swig.renderFile);
26 |
27 | app.set('views', path.join(__dirname, 'views'));
28 | app.set('view engine', 'html');
29 | }
30 |
31 | initExpressMiddleware() {
32 | app.use(bodyParser.json());
33 | app.use(bodyParser.urlencoded({ extended: false }));
34 | }
35 |
36 | initRoutes() {
37 | app.get('/', (req, res) =>
38 | res.render('index.html'));
39 | }
40 |
41 | initDB() {
42 | mongoose.connect('mongodb://localhost/meetings');
43 | }
44 | }
45 |
46 | new Server();
--------------------------------------------------------------------------------
/servers/views/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ title }}
5 |
6 |
7 |
8 |
9 |
10 |
29 |
30 |
31 |
32 |
Virtual Meeting Notes
33 |
This is a list of the last dozen meeting notes that were entered in.
34 |
35 |
36 |
37 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------