diff --git a/README.md b/README.md
index b1c83a390..937807812 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,7 @@ Hyperledger Explorer is a simple, powerful, easy-to-use, well maintained, open s
- [10.0 Build Hyperledger Explorer ](#Build-Hyperledger-Explorer)
- [10.1 Optional: Configure Hyperledger Explorer for HTTPS ](#Configure-Hyperledger-Explorer-for-HTTPS)
- [11.0 Run Hyperledger Explorer ](#Run-Hyperledger-Explorer)
+ - [11.1 Configuration of logging ](#Run-Hyperledger-Explorer-Logging)
- [12.0 Optional: Run Hyperledger Explorer Using Docker ](#Run-Hyperledger-Explorer-using-Docker)
- [12.1 Docker Repository ](#Docker-Repository)
- [12.2 Run Hyperledger Explorer Using Docker Compose ](#Run-Hyperledger-Explorer-using-Docker-Compose)
@@ -401,7 +402,24 @@ From new terminal (if Sync Process in Standalone).
- If the Hyperledger Explorer was used previously in your browser be sure to clear the cache before relaunching.
- If Hyperledger Fabric network is deployed on other machine, please toggle DISCOVERY_AS_LOCALHOST in start.sh / syncstart.sh to 'false'.
+
+# 11.1 Configuration of logging
+
+By using the following environmet variables, you can control log level of each component (app, db and console). You can set these `ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF` string to each level. Each file is rolled by both date (7days) and size (8MB).
+
+* LOG_LEVEL_APP
+ * Log level regarding application layer. The logs are written to `logs/app/app.log`.
+ * default `DEBUG`
+* LOG_LEVEL_DB
+ * Log level regarding backend layer. The logs are written to `logs/db/db.log`.
+ * default `DEBUG`
+* LOG_LEVEL_CONSOLE
+ * Log level regarding console. The logs are written to `logs/console/console.log`.
+ * default `INFO`
+* LOG_CONSOLE_STDOUT
+ * You can switch the destination of console log from file to standard output.
+ * default `false`
diff --git a/app/common/helper.js b/app/common/helper.js
index 844144195..210d265b7 100644
--- a/app/common/helper.js
+++ b/app/common/helper.js
@@ -20,10 +20,9 @@
const log4js = require('log4js/lib/log4js');
-const appList = [];
-
const path = require('path');
const fs = require('fs-extra');
+const yn = require('yn');
exports.getLogger = getLogger;
exports.readAllFiles = readAllFiles;
@@ -64,46 +63,71 @@ function readAllFiles(dir) {
* @returns
*/
function getLogger(moduleName) {
- let logger;
-
- if (moduleName === 'PgService') {
- logger = log4js.getLogger('PgService');
- } else {
- appList.push(moduleName);
- logger = log4js.getLogger(moduleName);
- }
+ const logger = log4js.getLogger(moduleName);
let appLog = 'logs/app/app.log';
let dbLog = 'logs/db/db.log';
+ let consoleLog = 'logs/console/console.log';
if (process.env.SYNC_LOG_PATH) {
appLog = `${process.env.SYNC_LOG_PATH}/app/app.log`;
dbLog = `${process.env.SYNC_LOG_PATH}/db/db.log`;
+ consoleLog = `${process.env.SYNC_LOG_PATH}/console/console.log`;
}
- fs.ensureFileSync(appLog);
- fs.ensureFileSync(dbLog);
+ let appLevel = 'debug';
+ let dbLevel = 'debug';
+ let consoleLevel = 'info';
+
+ if (process.env.LOG_LEVEL_APP) {
+ appLevel = process.env.LOG_LEVEL_APP;
+ }
+ if (process.env.LOG_LEVEL_DB) {
+ dbLevel = process.env.LOG_LEVEL_DB;
+ }
+ if (process.env.LOG_LEVEL_CONSOLE) {
+ consoleLevel = process.env.LOG_LEVEL_CONSOLE;
+ }
- log4js.configure({
- appenders: [
- {
+ const logConfig = {
+ appenders: {
+ app: {
type: 'dateFile',
filename: appLog,
- // eslint-disable-next-line spellcheck/spell-checker
- pattern: '-yyyy-MM-dd',
- category: appList
+ maxLogSize: 8 * 1024 * 1024,
+ daysToKeep: 7
},
- {
+ db: {
type: 'dateFile',
filename: dbLog,
- // eslint-disable-next-line spellcheck/spell-checker
- pattern: '-yyyy-MM-dd',
- category: ['PgService']
+ maxLogSize: 8 * 1024 * 1024,
+ daysToKeep: 7
+ },
+ console: {
+ type: 'dateFile',
+ filename: consoleLog,
+ maxLogSize: 8 * 1024 * 1024,
+ daysToKeep: 7
+ },
+ consoleFilter: {
+ type: 'logLevelFilter',
+ appender: 'console',
+ level: consoleLevel
}
- ]
- });
+ },
+ categories: {
+ default: { appenders: ['consoleFilter', 'app'], level: appLevel },
+ PgService: { appenders: ['consoleFilter', 'db'], level: dbLevel }
+ }
+ };
+
+ if (process.env.LOG_CONSOLE_STDOUT) {
+ if (yn(process.env.LOG_CONSOLE_STDOUT)) {
+ logConfig.appenders.console = { type: 'console' };
+ }
+ }
- logger.setLevel('DEBUG');
+ log4js.configure(logConfig);
return logger;
}
diff --git a/app/persistence/fabric/CRUDService.js b/app/persistence/fabric/CRUDService.js
index 9725eff6d..8602c0720 100644
--- a/app/persistence/fabric/CRUDService.js
+++ b/app/persistence/fabric/CRUDService.js
@@ -82,7 +82,7 @@ class CRUDService {
}
logger.debug('getTxList.byOrgs ', byOrgs);
- console.debug('getTxList.byOrgs ', byOrgs);
+ logger.debug('getTxList.byOrgs ', byOrgs);
const sqlTxListByOrgs = ` select t.creator_msp_id,t.txhash,t.type,t.chaincodename,t.createdt,channel.name as channelName from transactions as t
inner join channel on t.channel_genesis_hash=channel.channel_genesis_hash where t.blockid >= ${blockNum} and t.id >= ${txid} and t.creator_msp_id in (${orgs}) and
@@ -118,7 +118,7 @@ class CRUDService {
}
logger.debug('getBlockAndTxList.byOrgs ', byOrgs);
- console.debug('getBlockAndTxList.byOrgs ', byOrgs);
+ logger.debug('getBlockAndTxList.byOrgs ', byOrgs);
const sqlBlockTxList = `select a.* from (
select (select c.name from channel c where c.channel_genesis_hash =
diff --git a/app/persistence/fabric/MetricService.js b/app/persistence/fabric/MetricService.js
index 7a1c2c47b..ee83c9e72 100644
--- a/app/persistence/fabric/MetricService.js
+++ b/app/persistence/fabric/MetricService.js
@@ -131,7 +131,7 @@ class MetricService {
as channel_genesis_hash,c.path as path ,txcount as c from chaincodes as c inner join channel on c.channel_genesis_hash=channel.channel_genesis_hash where c.channel_genesis_hash='${channel_genesis_hash}' `);
if (c) {
c.forEach((item, index) => {
- console.debug(' item ------------> ', item);
+ logger.debug(' item ------------> ', item);
txArray.push({
chaincodename: item.chaincodename,
channelName: item.channelname,
diff --git a/app/persistence/postgreSQL/PgService.js b/app/persistence/postgreSQL/PgService.js
index 45ea8ea90..bb2195eb5 100644
--- a/app/persistence/postgreSQL/PgService.js
+++ b/app/persistence/postgreSQL/PgService.js
@@ -79,10 +79,6 @@ class PgService {
logger.info(`connecting to Postgresql ${connectionString}`);
this.client = new Client(this.pgconfig);
-
- logger.info(
- 'Please set logger.setLevel to DEBUG in ./app/helper.js to log the debugging.'
- );
}
/**
@@ -93,7 +89,7 @@ class PgService {
async handleDisconnect() {
try {
this.client.on('error', err => {
- console.log('db error', err);
+ logger.error('db error', err);
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
this.handleDisconnect();
} else {
@@ -108,7 +104,7 @@ class PgService {
* To avoid a hot loop, and to allow our node script to
* Process asynchronous requests in the meantime.
*/
- console.log('error when connecting to db:', err);
+ logger.error('error when connecting to db:', err);
setTimeout(this.handleDisconnect, 2000);
}
}
@@ -163,7 +159,6 @@ class PgService {
_self.client.query(addSql, addSqlParams, (err, res) => {
if (err) {
logger.error('[INSERT ERROR] - ', err.message);
- console.log(err.stack);
reject(err);
return;
}
@@ -173,7 +168,7 @@ class PgService {
);
// Console.log('INSERT ID:', res.rows[0].id);
logger.debug(
- '-----------------------------------------------------------------\n\n'
+ '-----------------------------------------------------------------'
);
resolve(res.rows[0].id);
@@ -218,7 +213,6 @@ class PgService {
const addSql = ` UPDATE ${tablename} set ${updateParmsStr} WHERE ${pkName} = ${pkValue} RETURNING *`;
logger.debug(`update sql is ${addSql}`);
- console.log(`update sql is ${addSql}`);
_self.client.query(addSql, addSqlParams, (err, res) => {
if (err) {
logger.error('[INSERT ERROR] - ', err.message);
@@ -276,7 +270,6 @@ class PgService {
const addSql = ` UPDATE ${tablename} set ${updateParmsStr} WHERE ${updatewhereparm} RETURNING * `;
logger.debug(`update sql is ${addSql}`);
- console.log(`update sql is ${addSql}`);
_self.client.query(addSql, addSqlParams, (err, res) => {
if (err) {
logger.error('[INSERT ERROR] - ', err.message);
@@ -528,7 +521,6 @@ class PgService {
return;
}
- // console.log( `The solution is: ${rows.length } ` );
logger.debug(` the getRowsBySQlNoCondition ${sql}`);
if (res && res.rows) {
diff --git a/app/platform/fabric/FabricClient.js b/app/platform/fabric/FabricClient.js
index ac5dc6b6f..ca010dc7c 100644
--- a/app/platform/fabric/FabricClient.js
+++ b/app/platform/fabric/FabricClient.js
@@ -172,7 +172,7 @@ class FabricClient {
this.defaultOrderer.getName()
);
} else if (persistence) {
- console.log('\n ********* call to initializeDetachClient **********');
+ logger.info('********* call to initializeDetachClient **********');
this.initializeDetachClient(this.client_config, persistence);
}
}
@@ -186,7 +186,7 @@ class FabricClient {
*/
async initializeDetachClient(client_config, persistence) {
const name = client_config.name;
- console.debug(
+ logger.debug(
'initializeDetachClient --> client_config ',
client_config,
' name ',
@@ -200,14 +200,14 @@ class FabricClient {
this.userName = fabricConfig.getAdminUser();
const peers = fabricConfig.getPeersConfig();
- console.log('initializeDetachClient, network config) ', config);
- console.log(
- '\n************************************* initializeDetachClient *************************************************'
+ logger.info('initializeDetachClient, network config) ', config);
+ logger.info(
+ '************************************* initializeDetachClient *************************************************'
);
- console.log('Error :', explorer_mess.error.ERROR_1009);
- console.log('Info : ', explorer_mess.message.MESSAGE_1001);
- console.log(
- '************************************** initializeDetachClient ************************************************\n'
+ logger.info('Error :', explorer_mess.error.ERROR_1009);
+ logger.info('Info : ', explorer_mess.message.MESSAGE_1001);
+ logger.info(
+ '************************************** initializeDetachClient ************************************************'
);
const defaultPeerConfig = fabricConfig.getDefaultPeerConfig();
const default_peer_name = defaultPeerConfig.name;
@@ -250,14 +250,13 @@ class FabricClient {
}
} catch (e) {
logger.error(e);
- console.error(e);
}
}
try {
newchannel.getPeer(default_peer_name);
} catch (e) {
- console.error(
+ logger.error(
'Failed to connect to default peer: ',
default_peer_name,
' \n',
@@ -394,7 +393,7 @@ class FabricClient {
);
// Setting channel_genesis_hash to map
this.setChannelGenHash(channel_name, channel_genesis_hash);
- console.debug(
+ logger.debug(
'Channel genesis hash for channel [%s] >> %s',
channel_name,
channel_genesis_hash
@@ -414,7 +413,7 @@ class FabricClient {
* @memberof FabricClient
*/
async initializeChannelFromDiscover(channel_name) {
- console.debug('initializeChannelFromDiscover ', channel_name);
+ logger.debug('initializeChannelFromDiscover ', channel_name);
let channel = this.hfc_client.getChannel(channel_name, false);
if (!channel) {
await this.initializeNewChannel(channel_name);
@@ -466,25 +465,17 @@ class FabricClient {
for (const msp_id in discover_results.orderers) {
const endpoints = discover_results.orderers[msp_id].endpoints;
for (const endpoint of endpoints) {
- console.log(' FabricClient.discover_results endpoint ', endpoint);
+ logger.info(' FabricClient.discover_results endpoint ', endpoint);
const discoveryProtocol = this.hfc_client.getConfigSetting(
'discovery-protocol'
);
const requesturl =
`${discoveryProtocol}://${endpoint.host}:` + endpoint.port;
- console.log(
- '\ninitializeChannelFromDiscover.discoveryProtocol ',
- discoveryProtocol,
- ' requesturl ',
- requesturl,
- '\n'
- );
logger.debug(
- '\ninitializeChannelFromDiscover.discoveryProtocol ',
+ 'initializeChannelFromDiscover.discoveryProtocol ',
discoveryProtocol,
' requesturl ',
- requesturl,
- '\n'
+ requesturl
);
this.newOrderer(
@@ -641,7 +632,6 @@ class FabricClient {
txId: this.getHFC_Client().newTransactionID(true) // Get an admin based transactionID
};
const genesisBlock = await channel.getGenesisBlock(request);
- // console.log(genesisBlock)
return genesisBlock;
} catch (error) {
logger.error(
diff --git a/app/platform/fabric/FabricConfig.js b/app/platform/fabric/FabricConfig.js
index 11b88ec26..a7c6fae3f 100644
--- a/app/platform/fabric/FabricConfig.js
+++ b/app/platform/fabric/FabricConfig.js
@@ -3,6 +3,9 @@
*/
const fs = require('fs');
+const helper = require('../../common/helper');
+
+const logger = helper.getLogger('FabricConfig');
/**
*
@@ -61,7 +64,7 @@ class FabricConfig {
* @memberof FabricConfig
*/
getTls() {
- console.log('config.client.tlsEnable ', this.config.client.tlsEnable);
+ logger.info('config.client.tlsEnable ', this.config.client.tlsEnable);
return this.config.client.tlsEnable;
}
@@ -115,7 +118,7 @@ class FabricConfig {
let defChannel;
for (const x in this.config.channels) {
// Getting default channel
- console.log('FabricConfig, this.config.channels ', x);
+ logger.info('FabricConfig, this.config.channels ', x);
if (x) {
defChannel = x;
}
diff --git a/app/platform/fabric/Platform.js b/app/platform/fabric/Platform.js
index 3e2a3ce71..c6a6adf7f 100644
--- a/app/platform/fabric/Platform.js
+++ b/app/platform/fabric/Platform.js
@@ -64,7 +64,7 @@ class Platform {
logger.debug(
'******* Initialization started for hyperledger fabric platform ******'
);
- console.debug(
+ logger.debug(
'******* Initialization started for hyperledger fabric platform ******,',
network_configs
);
@@ -117,7 +117,7 @@ class Platform {
* Create fabric explorer client for each
* Each client is connected to only a single peer and monitor that particular peer only
*/
- console.log(
+ logger.info(
' client_configs.name ',
client_configs.name,
' client_configs.profile ',
@@ -135,14 +135,14 @@ class Platform {
let client;
if (clientstatus) {
- console.log('FabricUtils.createFabricClient ');
+ logger.info('FabricUtils.createFabricClient ');
client = await FabricUtils.createFabricClient(
client_configs,
client_name,
this.persistence
);
} else {
- console.log('FabricUtils.createDetachClient ');
+ logger.info('FabricUtils.createDetachClient ');
client = await FabricUtils.createDetachClient(
client_configs,
client_name,
@@ -151,7 +151,7 @@ class Platform {
}
if (client) {
// Set client into clients map
- console.log('FabricUtils.createDetachClient ');
+ logger.info('FabricUtils.createDetachClient ');
const clients = this.networks.get(network_name);
clients.set(client_name, client);
// Console.log('clients ', clients);
@@ -170,7 +170,7 @@ class Platform {
/* eslint-disable */
for (const [network_name, clients] of this.networks.entries()) {
for (const [client_name, client] of clients.entries()) {
- console.log(
+ logger.info(
'initializeListener, client_name, client ',
client_name,
client.client_config
@@ -307,7 +307,7 @@ class Platform {
* @memberof Platform
*/
async destroy() {
- console.log(
+ logger.info(
'<<<<<<<<<<<<<<<<<<<<<<<<<< Closing explorer >>>>>>>>>>>>>>>>>>>>>'
);
for (const explorerListener of this.explorerListeners) {
diff --git a/app/platform/fabric/e2e-test/feature/docker-compose/docker-compose-explorer.yaml b/app/platform/fabric/e2e-test/feature/docker-compose/docker-compose-explorer.yaml
index 67d740850..efac346e6 100644
--- a/app/platform/fabric/e2e-test/feature/docker-compose/docker-compose-explorer.yaml
+++ b/app/platform/fabric/e2e-test/feature/docker-compose/docker-compose-explorer.yaml
@@ -34,6 +34,10 @@ services:
- DATABASE_HOST=explorerdb.mynetwork.com
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWD=password
+ - LOG_LEVEL_APP=debug
+ - LOG_LEVEL_DB=debug
+ - LOG_LEVEL_CONSOLE=info
+ - LOG_CONSOLE_STDOUT=true
- DISCOVERY_AS_LOCALHOST=false
volumes:
- ./../explorer-configs/config-${NETWORK_PROFILE}.json:/opt/explorer/app/platform/fabric/config.json
diff --git a/app/platform/fabric/gateway/FabricGateway.js b/app/platform/fabric/gateway/FabricGateway.js
index 1336f73aa..68697473e 100644
--- a/app/platform/fabric/gateway/FabricGateway.js
+++ b/app/platform/fabric/gateway/FabricGateway.js
@@ -56,7 +56,7 @@ class FabricGateway {
this.identityLabel = this.userName;
this.FSWALLET = 'wallet/' + this.networkName;
- const info = `\nLoading configuration ${this.config} \n`;
+ const info = `Loading configuration ${this.config}`;
logger.debug(info.toUpperCase());
const peers = this.fabricConfig.getPeers();
@@ -73,7 +73,7 @@ class FabricGateway {
signedCertPath
} = this.fabricConfig.getOrganizationsConfig());
logger.log(
- '\nsignedCertPath ',
+ 'signedCertPath ',
signedCertPath,
' \nadminPrivateKeyPath ',
adminPrivateKeyPath
@@ -95,7 +95,7 @@ class FabricGateway {
// Check to see if we've already enrolled the admin user.
const adminExists = await this.wallet.exists(this.userName);
if (adminExists) {
- console.debug(
+ logger.debug(
`An identity for the admin user: ${
this.userName
} already exists in the wallet`
@@ -143,7 +143,6 @@ class FabricGateway {
this.client = this.gateway.getClient();
} catch (error) {
logger.error(` ${error}`);
- console.debug(error);
throw new ExplorerError(explorer_mess.error.ERROR_1010);
}
}
@@ -227,7 +226,6 @@ class FabricGateway {
* Reason : no fabric running, check your network
*/
logger.error('Error instantiating FabricCAServices ', error);
- console.dir('Error instantiating FabricCAServices ', error);
// TODO decide how to proceed if error
}
return {
@@ -238,7 +236,7 @@ class FabricGateway {
async getIdentityInfo(label) {
let identityInfo;
- console.log('Searching for an identity with label: ', label);
+ logger.info('Searching for an identity with label: ', label);
try {
const list = await this.wallet.list();
identityInfo = list.filter(id => {
diff --git a/app/platform/fabric/service/UserService.js b/app/platform/fabric/service/UserService.js
index 0f41c8364..286e0f646 100644
--- a/app/platform/fabric/service/UserService.js
+++ b/app/platform/fabric/service/UserService.js
@@ -52,8 +52,7 @@ class UserService {
if (clients.config && clients.config.client) {
enableAuth = clients.config.client.enableAuthentication;
if (typeof enableAuth !== 'undefined' && enableAuth !== null) {
- logger.log(`Network: ${network_name} enableAuthentication ${enableAuth}`);
- console.log(
+ logger.info(
`Network: ${network_name} enableAuthentication ${enableAuth}`
);
adminUser = clients.config.client.adminUser;
diff --git a/app/platform/fabric/sync/FabricEvent.js b/app/platform/fabric/sync/FabricEvent.js
index d9c0b733e..f9eae25c4 100644
--- a/app/platform/fabric/sync/FabricEvent.js
+++ b/app/platform/fabric/sync/FabricEvent.js
@@ -68,7 +68,6 @@ class FabricEvent {
},
err => {
logger.error('Block Event %s', err);
- console.error(err);
}
);
this.connectChannelEventHub(channel.getName(), eventHub);
@@ -106,7 +105,6 @@ class FabricEvent {
}
} catch (err) {
logger.error('Failed to get the channel ', err);
- console.error('Failed to get the channel ', err);
}
return false;
}
diff --git a/app/platform/fabric/sync/SyncPlatform.js b/app/platform/fabric/sync/SyncPlatform.js
index 512ae0eb2..1029775da 100644
--- a/app/platform/fabric/sync/SyncPlatform.js
+++ b/app/platform/fabric/sync/SyncPlatform.js
@@ -80,8 +80,8 @@ class SyncPlatform {
this.client_name = args[1];
}
- console.log(
- `\n${explorer_mess.message.MESSAGE_1002}`,
+ logger.info(
+ explorer_mess.message.MESSAGE_1002,
this.network_name,
this.client_name
);
@@ -113,7 +113,7 @@ class SyncPlatform {
}
setInterval(() => {
- console.log('Updating the client network and other details to DB');
+ logger.info('Updating the client network and other details to DB');
this.syncService.synchNetworkConfigToDB(this.client);
}, 30000);
diff --git a/app/platform/fabric/sync/SyncService.js b/app/platform/fabric/sync/SyncService.js
index 7f471b659..e237f4385 100644
--- a/app/platform/fabric/sync/SyncService.js
+++ b/app/platform/fabric/sync/SyncService.js
@@ -76,7 +76,7 @@ class SyncServices {
}
for (const [channel_name, channel] of channels.entries()) {
- console.log(
+ logger.info(
'SyncServices.synchNetworkConfigToDB client ',
client.client_name,
' channel_name ',
@@ -256,7 +256,7 @@ class SyncServices {
'discovery-protocol'
);
const requesturl = `${discoveryProtocol}://${orderer.host}:${orderer.port}`;
- console.log(
+ logger.debug(
'insertNewOrderers discoveryProtocol ',
discoveryProtocol,
' requesturl ',
@@ -641,13 +641,13 @@ class SyncServices {
const res = await this.persistence
.getCrudService()
.saveTransaction(transaction_row);
- console.log('saveTransaction ', res);
+ logger.debug('saveTransaction ', res);
}
// Insert block
- console.log('block_row.blocknum ', block_row.blocknum);
+ logger.info('block_row.blocknum ', block_row.blocknum);
const status = await this.persistence.getCrudService().saveBlock(block_row);
- console.debug('status ', status);
+ logger.debug('status ', status);
if (status) {
// Push last block
@@ -670,7 +670,7 @@ class SyncServices {
_self.platform.send(notify);
}
} else {
- console.error('Failed to process the block %j', block);
+ logger.error('Failed to process the block %j', block);
logger.error('Failed to process the block %j', block);
}
const index = blocksInProcess.indexOf(blockPro_key);
@@ -747,7 +747,7 @@ function jsonObjSize(json) {
break;
}
default:
- console.log(typeof obj);
+ logger.debug(typeof obj);
break;
}
}
diff --git a/app/platform/fabric/utils/FabricUtils.js b/app/platform/fabric/utils/FabricUtils.js
index fce3d3a13..8de48b5f6 100644
--- a/app/platform/fabric/utils/FabricUtils.js
+++ b/app/platform/fabric/utils/FabricUtils.js
@@ -225,7 +225,6 @@ function getPEMfromConfig(config) {
result = utils.normalizeX509(result);
} catch (e) {
logger.error(e);
- console.error(e);
}
}
}
diff --git a/app/rest/authroutes.js b/app/rest/authroutes.js
index ece9fe1a7..06978a6b6 100644
--- a/app/rest/authroutes.js
+++ b/app/rest/authroutes.js
@@ -5,6 +5,9 @@
const passport = require('passport');
const { responder } = require('./requestutils');
+const helper = require('../common/helper');
+
+const logger = helper.getLogger('Auth');
/**
*
@@ -37,7 +40,7 @@ const authroutes = async function(router, platform) {
* curl -X POST -H 'Content-Type: routerlication/json' -d '{ 'user': '', 'password': '', 'network': '' }' -i 'http://:/login'
*/
router.post('/login', async (req, res, next) => {
- console.log('req.body', req.body);
+ logger.debug('req.body', req.body);
return passport.authenticate('local-login', (err, token, userData) => {
if (err) {
if (err.name === 'IncorrectCredentialsError') {
diff --git a/docker-compose.yaml b/docker-compose.yaml
index ee9335d73..085c50c53 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -37,6 +37,10 @@ services:
- DATABASE_HOST=explorerdb.mynetwork.com
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWD=password
+ - LOG_LEVEL_APP=debug
+ - LOG_LEVEL_DB=debug
+ - LOG_LEVEL_CONSOLE=info
+ - LOG_CONSOLE_STDOUT=true
- DISCOVERY_AS_LOCALHOST=false
volumes:
- ./examples/net1/config.json:/opt/explorer/app/platform/fabric/config.json
diff --git a/main.js b/main.js
index 0b0053835..704c50d01 100644
--- a/main.js
+++ b/main.js
@@ -48,7 +48,7 @@ class Broadcaster extends WebSocket.Server {
this.on('connection', function connection(ws, req) {
const location = url.parse(req.url, true);
this.on('message', message => {
- console.log('received: %s, %s', location, message);
+ logger.info('received: %s, %s', location, message);
});
});
}
@@ -63,7 +63,6 @@ class Broadcaster extends WebSocket.Server {
this.clients.forEach(client => {
if (client.readyState === WebSocket.OPEN) {
logger.debug('Broadcast >> %j', data);
- console.log('Broadcast >> %j', data);
client.send(JSON.stringify(data));
}
});
@@ -102,7 +101,7 @@ async function startExplorer() {
// = =========== web socket ==============//
const sslPath = path.join(__dirname, sslCertsPath);
- console.debug(sslEnabled, sslCertsPath, sslPath);
+ logger.debug(sslEnabled, sslCertsPath, sslPath);
if (sslEnabled) {
const options = {
@@ -116,18 +115,13 @@ async function startExplorer() {
const broadcaster = new Broadcaster(server);
await explorer.initialize(broadcaster);
explorer.getApp().use(express.static(path.join(__dirname, 'client/build')));
- logger.info(
- 'Please set logger.setLevel to DEBUG in ./app/helper.js to log the debugging.'
- );
+
// ============= start server =======================
server.listen(port, () => {
- console.log('\n');
- console.log(
+ logger.info(
`Please open web browser to access :${protocol}://${host}:${port}/`
);
- console.log('\n');
- console.log(`pid is ${process.pid}`);
- console.log('\n');
+ logger.info(`pid is ${process.pid}`);
});
}
@@ -148,17 +142,15 @@ server.on('connection', connection => {
*/
const shutDown = function(exitCode) {
- console.log('Received kill signal, shutting down gracefully');
+ logger.info('Received kill signal, shutting down gracefully');
server.close(() => {
explorer.close();
- console.log('Closed out connections');
+ logger.info('Closed out connections');
process.exit(exitCode);
});
setTimeout(() => {
- console.error(
- 'Could not close connections in time, forcefully shutting down'
- );
+ logger.error('Could not close connections in time, forcefully shutting down');
explorer.close();
process.exit(1);
}, 10000);
@@ -168,22 +160,26 @@ const shutDown = function(exitCode) {
};
process.on('unhandledRejection', up => {
- console.log('<<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>');
+ logger.error(
+ '<<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>'
+ );
if (up instanceof ExplorerError) {
- console.log('Error : ', up.message);
+ logger.error('Error : ', up.message);
} else {
- console.log(up);
+ logger.error(up);
}
setTimeout(() => {
shutDown(1);
}, 2000);
});
process.on('uncaughtException', up => {
- console.log('<<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>');
+ logger.error(
+ '<<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>'
+ );
if (up instanceof ExplorerError) {
- console.log('Error : ', up.message);
+ logger.error('Error : ', up.message);
} else {
- console.log(up);
+ logger.error(up);
}
setTimeout(() => {
shutDown(1);
diff --git a/package-lock.json b/package-lock.json
index 17e44fd6c..72f0e5c7b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1081,6 +1081,15 @@
"resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
"integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
},
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
"damerau-levenshtein": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz",
@@ -1106,6 +1115,11 @@
"integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
"dev": true
},
+ "date-format": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
+ "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w=="
+ },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -1342,6 +1356,35 @@
"is-symbol": "^1.0.2"
}
},
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -1834,6 +1877,21 @@
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.0.0.tgz",
"integrity": "sha512-dhT57wqxfqmkOi4HM7NuT4Gd7gbUgSK2ocG27Y6lwm8lbOAw9XQfeANawGq8wLDtlGPO1ZgDj0HmKsykTxfFAg=="
},
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="
+ }
+ }
+ },
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -1992,19 +2050,23 @@
"dependencies": {
"abbrev": {
"version": "1.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"aproba": {
"version": "1.2.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
},
"are-we-there-yet": {
"version": "1.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
@@ -2012,11 +2074,13 @@
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"brace-expansion": {
"version": "1.1.11",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -2024,50 +2088,61 @@
},
"chownr": {
"version": "1.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"concat-map": {
"version": "0.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"deep-extend": {
"version": "0.6.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"delegates": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"detect-libc": {
"version": "1.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
"fs-minipass": {
"version": "1.2.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"requires": {
"minipass": "^2.2.1"
}
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"gauge": {
"version": "2.7.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
"aproba": "^1.0.3",
"console-control-strings": "^1.0.0",
@@ -2081,25 +2156,29 @@
},
"has-unicode": {
"version": "2.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"iconv-lite": {
"version": "0.4.23",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"requires": {
"minimatch": "^3.0.4"
}
},
"inflight": {
"version": "1.0.6",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
@@ -2107,37 +2186,44 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.5",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
},
"is-fullwidth-code-point": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
"number-is-nan": "^1.0.0"
}
},
"isarray": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"minimatch": {
"version": "3.0.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "1.2.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"minipass": {
"version": "2.3.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -2145,27 +2231,31 @@
},
"minizlib": {
"version": "1.2.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"requires": {
"minipass": "^2.2.1"
}
},
"mkdirp": {
"version": "0.5.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}
}
},
"needle": {
"version": "2.3.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-CaLXV3W8Vnbps8ZANqDGz7j4x7Yj1LW4TWF/TQuDfj7Cfx4nAPTvw98qgTevtto1oHDrh3pQkaODbqupXlsWTg==",
"requires": {
"debug": "^4.1.0",
"iconv-lite": "^0.4.4",
@@ -2174,20 +2264,23 @@
"dependencies": {
"debug": {
"version": "4.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"node-pre-gyp": {
"version": "0.13.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==",
"requires": {
"detect-libc": "^1.0.2",
"mkdirp": "^0.5.1",
@@ -2203,7 +2296,8 @@
},
"nopt": {
"version": "4.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"requires": {
"abbrev": "1",
"osenv": "^0.1.4"
@@ -2211,11 +2305,13 @@
},
"npm-bundled": {
"version": "1.0.6",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g=="
},
"npm-packlist": {
"version": "1.4.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"requires": {
"ignore-walk": "^3.0.1",
"npm-bundled": "^1.0.1"
@@ -2223,7 +2319,8 @@
},
"npmlog": {
"version": "4.1.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"requires": {
"are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0",
@@ -2233,30 +2330,36 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"object-assign": {
"version": "4.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"once": {
"version": "1.4.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
}
},
"os-homedir": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"os-tmpdir": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"osenv": {
"version": "0.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"requires": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0"
@@ -2264,15 +2367,18 @@
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"process-nextick-args": {
"version": "2.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
},
"rc": {
"version": "1.2.8",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"requires": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -2282,7 +2388,8 @@
},
"readable-stream": {
"version": "2.3.6",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -2295,14 +2402,16 @@
},
"rimraf": {
"version": "2.6.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"requires": {
"glob": "^7.1.3"
},
"dependencies": {
"glob": {
"version": "7.1.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -2316,31 +2425,38 @@
},
"safe-buffer": {
"version": "5.1.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sax": {
"version": "1.2.4",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"semver": {
"version": "5.7.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
},
"set-blocking": {
"version": "2.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"signal-exit": {
"version": "3.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"string-width": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -2349,25 +2465,29 @@
},
"string_decoder": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
"version": "2.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
},
"tar": {
"version": "4.4.8",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"requires": {
"chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
@@ -2380,22 +2500,26 @@
},
"util-deprecate": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"wide-align": {
"version": "1.1.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"requires": {
"string-width": "^1.0.2 || 2"
}
},
"wrappy": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yallist": {
"version": "3.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
}
}
},
@@ -2473,19 +2597,23 @@
"dependencies": {
"abbrev": {
"version": "1.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"aproba": {
"version": "1.2.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
},
"are-we-there-yet": {
"version": "1.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
@@ -2493,11 +2621,13 @@
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"brace-expansion": {
"version": "1.1.11",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -2505,50 +2635,61 @@
},
"chownr": {
"version": "1.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"concat-map": {
"version": "0.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"deep-extend": {
"version": "0.6.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"delegates": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"detect-libc": {
"version": "1.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
"fs-minipass": {
"version": "1.2.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"requires": {
"minipass": "^2.2.1"
}
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"gauge": {
"version": "2.7.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
"aproba": "^1.0.3",
"console-control-strings": "^1.0.0",
@@ -2562,25 +2703,29 @@
},
"has-unicode": {
"version": "2.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"iconv-lite": {
"version": "0.4.23",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"requires": {
"minimatch": "^3.0.4"
}
},
"inflight": {
"version": "1.0.6",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
@@ -2588,37 +2733,44 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.5",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
},
"is-fullwidth-code-point": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
"number-is-nan": "^1.0.0"
}
},
"isarray": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"minimatch": {
"version": "3.0.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "1.2.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"minipass": {
"version": "2.3.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -2626,27 +2778,31 @@
},
"minizlib": {
"version": "1.2.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"requires": {
"minipass": "^2.2.1"
}
},
"mkdirp": {
"version": "0.5.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}
}
},
"needle": {
"version": "2.3.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-CaLXV3W8Vnbps8ZANqDGz7j4x7Yj1LW4TWF/TQuDfj7Cfx4nAPTvw98qgTevtto1oHDrh3pQkaODbqupXlsWTg==",
"requires": {
"debug": "^4.1.0",
"iconv-lite": "^0.4.4",
@@ -2655,20 +2811,23 @@
"dependencies": {
"debug": {
"version": "4.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"node-pre-gyp": {
"version": "0.13.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==",
"requires": {
"detect-libc": "^1.0.2",
"mkdirp": "^0.5.1",
@@ -2684,7 +2843,8 @@
},
"nopt": {
"version": "4.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"requires": {
"abbrev": "1",
"osenv": "^0.1.4"
@@ -2692,11 +2852,13 @@
},
"npm-bundled": {
"version": "1.0.6",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g=="
},
"npm-packlist": {
"version": "1.4.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"requires": {
"ignore-walk": "^3.0.1",
"npm-bundled": "^1.0.1"
@@ -2704,7 +2866,8 @@
},
"npmlog": {
"version": "4.1.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"requires": {
"are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0",
@@ -2714,30 +2877,36 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"object-assign": {
"version": "4.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"once": {
"version": "1.4.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
}
},
"os-homedir": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"os-tmpdir": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"osenv": {
"version": "0.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"requires": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0"
@@ -2745,15 +2914,18 @@
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"process-nextick-args": {
"version": "2.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
},
"rc": {
"version": "1.2.8",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"requires": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -2763,7 +2935,8 @@
},
"readable-stream": {
"version": "2.3.6",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -2776,14 +2949,16 @@
},
"rimraf": {
"version": "2.6.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"requires": {
"glob": "^7.1.3"
},
"dependencies": {
"glob": {
"version": "7.1.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -2797,31 +2972,38 @@
},
"safe-buffer": {
"version": "5.1.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sax": {
"version": "1.2.4",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"semver": {
"version": "5.7.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
},
"set-blocking": {
"version": "2.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"signal-exit": {
"version": "3.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"string-width": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -2830,25 +3012,29 @@
},
"string_decoder": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
"version": "2.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
},
"tar": {
"version": "4.4.8",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"requires": {
"chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
@@ -2861,22 +3047,26 @@
},
"util-deprecate": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"wide-align": {
"version": "1.1.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"requires": {
"string-width": "^1.0.2 || 2"
}
},
"wrappy": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yallist": {
"version": "3.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
}
}
},
@@ -3645,19 +3835,23 @@
"dependencies": {
"abbrev": {
"version": "1.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"aproba": {
"version": "1.2.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
},
"are-we-there-yet": {
"version": "1.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
@@ -3665,11 +3859,13 @@
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"brace-expansion": {
"version": "1.1.11",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -3677,50 +3873,61 @@
},
"chownr": {
"version": "1.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"concat-map": {
"version": "0.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"deep-extend": {
"version": "0.6.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"delegates": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"detect-libc": {
"version": "1.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
"fs-minipass": {
"version": "1.2.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"requires": {
"minipass": "^2.2.1"
}
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"gauge": {
"version": "2.7.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
"aproba": "^1.0.3",
"console-control-strings": "^1.0.0",
@@ -3734,25 +3941,29 @@
},
"has-unicode": {
"version": "2.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"iconv-lite": {
"version": "0.4.23",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"requires": {
"minimatch": "^3.0.4"
}
},
"inflight": {
"version": "1.0.6",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
@@ -3760,37 +3971,44 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.5",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
},
"is-fullwidth-code-point": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
"number-is-nan": "^1.0.0"
}
},
"isarray": {
"version": "1.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"minimatch": {
"version": "3.0.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "1.2.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"minipass": {
"version": "2.3.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -3798,21 +4016,24 @@
},
"minizlib": {
"version": "1.2.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"requires": {
"minipass": "^2.2.1"
}
},
"mkdirp": {
"version": "0.5.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}
}
},
@@ -3823,7 +4044,8 @@
},
"needle": {
"version": "2.3.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-CaLXV3W8Vnbps8ZANqDGz7j4x7Yj1LW4TWF/TQuDfj7Cfx4nAPTvw98qgTevtto1oHDrh3pQkaODbqupXlsWTg==",
"requires": {
"debug": "^4.1.0",
"iconv-lite": "^0.4.4",
@@ -3832,20 +4054,23 @@
"dependencies": {
"debug": {
"version": "4.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"node-pre-gyp": {
"version": "0.13.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==",
"requires": {
"detect-libc": "^1.0.2",
"mkdirp": "^0.5.1",
@@ -3861,7 +4086,8 @@
},
"nopt": {
"version": "4.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"requires": {
"abbrev": "1",
"osenv": "^0.1.4"
@@ -3869,11 +4095,13 @@
},
"npm-bundled": {
"version": "1.0.6",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g=="
},
"npm-packlist": {
"version": "1.4.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"requires": {
"ignore-walk": "^3.0.1",
"npm-bundled": "^1.0.1"
@@ -3881,7 +4109,8 @@
},
"npmlog": {
"version": "4.1.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"requires": {
"are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0",
@@ -3891,30 +4120,36 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"object-assign": {
"version": "4.1.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"once": {
"version": "1.4.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
}
},
"os-homedir": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"os-tmpdir": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"osenv": {
"version": "0.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"requires": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0"
@@ -3922,15 +4157,18 @@
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"process-nextick-args": {
"version": "2.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
},
"rc": {
"version": "1.2.8",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"requires": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -3940,7 +4178,8 @@
},
"readable-stream": {
"version": "2.3.6",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -3953,14 +4192,16 @@
},
"rimraf": {
"version": "2.6.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"requires": {
"glob": "^7.1.3"
},
"dependencies": {
"glob": {
"version": "7.1.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -3974,31 +4215,38 @@
},
"safe-buffer": {
"version": "5.1.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sax": {
"version": "1.2.4",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"semver": {
"version": "5.7.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
},
"set-blocking": {
"version": "2.0.0",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"signal-exit": {
"version": "3.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"string-width": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -4007,25 +4255,29 @@
},
"string_decoder": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
"version": "2.0.1",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
},
"tar": {
"version": "4.4.8",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"requires": {
"chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
@@ -4038,22 +4290,26 @@
},
"util-deprecate": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"wide-align": {
"version": "1.1.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"requires": {
"string-width": "^1.0.2 || 2"
}
},
"wrappy": {
"version": "1.0.2",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yallist": {
"version": "3.0.3",
- "bundled": true
+ "resolved": false,
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
}
}
},
@@ -5274,29 +5530,34 @@
}
},
"log4js": {
- "version": "0.6.38",
- "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz",
- "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=",
- "requires": {
- "readable-stream": "~1.0.2",
- "semver": "~4.3.3"
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.1.0.tgz",
+ "integrity": "sha512-fSCHMYsMJbHwfNTuMlopVVcfkKwIRLh5mpNZGB2oBbnSmr3yUTo4tL4xGBA0/q29xowlu96eTXGghJFNhPXMnA==",
+ "requires": {
+ "date-format": "^3.0.0",
+ "debug": "^4.1.1",
+ "flatted": "^2.0.1",
+ "rfdc": "^1.1.4",
+ "streamroller": "^2.2.3"
},
"dependencies": {
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "ms": "^2.1.1"
}
},
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
+ "flatted": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
+ "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
@@ -5492,9 +5753,9 @@
"dev": true
},
"nan": {
- "version": "2.11.1",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
- "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==",
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
"optional": true
},
"nano": {
@@ -5550,6 +5811,11 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -6416,6 +6682,11 @@
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
"dev": true
},
+ "rfdc": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
+ "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug=="
+ },
"rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
@@ -6882,21 +7153,7 @@
"resolved": "https://registry.npmjs.org/stompjs/-/stompjs-2.3.3.tgz",
"integrity": "sha1-NBeKx7uO4pTMXVVK2LUPf1RZ/Y4=",
"requires": {
- "websocket": "^1.0.28"
- },
- "dependencies": {
- "websocket": {
- "version": "1.0.28",
- "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.28.tgz",
- "integrity": "sha512-00y/20/80P7H4bCYkzuuvvfDvh+dgtXi5kzDf3UcZwN6boTYaKvsrtZ5lIYm1Gsg48siMErd9M4zjSYfYFHTrA==",
- "optional": true,
- "requires": {
- "debug": "^2.2.0",
- "nan": "^2.11.0",
- "typedarray-to-buffer": "^3.1.5",
- "yaeti": "^0.0.6"
- }
- }
+ "websocket": "^1.0.31"
}
},
"stream-buffers": {
@@ -6913,6 +7170,51 @@
"through": "~2.3.4"
}
},
+ "streamroller": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.3.tgz",
+ "integrity": "sha512-AegmvQsscTRhHVO46PhCDerjIpxi7E+d2GxgUDu+nzw/HuLnUdxHWr6WQ+mVn/4iJgMKKFFdiUwFcFRDvcjCtw==",
+ "requires": {
+ "date-format": "^2.1.0",
+ "debug": "^4.1.1",
+ "fs-extra": "^8.1.0"
+ },
+ "dependencies": {
+ "date-format": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
+ "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA=="
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
"streamsearch": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
@@ -7250,6 +7552,11 @@
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
"type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
@@ -7443,6 +7750,19 @@
"extsprintf": "^1.2.0"
}
},
+ "websocket": {
+ "version": "1.0.31",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz",
+ "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==",
+ "optional": true,
+ "requires": {
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "nan": "^2.14.0",
+ "typedarray-to-buffer": "^3.1.5",
+ "yaeti": "^0.0.6"
+ }
+ },
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -7553,6 +7873,11 @@
"window-size": "^0.1.4",
"y18n": "^3.2.0"
}
+ },
+ "yn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-4.0.0.tgz",
+ "integrity": "sha512-huWiiCS4TxKc4SfgmTwW1K7JmXPPAmuXWYy4j9qjQo4+27Kni8mGhAAi1cloRWmBe2EqcLgt3IGqQoRL/MtPgg=="
}
}
}
diff --git a/package.json b/package.json
index d4c75b06f..f8518f652 100644
--- a/package.json
+++ b/package.json
@@ -36,7 +36,7 @@
"http-status-codes": "^1.3.0",
"js-sha256": "^0.9.0",
"jsonwebtoken": "^8.5.0",
- "log4js": "^0.6.38",
+ "log4js": "^6.1.0",
"multer": "^1.3.0",
"npm-run-all": "^4.1.5",
"passport": "^0.4.0",
@@ -52,7 +52,8 @@
"swagger-ui-express": "^4.0.5",
"utf8-bytes": "0.0.1",
"winston": "^2.2.0",
- "ws": "^5.1.1"
+ "ws": "^5.1.1",
+ "yn": "^4.0.0"
},
"license": "Apache-2.0",
"devDependencies": {
diff --git a/start.sh b/start.sh
index cfc7f4a62..bd1aca1bd 100755
--- a/start.sh
+++ b/start.sh
@@ -10,20 +10,14 @@
rm -rf /tmp/fabric-client-kvs_peerOrg*
-mkdir -p ./logs/app & mkdir -p ./logs/db & mkdir -p ./logs/console
-
-LOG_CONSOLE_PATH="logs/console/console-$(date +%Y-%m-%d).log"
-
echo "************************************************************************************"
echo "**************************** Hyperledger Explorer **********************************"
echo "************************************************************************************"
-echo "***** Please check the log [$LOG_CONSOLE_PATH] for any error *****"
-echo "************************************************************************************"
-
-export DISCOVERY_AS_LOCALHOST=true
-node main.js name - hyperledger-explorer >>$LOG_CONSOLE_PATH 2>&1 &
-
-find ./logs/app -mtime +7 -type f -delete & find ./logs/db -mtime +7 -type f -delete & find ./logs/console -mtime +7 -type f -delete
-
+export LOG_LEVEL_APP=debug
+export LOG_LEVEL_DB=debug
+export LOG_LEVEL_CONSOLE=info
+export LOG_CONSOLE_STDOUT=false
+export DISCOVERY_AS_LOCALHOST=true
+node main.js name - hyperledger-explorer &
diff --git a/sync.js b/sync.js
index e6ccb5cb3..ee6fa6158 100644
--- a/sync.js
+++ b/sync.js
@@ -17,9 +17,7 @@ async function start() {
synchronizer = new Synchronizer(args);
await synchronizer.initialize();
- console.log('\n');
- console.log(`Synchronizer pid is ${process.pid}`);
- console.log('\n');
+ logger.info(`Synchronizer pid is ${process.pid}`);
}
start();
@@ -30,7 +28,7 @@ start();
*/
const shutDown = function() {
- console.log(
+ logger.info(
'<<<<<<<<<<<<<<<<<<<<<<<<<< Closing client processor >>>>>>>>>>>>>>>>>>>>>'
);
if (synchronizer) {
@@ -39,7 +37,7 @@ const shutDown = function() {
setTimeout(() => {
process.exit(0);
setTimeout(() => {
- console.error(
+ logger.error(
'Could not close child connections in time, forcefully shutting down'
);
if (synchronizer) {
@@ -51,24 +49,24 @@ const shutDown = function() {
};
process.on('unhandledRejection', up => {
- console.log(
+ logger.error(
'<<<<<<<<<<<<<<<<<<<<<<<<<< Synchronizer Error >>>>>>>>>>>>>>>>>>>>>'
);
if (up instanceof ExplorerError) {
- console.log('Error : ', up.message);
+ logger.error('Error : ', up.message);
} else {
- console.log(up);
+ logger.error(up);
}
shutDown();
});
process.on('uncaughtException', up => {
- console.log(
+ logger.error(
'<<<<<<<<<<<<<<<<<<<<<<<<<< Synchronizer Error >>>>>>>>>>>>>>>>>>>>>'
);
if (up instanceof ExplorerError) {
- console.log('Error : ', up.message);
+ logger.error('Error : ', up.message);
} else {
- console.log(up);
+ logger.error(up);
}
shutDown();
});
diff --git a/syncstart.sh b/syncstart.sh
index 26cc48193..4b345ec28 100755
--- a/syncstart.sh
+++ b/syncstart.sh
@@ -3,29 +3,26 @@
#
#!/bin/bash
-#
-#Redirecting console.log to log file.
-#Please visit ./logs/sync/app to view the application logs and visit the ./logs/sync/db to view the Database logs and visit the ./log/console for the console.log
+
+# Please visit ./logs/sync/app to view the application logs and visit the ./logs/sync/db to view the Database logs and visit the ./logs/sync/console for the console.log
# Log rotating for every 7 days.
rm -rf /tmp/fabric-client-kvs_peerOrg*
export SYNC_LOG_PATH=./logs/sync
-mkdir -p $SYNC_LOG_PATH/app & mkdir -p $SYNC_LOG_PATH/db & mkdir -p $SYNC_LOG_PATH/console
-
-SYNC_LOG_CONSOLE_PATH="$SYNC_LOG_PATH/console/console-$(date +%Y-%m-%d).log"
-
echo "************************************************************************************"
echo "**************************** Hyperledger Explorer Sync**********************************"
echo "************************************************************************************"
-echo "***** Please check the log [$SYNC_LOG_CONSOLE_PATH] for any error *****"
-echo "************************************************************************************"
+
+export LOG_LEVEL_APP=debug
+export LOG_LEVEL_DB=debug
+export LOG_LEVEL_CONSOLE=info
+export LOG_CONSOLE_STDOUT=false
export DISCOVERY_AS_LOCALHOST=true
-node sync.js $1 $2 >>$SYNC_LOG_CONSOLE_PATH 2>&1 &
+node sync.js $1 $2 &
-find $SYNC_LOG_PATH/app -mtime +7 -type f -delete & find $SYNC_LOG_PATH/db -mtime +7 -type f -delete & find $SYNC_LOG_PATH/console -mtime +7 -type f -delete