appcd-agent
Advanced tools
Comparing version 1.0.1 to 1.1.0-0
@@ -1,18 +0,14 @@ | ||
'use strict'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
exports.default = undefined; | ||
exports.default = void 0; | ||
var _collection = require('./collection'); | ||
var _collection = _interopRequireDefault(require("./collection")); | ||
var _collection2 = _interopRequireDefault(_collection); | ||
var _os = _interopRequireDefault(require("os")); | ||
var _os = require('os'); | ||
var _events = require("events"); | ||
var _os2 = _interopRequireDefault(_os); | ||
var _events = require('events'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -24,200 +20,203 @@ | ||
let Agent = class Agent extends _events.EventEmitter { | ||
/** | ||
* Creates the Agent instance. | ||
* | ||
* @param {Object} [opts] - Various options. | ||
* @param {Number} [opts.pollInterval=1000] - The number of milliseconds to poll the metrics. | ||
* @access public | ||
*/ | ||
constructor(opts = {}) { | ||
if (!opts || typeof opts !== 'object') { | ||
throw new TypeError('Expected options to be an object'); | ||
} | ||
/** | ||
* Creates the Agent instance. | ||
* | ||
* @param {Object} [opts] - Various options. | ||
* @param {Number} [opts.pollInterval=1000] - The number of milliseconds to poll the metrics. | ||
* @access public | ||
*/ | ||
constructor(opts = {}) { | ||
if (!opts || typeof opts !== 'object') { | ||
throw new TypeError('Expected options to be an object'); | ||
} | ||
super(); | ||
super(); | ||
/** | ||
* The number of milliseconds to wait before polling. | ||
* @type {Number} | ||
*/ | ||
/** | ||
* The number of milliseconds to wait before polling. | ||
* @type {Number} | ||
this.pollInterval = Math.max(~~opts.pollInterval || 1000, 1); | ||
/** | ||
* A map of names to collections. | ||
* @type {Object} | ||
*/ | ||
this.buckets = {}; | ||
/** | ||
* A list of functions to call when polling for stats. | ||
* @type {Array} | ||
*/ | ||
this.collectors = []; | ||
} | ||
/** | ||
* Fetches the stats for the given bucket name. | ||
* | ||
* @param {String} name - The bucket name. | ||
* @returns {Object} | ||
* @access public | ||
*/ | ||
this.pollInterval = Math.max(~~opts.pollInterval || 1000, 1); | ||
/** | ||
* A map of names to collections. | ||
* @type {Object} | ||
getStats(name) { | ||
return this.buckets[name] ? this.buckets[name].collection.stats : null; | ||
} | ||
/** | ||
* Starts monitoring the system. | ||
* | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
this.buckets = {}; | ||
/** | ||
* A list of functions to call when polling for stats. | ||
* @type {Array} | ||
start() { | ||
this.initCpu = this.currentCpu = process.cpuUsage(); | ||
this.initHrtime = this.currentHrTime = process.hrtime(); | ||
clearTimeout(this.pollTimer); | ||
this.poll(); | ||
return this; | ||
} | ||
/** | ||
* Stops monitoring the system. | ||
* | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
this.collectors = []; | ||
} | ||
/** | ||
* Fetches the stats for the given bucket name. | ||
* | ||
* @param {String} name - The bucket name. | ||
* @returns {Object} | ||
* @access public | ||
*/ | ||
getStats(name) { | ||
return this.buckets[name] ? this.buckets[name].collection.stats : null; | ||
} | ||
/** | ||
* Starts monitoring the system. | ||
* | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
start() { | ||
this.initCpu = this.currentCpu = process.cpuUsage(); | ||
this.initHrtime = this.currentHrTime = process.hrtime(); | ||
stop() { | ||
clearTimeout(this.pollTimer); | ||
return this; | ||
} | ||
/** | ||
* Adds a new collector. | ||
* | ||
* @param {Function} fn - The collector callback to add. | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
clearTimeout(this.pollTimer); | ||
this.poll(); | ||
return this; | ||
} | ||
addCollector(fn) { | ||
if (!fn || typeof fn !== 'function') { | ||
throw new TypeError('Expected collector to be a function'); | ||
} | ||
/** | ||
* Stops monitoring the system. | ||
* | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
stop() { | ||
clearTimeout(this.pollTimer); | ||
return this; | ||
} | ||
this.collectors.push(fn); | ||
return this; | ||
} | ||
/** | ||
* Removes a collector. | ||
* | ||
* @param {Function} fn - The collector callback to remove. | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
/** | ||
* Adds a new collector. | ||
* | ||
* @param {Function} fn - The collector callback to add. | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
addCollector(fn) { | ||
if (!fn || typeof fn !== 'function') { | ||
throw new TypeError('Expected collector to be a function'); | ||
} | ||
this.collectors.push(fn); | ||
return this; | ||
} | ||
/** | ||
* Removes a collector. | ||
* | ||
* @param {Function} fn - The collector callback to remove. | ||
* @returns {Agent} | ||
* @access public | ||
*/ | ||
removeCollector(fn) { | ||
if (!fn || typeof fn !== 'function') { | ||
throw new TypeError('Expected collector to be a function'); | ||
} | ||
removeCollector(fn) { | ||
if (!fn || typeof fn !== 'function') { | ||
throw new TypeError('Expected collector to be a function'); | ||
} | ||
for (let i = 0; i < this.collectors.length; i++) { | ||
if (this.collectors[i] === fn) { | ||
this.collectors.splice(i--, 1); | ||
} | ||
} | ||
for (let i = 0; i < this.collectors.length; i++) { | ||
if (this.collectors[i] === fn) { | ||
this.collectors.splice(i--, 1); | ||
} | ||
} | ||
return this; | ||
} | ||
return this; | ||
} | ||
/** | ||
* Polls the CPU and memory. | ||
* | ||
* @access private | ||
*/ | ||
/** | ||
* Polls the CPU and memory. | ||
* | ||
* @access private | ||
*/ | ||
poll() { | ||
const cpu = process.cpuUsage(this.initCpu); | ||
const hrtime = process.hrtime(this.initHrtime); | ||
const mem = process.memoryUsage(); | ||
const stats = { | ||
cpu: (cpu.user + cpu.system) / (hrtime[0] * 1000000 + hrtime[1] / 1000) * 100, | ||
freemem: _os2.default.freemem(), | ||
heapTotal: mem.heapTotal, | ||
heapUsed: mem.heapUsed, | ||
rss: mem.rss | ||
}; | ||
Promise.all(this.collectors.map(fn => Promise.resolve().then(() => fn()).then(result => { | ||
if (result && typeof result === 'object') { | ||
Object.assign(stats, result); | ||
} | ||
}))).then(() => { | ||
// figure out how long it's been since we started the last poll | ||
const now = Date.now(); | ||
const delta = this.lastTimestamp ? now - this.lastTimestamp : 0; | ||
this.lastTimestamp = now; | ||
poll() { | ||
const cpu = process.cpuUsage(this.initCpu); | ||
const hrtime = process.hrtime(this.initHrtime); | ||
const mem = process.memoryUsage(); | ||
const stats = { | ||
cpu: (cpu.user + cpu.system) / (hrtime[0] * 1000000 + hrtime[1] / 1000) * 100, | ||
freemem: _os.default.freemem(), | ||
heapTotal: mem.heapTotal, | ||
heapUsed: mem.heapUsed, | ||
rss: mem.rss | ||
}; | ||
Promise.all(this.collectors.map(fn => Promise.resolve().then(() => fn()).then(result => { | ||
if (result && typeof result === 'object') { | ||
Object.assign(stats, result); | ||
} | ||
}))).then(() => { | ||
// figure out how long it's been since we started the last poll | ||
const now = Date.now(); | ||
const delta = this.lastTimestamp ? now - this.lastTimestamp : 0; | ||
this.lastTimestamp = now; // schedule the next poll | ||
// schedule the next poll | ||
const next = this.pollInterval - delta % this.pollInterval; | ||
this.pollTimer = setTimeout(this.poll.bind(this), next); | ||
const next = this.pollInterval - delta % this.pollInterval; | ||
this.pollTimer = setTimeout(this.poll.bind(this), next); // figure out how many intervals we missed, we'll interpolate the values later | ||
// figure out how many intervals we missed, we'll interpolate the values later | ||
const missed = Math.floor((delta - this.pollInterval) / this.pollInterval) + 1; | ||
const missed = Math.floor((delta - this.pollInterval) / this.pollInterval) + 1; // make sure we have collections for all the data we want to store | ||
// make sure we have collections for all the data we want to store | ||
for (const name of Object.keys(stats)) { | ||
if (!this.buckets[name]) { | ||
this.buckets[name] = { | ||
collection: new _collection2.default(60 * 15), // 15 minutes worth of data | ||
last: null | ||
}; | ||
} | ||
} | ||
for (const name of Object.keys(stats)) { | ||
if (!this.buckets[name]) { | ||
this.buckets[name] = { | ||
collection: new _collection.default(60 * 15), | ||
// 15 minutes worth of data | ||
last: null | ||
}; | ||
} | ||
} // add the values for each stat to its bucket, or set zero if we don't have a value | ||
// for this poll | ||
// add the values for each stat to its bucket, or set zero if we don't have a value | ||
// for this poll | ||
for (const name of Object.keys(this.buckets)) { | ||
if (stats.hasOwnProperty(name)) { | ||
const value = stats[name]; | ||
const bucket = this.buckets[name]; | ||
let last = bucket.last || 0; | ||
// if we missed any intervals, interpolate the values | ||
// note that we don't emit stats for missed intervals | ||
for (let i = 1; i < missed; i++) { | ||
bucket.collection.add((value - last) * i / missed + last); | ||
} | ||
for (const name of Object.keys(this.buckets)) { | ||
if (stats.hasOwnProperty(name)) { | ||
const value = stats[name]; | ||
const bucket = this.buckets[name]; | ||
let last = bucket.last || 0; // if we missed any intervals, interpolate the values | ||
// note that we don't emit stats for missed intervals | ||
// add the value and set it as the last value | ||
bucket.collection.add(value); | ||
bucket.last = value; | ||
} else { | ||
// the bucket didn't receive a value so that probably means the collector | ||
// was removed or the bucket is no longer monitored, so remove the bucket | ||
delete this.buckets[name]; | ||
} | ||
} | ||
for (let i = 1; i < missed; i++) { | ||
bucket.collection.add((value - last) * i / missed + last); | ||
} // add the value and set it as the last value | ||
// add in the timestamp | ||
stats.ts = process.uptime(); | ||
// emit the stats! | ||
this.emit('stats', stats); | ||
}).catch(err => this.emit('error', err)); | ||
} | ||
bucket.collection.add(value); | ||
bucket.last = value; | ||
} else { | ||
// the bucket didn't receive a value so that probably means the collector | ||
// was removed or the bucket is no longer monitored, so remove the bucket | ||
delete this.buckets[name]; | ||
} | ||
} // add in the timestamp | ||
/** | ||
* Generates a snapshot of the collected data. | ||
* | ||
* @returns {Object} | ||
* @access public | ||
*/ | ||
health() { | ||
const result = {}; | ||
for (const [name, bucket] of Object.entries(this.buckets)) { | ||
result[name] = bucket.collection.stats; | ||
} | ||
return result; | ||
} | ||
stats.ts = process.uptime(); // emit the stats! | ||
this.emit('stats', stats); | ||
}).catch(err => this.emit('error', err)); | ||
} | ||
/** | ||
* Generates a snapshot of the collected data. | ||
* | ||
* @returns {Object} | ||
* @access public | ||
*/ | ||
health() { | ||
const result = {}; | ||
for (const [name, bucket] of Object.entries(this.buckets)) { | ||
result[name] = bucket.collection.stats; | ||
} | ||
return result; | ||
} | ||
}; | ||
exports.default = Agent; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFnZW50LmpzIl0sIm5hbWVzIjpbIkFnZW50IiwiY29uc3RydWN0b3IiLCJvcHRzIiwiVHlwZUVycm9yIiwicG9sbEludGVydmFsIiwiTWF0aCIsIm1heCIsImJ1Y2tldHMiLCJjb2xsZWN0b3JzIiwiZ2V0U3RhdHMiLCJuYW1lIiwiY29sbGVjdGlvbiIsInN0YXRzIiwic3RhcnQiLCJpbml0Q3B1IiwiY3VycmVudENwdSIsInByb2Nlc3MiLCJjcHVVc2FnZSIsImluaXRIcnRpbWUiLCJjdXJyZW50SHJUaW1lIiwiaHJ0aW1lIiwiY2xlYXJUaW1lb3V0IiwicG9sbFRpbWVyIiwicG9sbCIsInN0b3AiLCJhZGRDb2xsZWN0b3IiLCJmbiIsInB1c2giLCJyZW1vdmVDb2xsZWN0b3IiLCJpIiwibGVuZ3RoIiwic3BsaWNlIiwiY3B1IiwibWVtIiwibWVtb3J5VXNhZ2UiLCJ1c2VyIiwic3lzdGVtIiwiZnJlZW1lbSIsImhlYXBUb3RhbCIsImhlYXBVc2VkIiwicnNzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInJlc29sdmUiLCJ0aGVuIiwicmVzdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwibm93IiwiRGF0ZSIsImRlbHRhIiwibGFzdFRpbWVzdGFtcCIsIm5leHQiLCJzZXRUaW1lb3V0IiwiYmluZCIsIm1pc3NlZCIsImZsb29yIiwia2V5cyIsImxhc3QiLCJoYXNPd25Qcm9wZXJ0eSIsInZhbHVlIiwiYnVja2V0IiwiYWRkIiwidHMiLCJ1cHRpbWUiLCJlbWl0IiwiY2F0Y2giLCJlcnIiLCJoZWFsdGgiLCJlbnRyaWVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBRUE7OztJQUdxQkEsSyxHQUFOLE1BQU1BLEtBQU4sOEJBQWlDO0FBQy9DOzs7Ozs7O0FBT0FDLGFBQVlDLE9BQU8sRUFBbkIsRUFBdUI7QUFDdEIsTUFBSSxDQUFDQSxJQUFELElBQVMsT0FBT0EsSUFBUCxLQUFnQixRQUE3QixFQUF1QztBQUN0QyxTQUFN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O0FBQ0EsVUFBSyxJQUFJOUIsSUFBSSxDQUFiLEVBQWdCQSxJQUFJMkIsTUFBcEIsRUFBNEIzQixHQUE1QixFQUFpQztBQUNoQ2lDLGFBQU9uRCxVQUFQLENBQWtCb0QsR0FBbEIsQ0FBc0IsQ0FBQ0YsUUFBUUYsSUFBVCxJQUFpQjlCLENBQWpCLEdBQXFCMkIsTUFBckIsR0FBOEJHLElBQXBEO0FBQ0E7O0FBRUQ7QUFDQUcsWUFBT25ELFVBQVAsQ0FBa0JvRCxHQUFsQixDQUFzQkYsS0FBdEI7QUFDQUMsWUFBT0gsSUFBUCxHQUFjRSxLQUFkO0FBQ0EsS0FkRCxNQWNPO0FBQ047QUFDQTtBQUNBLFlBQU8sS0FBS3RELE9BQUwsQ0FBYUcsSUFBYixDQUFQO0FBQ0E7QUFDRDs7QUFFRDtBQUNBRSxTQUFNb0QsRUFBTixHQUFXaEQsUUFBUWlELE1BQVIsRUFBWDs7QUFFQTtBQUNBLFFBQUtDLElBQUwsQ0FBVSxPQUFWLEVBQW1CdEQsS0FBbkI7QUFDQSxHQTdERixFQThERXVELEtBOURGLENBOERRQyxPQUFPLEtBQUtGLElBQUwsQ0FBVSxPQUFWLEVBQW1CRSxHQUFuQixDQTlEZjtBQStEQTs7QUFFRDs7Ozs7O0FBTUFDLFVBQVM7QUFDUixRQUFNdkIsU0FBUyxFQUFmO0FBQ0EsT0FBSyxNQUFNLENBQUVwQyxJQUFGLEVBQVFvRCxNQUFSLENBQVgsSUFBK0JmLE9BQU91QixPQUFQLENBQWUsS0FBSy9ELE9BQXBCLENBQS9CLEVBQTZEO0FBQzVEdUMsVUFBT3BDLElBQVAsSUFBZW9ELE9BQU9uRCxVQUFQLENBQWtCQyxLQUFqQztBQUNBO0FBQ0QsU0FBT2tDLE1BQVA7QUFDQTtBQTFNOEMsQztrQkFBM0I5QyxLIiwiZmlsZSI6ImFnZW50LmpzIiwic291cmNlUm9vdCI6InNyYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb2xsZWN0aW9uIGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuXG4vKipcbiAqIE1vbml0b3JzIHRoZSBjdXJyZW50IHByb2Nlc3MgZm9yIENQVSBhbmQgbWVtb3J5IHVzYWdlLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZ2VudCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG5cdC8qKlxuXHQgKiBDcmVhdGVzIHRoZSBBZ2VudCBpbnN0YW5jZS5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIFZhcmlvdXMgb3B0aW9ucy5cblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRzLnBvbGxJbnRlcnZhbD0xMDAwXSAtIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHBvbGwgdGhlIG1ldHJpY3MuXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihvcHRzID0ge30pIHtcblx0XHRpZiAoIW9wdHMgfHwgdHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBvcHRpb25zIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdH1cblxuXHRcdHN1cGVyKCk7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBwb2xsaW5nLlxuXHRcdCAqIEB0eXBlIHtOdW1iZXJ9XG5cdFx0ICovXG5cdFx0dGhpcy5wb2xsSW50ZXJ2YWwgPSBNYXRoLm1heCh+fm9wdHMucG9sbEludGVydmFsIHx8IDEwMDAsIDEpO1xuXG5cdFx0LyoqXG5cdFx0ICogQSBtYXAgb2YgbmFtZXMgdG8gY29sbGVjdGlvbnMuXG5cdFx0ICogQHR5cGUge09iamVjdH1cblx0XHQgKi9cblx0XHR0aGlzLmJ1Y2tldHMgPSB7fTtcblxuXHRcdC8qKlxuXHRcdCAqIEEgbGlzdCBvZiBmdW5jdGlvbnMgdG8gY2FsbCB3aGVuIHBvbGxpbmcgZm9yIHN0YXRzLlxuXHRcdCAqIEB0eXBlIHtBcnJheX1cblx0XHQgKi9cblx0XHR0aGlzLmNvbGxlY3RvcnMgPSBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGZXRjaGVzIHRoZSBzdGF0cyBmb3IgdGhlIGdpdmVuIGJ1Y2tldCBuYW1lLlxuXHQgKlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSAtIFRoZSBidWNrZXQgbmFtZS5cblx0ICogQHJldHVybnMge09iamVjdH1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGdldFN0YXRzKG5hbWUpIHtcblx0XHRyZXR1cm4gdGhpcy5idWNrZXRzW25hbWVdID8gdGhpcy5idWNrZXRzW25hbWVdLmNvbGxlY3Rpb24uc3RhdHMgOiBudWxsO1xuXHR9XG5cblx0LyoqXG5cdCAqIFN0YXJ0cyBtb25pdG9yaW5nIHRoZSBzeXN0ZW0uXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtBZ2VudH1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdHN0YXJ0KCkge1xuXHRcdHRoaXMuaW5pdENwdSA9IHRoaXMuY3VycmVudENwdSA9IHByb2Nlc3MuY3B1VXNhZ2UoKTtcblx0XHR0aGlzLmluaXRIcnRpbWUgPSB0aGlzLmN1cnJlbnRIclRpbWUgPSBwcm9jZXNzLmhydGltZSgpO1xuXG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMucG9sbFRpbWVyKTtcblx0XHR0aGlzLnBvbGwoKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFN0b3BzIG1vbml0b3JpbmcgdGhlIHN5c3RlbS5cblx0ICpcblx0ICogQHJldHVybnMge0FnZW50fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0c3RvcCgpIHtcblx0XHRjbGVhclRpbWVvdXQodGhpcy5wb2xsVGltZXIpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBuZXcgY29sbGVjdG9yLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiAtIFRoZSBjb2xsZWN0b3IgY2FsbGJhY2sgdG8gYWRkLlxuXHQgKiBAcmV0dXJucyB7QWdlbnR9XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhZGRDb2xsZWN0b3IoZm4pIHtcblx0XHRpZiAoIWZuIHx8IHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgY29sbGVjdG9yIHRvIGJlIGEgZnVuY3Rpb24nKTtcblx0XHR9XG5cdFx0dGhpcy5jb2xsZWN0b3JzLnB1c2goZm4pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYSBjb2xsZWN0b3IuXG5cdCAqXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIC0gVGhlIGNvbGxlY3RvciBjYWxsYmFjayB0byByZW1vdmUuXG5cdCAqIEByZXR1cm5zIHtBZ2VudH1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdHJlbW92ZUNvbGxlY3Rvcihmbikge1xuXHRcdGlmICghZm4gfHwgdHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBjb2xsZWN0b3IgdG8gYmUgYSBmdW5jdGlvbicpO1xuXHRcdH1cblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2xsZWN0b3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAodGhpcy5jb2xsZWN0b3JzW2ldID09PSBmbikge1xuXHRcdFx0XHR0aGlzLmNvbGxlY3RvcnMuc3BsaWNlKGktLSwgMSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogUG9sbHMgdGhlIENQVSBhbmQgbWVtb3J5LlxuXHQgKlxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdHBvbGwoKSB7XG5cdFx0Y29uc3QgY3B1ICAgID0gcHJvY2Vzcy5jcHVVc2FnZSh0aGlzLmluaXRDcHUpO1xuXHRcdGNvbnN0IGhydGltZSA9IHByb2Nlc3MuaHJ0aW1lKHRoaXMuaW5pdEhydGltZSk7XG5cdFx0Y29uc3QgbWVtICAgID0gcHJvY2Vzcy5tZW1vcnlVc2FnZSgpO1xuXHRcdGNvbnN0IHN0YXRzID0ge1xuXHRcdFx0Y3B1OiAgICAgICAoY3B1LnVzZXIgKyBjcHUuc3lzdGVtKSAvIChocnRpbWVbMF0gKiAxMDAwMDAwICsgaHJ0aW1lWzFdIC8gMTAwMCkgKiAxMDAsXG5cdFx0XHRmcmVlbWVtOiAgIG9zLmZyZWVtZW0oKSxcblx0XHRcdGhlYXBUb3RhbDogbWVtLmhlYXBUb3RhbCxcblx0XHRcdGhlYXBVc2VkOiAgbWVtLmhlYXBVc2VkLFxuXHRcdFx0cnNzOiAgICAgICBtZW0ucnNzXG5cdFx0fTtcblxuXHRcdFByb21pc2Vcblx0XHRcdC5hbGwodGhpcy5jb2xsZWN0b3JzLm1hcChmbiA9PiBQcm9taXNlLnJlc29sdmUoKVxuXHRcdFx0XHQudGhlbigoKSA9PiBmbigpKVxuXHRcdFx0XHQudGhlbihyZXN1bHQgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oc3RhdHMsIHJlc3VsdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0KSlcblx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0Ly8gZmlndXJlIG91dCBob3cgbG9uZyBpdCdzIGJlZW4gc2luY2Ugd2Ugc3RhcnRlZCB0aGUgbGFzdCBwb2xsXG5cdFx0XHRcdGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cdFx0XHRcdGNvbnN0IGRlbHRhID0gdGhpcy5sYXN0VGltZXN0YW1wID8gKG5vdyAtIHRoaXMubGFzdFRpbWVzdGFtcCkgOiAwO1xuXHRcdFx0XHR0aGlzLmxhc3RUaW1lc3RhbXAgPSBub3c7XG5cblx0XHRcdFx0Ly8gc2NoZWR1bGUgdGhlIG5leHQgcG9sbFxuXHRcdFx0XHRjb25zdCBuZXh0ID0gdGhpcy5wb2xsSW50ZXJ2YWwgLSAoZGVsdGEgJSB0aGlzLnBvbGxJbnRlcnZhbCk7XG5cdFx0XHRcdHRoaXMucG9sbFRpbWVyID0gc2V0VGltZW91dCh0aGlzLnBvbGwuYmluZCh0aGlzKSwgbmV4dCk7XG5cblx0XHRcdFx0Ly8gZmlndXJlIG91dCBob3cgbWFueSBpbnRlcnZhbHMgd2UgbWlzc2VkLCB3ZSdsbCBpbnRlcnBvbGF0ZSB0aGUgdmFsdWVzIGxhdGVyXG5cdFx0XHRcdGNvbnN0IG1pc3NlZCA9IE1hdGguZmxvb3IoKGRlbHRhIC0gdGhpcy5wb2xsSW50ZXJ2YWwpIC8gdGhpcy5wb2xsSW50ZXJ2YWwpICsgMTtcblxuXHRcdFx0XHQvLyBtYWtlIHN1cmUgd2UgaGF2ZSBjb2xsZWN0aW9ucyBmb3IgYWxsIHRoZSBkYXRhIHdlIHdhbnQgdG8gc3RvcmVcblx0XHRcdFx0Zm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKHN0YXRzKSkge1xuXHRcdFx0XHRcdGlmICghdGhpcy5idWNrZXRzW25hbWVdKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmJ1Y2tldHNbbmFtZV0gPSB7XG5cdFx0XHRcdFx0XHRcdGNvbGxlY3Rpb246IG5ldyBDb2xsZWN0aW9uKDYwICogMTUpLCAvLyAxNSBtaW51dGVzIHdvcnRoIG9mIGRhdGFcblx0XHRcdFx0XHRcdFx0bGFzdDogICAgICAgbnVsbFxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBhZGQgdGhlIHZhbHVlcyBmb3IgZWFjaCBzdGF0IHRvIGl0cyBidWNrZXQsIG9yIHNldCB6ZXJvIGlmIHdlIGRvbid0IGhhdmUgYSB2YWx1ZVxuXHRcdFx0XHQvLyBmb3IgdGhpcyBwb2xsXG5cdFx0XHRcdGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh0aGlzLmJ1Y2tldHMpKSB7XG5cdFx0XHRcdFx0aWYgKHN0YXRzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB2YWx1ZSA9IHN0YXRzW25hbWVdO1xuXHRcdFx0XHRcdFx0Y29uc3QgYnVja2V0ID0gdGhpcy5idWNrZXRzW25hbWVdO1xuXHRcdFx0XHRcdFx0bGV0IGxhc3QgPSBidWNrZXQubGFzdCB8fCAwO1xuXG5cdFx0XHRcdFx0XHQvLyBpZiB3ZSBtaXNzZWQgYW55IGludGVydmFscywgaW50ZXJwb2xhdGUgdGhlIHZhbHVlc1xuXHRcdFx0XHRcdFx0Ly8gbm90ZSB0aGF0IHdlIGRvbid0IGVtaXQgc3RhdHMgZm9yIG1pc3NlZCBpbnRlcnZhbHNcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAxOyBpIDwgbWlzc2VkOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0YnVja2V0LmNvbGxlY3Rpb24uYWRkKCh2YWx1ZSAtIGxhc3QpICogaSAvIG1pc3NlZCArIGxhc3QpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBhZGQgdGhlIHZhbHVlIGFuZCBzZXQgaXQgYXMgdGhlIGxhc3QgdmFsdWVcblx0XHRcdFx0XHRcdGJ1Y2tldC5jb2xsZWN0aW9uLmFkZCh2YWx1ZSk7XG5cdFx0XHRcdFx0XHRidWNrZXQubGFzdCA9IHZhbHVlO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQvLyB0aGUgYnVja2V0IGRpZG4ndCByZWNlaXZlIGEgdmFsdWUgc28gdGhhdCBwcm9iYWJseSBtZWFucyB0aGUgY29sbGVjdG9yXG5cdFx0XHRcdFx0XHQvLyB3YXMgcmVtb3ZlZCBvciB0aGUgYnVja2V0IGlzIG5vIGxvbmdlciBtb25pdG9yZWQsIHNvIHJlbW92ZSB0aGUgYnVja2V0XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5idWNrZXRzW25hbWVdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGFkZCBpbiB0aGUgdGltZXN0YW1wXG5cdFx0XHRcdHN0YXRzLnRzID0gcHJvY2Vzcy51cHRpbWUoKTtcblxuXHRcdFx0XHQvLyBlbWl0IHRoZSBzdGF0cyFcblx0XHRcdFx0dGhpcy5lbWl0KCdzdGF0cycsIHN0YXRzKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZXJyID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBzbmFwc2hvdCBvZiB0aGUgY29sbGVjdGVkIGRhdGEuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtPYmplY3R9XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRoZWFsdGgoKSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0ge307XG5cdFx0Zm9yIChjb25zdCBbIG5hbWUsIGJ1Y2tldCBdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuYnVja2V0cykpIHtcblx0XHRcdHJlc3VsdFtuYW1lXSA9IGJ1Y2tldC5jb2xsZWN0aW9uLnN0YXRzO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG59XG4iXX0= | ||
exports.default = Agent; |
@@ -1,12 +0,10 @@ | ||
'use strict'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
exports.default = undefined; | ||
exports.default = void 0; | ||
var _nanobuffer = require('nanobuffer'); | ||
var _nanobuffer = _interopRequireDefault(require("nanobuffer")); | ||
var _nanobuffer2 = _interopRequireDefault(_nanobuffer); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -18,68 +16,70 @@ | ||
let Collection = class Collection { | ||
/** | ||
* Creates the collection instance and initializes the value buffer. | ||
* | ||
* @param {Number} size - The number of values to buffer. | ||
* @access public | ||
*/ | ||
constructor(size) { | ||
this.values = new _nanobuffer2.default(size); | ||
this.min = null; | ||
this.max = null; | ||
this.avg = null; | ||
} | ||
/** | ||
* Creates the collection instance and initializes the value buffer. | ||
* | ||
* @param {Number} size - The number of values to buffer. | ||
* @access public | ||
*/ | ||
constructor(size) { | ||
this.values = new _nanobuffer.default(size); | ||
this.min = null; | ||
this.max = null; | ||
this.avg = null; | ||
} | ||
/** | ||
* Adds a value to the collection and recomputes the minimum, maximum, and average. | ||
* | ||
* @param {Number} value - The value to add to the collection. | ||
* @returns {Collection} | ||
* @access public | ||
*/ | ||
/** | ||
* Adds a value to the collection and recomputes the minimum, maximum, and average. | ||
* | ||
* @param {Number} value - The value to add to the collection. | ||
* @returns {Collection} | ||
* @access public | ||
*/ | ||
add(value) { | ||
if (typeof value !== 'number' || isNaN(value)) { | ||
throw TypeError('Expected value to be a number'); | ||
} | ||
this.values.push(value); | ||
add(value) { | ||
if (typeof value !== 'number' || isNaN(value)) { | ||
throw TypeError('Expected value to be a number'); | ||
} | ||
if (this.values.size === 1) { | ||
this.min = this.max = this.avg = value; | ||
} else { | ||
let total = 0; | ||
this.values.push(value); | ||
for (const counter of this.values) { | ||
total += counter; | ||
if (this.values.size === 1) { | ||
this.min = this.max = this.avg = value; | ||
} else { | ||
let total = 0; | ||
if (counter < this.min) { | ||
this.min = counter; | ||
} | ||
for (const counter of this.values) { | ||
total += counter; | ||
if (counter > this.max) { | ||
this.max = counter; | ||
} | ||
} | ||
if (counter < this.min) { | ||
this.min = counter; | ||
} | ||
this.avg = total / this.values.size; | ||
} | ||
if (counter > this.max) { | ||
this.max = counter; | ||
} | ||
} | ||
return this; | ||
} | ||
this.avg = total / this.values.size; | ||
} | ||
/** | ||
* Returns a snapshot of the contents of this collection. | ||
* | ||
* @returns {Object} | ||
* @access public | ||
*/ | ||
get stats() { | ||
return { | ||
values: Array.from(this.values), | ||
min: this.min, | ||
max: this.max, | ||
avg: this.avg | ||
}; | ||
} | ||
return this; | ||
} | ||
/** | ||
* Returns a snapshot of the contents of this collection. | ||
* | ||
* @returns {Object} | ||
* @access public | ||
*/ | ||
get stats() { | ||
return { | ||
values: Array.from(this.values), | ||
min: this.min, | ||
max: this.max, | ||
avg: this.avg | ||
}; | ||
} | ||
}; | ||
exports.default = Collection; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbGxlY3Rpb24uanMiXSwibmFtZXMiOlsiQ29sbGVjdGlvbiIsImNvbnN0cnVjdG9yIiwic2l6ZSIsInZhbHVlcyIsIm1pbiIsIm1heCIsImF2ZyIsImFkZCIsInZhbHVlIiwiaXNOYU4iLCJUeXBlRXJyb3IiLCJwdXNoIiwidG90YWwiLCJjb3VudGVyIiwic3RhdHMiLCJBcnJheSIsImZyb20iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7O0FBRUE7OztJQUdxQkEsVSxHQUFOLE1BQU1BLFVBQU4sQ0FBaUI7QUFDL0I7Ozs7OztBQU1BQyxhQUFZQyxJQUFaLEVBQWtCO0FBQ2pCLE9BQUtDLE1BQUwsR0FBYyx5QkFBZUQsSUFBZixDQUFkO0FBQ0EsT0FBS0UsR0FBTCxHQUFXLElBQVg7QUFDQSxPQUFLQyxHQUFMLEdBQVcsSUFBWDtBQUNBLE9BQUtDLEdBQUwsR0FBVyxJQUFYO0FBQ0E7O0FBRUQ7Ozs7Ozs7QUFPQUMsS0FBSUMsS0FBSixFQUFXO0FBQ1YsTUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQWpCLElBQTZCQyxNQUFNRCxLQUFOLENBQWpDLEVBQStDO0FBQzlDLFNBQU1FLFVBQVUsK0JBQVYsQ0FBTjtBQUNBOztBQUVELE9BQUtQLE1BQUwsQ0FBWVEsSUFBWixDQUFpQkgsS0FBakI7O0FBRUEsTUFBSSxLQUFLTCxNQUFMLENBQVlELElBQVosS0FBcUIsQ0FBekIsRUFBNEI7QUFDM0IsUUFBS0UsR0FBTCxHQUFXLEtBQUtDLEdBQUwsR0FBVyxLQUFLQyxHQUFMLEdBQVdFLEtBQWpDO0FBQ0EsR0FGRCxNQUVPO0FBQ04sT0FBSUksUUFBUSxDQUFaOztBQUVBLFFBQUssTUFBTUMsT0FBWCxJQUFzQixLQUFLVixNQUEzQixFQUFtQztBQUNsQ1MsYUFBU0MsT0FBVDs7QUFFQSxRQUFJQSxVQUFVLEtBQUtULEdBQW5CLEVBQXdCO0FBQ3ZCLFVBQUtBLEdBQUwsR0FBV1MsT0FBWDtBQUNBOztBQUVELFFBQUlBLFVBQVUsS0FBS1IsR0FBbkIsRUFBd0I7QUFDdkIsVUFBS0EsR0FBTCxHQUFXUSxPQUFYO0FBQ0E7QUFDRDs7QUFFRCxRQUFLUCxHQUFMLEdBQVdNLFFBQVEsS0FBS1QsTUFBTCxDQUFZRCxJQUEvQjtBQUNBOztBQUVELFNBQU8sSUFBUDtBQUNBOztBQUVEOzs7Ozs7QUFNQSxLQUFJWSxLQUFKLEdBQVk7QUFDWCxTQUFPO0FBQ05YLFdBQVFZLE1BQU1DLElBQU4sQ0FBVyxLQUFLYixNQUFoQixDQURGO0FBRU5DLFFBQVEsS0FBS0EsR0FGUDtBQUdOQyxRQUFRLEtBQUtBLEdBSFA7QUFJTkMsUUFBUSxLQUFLQTtBQUpQLEdBQVA7QUFNQTtBQWhFOEIsQztrQkFBWE4sVSIsImZpbGUiOiJjb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6InNyYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOYW5vQnVmZmVyIGZyb20gJ25hbm9idWZmZXInO1xuXG4vKipcbiAqIFN0b3JlcyBhbmQgY29tcHV0ZXMgc3RhdHMgb24gYSBjb2xsZWN0aW9uIG9mIG51bWJlcnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbGxlY3Rpb24ge1xuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgY29sbGVjdGlvbiBpbnN0YW5jZSBhbmQgaW5pdGlhbGl6ZXMgdGhlIHZhbHVlIGJ1ZmZlci5cblx0ICpcblx0ICogQHBhcmFtIHtOdW1iZXJ9IHNpemUgLSBUaGUgbnVtYmVyIG9mIHZhbHVlcyB0byBidWZmZXIuXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihzaXplKSB7XG5cdFx0dGhpcy52YWx1ZXMgPSBuZXcgTmFub0J1ZmZlcihzaXplKTtcblx0XHR0aGlzLm1pbiA9IG51bGw7XG5cdFx0dGhpcy5tYXggPSBudWxsO1xuXHRcdHRoaXMuYXZnID0gbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgdmFsdWUgdG8gdGhlIGNvbGxlY3Rpb24gYW5kIHJlY29tcHV0ZXMgdGhlIG1pbmltdW0sIG1heGltdW0sIGFuZCBhdmVyYWdlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge051bWJlcn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gYWRkIHRvIHRoZSBjb2xsZWN0aW9uLlxuXHQgKiBAcmV0dXJucyB7Q29sbGVjdGlvbn1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFkZCh2YWx1ZSkge1xuXHRcdGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInIHx8IGlzTmFOKHZhbHVlKSkge1xuXHRcdFx0dGhyb3cgVHlwZUVycm9yKCdFeHBlY3RlZCB2YWx1ZSB0byBiZSBhIG51bWJlcicpO1xuXHRcdH1cblxuXHRcdHRoaXMudmFsdWVzLnB1c2godmFsdWUpO1xuXG5cdFx0aWYgKHRoaXMudmFsdWVzLnNpemUgPT09IDEpIHtcblx0XHRcdHRoaXMubWluID0gdGhpcy5tYXggPSB0aGlzLmF2ZyA9IHZhbHVlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRsZXQgdG90YWwgPSAwO1xuXG5cdFx0XHRmb3IgKGNvbnN0IGNvdW50ZXIgb2YgdGhpcy52YWx1ZXMpIHtcblx0XHRcdFx0dG90YWwgKz0gY291bnRlcjtcblxuXHRcdFx0XHRpZiAoY291bnRlciA8IHRoaXMubWluKSB7XG5cdFx0XHRcdFx0dGhpcy5taW4gPSBjb3VudGVyO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGNvdW50ZXIgPiB0aGlzLm1heCkge1xuXHRcdFx0XHRcdHRoaXMubWF4ID0gY291bnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmF2ZyA9IHRvdGFsIC8gdGhpcy52YWx1ZXMuc2l6ZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGEgc25hcHNob3Qgb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgY29sbGVjdGlvbi5cblx0ICpcblx0ICogQHJldHVybnMge09iamVjdH1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGdldCBzdGF0cygpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dmFsdWVzOiBBcnJheS5mcm9tKHRoaXMudmFsdWVzKSxcblx0XHRcdG1pbjogICAgdGhpcy5taW4sXG5cdFx0XHRtYXg6ICAgIHRoaXMubWF4LFxuXHRcdFx0YXZnOiAgICB0aGlzLmF2Z1xuXHRcdH07XG5cdH1cbn1cbiJdfQ== | ||
exports.default = Collection; |
@@ -1,16 +0,15 @@ | ||
'use strict'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
Object.defineProperty(exports, "default", { | ||
enumerable: true, | ||
get: function () { | ||
return _agent.default; | ||
} | ||
}); | ||
var _agent = require('./agent'); | ||
var _agent = _interopRequireDefault(require("./agent")); | ||
Object.defineProperty(exports, 'default', { | ||
enumerable: true, | ||
get: function () { | ||
return _interopRequireDefault(_agent).default; | ||
} | ||
}); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -20,4 +19,3 @@ | ||
if (!Error.prepareStackTrace) { | ||
require('source-map-support/register'); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJFcnJvciIsInByZXBhcmVTdGFja1RyYWNlIiwicmVxdWlyZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7d0NBS1NBLE87Ozs7OztBQUxUO0FBQ0EsSUFBSSxDQUFDQyxNQUFNQyxpQkFBWCxFQUE4QjtBQUM3QkMsU0FBUSw2QkFBUjtBQUNBIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlUm9vdCI6InNyYyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKCFFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSkge1xuXHRyZXF1aXJlKCdzb3VyY2UtbWFwLXN1cHBvcnQvcmVnaXN0ZXInKTtcbn1cblxuZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJy4vYWdlbnQnO1xuIl19 | ||
require('source-map-support/register'); | ||
} |
{ | ||
"name": "appcd-agent", | ||
"version": "1.0.1", | ||
"version": "1.1.0-0", | ||
"description": "Monitors a Node.js process and tracks CPU and memory usage.", | ||
@@ -20,6 +20,6 @@ "main": "./dist/index", | ||
"nanobuffer": "^1.0.0", | ||
"source-map-support": "^0.5.0" | ||
"source-map-support": "^0.5.4" | ||
}, | ||
"devDependencies": { | ||
"appcd-gulp": "^1.0.1", | ||
"appcd-gulp": "^1.1.0-0", | ||
"gulp": "^3.9.1" | ||
@@ -26,0 +26,0 @@ }, |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9470
6
261
1
Updatedsource-map-support@^0.5.4