mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	Lint commit (#239)
* Upgrade eslint configs to get rid of peer warning * Add pre-commit hook to format code * Lint whole project, not just lib
This commit is contained in:
		
							parent
							
								
									93bb1ac66d
								
							
						
					
					
						commit
						368c888119
					
				| @ -17,12 +17,17 @@ const argv = require('yargs') | ||||
|     }) | ||||
|     .option('databaseUrl', { | ||||
|         alias: 'd', | ||||
|         describe: 'The full databaseUrl to connect to, including username and password', | ||||
|         describe: | ||||
|             'The full databaseUrl to connect to, including username and password', | ||||
|         demand: true, | ||||
|         type: 'string', | ||||
|     }) | ||||
|     .argv | ||||
|     }).argv; | ||||
| 
 | ||||
| serverImpl.start(argv) | ||||
|     .then(conf => console.log(`Unleash started on http://localhost:${conf.app.get('port')}`)) | ||||
| serverImpl | ||||
|     .start(argv) | ||||
|     .then(conf => | ||||
|         console.log( | ||||
|             `Unleash started on http://localhost:${conf.app.get('port')}` | ||||
|         ) | ||||
|     ) | ||||
|     .catch(console.err); | ||||
| @ -1,7 +1,8 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| CREATE TABLE strategies ( | ||||
|   created_at timestamp default now(), | ||||
|   name varchar(255) PRIMARY KEY NOT NULL, | ||||
| @ -23,14 +24,18 @@ CREATE TABLE events ( | ||||
|   created_by varchar(255) NOT NULL, | ||||
|   data json | ||||
| ); | ||||
|        `, callback);
 | ||||
|        `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| DROP TABLE events; | ||||
| DROP TABLE features; | ||||
| DROP TABLE strategies; | ||||
|         `, callback);
 | ||||
|         `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
|  | ||||
| @ -1,10 +1,9 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql('ALTER TABLE features ADD "description" text;', callback); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql('ALTER TABLE features DROP COLUMN "description";', callback); | ||||
| }; | ||||
|  | ||||
| @ -1,10 +1,15 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql('ALTER TABLE strategies ADD "parameters_template" json;', callback); | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         'ALTER TABLE strategies ADD "parameters_template" json;', | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
|     db.runSql('ALTER TABLE strategies DROP COLUMN "parameters_template";', callback); | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql( | ||||
|         'ALTER TABLE strategies DROP COLUMN "parameters_template";', | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
|  | ||||
| @ -1,14 +1,19 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| INSERT INTO strategies(name, description)  | ||||
| VALUES ('default', 'Default on/off strategy.'); | ||||
|        `, callback);
 | ||||
|        `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
|     db.runSql(` | ||||
| DELETE FROM strategies where name='default';`, callback);
 | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| DELETE FROM strategies where name='default';`,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
|  | ||||
| @ -1,14 +1,19 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| INSERT INTO events(type, created_by, data)  | ||||
| VALUES ('strategy-created', 'migration', '{"name":"default","description":"Default on or off Strategy."}'); | ||||
|        `, callback);
 | ||||
|        `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
|     db.runSql(` | ||||
| delete from events where type='strategy-created' and data->>'name' = 'default';`, callback);
 | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| delete from events where type='strategy-created' and data->>'name' = 'default';`,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
|  | ||||
| @ -1,10 +1,9 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql('ALTER TABLE features ADD archived integer DEFAULT 0;', callback); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql('ALTER TABLE features DROP COLUMN "archived";', callback); | ||||
| }; | ||||
|  | ||||
| @ -1,16 +1,21 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| UPDATE events SET type='feature-revived' WHERE type='feature-revive'; | ||||
| UPDATE events SET type='feature-archived' WHERE type='feature-archive'; | ||||
|        `, callback);
 | ||||
|        `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| UPDATE events SET type='feature-revive' WHERE type='feature-revived'; | ||||
| UPDATE events SET type='feature-archive' WHERE type='feature-archived'; | ||||
|     `, callback);
 | ||||
|     `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| --create new strategies-column | ||||
| ALTER TABLE features ADD "strategies" json; | ||||
| 
 | ||||
| @ -14,12 +15,14 @@ WHERE f.name = features.name; | ||||
| --delete old strategy-columns | ||||
| ALTER TABLE features DROP COLUMN "strategy_name"; | ||||
| ALTER TABLE features DROP COLUMN "parameters"; | ||||
|        `, callback);
 | ||||
|        `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| --create old columns | ||||
| ALTER TABLE features ADD "parameters" json; | ||||
| ALTER TABLE features ADD "strategy_name" varchar(255); | ||||
| @ -33,5 +36,7 @@ WHERE f.name = features.name; | ||||
| 
 | ||||
| --drop new column | ||||
| ALTER TABLE features DROP COLUMN "strategies"; | ||||
|     `, callback);
 | ||||
|     `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
|  | ||||
| @ -1,15 +1,17 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| CREATE TABLE client_metrics ( | ||||
|   id serial primary key, | ||||
|   created_at timestamp default now(), | ||||
|   metrics json | ||||
| );`, callback);
 | ||||
| );`,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql('DROP TABLE client_metrics;', callback); | ||||
| }; | ||||
|  | ||||
| @ -1,17 +1,19 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
|         CREATE TABLE client_instances ( | ||||
|             app_name varchar(255), | ||||
|             instance_id varchar(255), | ||||
|             client_ip varchar(255), | ||||
|             last_seen timestamp default now(), | ||||
|             created_at timestamp default now() | ||||
|         );`, callback);
 | ||||
|         );`,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
| exports.down = function(db, callback) { | ||||
|     db.runSql('DROP TABLE client_instances;', callback); | ||||
| }; | ||||
|  | ||||
| @ -1,9 +1,16 @@ | ||||
| /* eslint camelcase: "off" */ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, cb) { | ||||
|     db.createTable('client_applications', { | ||||
|         app_name: { type: 'string', length: 255, primaryKey: true, notNull: true }, | ||||
| exports.up = function(db, cb) { | ||||
|     db.createTable( | ||||
|         'client_applications', | ||||
|         { | ||||
|             app_name: { | ||||
|                 type: 'string', | ||||
|                 length: 255, | ||||
|                 primaryKey: true, | ||||
|                 notNull: true, | ||||
|             }, | ||||
|             created_at: { type: 'timestamp', defaultValue: 'now()' }, | ||||
|             updated_at: { type: 'timestamp', defaultValue: 'now()' }, | ||||
|             seen_at: { type: 'timestamp' }, | ||||
| @ -12,9 +19,11 @@ exports.up = function (db, cb) { | ||||
|             icon: { type: 'string', length: 255 }, | ||||
|             url: { type: 'string', length: 255 }, | ||||
|             color: { type: 'string', length: 255 }, | ||||
|     }, cb); | ||||
|         }, | ||||
|         cb | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| exports.down = function (db, cb) { | ||||
| exports.down = function(db, cb) { | ||||
|     return db.dropTable('client_applications', cb); | ||||
| }; | ||||
|  | ||||
| @ -3,36 +3,49 @@ | ||||
| 
 | ||||
| const async = require('async'); | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     const populateNewData = (cb) => { | ||||
|         db.all('select name, parameters_template from strategies', (err, results) => { | ||||
| exports.up = function(db, callback) { | ||||
|     const populateNewData = cb => { | ||||
|         db.all( | ||||
|             'select name, parameters_template from strategies', | ||||
|             (err, results) => { | ||||
|                 const updateSQL = results | ||||
|                     .map(({ name, parameters_template }) => { | ||||
|                         const parameters = []; | ||||
|                         Object.keys(parameters_template || {}).forEach(p => { | ||||
|                       parameters.push({ name: p, type: parameters_template[p], description: '', required: false }); | ||||
|                             parameters.push({ | ||||
|                                 name: p, | ||||
|                                 type: parameters_template[p], | ||||
|                                 description: '', | ||||
|                                 required: false, | ||||
|                             }); | ||||
|                         }); | ||||
|                         return { name, parameters }; | ||||
|                     }) | ||||
|               .map(strategy => ` | ||||
|                     .map( | ||||
|                         strategy => ` | ||||
|                 UPDATE strategies  | ||||
|                 SET parameters='${JSON.stringify(strategy.parameters)}' | ||||
|                 WHERE name='${strategy.name}';`)
 | ||||
|                 WHERE name='${strategy.name}';` | ||||
|                     ) | ||||
|                     .join('\n'); | ||||
| 
 | ||||
|                 db.runSql(updateSQL, cb); | ||||
|         }); | ||||
|             } | ||||
|         ); | ||||
|     }; | ||||
| 
 | ||||
|     async.series([ | ||||
|     async.series( | ||||
|         [ | ||||
|             db.addColumn.bind(db, 'strategies', 'parameters', { type: 'json' }), | ||||
|             populateNewData.bind(db), | ||||
|             db.removeColumn.bind(db, 'strategies', 'parameters_template'), | ||||
|     ], callback); | ||||
|         ], | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
|     const populateOldData = (cb) => { | ||||
| exports.down = function(db, callback) { | ||||
|     const populateOldData = cb => { | ||||
|         db.all('select name, parameters from strategies', (err, results) => { | ||||
|             const updateSQL = results | ||||
|                 .map(({ name, parameters }) => { | ||||
| @ -43,19 +56,28 @@ exports.down = function (db, callback) { | ||||
| 
 | ||||
|                     return { name, parameters_template }; | ||||
|                 }) | ||||
|               .map(strategy => ` | ||||
|                 .map( | ||||
|                     strategy => ` | ||||
|                 UPDATE strategies  | ||||
|                 SET parameters_template='${JSON.stringify(strategy.parameters_template)}' | ||||
|                 WHERE name='${strategy.name}';`)
 | ||||
|                 SET parameters_template='${JSON.stringify( | ||||
|                     strategy.parameters_template | ||||
|                 )}' | ||||
|                 WHERE name='${strategy.name}';` | ||||
|                 ) | ||||
|                 .join('\n'); | ||||
| 
 | ||||
|             db.runSql(updateSQL, cb); | ||||
|         }); | ||||
|     }; | ||||
| 
 | ||||
|     async.series([ | ||||
|         db.addColumn.bind(db, 'strategies', 'parameters_template', { type: 'json' }), | ||||
|     async.series( | ||||
|         [ | ||||
|             db.addColumn.bind(db, 'strategies', 'parameters_template', { | ||||
|                 type: 'json', | ||||
|             }), | ||||
|             populateOldData.bind(db), | ||||
|             db.removeColumn.bind(db, 'strategies', 'parameters'), | ||||
|     ], callback); | ||||
|         ], | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
|  | ||||
| @ -2,13 +2,22 @@ | ||||
| 
 | ||||
| const async = require('async'); | ||||
| 
 | ||||
| exports.up = function (db, cb) { | ||||
|     async.series([ | ||||
|         db.addColumn.bind(db, 'strategies', 'built_in', { type: 'int', defaultValue: 0 }), | ||||
|         db.runSql.bind(db, 'UPDATE strategies SET built_in=1 where name=\'default\''), | ||||
|     ], cb); | ||||
| exports.up = function(db, cb) { | ||||
|     async.series( | ||||
|         [ | ||||
|             db.addColumn.bind(db, 'strategies', 'built_in', { | ||||
|                 type: 'int', | ||||
|                 defaultValue: 0, | ||||
|             }), | ||||
|             db.runSql.bind( | ||||
|                 db, | ||||
|                 "UPDATE strategies SET built_in=1 where name='default'" | ||||
|             ), | ||||
|         ], | ||||
|         cb | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| exports.down = function (db, cb) { | ||||
| exports.down = function(db, cb) { | ||||
|     return db.removeColumn('strategies', 'built_in', cb); | ||||
| }; | ||||
|  | ||||
| @ -3,17 +3,19 @@ | ||||
| const strategies = require('./default-strategies.json'); | ||||
| const async = require('async'); | ||||
| 
 | ||||
| function insertStrategySQL (strategy) { | ||||
| function insertStrategySQL(strategy) { | ||||
|     return ` | ||||
|         INSERT INTO strategies (name, description, parameters, built_in) | ||||
|         SELECT '${strategy.name}', '${strategy.description}', '${JSON.stringify(strategy.parameters)}', 1 | ||||
|         SELECT '${strategy.name}', '${strategy.description}', '${JSON.stringify( | ||||
|         strategy.parameters | ||||
|     )}', 1 | ||||
|         WHERE | ||||
|             NOT EXISTS ( | ||||
|                 SELECT name FROM strategies WHERE name = '${strategy.name}' | ||||
|         );`;
 | ||||
| } | ||||
| 
 | ||||
| function insertEventsSQL (strategy) { | ||||
| function insertEventsSQL(strategy) { | ||||
|     return ` | ||||
|         INSERT INTO events (type, created_by, data) | ||||
|         SELECT 'strategy-created', 'migration', '${JSON.stringify(strategy)}' | ||||
| @ -23,7 +25,7 @@ function insertEventsSQL (strategy) { | ||||
|         );`;
 | ||||
| } | ||||
| 
 | ||||
| function removeEventsSQL (strategy) { | ||||
| function removeEventsSQL(strategy) { | ||||
|     return ` | ||||
|         INSERT INTO events (type, created_by, data) | ||||
|         SELECT 'strategy-deleted', 'migration', '${JSON.stringify(strategy)}' | ||||
| @ -33,30 +35,36 @@ function removeEventsSQL (strategy) { | ||||
|         );`;
 | ||||
| } | ||||
| 
 | ||||
| function removeStrategySQL (strategy) { | ||||
| function removeStrategySQL(strategy) { | ||||
|     return ` | ||||
|         DELETE FROM strategies | ||||
|         WHERE name = '${strategy.name}' AND built_in = 1`;
 | ||||
| } | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     const insertStrategies = strategies.map((s) => (cb) => { | ||||
|         async.series([ | ||||
| exports.up = function(db, callback) { | ||||
|     const insertStrategies = strategies.map(s => cb => { | ||||
|         async.series( | ||||
|             [ | ||||
|                 db.runSql.bind(db, insertEventsSQL(s)), | ||||
|                 db.runSql.bind(db, insertStrategySQL(s)), | ||||
|         ], cb); | ||||
|             ], | ||||
|             cb | ||||
|         ); | ||||
|     }); | ||||
|     async.series(insertStrategies, callback); | ||||
| }; | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
| exports.down = function(db, callback) { | ||||
|     const removeStrategies = strategies | ||||
|         .filter(s => s.name !== 'default') | ||||
|         .map((s) => (cb) => { | ||||
|             async.series([ | ||||
|         .map(s => cb => { | ||||
|             async.series( | ||||
|                 [ | ||||
|                     db.runSql.bind(db, removeEventsSQL(s)), | ||||
|                     db.runSql.bind(db, removeStrategySQL(s)), | ||||
|             ], cb); | ||||
|                 ], | ||||
|                 cb | ||||
|             ); | ||||
|         }); | ||||
| 
 | ||||
|     async.series(removeStrategies, callback); | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| exports.up = function (db, callback) { | ||||
|     db.runSql(` | ||||
| exports.up = function(db, callback) { | ||||
|     db.runSql( | ||||
|         ` | ||||
| ALTER TABLE events ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE; | ||||
| ALTER TABLE features ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE; | ||||
| ALTER TABLE strategies ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE; | ||||
| @ -11,10 +12,11 @@ ALTER TABLE client_applications ALTER COLUMN seen_at TYPE TIMESTAMP WITH TIME ZO | ||||
| ALTER TABLE client_instances ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE; | ||||
| ALTER TABLE client_instances ALTER COLUMN last_seen TYPE TIMESTAMP WITH TIME ZONE; | ||||
| ALTER TABLE client_metrics ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE; | ||||
|        `, callback);
 | ||||
|        `,
 | ||||
|         callback | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| exports.down = function (db, callback) { | ||||
| exports.down = function(db, callback) { | ||||
|     callback(); | ||||
| }; | ||||
|  | ||||
| @ -5,14 +5,14 @@ require('db-migrate-shared').log.setLogLevel('error'); | ||||
| const { getInstance } = require('db-migrate'); | ||||
| const parseDbUrl = require('parse-database-url'); | ||||
| 
 | ||||
| function migrateDb ({ databaseUrl, databaseSchema = 'public' }) { | ||||
| function migrateDb({ databaseUrl, databaseSchema = 'public' }) { | ||||
|     const custom = parseDbUrl(databaseUrl); | ||||
|     custom.schema = databaseSchema; | ||||
|     const dbmigrate = getInstance(true, { | ||||
|         cwd: __dirname, | ||||
|         config: { custom }, | ||||
|         env: 'custom' } | ||||
|     ); | ||||
|         env: 'custom', | ||||
|     }); | ||||
|     return dbmigrate.up(); | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										21
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								package.json
									
									
									
									
									
								
							| @ -37,7 +37,7 @@ | ||||
|     "start:dev:pg": "pg_virtualenv npm run start:dev:pg-chain", | ||||
|     "start:dev:pg-chain": "export DATABASE_URL=postgres://$PGUSER:$PGPASSWORD@localhost:$PGPORT/postgres ; db-migrate up && npm run start:dev", | ||||
|     "db-migrate": "db-migrate", | ||||
|     "lint": "eslint lib", | ||||
|     "lint": "eslint .", | ||||
|     "pretest": "npm run lint", | ||||
|     "test": "PORT=4243 ava lib/*.test.js lib/**/*.test.js lib/**/**/*.test.js lib/**/**/**/*.test.js test", | ||||
|     "test:docker": "./scripts/docker-postgres.sh", | ||||
| @ -45,7 +45,8 @@ | ||||
|     "test:pg-virtualenv": "pg_virtualenv npm run test:pg-virtualenv-chai", | ||||
|     "test:pg-virtualenv-chain": "export TEST_DATABASE_URL=postgres://$PGUSER:$PGPASSWORD@localhost:$PGPORT/postgres ; npm run db-migrate-testdb && npm test", | ||||
|     "test:coverage": "nyc npm run test", | ||||
|     "test:coverage-report": "nyc report --reporter=text-lcov | coveralls" | ||||
|     "test:coverage-report": "nyc report --reporter=text-lcov | coveralls", | ||||
|     "precommit": "lint-staged" | ||||
|   }, | ||||
|   "nyc": { | ||||
|     "all": true, | ||||
| @ -83,15 +84,23 @@ | ||||
|     "@types/node": "^7.0.5", | ||||
|     "ava": "^0.19.1", | ||||
|     "coveralls": "^2.11.16", | ||||
|     "eslint": "^4.0.0", | ||||
|     "eslint-config-finn": "^1.0.2", | ||||
|     "eslint-config-finn-prettier": "^2.0.0", | ||||
|     "eslint": "^4.1.1", | ||||
|     "eslint-config-finn": "^2.0.0", | ||||
|     "eslint-config-finn-prettier": "^3.0.0", | ||||
|     "husky": "^0.14.1", | ||||
|     "lint-staged": "^4.0.0", | ||||
|     "nyc": "^10.1.2", | ||||
|     "prettier": "^1.4.4", | ||||
|     "prettier": "^1.5.2", | ||||
|     "proxyquire": "^1.7.11", | ||||
|     "sinon": "^1.17.7", | ||||
|     "superagent": "^3.5.0", | ||||
|     "supertest": "^3.0.0", | ||||
|     "supervisor": "^0.12.0" | ||||
|   }, | ||||
|    "lint-staged": { | ||||
|     "*.js": [ | ||||
|       "eslint --fix", | ||||
|       "git add" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
|  | ||||
							
								
								
									
										278
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										278
									
								
								yarn.lock
									
									
									
									
									
								
							| @ -123,6 +123,10 @@ ansi-align@^2.0.0: | ||||
|   dependencies: | ||||
|     string-width "^2.0.0" | ||||
| 
 | ||||
| ansi-escapes@^1.0.0: | ||||
|   version "1.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" | ||||
| 
 | ||||
| ansi-escapes@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" | ||||
| @ -156,6 +160,10 @@ ap@~0.2.0: | ||||
|   version "0.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/ap/-/ap-0.2.0.tgz#ae0942600b29912f0d2b14ec60c45e8f330b6110" | ||||
| 
 | ||||
| app-root-path@^2.0.0: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" | ||||
| 
 | ||||
| append-transform@^0.4.0: | ||||
|   version "0.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" | ||||
| @ -898,16 +906,33 @@ cli-boxes@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" | ||||
| 
 | ||||
| cli-cursor@^1.0.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" | ||||
|   dependencies: | ||||
|     restore-cursor "^1.0.1" | ||||
| 
 | ||||
| cli-cursor@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" | ||||
|   dependencies: | ||||
|     restore-cursor "^2.0.0" | ||||
| 
 | ||||
| cli-spinners@^0.1.2: | ||||
|   version "0.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" | ||||
| 
 | ||||
| cli-spinners@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a" | ||||
| 
 | ||||
| cli-truncate@^0.2.1: | ||||
|   version "0.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" | ||||
|   dependencies: | ||||
|     slice-ansi "0.0.4" | ||||
|     string-width "^1.0.1" | ||||
| 
 | ||||
| cli-truncate@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.0.0.tgz#21eb91f47b3f6560f004db77a769b4668d9c5518" | ||||
| @ -1078,6 +1103,19 @@ core-util-is@~1.0.0: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" | ||||
| 
 | ||||
| cosmiconfig@^1.1.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37" | ||||
|   dependencies: | ||||
|     graceful-fs "^4.1.2" | ||||
|     js-yaml "^3.4.3" | ||||
|     minimist "^1.2.0" | ||||
|     object-assign "^4.0.1" | ||||
|     os-homedir "^1.0.1" | ||||
|     parse-json "^2.2.0" | ||||
|     pinkie-promise "^2.0.0" | ||||
|     require-from-string "^1.1.0" | ||||
| 
 | ||||
| coveralls@^2.11.16: | ||||
|   version "2.13.1" | ||||
|   resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.1.tgz#d70bb9acc1835ec4f063ff9dac5423c17b11f178" | ||||
| @ -1116,6 +1154,14 @@ cross-spawn@^4, cross-spawn@^4.0.0: | ||||
|     lru-cache "^4.0.1" | ||||
|     which "^1.2.9" | ||||
| 
 | ||||
| cross-spawn@^5.0.1: | ||||
|   version "5.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" | ||||
|   dependencies: | ||||
|     lru-cache "^4.0.1" | ||||
|     shebang-command "^1.2.0" | ||||
|     which "^1.2.9" | ||||
| 
 | ||||
| cryptiles@2.x.x: | ||||
|   version "2.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" | ||||
| @ -1142,6 +1188,10 @@ dashdash@^1.12.0: | ||||
|   dependencies: | ||||
|     assert-plus "^1.0.0" | ||||
| 
 | ||||
| date-fns@^1.27.2: | ||||
|   version "1.28.5" | ||||
|   resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf" | ||||
| 
 | ||||
| date-format@^0.0.0: | ||||
|   version "0.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/date-format/-/date-format-0.0.0.tgz#09206863ab070eb459acea5542cbd856b11966b3" | ||||
| @ -1345,6 +1395,10 @@ ee-first@1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" | ||||
| 
 | ||||
| elegant-spinner@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" | ||||
| 
 | ||||
| element-class@^0.2.0: | ||||
|   version "0.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/element-class/-/element-class-0.2.2.tgz#9d3bbd0767f9013ef8e1c8ebe722c1402a60050e" | ||||
| @ -1395,18 +1449,18 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^ | ||||
|   version "1.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" | ||||
| 
 | ||||
| eslint-config-finn-prettier@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn-prettier/-/eslint-config-finn-prettier-2.0.0.tgz#b7f6d56f66075f29440b1545265ebcdbcb98a614" | ||||
| eslint-config-finn-prettier@^3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn-prettier/-/eslint-config-finn-prettier-3.0.0.tgz#01122c53dc0ae022988f1c69b50e59a00bf238c6" | ||||
|   dependencies: | ||||
|     eslint-config-prettier "^2.0.0" | ||||
|     eslint-plugin-prettier "^2.0.1" | ||||
| 
 | ||||
| eslint-config-finn@^1.0.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn/-/eslint-config-finn-1.0.2.tgz#52e1b8a6af5593031dbf3337958863ec9e5c6fd9" | ||||
| eslint-config-finn@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn/-/eslint-config-finn-2.0.0.tgz#0c4a89ccbc8c48b065c8e42df9965276199ae053" | ||||
|   dependencies: | ||||
|     eslint-config-schibsted "^3.1.0" | ||||
|     eslint-config-schibsted "^4.0.0" | ||||
| 
 | ||||
| eslint-config-prettier@^2.0.0: | ||||
|   version "2.2.0" | ||||
| @ -1414,9 +1468,9 @@ eslint-config-prettier@^2.0.0: | ||||
|   dependencies: | ||||
|     get-stdin "^5.0.1" | ||||
| 
 | ||||
| eslint-config-schibsted@^3.1.0: | ||||
|   version "3.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-schibsted/-/eslint-config-schibsted-3.1.0.tgz#f6e3767434be7909dcc8f118a089bfdae1ae034c" | ||||
| eslint-config-schibsted@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-schibsted/-/eslint-config-schibsted-4.0.0.tgz#7c0dacdc18d56a2dac006923917ef40df29438ed" | ||||
| 
 | ||||
| eslint-plugin-prettier@^2.0.1: | ||||
|   version "2.1.2" | ||||
| @ -1432,9 +1486,9 @@ eslint-scope@^3.7.1: | ||||
|     esrecurse "^4.1.0" | ||||
|     estraverse "^4.1.1" | ||||
| 
 | ||||
| eslint@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.0.0.tgz#7277c01437fdf41dccd168d5aa0e49b75ca1f260" | ||||
| eslint@^4.1.1: | ||||
|   version "4.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.1.1.tgz#facbdfcfe3e0facd3a8b80dc98c4e6c13ae582df" | ||||
|   dependencies: | ||||
|     babel-code-frame "^6.22.0" | ||||
|     chalk "^1.1.3" | ||||
| @ -1458,6 +1512,7 @@ eslint@^4.0.0: | ||||
|     json-stable-stringify "^1.0.1" | ||||
|     levn "^0.3.0" | ||||
|     lodash "^4.17.4" | ||||
|     minimatch "^3.0.2" | ||||
|     mkdirp "^0.5.1" | ||||
|     natural-compare "^1.4.0" | ||||
|     optionator "^0.8.2" | ||||
| @ -1547,10 +1602,26 @@ execa@^0.5.0: | ||||
|     signal-exit "^3.0.0" | ||||
|     strip-eof "^1.0.0" | ||||
| 
 | ||||
| execa@^0.7.0: | ||||
|   version "0.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" | ||||
|   dependencies: | ||||
|     cross-spawn "^5.0.1" | ||||
|     get-stream "^3.0.0" | ||||
|     is-stream "^1.1.0" | ||||
|     npm-run-path "^2.0.0" | ||||
|     p-finally "^1.0.0" | ||||
|     signal-exit "^3.0.0" | ||||
|     strip-eof "^1.0.0" | ||||
| 
 | ||||
| exenv@1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89" | ||||
| 
 | ||||
| exit-hook@^1.0.0: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" | ||||
| 
 | ||||
| expand-brackets@^0.1.4: | ||||
|   version "0.1.5" | ||||
|   resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" | ||||
| @ -1658,6 +1729,13 @@ fbjs@^0.8.9: | ||||
|     setimmediate "^1.0.5" | ||||
|     ua-parser-js "^0.7.9" | ||||
| 
 | ||||
| figures@^1.7.0: | ||||
|   version "1.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" | ||||
|   dependencies: | ||||
|     escape-string-regexp "^1.0.5" | ||||
|     object-assign "^4.1.0" | ||||
| 
 | ||||
| figures@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" | ||||
| @ -2141,6 +2219,14 @@ hullabaloo-config-manager@^1.0.0: | ||||
|     resolve-from "^3.0.0" | ||||
|     safe-buffer "^5.0.1" | ||||
| 
 | ||||
| husky@^0.14.1: | ||||
|   version "0.14.1" | ||||
|   resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.1.tgz#8edba33e728ceed75343e88bb8002e4cbd8d1b40" | ||||
|   dependencies: | ||||
|     is-ci "^1.0.10" | ||||
|     normalize-path "^1.0.0" | ||||
|     strip-indent "^2.0.0" | ||||
| 
 | ||||
| i@0.3.x: | ||||
|   version "0.3.5" | ||||
|   resolved "https://registry.yarnpkg.com/i/-/i-0.3.5.tgz#1d2b854158ec8169113c6cb7f6b6801e99e211d5" | ||||
| @ -2277,7 +2363,7 @@ is-builtin-module@^1.0.0: | ||||
|   dependencies: | ||||
|     builtin-modules "^1.0.0" | ||||
| 
 | ||||
| is-ci@^1.0.7: | ||||
| is-ci@^1.0.10, is-ci@^1.0.7: | ||||
|   version "1.0.10" | ||||
|   resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" | ||||
|   dependencies: | ||||
| @ -2613,7 +2699,7 @@ js-yaml@3.6.1: | ||||
|     argparse "^1.0.7" | ||||
|     esprima "^2.6.0" | ||||
| 
 | ||||
| js-yaml@^3.8.2, js-yaml@^3.8.4: | ||||
| js-yaml@^3.4.3, js-yaml@^3.8.2, js-yaml@^3.8.4: | ||||
|   version "3.8.4" | ||||
|   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" | ||||
|   dependencies: | ||||
| @ -2753,6 +2839,67 @@ liftoff@~2.2.0: | ||||
|     rechoir "^0.6.2" | ||||
|     resolve "^1.1.7" | ||||
| 
 | ||||
| lint-staged@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.0.0.tgz#c15669f598614a6e68090303e175a799d48e0d85" | ||||
|   dependencies: | ||||
|     app-root-path "^2.0.0" | ||||
|     cosmiconfig "^1.1.0" | ||||
|     execa "^0.7.0" | ||||
|     listr "^0.12.0" | ||||
|     lodash.chunk "^4.2.0" | ||||
|     minimatch "^3.0.0" | ||||
|     npm-which "^3.0.1" | ||||
|     p-map "^1.1.1" | ||||
|     staged-git-files "0.0.4" | ||||
| 
 | ||||
| listr-silent-renderer@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" | ||||
| 
 | ||||
| listr-update-renderer@^0.2.0: | ||||
|   version "0.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" | ||||
|   dependencies: | ||||
|     chalk "^1.1.3" | ||||
|     cli-truncate "^0.2.1" | ||||
|     elegant-spinner "^1.0.1" | ||||
|     figures "^1.7.0" | ||||
|     indent-string "^3.0.0" | ||||
|     log-symbols "^1.0.2" | ||||
|     log-update "^1.0.2" | ||||
|     strip-ansi "^3.0.1" | ||||
| 
 | ||||
| listr-verbose-renderer@^0.4.0: | ||||
|   version "0.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f" | ||||
|   dependencies: | ||||
|     chalk "^1.1.3" | ||||
|     cli-cursor "^1.0.2" | ||||
|     date-fns "^1.27.2" | ||||
|     figures "^1.7.0" | ||||
| 
 | ||||
| listr@^0.12.0: | ||||
|   version "0.12.0" | ||||
|   resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" | ||||
|   dependencies: | ||||
|     chalk "^1.1.3" | ||||
|     cli-truncate "^0.2.1" | ||||
|     figures "^1.7.0" | ||||
|     indent-string "^2.1.0" | ||||
|     is-promise "^2.1.0" | ||||
|     is-stream "^1.1.0" | ||||
|     listr-silent-renderer "^1.1.1" | ||||
|     listr-update-renderer "^0.2.0" | ||||
|     listr-verbose-renderer "^0.4.0" | ||||
|     log-symbols "^1.0.2" | ||||
|     log-update "^1.0.2" | ||||
|     ora "^0.2.3" | ||||
|     p-map "^1.1.1" | ||||
|     rxjs "^5.0.0-beta.11" | ||||
|     stream-to-observable "^0.1.0" | ||||
|     strip-ansi "^3.0.1" | ||||
| 
 | ||||
| load-json-file@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" | ||||
| @ -2787,6 +2934,10 @@ lodash.assign@^4.2.0: | ||||
|   version "4.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" | ||||
| 
 | ||||
| lodash.chunk@^4.2.0: | ||||
|   version "4.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" | ||||
| 
 | ||||
| lodash.clonedeep@^4.5.0: | ||||
|   version "4.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" | ||||
| @ -2831,6 +2982,19 @@ log-driver@1.2.5: | ||||
|   version "1.2.5" | ||||
|   resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056" | ||||
| 
 | ||||
| log-symbols@^1.0.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" | ||||
|   dependencies: | ||||
|     chalk "^1.0.0" | ||||
| 
 | ||||
| log-update@^1.0.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" | ||||
|   dependencies: | ||||
|     ansi-escapes "^1.0.0" | ||||
|     cli-cursor "^1.0.2" | ||||
| 
 | ||||
| log4js@^1.0.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/log4js/-/log4js-1.1.1.tgz#c21d29c7604089e4f255833e7f94b3461de1ff43" | ||||
| @ -3090,6 +3254,10 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: | ||||
|     semver "2 || 3 || 4 || 5" | ||||
|     validate-npm-package-license "^3.0.1" | ||||
| 
 | ||||
| normalize-path@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" | ||||
| 
 | ||||
| normalize-path@^2.0.1: | ||||
|   version "2.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" | ||||
| @ -3100,6 +3268,12 @@ normalize.css@^5.0.0: | ||||
|   version "5.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-5.0.0.tgz#7cec875ce8178a5333c4de80b68ea9c18b9d7c37" | ||||
| 
 | ||||
| npm-path@^2.0.2: | ||||
|   version "2.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" | ||||
|   dependencies: | ||||
|     which "^1.2.10" | ||||
| 
 | ||||
| npm-run-path@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-1.0.0.tgz#f5c32bf595fe81ae927daec52e82f8b000ac3c8f" | ||||
| @ -3112,6 +3286,14 @@ npm-run-path@^2.0.0: | ||||
|   dependencies: | ||||
|     path-key "^2.0.0" | ||||
| 
 | ||||
| npm-which@^3.0.1: | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" | ||||
|   dependencies: | ||||
|     commander "^2.9.0" | ||||
|     npm-path "^2.0.2" | ||||
|     which "^1.2.10" | ||||
| 
 | ||||
| npmlog@^4.0.2: | ||||
|   version "4.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" | ||||
| @ -3199,6 +3381,10 @@ once@^1.3.0, once@^1.3.3: | ||||
|   dependencies: | ||||
|     wrappy "1" | ||||
| 
 | ||||
| onetime@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" | ||||
| 
 | ||||
| onetime@^2.0.0: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" | ||||
| @ -3229,6 +3415,15 @@ optionator@^0.8.2: | ||||
|     type-check "~0.3.2" | ||||
|     wordwrap "~1.0.0" | ||||
| 
 | ||||
| ora@^0.2.3: | ||||
|   version "0.2.3" | ||||
|   resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" | ||||
|   dependencies: | ||||
|     chalk "^1.1.1" | ||||
|     cli-cursor "^1.0.2" | ||||
|     cli-spinners "^0.1.2" | ||||
|     object-assign "^4.0.1" | ||||
| 
 | ||||
| os-homedir@^1.0.0, os-homedir@^1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" | ||||
| @ -3264,6 +3459,10 @@ p-locate@^2.0.0: | ||||
|   dependencies: | ||||
|     p-limit "^1.1.0" | ||||
| 
 | ||||
| p-map@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" | ||||
| 
 | ||||
| package-hash@^1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44" | ||||
| @ -3537,9 +3736,9 @@ preserve@^0.2.0: | ||||
|   version "0.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" | ||||
| 
 | ||||
| prettier@^1.4.4: | ||||
|   version "1.4.4" | ||||
|   resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.4.4.tgz#a8d1447b14c9bf67e6d420dcadd10fb9a4fad65a" | ||||
| prettier@^1.5.2: | ||||
|   version "1.5.2" | ||||
|   resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.2.tgz#7ea0751da27b93bfb6cecfcec509994f52d83bb3" | ||||
| 
 | ||||
| pretty-format@^19.0.0: | ||||
|   version "19.0.0" | ||||
| @ -3995,6 +4194,10 @@ require-directory@^2.1.1: | ||||
|   version "2.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" | ||||
| 
 | ||||
| require-from-string@^1.1.0: | ||||
|   version "1.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" | ||||
| 
 | ||||
| require-main-filename@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" | ||||
| @ -4052,6 +4255,13 @@ response-time@^2.3.2: | ||||
|     depd "~1.1.0" | ||||
|     on-headers "~1.0.1" | ||||
| 
 | ||||
| restore-cursor@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" | ||||
|   dependencies: | ||||
|     exit-hook "^1.0.0" | ||||
|     onetime "^1.0.0" | ||||
| 
 | ||||
| restore-cursor@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" | ||||
| @ -4091,6 +4301,12 @@ rx-lite@*, rx-lite@^4.0.8: | ||||
|   version "4.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" | ||||
| 
 | ||||
| rxjs@^5.0.0-beta.11: | ||||
|   version "5.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.1.tgz#b62f757f279445d265a18a58fb0a70dc90e91626" | ||||
|   dependencies: | ||||
|     symbol-observable "^1.0.1" | ||||
| 
 | ||||
| safe-buffer@5.0.1: | ||||
|   version "5.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" | ||||
| @ -4177,6 +4393,16 @@ setprototypeof@1.0.3: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" | ||||
| 
 | ||||
| shebang-command@^1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" | ||||
|   dependencies: | ||||
|     shebang-regex "^1.0.0" | ||||
| 
 | ||||
| shebang-regex@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" | ||||
| 
 | ||||
| signal-exit@^2.0.0: | ||||
|   version "2.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-2.1.2.tgz#375879b1f92ebc3b334480d038dc546a6d558564" | ||||
| @ -4311,10 +4537,18 @@ stack-utils@^1.0.0: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" | ||||
| 
 | ||||
| staged-git-files@0.0.4: | ||||
|   version "0.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35" | ||||
| 
 | ||||
| "statuses@>= 1.3.1 < 2", statuses@~1.3.1: | ||||
|   version "1.3.1" | ||||
|   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" | ||||
| 
 | ||||
| stream-to-observable@^0.1.0: | ||||
|   version "0.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" | ||||
| 
 | ||||
| streamroller@^0.4.0: | ||||
|   version "0.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.4.1.tgz#d435bd5974373abd9bd9068359513085106cc05f" | ||||
| @ -4397,6 +4631,10 @@ strip-indent@^1.0.1: | ||||
|   dependencies: | ||||
|     get-stdin "^4.0.1" | ||||
| 
 | ||||
| strip-indent@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" | ||||
| 
 | ||||
| strip-json-comments@~2.0.1: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" | ||||
| @ -4441,7 +4679,7 @@ symbol-observable@^0.2.2: | ||||
|   version "0.2.4" | ||||
|   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" | ||||
| 
 | ||||
| symbol-observable@^1.0.3, symbol-observable@^1.0.4: | ||||
| symbol-observable@^1.0.1, symbol-observable@^1.0.3, symbol-observable@^1.0.4: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" | ||||
| 
 | ||||
| @ -4776,7 +5014,7 @@ which-module@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" | ||||
| 
 | ||||
| which@^1.2.12, which@^1.2.4, which@^1.2.8, which@^1.2.9: | ||||
| which@^1.2.10, which@^1.2.12, which@^1.2.4, which@^1.2.8, which@^1.2.9: | ||||
|   version "1.2.14" | ||||
|   resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" | ||||
|   dependencies: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user