mirror of
https://github.com/yldio/copilot.git
synced 2024-11-28 14:10:04 +02:00
integrate docker-compose-api into portal-data (#451)
this might break tests for now
This commit is contained in:
parent
813fe9f814
commit
cf737aa2e7
@ -11,7 +11,13 @@
|
||||
],
|
||||
"plugins": [
|
||||
"babel-plugin-transform-flow-strip-types",
|
||||
"external-helpers",
|
||||
"istanbul"
|
||||
]
|
||||
"external-helpers"
|
||||
],
|
||||
"env": {
|
||||
"test": {
|
||||
"plugins": [
|
||||
"istanbul"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
158
docker-compose-client/dist/index.es.js
vendored
Normal file
158
docker-compose-client/dist/index.es.js
vendored
Normal file
@ -0,0 +1,158 @@
|
||||
var classCallCheck = function (instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
};
|
||||
|
||||
var createClass = function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
};
|
||||
}();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var inherits = function (subClass, superClass) {
|
||||
if (typeof superClass !== "function" && superClass !== null) {
|
||||
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||
}
|
||||
|
||||
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||||
constructor: {
|
||||
value: subClass,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var newArrowCheck = function (innerThis, boundThis) {
|
||||
if (innerThis !== boundThis) {
|
||||
throw new TypeError("Cannot instantiate an arrow function");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var possibleConstructorReturn = function (self, call) {
|
||||
if (!self) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
||||
};
|
||||
|
||||
var _require = require('zerorpc');
|
||||
var Client = _require.Client;
|
||||
|
||||
var _require2 = require('events');
|
||||
var EventEmitter = _require2.EventEmitter;
|
||||
|
||||
var awaitify = require('apr-awaitify');
|
||||
|
||||
var DockerComposeClient = function (_EventEmitter) {
|
||||
inherits(DockerComposeClient, _EventEmitter);
|
||||
|
||||
function DockerComposeClient() {
|
||||
var _this2 = this;
|
||||
|
||||
var endpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'tcp://0.0.0.0:4242';
|
||||
classCallCheck(this, DockerComposeClient);
|
||||
|
||||
var _this = possibleConstructorReturn(this, (DockerComposeClient.__proto__ || Object.getPrototypeOf(DockerComposeClient)).call(this));
|
||||
|
||||
_this.client = new Client({
|
||||
heartbeatInterval: 60 * 4 * 1000, // 4m
|
||||
timeout: 60 * 30 });
|
||||
|
||||
_this.client.connect(endpoint);
|
||||
_this.client.on('error', function (err) {
|
||||
newArrowCheck(this, _this2);
|
||||
return _this.emit('error', err);
|
||||
}.bind(this));
|
||||
|
||||
_this._invoke = awaitify(_this._invoke.bind(_this));
|
||||
return _this;
|
||||
}
|
||||
|
||||
// Why isn't client.connect async with error??
|
||||
|
||||
|
||||
createClass(DockerComposeClient, [{
|
||||
key: '_invoke',
|
||||
value: function _invoke(name) {
|
||||
var _client;
|
||||
|
||||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
args[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
return (_client = this.client).invoke.apply(_client, [name].concat(args));
|
||||
}
|
||||
}, {
|
||||
key: 'close',
|
||||
value: function close() {
|
||||
return this.client.close();
|
||||
}
|
||||
}, {
|
||||
key: 'provision',
|
||||
value: function provision(_ref) {
|
||||
var projectName = _ref.projectName,
|
||||
manifest = _ref.manifest;
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
return this._invoke('up', { project_name: projectName }, manifest);
|
||||
}
|
||||
}, {
|
||||
key: 'scale',
|
||||
value: function scale(_ref2) {
|
||||
var _this3 = this;
|
||||
|
||||
var projectName = _ref2.projectName,
|
||||
services = _ref2.services,
|
||||
manifest = _ref2.manifest;
|
||||
|
||||
return this._invoke('scale', {
|
||||
// eslint-disable-next-line camelcase
|
||||
project_name: projectName,
|
||||
services: Object.keys(services).map(function (name) {
|
||||
newArrowCheck(this, _this3);
|
||||
return {
|
||||
name: name,
|
||||
num: services[name]
|
||||
};
|
||||
}.bind(this))
|
||||
}, manifest);
|
||||
}
|
||||
}]);
|
||||
return DockerComposeClient;
|
||||
}(EventEmitter);
|
||||
|
||||
module.exports = DockerComposeClient;
|
||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IENsaWVudCB9ID0gcmVxdWlyZSgnemVyb3JwYycpO1xuY29uc3QgeyBFdmVudEVtaXR0ZXIgfSA9IHJlcXVpcmUoJ2V2ZW50cycpO1xuY29uc3QgYXdhaXRpZnkgPSByZXF1aXJlKCdhcHItYXdhaXRpZnknKTtcblxuY2xhc3MgRG9ja2VyQ29tcG9zZUNsaWVudCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIGNvbnN0cnVjdG9yKGVuZHBvaW50ID0gJ3RjcDovLzAuMC4wLjA6NDI0MicpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5jbGllbnQgPSBuZXcgQ2xpZW50KHtcbiAgICAgIGhlYXJ0YmVhdEludGVydmFsOiA2MCAqIDQgKiAxMDAwLCAvLyA0bVxuICAgICAgdGltZW91dDogNjAgKiAzMCwgLy8gMzBtXG4gICAgfSk7XG5cbiAgICB0aGlzLmNsaWVudC5jb25uZWN0KGVuZHBvaW50KTtcbiAgICB0aGlzLmNsaWVudC5vbignZXJyb3InLCBlcnIgPT4gdGhpcy5lbWl0KCdlcnJvcicsIGVycikpO1xuXG4gICAgdGhpcy5faW52b2tlID0gYXdhaXRpZnkodGhpcy5faW52b2tlLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLy8gV2h5IGlzbid0IGNsaWVudC5jb25uZWN0IGFzeW5jIHdpdGggZXJyb3I/P1xuICBfaW52b2tlKG5hbWUsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuaW52b2tlKG5hbWUsIC4uLmFyZ3MpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmNsb3NlKCk7XG4gIH1cblxuICBwcm92aXNpb24oeyBwcm9qZWN0TmFtZSwgbWFuaWZlc3QgfSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKCd1cCcsIHsgcHJvamVjdF9uYW1lOiBwcm9qZWN0TmFtZSB9LCBtYW5pZmVzdCk7XG4gIH1cblxuICBzY2FsZSh7IHByb2plY3ROYW1lLCBzZXJ2aWNlcywgbWFuaWZlc3QgfSkge1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAnc2NhbGUnLFxuICAgICAge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG4gICAgICAgIHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUsXG4gICAgICAgIHNlcnZpY2VzOiBPYmplY3Qua2V5cyhzZXJ2aWNlcykubWFwKG5hbWUgPT4gKHtcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIG51bTogc2VydmljZXNbbmFtZV1cbiAgICAgICAgfSkpXG4gICAgICB9LFxuICAgICAgbWFuaWZlc3RcbiAgICApO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRG9ja2VyQ29tcG9zZUNsaWVudDtcbiJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiQ2xpZW50IiwiRXZlbnRFbWl0dGVyIiwiYXdhaXRpZnkiLCJEb2NrZXJDb21wb3NlQ2xpZW50IiwiZW5kcG9pbnQiLCJjbGllbnQiLCJjb25uZWN0Iiwib24iLCJlbWl0IiwiZXJyIiwiX2ludm9rZSIsImJpbmQiLCJuYW1lIiwiYXJncyIsImludm9rZSIsImNsb3NlIiwicHJvamVjdE5hbWUiLCJtYW5pZmVzdCIsInByb2plY3RfbmFtZSIsInNlcnZpY2VzIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFBbUJBLFFBQVEsU0FBUjtJQUFYQyxrQkFBQUE7O2dCQUNpQkQsUUFBUSxRQUFSO0lBQWpCRSx5QkFBQUE7O0FBQ1IsSUFBTUMsV0FBV0gsUUFBUSxjQUFSLENBQWpCOztJQUVNSTs7O2lDQUN5Qzs7O1FBQWpDQyxRQUFpQyx1RUFBdEIsb0JBQXNCOzs7OztVQUd0Q0MsTUFBTCxHQUFjLElBQUlMLE1BQUosQ0FBVzt5QkFDSixLQUFLLENBQUwsR0FBUyxJQURMO2VBRWQsS0FBSyxFQUZTLEVBQVgsQ0FBZDs7VUFLS0ssTUFBTCxDQUFZQyxPQUFaLENBQW9CRixRQUFwQjtVQUNLQyxNQUFMLENBQVlFLEVBQVosQ0FBZSxPQUFmLEVBQXdCOzthQUFPLE1BQUtDLElBQUwsQ0FBVSxPQUFWLEVBQW1CQyxHQUFuQixDQUFQO0tBQXhCOztVQUVLQyxPQUFMLEdBQWVSLFNBQVMsTUFBS1EsT0FBTCxDQUFhQyxJQUFiLE9BQVQsQ0FBZjs7Ozs7Ozs7OzRCQUlNQyxNQUFlOzs7d0NBQU5DLElBQU07WUFBQTs7O2FBQ2QsZ0JBQUtSLE1BQUwsRUFBWVMsTUFBWixpQkFBbUJGLElBQW5CLFNBQTRCQyxJQUE1QixFQUFQOzs7OzRCQUdNO2FBQ0MsS0FBS1IsTUFBTCxDQUFZVSxLQUFaLEVBQVA7Ozs7b0NBR21DO1VBQXpCQyxXQUF5QixRQUF6QkEsV0FBeUI7VUFBWkMsUUFBWSxRQUFaQSxRQUFZOzs7YUFFNUIsS0FBS1AsT0FBTCxDQUFhLElBQWIsRUFBbUIsRUFBRVEsY0FBY0YsV0FBaEIsRUFBbkIsRUFBa0RDLFFBQWxELENBQVA7Ozs7aUNBR3lDOzs7VUFBbkNELFdBQW1DLFNBQW5DQSxXQUFtQztVQUF0QkcsUUFBc0IsU0FBdEJBLFFBQXNCO1VBQVpGLFFBQVksU0FBWkEsUUFBWTs7YUFDbEMsS0FBS1AsT0FBTCxDQUNMLE9BREssRUFFTDs7c0JBRWdCTSxXQUZoQjtrQkFHWUksT0FBT0MsSUFBUCxDQUFZRixRQUFaLEVBQXNCRyxHQUF0QixDQUEwQjs7aUJBQVM7c0JBQUE7aUJBRXRDSCxTQUFTUCxJQUFUO1dBRjZCO1NBQTFCO09BTFAsRUFVTEssUUFWSyxDQUFQOzs7O0VBOUI4QmhCOztBQTZDbENzQixPQUFPQyxPQUFQLEdBQWlCckIsbUJBQWpCIn0=
|
166
docker-compose-client/dist/index.umd.js
vendored
Normal file
166
docker-compose-client/dist/index.umd.js
vendored
Normal file
@ -0,0 +1,166 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
var classCallCheck = function (instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
};
|
||||
|
||||
var createClass = function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
};
|
||||
}();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var inherits = function (subClass, superClass) {
|
||||
if (typeof superClass !== "function" && superClass !== null) {
|
||||
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||
}
|
||||
|
||||
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||||
constructor: {
|
||||
value: subClass,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var newArrowCheck = function (innerThis, boundThis) {
|
||||
if (innerThis !== boundThis) {
|
||||
throw new TypeError("Cannot instantiate an arrow function");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var possibleConstructorReturn = function (self, call) {
|
||||
if (!self) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
||||
};
|
||||
|
||||
var _require = require('zerorpc');
|
||||
var Client = _require.Client;
|
||||
|
||||
var _require2 = require('events');
|
||||
var EventEmitter = _require2.EventEmitter;
|
||||
|
||||
var awaitify = require('apr-awaitify');
|
||||
|
||||
var DockerComposeClient = function (_EventEmitter) {
|
||||
inherits(DockerComposeClient, _EventEmitter);
|
||||
|
||||
function DockerComposeClient() {
|
||||
var _this2 = this;
|
||||
|
||||
var endpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'tcp://0.0.0.0:4242';
|
||||
classCallCheck(this, DockerComposeClient);
|
||||
|
||||
var _this = possibleConstructorReturn(this, (DockerComposeClient.__proto__ || Object.getPrototypeOf(DockerComposeClient)).call(this));
|
||||
|
||||
_this.client = new Client({
|
||||
heartbeatInterval: 60 * 4 * 1000, // 4m
|
||||
timeout: 60 * 30 });
|
||||
|
||||
_this.client.connect(endpoint);
|
||||
_this.client.on('error', function (err) {
|
||||
newArrowCheck(this, _this2);
|
||||
return _this.emit('error', err);
|
||||
}.bind(this));
|
||||
|
||||
_this._invoke = awaitify(_this._invoke.bind(_this));
|
||||
return _this;
|
||||
}
|
||||
|
||||
// Why isn't client.connect async with error??
|
||||
|
||||
|
||||
createClass(DockerComposeClient, [{
|
||||
key: '_invoke',
|
||||
value: function _invoke(name) {
|
||||
var _client;
|
||||
|
||||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
args[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
return (_client = this.client).invoke.apply(_client, [name].concat(args));
|
||||
}
|
||||
}, {
|
||||
key: 'close',
|
||||
value: function close() {
|
||||
return this.client.close();
|
||||
}
|
||||
}, {
|
||||
key: 'provision',
|
||||
value: function provision(_ref) {
|
||||
var projectName = _ref.projectName,
|
||||
manifest = _ref.manifest;
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
return this._invoke('up', { project_name: projectName }, manifest);
|
||||
}
|
||||
}, {
|
||||
key: 'scale',
|
||||
value: function scale(_ref2) {
|
||||
var _this3 = this;
|
||||
|
||||
var projectName = _ref2.projectName,
|
||||
services = _ref2.services,
|
||||
manifest = _ref2.manifest;
|
||||
|
||||
return this._invoke('scale', {
|
||||
// eslint-disable-next-line camelcase
|
||||
project_name: projectName,
|
||||
services: Object.keys(services).map(function (name) {
|
||||
newArrowCheck(this, _this3);
|
||||
return {
|
||||
name: name,
|
||||
num: services[name]
|
||||
};
|
||||
}.bind(this))
|
||||
}, manifest);
|
||||
}
|
||||
}]);
|
||||
return DockerComposeClient;
|
||||
}(EventEmitter);
|
||||
|
||||
module.exports = DockerComposeClient;
|
||||
|
||||
})));
|
||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBDbGllbnQgfSA9IHJlcXVpcmUoJ3plcm9ycGMnKTtcbmNvbnN0IHsgRXZlbnRFbWl0dGVyIH0gPSByZXF1aXJlKCdldmVudHMnKTtcbmNvbnN0IGF3YWl0aWZ5ID0gcmVxdWlyZSgnYXByLWF3YWl0aWZ5Jyk7XG5cbmNsYXNzIERvY2tlckNvbXBvc2VDbGllbnQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBjb25zdHJ1Y3RvcihlbmRwb2ludCA9ICd0Y3A6Ly8wLjAuMC4wOjQyNDInKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuY2xpZW50ID0gbmV3IENsaWVudCh7XG4gICAgICBoZWFydGJlYXRJbnRlcnZhbDogNjAgKiA0ICogMTAwMCwgLy8gNG1cbiAgICAgIHRpbWVvdXQ6IDYwICogMzAsIC8vIDMwbVxuICAgIH0pO1xuXG4gICAgdGhpcy5jbGllbnQuY29ubmVjdChlbmRwb2ludCk7XG4gICAgdGhpcy5jbGllbnQub24oJ2Vycm9yJywgZXJyID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpKTtcblxuICAgIHRoaXMuX2ludm9rZSA9IGF3YWl0aWZ5KHRoaXMuX2ludm9rZS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8vIFdoeSBpc24ndCBjbGllbnQuY29ubmVjdCBhc3luYyB3aXRoIGVycm9yPz9cbiAgX2ludm9rZShuYW1lLCAuLi5hcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50Lmludm9rZShuYW1lLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdmlzaW9uKHsgcHJvamVjdE5hbWUsIG1hbmlmZXN0IH0pIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgndXAnLCB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSwgbWFuaWZlc3QpO1xuICB9XG5cbiAgc2NhbGUoeyBwcm9qZWN0TmFtZSwgc2VydmljZXMsIG1hbmlmZXN0IH0pIHtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKFxuICAgICAgJ3NjYWxlJyxcbiAgICAgIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuICAgICAgICBwcm9qZWN0X25hbWU6IHByb2plY3ROYW1lLFxuICAgICAgICBzZXJ2aWNlczogT2JqZWN0LmtleXMoc2VydmljZXMpLm1hcChuYW1lID0+ICh7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBudW06IHNlcnZpY2VzW25hbWVdXG4gICAgICAgIH0pKVxuICAgICAgfSxcbiAgICAgIG1hbmlmZXN0XG4gICAgKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IERvY2tlckNvbXBvc2VDbGllbnQ7XG4iXSwibmFtZXMiOlsicmVxdWlyZSIsIkNsaWVudCIsIkV2ZW50RW1pdHRlciIsImF3YWl0aWZ5IiwiRG9ja2VyQ29tcG9zZUNsaWVudCIsImVuZHBvaW50IiwiY2xpZW50IiwiY29ubmVjdCIsIm9uIiwiZW1pdCIsImVyciIsIl9pbnZva2UiLCJiaW5kIiwibmFtZSIsImFyZ3MiLCJpbnZva2UiLCJjbG9zZSIsInByb2plY3ROYW1lIiwibWFuaWZlc3QiLCJwcm9qZWN0X25hbWUiLCJzZXJ2aWNlcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBQW1CQSxRQUFRLFNBQVI7SUFBWEMsa0JBQUFBOztnQkFDaUJELFFBQVEsUUFBUjtJQUFqQkUseUJBQUFBOztBQUNSLElBQU1DLFdBQVdILFFBQVEsY0FBUixDQUFqQjs7SUFFTUk7OztpQ0FDeUM7OztRQUFqQ0MsUUFBaUMsdUVBQXRCLG9CQUFzQjs7Ozs7VUFHdENDLE1BQUwsR0FBYyxJQUFJTCxNQUFKLENBQVc7eUJBQ0osS0FBSyxDQUFMLEdBQVMsSUFETDtlQUVkLEtBQUssRUFGUyxFQUFYLENBQWQ7O1VBS0tLLE1BQUwsQ0FBWUMsT0FBWixDQUFvQkYsUUFBcEI7VUFDS0MsTUFBTCxDQUFZRSxFQUFaLENBQWUsT0FBZixFQUF3Qjs7YUFBTyxNQUFLQyxJQUFMLENBQVUsT0FBVixFQUFtQkMsR0FBbkIsQ0FBUDtLQUF4Qjs7VUFFS0MsT0FBTCxHQUFlUixTQUFTLE1BQUtRLE9BQUwsQ0FBYUMsSUFBYixPQUFULENBQWY7Ozs7Ozs7Ozs0QkFJTUMsTUFBZTs7O3dDQUFOQyxJQUFNO1lBQUE7OzthQUNkLGdCQUFLUixNQUFMLEVBQVlTLE1BQVosaUJBQW1CRixJQUFuQixTQUE0QkMsSUFBNUIsRUFBUDs7Ozs0QkFHTTthQUNDLEtBQUtSLE1BQUwsQ0FBWVUsS0FBWixFQUFQOzs7O29DQUdtQztVQUF6QkMsV0FBeUIsUUFBekJBLFdBQXlCO1VBQVpDLFFBQVksUUFBWkEsUUFBWTs7O2FBRTVCLEtBQUtQLE9BQUwsQ0FBYSxJQUFiLEVBQW1CLEVBQUVRLGNBQWNGLFdBQWhCLEVBQW5CLEVBQWtEQyxRQUFsRCxDQUFQOzs7O2lDQUd5Qzs7O1VBQW5DRCxXQUFtQyxTQUFuQ0EsV0FBbUM7VUFBdEJHLFFBQXNCLFNBQXRCQSxRQUFzQjtVQUFaRixRQUFZLFNBQVpBLFFBQVk7O2FBQ2xDLEtBQUtQLE9BQUwsQ0FDTCxPQURLLEVBRUw7O3NCQUVnQk0sV0FGaEI7a0JBR1lJLE9BQU9DLElBQVAsQ0FBWUYsUUFBWixFQUFzQkcsR0FBdEIsQ0FBMEI7O2lCQUFTO3NCQUFBO2lCQUV0Q0gsU0FBU1AsSUFBVDtXQUY2QjtTQUExQjtPQUxQLEVBVUxLLFFBVkssQ0FBUDs7OztFQTlCOEJoQjs7QUE2Q2xDc0IsT0FBT0MsT0FBUCxHQUFpQnJCLG1CQUFqQjs7In0=
|
@ -1,12 +1,8 @@
|
||||
{
|
||||
"name": "docker-compose-client",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"author": "Sérgio Ramos <mail@sergioramos.me>",
|
||||
"version": "1.0.4",
|
||||
"license": "MPL2.0",
|
||||
"repository": "github:yldio/docker-compose-client",
|
||||
"keywords": [],
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
@ -26,11 +22,11 @@
|
||||
"dev-start": "npm run build && node ."
|
||||
},
|
||||
"dependencies": {
|
||||
"apr-awaitify": "^1.0.2",
|
||||
"apr-awaitify": "^1.0.4",
|
||||
"zerorpc": "^0.9.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"apr-intercept": "^1.0.2",
|
||||
"apr-intercept": "^1.0.4",
|
||||
"ava": "0.19.1",
|
||||
"babel-eslint": "^7.2.3",
|
||||
"babel-plugin-external-helpers": "6.22.0",
|
||||
@ -39,15 +35,15 @@
|
||||
"babel-preset-env": "1.4.0",
|
||||
"babel-preset-flow": "^6.23.0",
|
||||
"babelrc-rollup": "3.0.0",
|
||||
"cross-env": "^4.0.0",
|
||||
"cross-env": "^5.0.0",
|
||||
"documentation": "4.0.0-rc.1",
|
||||
"eslint": "3.19.0",
|
||||
"eslint-config-prettier": "2.0.0",
|
||||
"eslint-config-prettier": "2.1.0",
|
||||
"eslint-config-xo-space": "^0.16.0",
|
||||
"eslint-plugin-flowtype": "2.32.1",
|
||||
"eslint-plugin-flowtype-errors": "3.2.0",
|
||||
"eslint-plugin-flowtype": "2.33.0",
|
||||
"eslint-plugin-flowtype-errors": "3.2.1",
|
||||
"eslint-plugin-prettier": "^2.0.1",
|
||||
"flow-bin": "0.45.0",
|
||||
"flow-bin": "0.46.0",
|
||||
"flow-typed": "^2.1.2",
|
||||
"js-yaml": "^3.8.4",
|
||||
"lint-staged": "3.4.1",
|
@ -6,7 +6,11 @@ class DockerComposeClient extends EventEmitter {
|
||||
constructor(endpoint = 'tcp://0.0.0.0:4242') {
|
||||
super();
|
||||
|
||||
this.client = new Client();
|
||||
this.client = new Client({
|
||||
heartbeatInterval: 60 * 4 * 1000, // 4m
|
||||
timeout: 60 * 30, // 30m
|
||||
});
|
||||
|
||||
this.client.connect(endpoint);
|
||||
this.client.on('error', err => this.emit('error', err));
|
||||
|
@ -129,9 +129,13 @@ append-transform@^0.4.0:
|
||||
dependencies:
|
||||
default-require-extensions "^1.0.0"
|
||||
|
||||
apr-awaitify@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/apr-awaitify/-/apr-awaitify-1.0.2.tgz#2c6889c783de5147fd61ac4421ba459e2dd9ca27"
|
||||
apr-awaitify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/apr-awaitify/-/apr-awaitify-1.0.4.tgz#a72074a0d333e090bb120be9f710fd106b48a90a"
|
||||
|
||||
apr-intercept@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/apr-intercept/-/apr-intercept-1.0.4.tgz#01c64345f4af647b6b04f5aba4755195429b061a"
|
||||
|
||||
aproba@^1.0.3:
|
||||
version "1.1.1"
|
||||
@ -962,6 +966,14 @@ babel-plugin-transform-strict-mode@^6.24.1:
|
||||
babel-runtime "^6.22.0"
|
||||
babel-types "^6.24.1"
|
||||
|
||||
babel-polyfill@^6.6.1:
|
||||
version "6.23.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d"
|
||||
dependencies:
|
||||
babel-runtime "^6.22.0"
|
||||
core-js "^2.4.0"
|
||||
regenerator-runtime "^0.10.0"
|
||||
|
||||
babel-preset-env@1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.4.0.tgz#c8e02a3bcc7792f23cded68e0355b9d4c28f0f7a"
|
||||
@ -1143,8 +1155,8 @@ babelrc-rollup@3.0.0:
|
||||
resolve "^1.1.7"
|
||||
|
||||
babylon@^6.1.0, babylon@^6.11.0, babylon@^6.11.4, babylon@^6.13.0, babylon@^6.15.0, babylon@^6.17.0:
|
||||
version "6.17.0"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932"
|
||||
version "6.17.1"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f"
|
||||
|
||||
babylon@7.0.0-beta.8:
|
||||
version "7.0.0-beta.8"
|
||||
@ -1168,6 +1180,13 @@ binary-extensions@^1.0.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
|
||||
|
||||
"binary@>= 0.3.0 < 1":
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
|
||||
dependencies:
|
||||
buffers "~0.1.1"
|
||||
chainsaw "~0.1.0"
|
||||
|
||||
bindings@~1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11"
|
||||
@ -1245,6 +1264,10 @@ buffer-shims@^1.0.0, buffer-shims@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
|
||||
|
||||
buffers@~0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
|
||||
|
||||
builtin-modules@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||
@ -1308,8 +1331,8 @@ camelcase@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
|
||||
|
||||
caniuse-db@^1.0.30000639:
|
||||
version "1.0.30000666"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000666.tgz#951ed9f3d3bfaa08a06dafbb5089ab07cce6ab90"
|
||||
version "1.0.30000670"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000670.tgz#90d33b79e3090e25829c311113c56d6b1788bf43"
|
||||
|
||||
capture-stack-trace@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -1330,6 +1353,12 @@ center-align@^0.1.1:
|
||||
align-text "^0.1.3"
|
||||
lazy-cache "^1.0.3"
|
||||
|
||||
chainsaw@~0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
|
||||
dependencies:
|
||||
traverse ">=0.3.0 <0.4"
|
||||
|
||||
chalk@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
|
||||
@ -1364,6 +1393,10 @@ character-reference-invalid@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.0.tgz#dec9ad1dfb9f8d06b4fcdaa2adc3c4fd97af1e68"
|
||||
|
||||
charenc@~0.0.1:
|
||||
version "0.0.2"
|
||||
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
||||
|
||||
chokidar@^1.2.0, chokidar@^1.4.2:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
|
||||
@ -1388,8 +1421,8 @@ circular-json@^0.3.1:
|
||||
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
|
||||
|
||||
clean-stack@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.1.1.tgz#a1b3711122df162df7c7cb9b3c0470f28cb58adb"
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.2.0.tgz#a465128d62c31fb1a3606d00abfe59dcf652f568"
|
||||
|
||||
clean-yaml-object@^0.1.0:
|
||||
version "0.1.0"
|
||||
@ -1515,6 +1548,10 @@ color-name@^1.1.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d"
|
||||
|
||||
colors@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
|
||||
|
||||
combined-stream@^1.0.5, combined-stream@~1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
|
||||
@ -1562,14 +1599,14 @@ concat-stream@~1.5.0:
|
||||
typedarray "~0.0.5"
|
||||
|
||||
configstore@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.0.0.tgz#e1b8669c1803ccc50b545e92f8e6e79aa80e0196"
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.0.tgz#45df907073e26dfa1cf4b2d52f5b60545eaa11d1"
|
||||
dependencies:
|
||||
dot-prop "^4.1.0"
|
||||
graceful-fs "^4.1.2"
|
||||
mkdirp "^0.5.0"
|
||||
make-dir "^1.0.0"
|
||||
unique-string "^1.0.0"
|
||||
write-file-atomic "^1.1.2"
|
||||
write-file-atomic "^2.0.0"
|
||||
xdg-basedir "^3.0.0"
|
||||
|
||||
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
|
||||
@ -1622,6 +1659,13 @@ create-error-class@^3.0.0:
|
||||
dependencies:
|
||||
capture-stack-trace "^1.0.0"
|
||||
|
||||
cross-env@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.0.0.tgz#565ccae4d09676441a5087f406fe7661a29c931b"
|
||||
dependencies:
|
||||
cross-spawn "^5.1.0"
|
||||
is-windows "^1.0.0"
|
||||
|
||||
cross-spawn-async@^2.1.1:
|
||||
version "2.2.5"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc"
|
||||
@ -1636,7 +1680,7 @@ cross-spawn@^4, cross-spawn@^4.0.0:
|
||||
lru-cache "^4.0.1"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^5.0.1:
|
||||
cross-spawn@^5.0.1, cross-spawn@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
||||
dependencies:
|
||||
@ -1644,6 +1688,10 @@ cross-spawn@^5.0.1:
|
||||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
crypt@~0.0.1:
|
||||
version "0.0.2"
|
||||
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
|
||||
|
||||
cryptiles@2.x.x:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
|
||||
@ -1713,8 +1761,8 @@ deep-equal@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
||||
|
||||
deep-extend@~0.4.0:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
|
||||
|
||||
deep-is@~0.1.3:
|
||||
version "0.1.3"
|
||||
@ -1891,8 +1939,8 @@ ecc-jsbn@~0.1.1:
|
||||
jsbn "~0.1.0"
|
||||
|
||||
electron-to-chromium@^1.2.7:
|
||||
version "1.3.9"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.9.tgz#db1cba2a26aebcca2f7f5b8b034554468609157d"
|
||||
version "1.3.10"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.10.tgz#63d62b785471f0d8dda85199d64579de8a449f08"
|
||||
|
||||
elegant-spinner@^1.0.1:
|
||||
version "1.0.1"
|
||||
@ -1933,8 +1981,8 @@ error@^7.0.0:
|
||||
xtend "~4.0.0"
|
||||
|
||||
es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
|
||||
version "0.10.16"
|
||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.16.tgz#1ef1b04f3d09db6a5d630226d62202f2e425e45a"
|
||||
version "0.10.18"
|
||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.18.tgz#dc239d3dce4c22b9c939aa180878837a3c0b5c92"
|
||||
dependencies:
|
||||
es6-iterator "2"
|
||||
es6-symbol "~3.1"
|
||||
@ -2001,9 +2049,9 @@ escope@^3.6.0:
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-config-prettier@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.0.0.tgz#073cdb2760c0ba817c9b3fbf2300110a77a35626"
|
||||
eslint-config-prettier@2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.1.0.tgz#cf78bc7864f98b0f87bcadf702459e933dfa659c"
|
||||
dependencies:
|
||||
get-stdin "^5.0.1"
|
||||
|
||||
@ -2017,17 +2065,16 @@ eslint-config-xo@^0.18.0:
|
||||
version "0.18.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.18.1.tgz#f3bc873b33b2c82513d881eacb2ee3428407ad33"
|
||||
|
||||
eslint-plugin-flowtype-errors@3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype-errors/-/eslint-plugin-flowtype-errors-3.2.0.tgz#28b3f6742e50e64562a21b6ab8bb054a4754199d"
|
||||
eslint-plugin-flowtype-errors@3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype-errors/-/eslint-plugin-flowtype-errors-3.2.1.tgz#2c206ebbc1a41d1fb02fafcd87a69858f6999320"
|
||||
dependencies:
|
||||
babel-plugin-transform-runtime "^6.23.0"
|
||||
shelljs "^0.7.7"
|
||||
slash "^1.0.0"
|
||||
|
||||
eslint-plugin-flowtype@2.32.1:
|
||||
version "2.32.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.32.1.tgz#bbee185dedf97e5f63ec975cdcddd199bd2a2501"
|
||||
eslint-plugin-flowtype@2.33.0:
|
||||
version "2.33.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.33.0.tgz#b2783814ed2ddcf729953b8f65ff73c90cabee4b"
|
||||
dependencies:
|
||||
lodash "^4.15.0"
|
||||
|
||||
@ -2304,14 +2351,34 @@ flesch@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/flesch/-/flesch-1.0.0.tgz#96bfaee5e208264ff63c4447c4f124b5d4361cd5"
|
||||
|
||||
flow-bin@0.45.0:
|
||||
version "0.45.0"
|
||||
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.45.0.tgz#009dd0f577a3f665c74ca8be827ae8c2dd8fd6b5"
|
||||
flow-bin@0.46.0:
|
||||
version "0.46.0"
|
||||
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.46.0.tgz#06ad7fe19dddb1042264438064a2a32fee12b872"
|
||||
|
||||
flow-parser@0.45.0:
|
||||
version "0.45.0"
|
||||
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.45.0.tgz#aa29d4ae27f06aa02817772bba0fcbefef7e62f0"
|
||||
|
||||
flow-typed@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-2.1.2.tgz#468f7a8b6bc18689856a1d101713b23bb39f01e4"
|
||||
dependencies:
|
||||
babel-polyfill "^6.6.1"
|
||||
colors "^1.1.2"
|
||||
fs-extra "^2.0.0"
|
||||
github "^0.2.4"
|
||||
glob "^7.0.6"
|
||||
md5 "^2.1.0"
|
||||
mkdirp "^0.5.1"
|
||||
request "^2.69.0"
|
||||
rimraf "^2.6.0"
|
||||
semver "^5.1.0"
|
||||
table "^3.7.8"
|
||||
through "^2.3.8"
|
||||
unzip "^0.1.11"
|
||||
which "^1.2.11"
|
||||
yargs "^4.2.0"
|
||||
|
||||
fn-name@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
|
||||
@ -2345,6 +2412,13 @@ form-data@~2.1.1:
|
||||
combined-stream "^1.0.5"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fs-extra@^2.0.0:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
jsonfile "^2.1.0"
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
@ -2373,6 +2447,15 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
|
||||
mkdirp ">=0.5 0"
|
||||
rimraf "2"
|
||||
|
||||
"fstream@>= 0.1.30 < 1":
|
||||
version "0.1.31"
|
||||
resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988"
|
||||
dependencies:
|
||||
graceful-fs "~3.0.2"
|
||||
inherits "~2.0.0"
|
||||
mkdirp "0.5"
|
||||
rimraf "2"
|
||||
|
||||
function-bind@^1.0.2:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
|
||||
@ -2456,6 +2539,12 @@ github-slugger@^1.0.0, github-slugger@^1.1.1, github-slugger@1.1.1:
|
||||
dependencies:
|
||||
emoji-regex "^6.0.0"
|
||||
|
||||
github@^0.2.4:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/github/-/github-0.2.4.tgz#24fa7f0e13fa11b946af91134c51982a91ce538b"
|
||||
dependencies:
|
||||
mime "^1.2.11"
|
||||
|
||||
glob-base@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
|
||||
@ -2559,6 +2648,12 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
|
||||
version "4.1.11"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||
|
||||
graceful-fs@~3.0.2:
|
||||
version "3.0.11"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
|
||||
dependencies:
|
||||
natives "^1.1.0"
|
||||
|
||||
"graceful-readlink@>= 1.0.0":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
||||
@ -2833,7 +2928,7 @@ is-binary-path@^1.0.0:
|
||||
dependencies:
|
||||
binary-extensions "^1.0.0"
|
||||
|
||||
is-buffer@^1.1.4, is-buffer@^1.1.5:
|
||||
is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
|
||||
|
||||
@ -3040,6 +3135,10 @@ is-windows@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
|
||||
|
||||
is-windows@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
|
||||
|
||||
is-word-character@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.0.tgz#a3a9e5ddad70c5c2ee36f4a9cfc9a53f44535247"
|
||||
@ -3197,7 +3296,7 @@ js-tokens@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
|
||||
|
||||
js-yaml@^3.3.1, js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@^3.8.2:
|
||||
js-yaml@^3.3.1, js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@^3.8.2, js-yaml@^3.8.4:
|
||||
version "3.8.4"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
|
||||
dependencies:
|
||||
@ -3234,13 +3333,19 @@ json5@^0.5.0, json5@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
|
||||
|
||||
jsonfile@^2.1.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsonify@~0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
|
||||
|
||||
jsonparse@^1.2.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.0.tgz#85fc245b1d9259acc6941960b905adf64e7de0e8"
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
|
||||
|
||||
jsonpointer@^4.0.0:
|
||||
version "4.0.1"
|
||||
@ -3408,6 +3513,10 @@ locate-path@^2.0.0:
|
||||
p-locate "^2.0.0"
|
||||
path-exists "^3.0.0"
|
||||
|
||||
lodash.assign@^4.0.3, lodash.assign@^4.0.6:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
|
||||
|
||||
lodash.clonedeep@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
||||
@ -3493,6 +3602,12 @@ lru-cache@^4.0.0, lru-cache@^4.0.1:
|
||||
pseudomap "^1.0.1"
|
||||
yallist "^2.0.0"
|
||||
|
||||
make-dir@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978"
|
||||
dependencies:
|
||||
pify "^2.3.0"
|
||||
|
||||
make-iterator@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-0.1.1.tgz#873d27b8198a465a81483b6f5d16da4e863ecf5b"
|
||||
@ -3521,6 +3636,13 @@ markdown-table@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.0.tgz#1f5ae61659ced8808d882554c32e8b3f38dd1143"
|
||||
|
||||
"match-stream@>= 0.0.2 < 1":
|
||||
version "0.0.2"
|
||||
resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf"
|
||||
dependencies:
|
||||
buffers "~0.1.1"
|
||||
readable-stream "~1.0.0"
|
||||
|
||||
matcher@^0.1.1:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/matcher/-/matcher-0.1.2.tgz#ef20cbde64c24c50cc61af5b83ee0b1b8ff00101"
|
||||
@ -3543,6 +3665,14 @@ md5-o-matic@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
|
||||
|
||||
md5@^2.1.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
|
||||
dependencies:
|
||||
charenc "~0.0.1"
|
||||
crypt "~0.0.1"
|
||||
is-buffer "~1.1.1"
|
||||
|
||||
mdast-comment-marker@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.0.1.tgz#f0f26c33fc5d81e41d9ec36ff4f066bb50d217fb"
|
||||
@ -3660,9 +3790,9 @@ mime-types@^2.1.12, mime-types@~2.1.7:
|
||||
dependencies:
|
||||
mime-db "~1.27.0"
|
||||
|
||||
mime@^1.3.4:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
|
||||
mime@^1.2.11, mime@^1.3.4:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
|
||||
|
||||
mimic-fn@^1.0.0:
|
||||
version "1.1.0"
|
||||
@ -3686,7 +3816,7 @@ minimist@0.0.8:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||
|
||||
mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0":
|
||||
mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@0.5:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
dependencies:
|
||||
@ -3746,6 +3876,10 @@ nan@~2.3.0:
|
||||
version "2.3.5"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.3.5.tgz#822a0dc266290ce4cd3a12282ca3e7e364668a08"
|
||||
|
||||
natives@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31"
|
||||
|
||||
natural-compare@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
@ -4012,6 +4146,10 @@ osenv@^0.1.4:
|
||||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.0"
|
||||
|
||||
"over@>= 0.0.5 < 1":
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708"
|
||||
|
||||
p-finally@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
|
||||
@ -4324,6 +4462,15 @@ pseudomap@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
||||
|
||||
"pullstream@>= 0.4.1 < 1":
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314"
|
||||
dependencies:
|
||||
over ">= 0.0.5 < 1"
|
||||
readable-stream "~1.0.31"
|
||||
setimmediate ">= 1.0.2 < 2"
|
||||
slice-stream ">= 1.0.0 < 2"
|
||||
|
||||
punycode@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
||||
@ -4426,7 +4573,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable
|
||||
string_decoder "~1.0.0"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
"readable-stream@>=1.0.33-1 <1.1.0-0":
|
||||
"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.0, readable-stream@~1.0.31:
|
||||
version "1.0.34"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
|
||||
dependencies:
|
||||
@ -4673,7 +4820,7 @@ replace-ext@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
|
||||
|
||||
request@^2.81.0:
|
||||
request@^2.69.0, request@^2.81.0:
|
||||
version "2.81.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
|
||||
dependencies:
|
||||
@ -4860,7 +5007,7 @@ right-align@^0.1.1:
|
||||
dependencies:
|
||||
align-text "^0.1.1"
|
||||
|
||||
rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@2:
|
||||
rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@2:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
|
||||
dependencies:
|
||||
@ -4899,8 +5046,8 @@ rx-lite@^3.1.2:
|
||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
|
||||
|
||||
rxjs@^5.0.0-beta.11:
|
||||
version "5.3.1"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.1.tgz#9ecc9e722247e4f4490d30a878577a3740fd0cb7"
|
||||
version "5.4.0"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.0.tgz#a7db14ab157f9d7aac6a56e655e7a3860d39bf26"
|
||||
dependencies:
|
||||
symbol-observable "^1.0.1"
|
||||
|
||||
@ -4930,6 +5077,10 @@ set-immediate-shim@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
|
||||
|
||||
"setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2":
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
||||
|
||||
shebang-command@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
||||
@ -4940,7 +5091,7 @@ shebang-regex@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||
|
||||
shelljs@^0.7.5, shelljs@^0.7.7:
|
||||
shelljs@^0.7.5:
|
||||
version "0.7.7"
|
||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
|
||||
dependencies:
|
||||
@ -4964,6 +5115,12 @@ slice-ansi@0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
|
||||
|
||||
"slice-stream@>= 1.0.0 < 2":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0"
|
||||
dependencies:
|
||||
readable-stream "~1.0.31"
|
||||
|
||||
slide@^1.1.5:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
|
||||
@ -5273,7 +5430,7 @@ text-table@^0.2.0, text-table@~0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
|
||||
through@^2.3.6, "through@>=2.2.7 <3":
|
||||
through@^2.3.6, through@^2.3.8, "through@>=2.2.7 <3":
|
||||
version "2.3.8"
|
||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
|
||||
@ -5346,6 +5503,10 @@ tough-cookie@~2.3.0:
|
||||
dependencies:
|
||||
punycode "^1.4.1"
|
||||
|
||||
"traverse@>=0.3.0 <0.4":
|
||||
version "0.3.9"
|
||||
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
|
||||
|
||||
trim-lines@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.0.tgz#9926d03ede13ba18f7d42222631fb04c79ff26fe"
|
||||
@ -5395,8 +5556,8 @@ typedarray@^0.0.6, typedarray@~0.0.5:
|
||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
|
||||
uglify-js@^2.6:
|
||||
version "2.8.23"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.23.tgz#8230dd9783371232d62a7821e2cf9a817270a8a0"
|
||||
version "2.8.25"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.25.tgz#11b776e7c3925802853e4c3dd6d0ffad8eb72336"
|
||||
dependencies:
|
||||
source-map "~0.5.1"
|
||||
yargs "~3.10.0"
|
||||
@ -5512,6 +5673,17 @@ unzip-response@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
|
||||
|
||||
unzip@^0.1.11:
|
||||
version "0.1.11"
|
||||
resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0"
|
||||
dependencies:
|
||||
binary ">= 0.3.0 < 1"
|
||||
fstream ">= 0.1.30 < 1"
|
||||
match-stream ">= 0.0.2 < 1"
|
||||
pullstream ">= 0.4.1 < 1"
|
||||
readable-stream "~1.0.31"
|
||||
setimmediate ">= 1.0.1 < 2"
|
||||
|
||||
update-notifier@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.1.0.tgz#ec0c1e53536b76647a24b77cb83966d9315123d9"
|
||||
@ -5653,17 +5825,17 @@ which-module@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
|
||||
|
||||
which@^1.2.10, which@^1.2.4, which@^1.2.8, which@^1.2.9, which@1.2.x:
|
||||
which@^1.2.10, which@^1.2.11, which@^1.2.4, which@^1.2.8, which@^1.2.9, which@1.2.x:
|
||||
version "1.2.14"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wide-align@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad"
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
|
||||
dependencies:
|
||||
string-width "^1.0.1"
|
||||
string-width "^1.0.2"
|
||||
|
||||
widest-line@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -5671,6 +5843,10 @@ widest-line@^1.0.0:
|
||||
dependencies:
|
||||
string-width "^1.0.1"
|
||||
|
||||
window-size@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
|
||||
|
||||
window-size@0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
|
||||
@ -5698,7 +5874,7 @@ wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
|
||||
write-file-atomic@^1.1.2, write-file-atomic@^1.1.4:
|
||||
write-file-atomic@^1.1.4:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
|
||||
dependencies:
|
||||
@ -5706,15 +5882,23 @@ write-file-atomic@^1.1.2, write-file-atomic@^1.1.4:
|
||||
imurmurhash "^0.1.4"
|
||||
slide "^1.1.5"
|
||||
|
||||
write-file-atomic@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.11"
|
||||
imurmurhash "^0.1.4"
|
||||
slide "^1.1.5"
|
||||
|
||||
write-json-file@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.0.0.tgz#0eaec981fcf9288dbc2806cbd26e06ab9bdca4ed"
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.1.0.tgz#ba1cf3ac7ee89db26c3d528986e48421389046b7"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
mkdirp "^0.5.1"
|
||||
make-dir "^1.0.0"
|
||||
pify "^2.0.0"
|
||||
sort-keys "^1.1.1"
|
||||
write-file-atomic "^1.1.2"
|
||||
write-file-atomic "^2.0.0"
|
||||
|
||||
write-pkg@^2.0.0:
|
||||
version "2.1.0"
|
||||
@ -5753,6 +5937,13 @@ yallist@^2.0.0:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
|
||||
|
||||
yargs-parser@^2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4"
|
||||
dependencies:
|
||||
camelcase "^3.0.0"
|
||||
lodash.assign "^4.0.6"
|
||||
|
||||
yargs-parser@^4.2.0:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
|
||||
@ -5765,6 +5956,25 @@ yargs-parser@^5.0.0:
|
||||
dependencies:
|
||||
camelcase "^3.0.0"
|
||||
|
||||
yargs@^4.2.0:
|
||||
version "4.8.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0"
|
||||
dependencies:
|
||||
cliui "^3.2.0"
|
||||
decamelize "^1.1.1"
|
||||
get-caller-file "^1.0.1"
|
||||
lodash.assign "^4.0.3"
|
||||
os-locale "^1.4.0"
|
||||
read-pkg-up "^1.0.1"
|
||||
require-directory "^2.1.1"
|
||||
require-main-filename "^1.0.1"
|
||||
set-blocking "^2.0.0"
|
||||
string-width "^1.0.1"
|
||||
which-module "^1.0.0"
|
||||
window-size "^0.2.0"
|
||||
y18n "^3.2.1"
|
||||
yargs-parser "^2.4.1"
|
||||
|
||||
yargs@^6.0.0:
|
||||
version "6.6.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
|
@ -2,7 +2,8 @@
|
||||
|
||||
const Hoek = require('hoek');
|
||||
const Penseur = require('penseur');
|
||||
|
||||
const DCClient = require('docker-compose-client');
|
||||
const awaitify = require('apr-awaitify');
|
||||
|
||||
const internals = {
|
||||
defaults: {
|
||||
@ -10,189 +11,159 @@ const internals = {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
module.exports = class Data {
|
||||
constructor (options) {
|
||||
constructor(options) {
|
||||
const settings = Hoek.applyToDefaults(options || {}, internals.defaults);
|
||||
const name = settings.name;
|
||||
delete settings.name;
|
||||
|
||||
// Penseur will assert that the options are correct
|
||||
this._db = new Penseur.Db(name, settings);
|
||||
this._db = new Penseur.Db(settings.name, settings);
|
||||
this._docker = new DCClient(settings.dockerHost);
|
||||
|
||||
this._db.establish = awaitify(this._db.establish);
|
||||
this._db.deployments = awaitify(this._db.deployments);
|
||||
|
||||
// promisify Penseur
|
||||
[
|
||||
'activities',
|
||||
'datacenters',
|
||||
'deployments',
|
||||
'manifests',
|
||||
'metrics'
|
||||
].forEach(tableName =>
|
||||
['insert', 'get', 'update', 'remove', 'all'].forEach(methodName => {
|
||||
this._db[tableName][methodName] = awaitify(
|
||||
this._db[tableName][methodName]
|
||||
);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
connect (cb) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.establish(['activities', 'datacenters', 'deployments', 'manifests', 'metrics'], (err) => {
|
||||
if (typeof cb === 'function') {
|
||||
return cb(err);
|
||||
}
|
||||
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
connect(cb) {
|
||||
return this._db.establish();
|
||||
}
|
||||
|
||||
createDeployment (deployment) {
|
||||
return new Promise((resolve, reject) => {
|
||||
deployment.services = [];
|
||||
deployment.state = { current: 'stopped' };
|
||||
/*
|
||||
* DeploymentGroupUuid
|
||||
* Manifest
|
||||
* id: UUID,
|
||||
* created: Date.now(),
|
||||
* type: 'docker-compose',
|
||||
* format: 'yml',
|
||||
* raw: 'original yml file content',
|
||||
* obj: { }
|
||||
*/
|
||||
createDeployment({ deploymentGroupUuid, manifest, deployment }) {
|
||||
// trigger deployment
|
||||
// create deployment queue (we should think about what is a deployment queue)
|
||||
// create the ConvergencePlans
|
||||
// create a DeploymentPlan
|
||||
// create a Version
|
||||
// update the DeploymentGroup
|
||||
|
||||
this._db.deployments.insert(deployment, (err, key) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
// TODO
|
||||
const updateDb = plan => {
|
||||
// deployment.services = [];
|
||||
// deployment.state = { current: 'stopped' };
|
||||
|
||||
deployment.id = key;
|
||||
|
||||
resolve(deployment);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getDeployment (id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.deployments.get(id, (err, deployment) => {
|
||||
return err ? reject(err) : resolve(deployment);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
updateDeployment (deployment) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.deployments.update(deployment.id, deployment, (err) => {
|
||||
return err ? reject(err) : resolve(deployment);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
deleteDeployment (id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.deployments.remove(id, (err) => {
|
||||
return err ? reject(err) : resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getDeployments () {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.deployments.all((err, deployments) => {
|
||||
return err ? reject(err) : resolve(deployments);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getDatacenters () {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.datacenters.all((err, datacenters) => {
|
||||
return err ? reject(err) : resolve(datacenters || []);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
createManifest (deploymentId, manifest) {
|
||||
return new Promise((resolve, reject) => {
|
||||
manifest.deploymentId = deploymentId;
|
||||
manifest.created = Date.now();
|
||||
|
||||
this._db.manifests.insert(manifest, (err, id) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
manifest.id = id;
|
||||
resolve(manifest);
|
||||
});
|
||||
});
|
||||
}
|
||||
getManifest (id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.manifests.get(id, (err, manifest) => {
|
||||
return err ? reject(err) : resolve(manifest);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getActivities (deploymentId) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.activities.query({ deploymentId }, (err, activities) => {
|
||||
return err ? reject(err) : resolve(activities || []);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getMetrics (containerId) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.metrics.get(containerId, (err, result) => {
|
||||
return err ? reject(err) : resolve(result);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
insertMetrics (containerId, metrics) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.metrics.get(containerId, (err, existing) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
if (existing) {
|
||||
this._db.metrics.update(containerId, { metrics: this._db.append(metrics) }, (err) => {
|
||||
return err ? reject(err) : resolve(existing);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const entry = { id: containerId, metrics };
|
||||
this._db.metrics.insert(entry, { merge: true }, (err) => {
|
||||
return err ? reject(err) : resolve(entry);
|
||||
this._db.deployments
|
||||
.insert({
|
||||
name:
|
||||
})
|
||||
.then(key => {
|
||||
deployment.id = key;
|
||||
return deployment;
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const provision = ({ name }) =>
|
||||
this._docker
|
||||
.provision({
|
||||
projectName: name,
|
||||
manifest: manifest.raw
|
||||
})
|
||||
.then(updateDb);
|
||||
|
||||
this.getDeployment(deploymentGroupUuid).then(provision);
|
||||
}
|
||||
|
||||
getServices (deploymentId) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.deployments.get(deploymentId, { filter: 'services' }, (err, deployment) => {
|
||||
return err ? reject(err) : resolve(deployment.services);
|
||||
});
|
||||
});
|
||||
getDeployment(id) {
|
||||
return this._db.deployments.get(id);
|
||||
}
|
||||
|
||||
updateService (deploymentId, service) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.deployments.get(deploymentId, { filter: 'services' }, (err, deployment) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
updateDeployment(deployment) {
|
||||
return this._db.deployments.update(deployment.id, deployment);
|
||||
}
|
||||
|
||||
const serviceToUpdate = deployment.services.find((currentService) => {
|
||||
return (currentService.name === service.name);
|
||||
deleteDeployment(id) {
|
||||
return this._db.deployments.remove(id);
|
||||
}
|
||||
|
||||
getDeployments() {
|
||||
return this._db.deployments.all();
|
||||
}
|
||||
|
||||
getDatacenters() {
|
||||
return this._db.datacenters.all();
|
||||
}
|
||||
|
||||
createManifest(deploymentId, manifest) {
|
||||
manifest.deploymentId = deploymentId;
|
||||
manifest.created = Date.now();
|
||||
|
||||
return this._db.manifests.insert().then(id => {
|
||||
manifest.id = id;
|
||||
return manifest;
|
||||
});
|
||||
}
|
||||
getManifest(id) {
|
||||
return this._db.manifests.get();
|
||||
}
|
||||
|
||||
getActivities(deploymentId) {
|
||||
return this._db.activities.query({ deploymentId });
|
||||
}
|
||||
|
||||
getMetrics(containerId) {
|
||||
return this._db.metrics.get(containerId);
|
||||
}
|
||||
|
||||
insertMetrics(containerId, metrics) {
|
||||
return this._db.metrics.get(containerId).then(existing => {
|
||||
if (existing) {
|
||||
return this._db.metrics.update(containerId, {
|
||||
metrics: this._db.append(metrics)
|
||||
});
|
||||
}
|
||||
|
||||
if (!serviceToUpdate) {
|
||||
deployment.services.push(service);
|
||||
} else {
|
||||
serviceToUpdate.count = service.count;
|
||||
serviceToUpdate.containers = service.containers;
|
||||
}
|
||||
const entry = { id: containerId, metrics };
|
||||
return this._db.metrics.insert(entry, { merge: true });
|
||||
});
|
||||
}
|
||||
|
||||
this._db.deployments.update(deploymentId, { services: deployment.services }, (err) => {
|
||||
return err ? reject(err) : resolve(service);
|
||||
});
|
||||
getServices(deploymentId) {
|
||||
this._db.deployments.get(deploymentId, { filter: 'services' });
|
||||
}
|
||||
|
||||
updateService(deploymentId, service) {
|
||||
this._db.deployments.get(deploymentId, { filter: 'services' }).then(() => {
|
||||
const serviceToUpdate = deployment.services.find(currentService => {
|
||||
return currentService.name === service.name;
|
||||
});
|
||||
|
||||
if (!serviceToUpdate) {
|
||||
deployment.services.push(service);
|
||||
} else {
|
||||
serviceToUpdate.count = service.count;
|
||||
serviceToUpdate.containers = service.containers;
|
||||
}
|
||||
|
||||
return this._db.deployments.update(deploymentId, {
|
||||
services: deployment.services
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
deploymentChanges (handler) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._db.deployments.changes('*', { reconnect: true, handler }, (err) => {
|
||||
return err ? reject(err) : resolve();
|
||||
});
|
||||
});
|
||||
deploymentChanges(handler) {
|
||||
return this._db.deployments.changes('*', { reconnect: true, handler });
|
||||
}
|
||||
};
|
||||
|
@ -6,6 +6,7 @@
|
||||
"scripts": {
|
||||
"bootstrap": "node ./bootstrap-data",
|
||||
"lint": "belly-button",
|
||||
"fmt": "prettier --write --single-quote {lib,test}/**/*.js",
|
||||
"rethinkdb-up": "docker run -d -p 8080:8080 -p 28015:28015 -p 29015:29015 --name rethinkdb rethinkdb",
|
||||
"rethinkdb-down": "docker rm -f rethinkdb",
|
||||
"test": "npm run lint && lab -t 40"
|
||||
@ -13,13 +14,17 @@
|
||||
"keywords": [],
|
||||
"author": "wyatt",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"apr-awaitify": "^1.0.4",
|
||||
"docker-compose-client": "^1.0.3",
|
||||
"hoek": "^4.1.1",
|
||||
"penseur": "^7.8.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"belly-button": "^3.1.0",
|
||||
"code": "^4.0.0",
|
||||
"lab": "^13.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"hoek": "^4.1.1",
|
||||
"penseur": "^7.8.1"
|
||||
"lab": "^13.0.4",
|
||||
"prettier": "^1.3.1",
|
||||
"zerorpc": "^0.9.7"
|
||||
}
|
||||
}
|
||||
|
@ -1,33 +1,46 @@
|
||||
'use strict';
|
||||
|
||||
const Code = require('code');
|
||||
const Lab = require('lab');
|
||||
const pkg = require('../package.json');
|
||||
const { expect } = require('code');
|
||||
const { before, describe, it, script } = require('lab');
|
||||
const { Server } = require('zerorpc');
|
||||
const PortalData = require('../');
|
||||
|
||||
exports.lab = script();
|
||||
|
||||
// Test shortcuts
|
||||
|
||||
const lab = exports.lab = Lab.script();
|
||||
const describe = lab.describe;
|
||||
const it = lab.it;
|
||||
const expect = Code.expect;
|
||||
|
||||
const server = new Server({
|
||||
up: function(options, manifest, fn) {
|
||||
fn(null, {
|
||||
projectName: options.project_name
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
const internals = {
|
||||
options: { test: true, name: 'test' }
|
||||
options: { test: true, name: 'test', dockerHost: 'tcp://0.0.0.0:4242'}
|
||||
};
|
||||
|
||||
|
||||
describe('createDeployment()', () => {
|
||||
it('creates a deployment record in the deployment table', (done) => {
|
||||
const data = new PortalData(internals.options);
|
||||
data.connect().then(() => {
|
||||
const deployment = {
|
||||
name: 'User Services',
|
||||
datacenter: 'us-sw-1'
|
||||
};
|
||||
before(() => {
|
||||
server.bind(internals.options.dockerHost);
|
||||
});
|
||||
|
||||
data.createDeployment(deployment).then((deployment) => {
|
||||
after(() => {
|
||||
server.close();
|
||||
});
|
||||
|
||||
describe('createDeployment()', () => {
|
||||
it('creates a deployment record in the deployment table', done => {
|
||||
const data = new PortalData(internals.options);
|
||||
const deployment = {
|
||||
name: 'User Services',
|
||||
datacenter: 'us-sw-1'
|
||||
};
|
||||
|
||||
data.connect().then(() => {
|
||||
data.createDeployment({
|
||||
deployment
|
||||
}).then(deployment => {
|
||||
expect(deployment.id).to.exist();
|
||||
done();
|
||||
});
|
||||
@ -35,9 +48,8 @@ describe('createDeployment()', () => {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('getDeployment()', () => {
|
||||
it('will retrieve an existing deployment', (done) => {
|
||||
it('will retrieve an existing deployment', done => {
|
||||
const data = new PortalData(internals.options);
|
||||
data.connect().then(() => {
|
||||
const deployment = {
|
||||
@ -45,9 +57,9 @@ describe('getDeployment()', () => {
|
||||
datacenter: 'us-sw-1'
|
||||
};
|
||||
|
||||
data.createDeployment(deployment).then((deployment) => {
|
||||
data.createDeployment(deployment).then(deployment => {
|
||||
expect(deployment.id).to.exist();
|
||||
data.getDeployment(deployment.id).then((retrievedDeployment) => {
|
||||
data.getDeployment(deployment.id).then(retrievedDeployment => {
|
||||
expect(deployment).to.equal(retrievedDeployment);
|
||||
done();
|
||||
});
|
||||
@ -57,7 +69,7 @@ describe('getDeployment()', () => {
|
||||
});
|
||||
|
||||
describe('updateService()', () => {
|
||||
it('will update the services for an existing deployment', (done) => {
|
||||
it('will update the services for an existing deployment', done => {
|
||||
const data = new PortalData(internals.options);
|
||||
data.connect().then(() => {
|
||||
const deployment = {
|
||||
@ -78,9 +90,9 @@ describe('updateService()', () => {
|
||||
count: 1
|
||||
};
|
||||
|
||||
data.createDeployment(deployment).then((deployment) => {
|
||||
data.createDeployment(deployment).then(deployment => {
|
||||
expect(deployment.id).to.exist();
|
||||
data.updateService(deployment.id, service).then((updatedService) => {
|
||||
data.updateService(deployment.id, service).then(updatedService => {
|
||||
expect(updatedService).to.equal(service);
|
||||
done();
|
||||
});
|
||||
@ -90,7 +102,7 @@ describe('updateService()', () => {
|
||||
});
|
||||
|
||||
describe('deploymentChanges()', () => {
|
||||
it('will execute the handler when a deployment service changes', (done) => {
|
||||
it('will execute the handler when a deployment service changes', done => {
|
||||
const data = new PortalData(internals.options);
|
||||
data.connect().then(() => {
|
||||
const deployment = {
|
||||
@ -139,35 +151,38 @@ describe('deploymentChanges()', () => {
|
||||
count: 3
|
||||
};
|
||||
|
||||
data.createDeployment(deployment).then((deployment) => {
|
||||
data.createDeployment(deployment).then(deployment => {
|
||||
expect(deployment.id).to.exist();
|
||||
data.updateService(deployment.id, service1).then((updatedService1) => {
|
||||
data.updateService(deployment.id, service1).then(updatedService1 => {
|
||||
expect(updatedService1).to.equal(service1);
|
||||
|
||||
let executed = false;
|
||||
data.deploymentChanges((err, changes) => {
|
||||
if (executed) {
|
||||
return;
|
||||
}
|
||||
data
|
||||
.deploymentChanges((err, changes) => {
|
||||
if (executed) {
|
||||
return;
|
||||
}
|
||||
|
||||
expect(changes.before).to.exist();
|
||||
expect(changes.after).to.exist();
|
||||
done();
|
||||
executed = true;
|
||||
}).then(() => {
|
||||
data.updateService(deployment.id, service2).then((updatedService2) => {
|
||||
expect(updatedService2).to.equal(service2);
|
||||
expect(changes.before).to.exist();
|
||||
expect(changes.after).to.exist();
|
||||
done();
|
||||
executed = true;
|
||||
})
|
||||
.then(() => {
|
||||
data
|
||||
.updateService(deployment.id, service2)
|
||||
.then(updatedService2 => {
|
||||
expect(updatedService2).to.equal(service2);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('insertMetrics()', () => {
|
||||
it('will add new metrics to a service and won\'t overwrite existing ones', (done) => {
|
||||
it("will add new metrics to a service and won't overwrite existing ones", done => {
|
||||
const data = new PortalData(internals.options);
|
||||
data.connect().then(() => {
|
||||
const containerId = '81205d4a-92f4-c4d9-da8a-aafd689eeabb';
|
||||
@ -189,12 +204,12 @@ describe('insertMetrics()', () => {
|
||||
}
|
||||
];
|
||||
|
||||
data.insertMetrics(containerId, metrics1).then((result1) => {
|
||||
data.insertMetrics(containerId, metrics1).then(result1 => {
|
||||
expect(result1.id).to.equal(containerId);
|
||||
expect(result1.metrics).to.equal(metrics1);
|
||||
data.insertMetrics(containerId, metrics2).then((result2) => {
|
||||
data.insertMetrics(containerId, metrics2).then(result2 => {
|
||||
expect(result2.id).to.equal(containerId);
|
||||
data.getMetrics(containerId).then((results) => {
|
||||
data.getMetrics(containerId).then(results => {
|
||||
expect(results.metrics.length).to.equal(2);
|
||||
done();
|
||||
});
|
||||
|
576
spikes/docker-compose-client/dist/index.es.js
vendored
576
spikes/docker-compose-client/dist/index.es.js
vendored
@ -1,576 +0,0 @@
|
||||
var classCallCheck = function (instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
};
|
||||
|
||||
var createClass = function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
};
|
||||
}();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var inherits = function (subClass, superClass) {
|
||||
if (typeof superClass !== "function" && superClass !== null) {
|
||||
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||
}
|
||||
|
||||
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||||
constructor: {
|
||||
value: subClass,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var newArrowCheck = function (innerThis, boundThis) {
|
||||
if (innerThis !== boundThis) {
|
||||
throw new TypeError("Cannot instantiate an arrow function");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var possibleConstructorReturn = function (self, call) {
|
||||
if (!self) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
||||
};
|
||||
|
||||
var cov_1eyosjm197 = function () {
|
||||
var path = '/Users/ramitos/dev/yld/joyent-portal/spikes/docker-compose-client/src/index.js',
|
||||
hash = '384e02ed4692c70a8c8d9e69b30064cdb319bdf4',
|
||||
global = new Function('return this')(),
|
||||
gcv = '__coverage__',
|
||||
coverageData = {
|
||||
path: '/Users/ramitos/dev/yld/joyent-portal/spikes/docker-compose-client/src/index.js',
|
||||
statementMap: {
|
||||
'0': {
|
||||
start: {
|
||||
line: 1,
|
||||
column: 19
|
||||
},
|
||||
end: {
|
||||
line: 1,
|
||||
column: 37
|
||||
}
|
||||
},
|
||||
'1': {
|
||||
start: {
|
||||
line: 2,
|
||||
column: 25
|
||||
},
|
||||
end: {
|
||||
line: 2,
|
||||
column: 42
|
||||
}
|
||||
},
|
||||
'2': {
|
||||
start: {
|
||||
line: 3,
|
||||
column: 17
|
||||
},
|
||||
end: {
|
||||
line: 3,
|
||||
column: 40
|
||||
}
|
||||
},
|
||||
'3': {
|
||||
start: {
|
||||
line: 7,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 7,
|
||||
column: 12
|
||||
}
|
||||
},
|
||||
'4': {
|
||||
start: {
|
||||
line: 9,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 9,
|
||||
column: 31
|
||||
}
|
||||
},
|
||||
'5': {
|
||||
start: {
|
||||
line: 10,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 10,
|
||||
column: 34
|
||||
}
|
||||
},
|
||||
'6': {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 60
|
||||
}
|
||||
},
|
||||
'7': {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 35
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 58
|
||||
}
|
||||
},
|
||||
'8': {
|
||||
start: {
|
||||
line: 13,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 13,
|
||||
column: 53
|
||||
}
|
||||
},
|
||||
'9': {
|
||||
start: {
|
||||
line: 18,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 18,
|
||||
column: 45
|
||||
}
|
||||
},
|
||||
'10': {
|
||||
start: {
|
||||
line: 22,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 22,
|
||||
column: 31
|
||||
}
|
||||
},
|
||||
'11': {
|
||||
start: {
|
||||
line: 27,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 27,
|
||||
column: 71
|
||||
}
|
||||
},
|
||||
'12': {
|
||||
start: {
|
||||
line: 31,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 42,
|
||||
column: 6
|
||||
}
|
||||
},
|
||||
'13': {
|
||||
start: {
|
||||
line: 36,
|
||||
column: 53
|
||||
},
|
||||
end: {
|
||||
line: 39,
|
||||
column: 9
|
||||
}
|
||||
},
|
||||
'14': {
|
||||
start: {
|
||||
line: 46,
|
||||
column: 0
|
||||
},
|
||||
end: {
|
||||
line: 46,
|
||||
column: 37
|
||||
}
|
||||
}
|
||||
},
|
||||
fnMap: {
|
||||
'0': {
|
||||
name: '(anonymous_0)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 6,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 6,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 6,
|
||||
column: 47
|
||||
},
|
||||
end: {
|
||||
line: 14,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 6
|
||||
},
|
||||
'1': {
|
||||
name: '(anonymous_1)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 28
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 29
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 35
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 58
|
||||
}
|
||||
},
|
||||
line: 11
|
||||
},
|
||||
'2': {
|
||||
name: '(anonymous_2)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 17,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 17,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 17,
|
||||
column: 25
|
||||
},
|
||||
end: {
|
||||
line: 19,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 17
|
||||
},
|
||||
'3': {
|
||||
name: '(anonymous_3)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 21,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 21,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 21,
|
||||
column: 10
|
||||
},
|
||||
end: {
|
||||
line: 23,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 21
|
||||
},
|
||||
'4': {
|
||||
name: '(anonymous_4)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 25,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 25,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 25,
|
||||
column: 39
|
||||
},
|
||||
end: {
|
||||
line: 28,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 25
|
||||
},
|
||||
'5': {
|
||||
name: '(anonymous_5)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 30,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 30,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 30,
|
||||
column: 45
|
||||
},
|
||||
end: {
|
||||
line: 43,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 30
|
||||
},
|
||||
'6': {
|
||||
name: '(anonymous_6)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 36,
|
||||
column: 44
|
||||
},
|
||||
end: {
|
||||
line: 36,
|
||||
column: 45
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 36,
|
||||
column: 53
|
||||
},
|
||||
end: {
|
||||
line: 39,
|
||||
column: 9
|
||||
}
|
||||
},
|
||||
line: 36
|
||||
}
|
||||
},
|
||||
branchMap: {
|
||||
'0': {
|
||||
loc: {
|
||||
start: {
|
||||
line: 6,
|
||||
column: 14
|
||||
},
|
||||
end: {
|
||||
line: 6,
|
||||
column: 45
|
||||
}
|
||||
},
|
||||
type: 'default-arg',
|
||||
locations: [{
|
||||
start: {
|
||||
line: 6,
|
||||
column: 25
|
||||
},
|
||||
end: {
|
||||
line: 6,
|
||||
column: 45
|
||||
}
|
||||
}],
|
||||
line: 6
|
||||
}
|
||||
},
|
||||
s: {
|
||||
'0': 0,
|
||||
'1': 0,
|
||||
'2': 0,
|
||||
'3': 0,
|
||||
'4': 0,
|
||||
'5': 0,
|
||||
'6': 0,
|
||||
'7': 0,
|
||||
'8': 0,
|
||||
'9': 0,
|
||||
'10': 0,
|
||||
'11': 0,
|
||||
'12': 0,
|
||||
'13': 0,
|
||||
'14': 0
|
||||
},
|
||||
f: {
|
||||
'0': 0,
|
||||
'1': 0,
|
||||
'2': 0,
|
||||
'3': 0,
|
||||
'4': 0,
|
||||
'5': 0,
|
||||
'6': 0
|
||||
},
|
||||
b: {
|
||||
'0': [0]
|
||||
},
|
||||
_coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c'
|
||||
},
|
||||
coverage = global[gcv] || (global[gcv] = {});
|
||||
|
||||
if (coverage[path] && coverage[path].hash === hash) {
|
||||
return coverage[path];
|
||||
}
|
||||
|
||||
coverageData.hash = hash;
|
||||
return coverage[path] = coverageData;
|
||||
}();
|
||||
|
||||
var _ref = (++cov_1eyosjm197.s[0], require('zerorpc'));
|
||||
var Client = _ref.Client;
|
||||
|
||||
var _ref2 = (++cov_1eyosjm197.s[1], require('events'));
|
||||
var EventEmitter = _ref2.EventEmitter;
|
||||
|
||||
var awaitify = (++cov_1eyosjm197.s[2], require('apr-awaitify'));
|
||||
|
||||
var DockerComposeClient = function (_EventEmitter) {
|
||||
inherits(DockerComposeClient, _EventEmitter);
|
||||
|
||||
function DockerComposeClient() {
|
||||
var _this2 = this;
|
||||
|
||||
var endpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (++cov_1eyosjm197.b[0][0], 'tcp://0.0.0.0:4242');
|
||||
classCallCheck(this, DockerComposeClient);
|
||||
++cov_1eyosjm197.f[0];
|
||||
++cov_1eyosjm197.s[3];
|
||||
|
||||
var _this = possibleConstructorReturn(this, (DockerComposeClient.__proto__ || Object.getPrototypeOf(DockerComposeClient)).call(this));
|
||||
|
||||
++cov_1eyosjm197.s[4];
|
||||
|
||||
|
||||
_this.client = new Client();
|
||||
++cov_1eyosjm197.s[5];
|
||||
_this.client.connect(endpoint);
|
||||
++cov_1eyosjm197.s[6];
|
||||
_this.client.on('error', function (err) {
|
||||
newArrowCheck(this, _this2);
|
||||
++cov_1eyosjm197.f[1];
|
||||
++cov_1eyosjm197.s[7];
|
||||
return _this.emit('error', err);
|
||||
}.bind(this));
|
||||
|
||||
++cov_1eyosjm197.s[8];
|
||||
_this._invoke = awaitify(_this._invoke.bind(_this));
|
||||
return _this;
|
||||
}
|
||||
|
||||
// Why isn't client.connect async with error??
|
||||
|
||||
|
||||
createClass(DockerComposeClient, [{
|
||||
key: '_invoke',
|
||||
value: function _invoke(name) {
|
||||
var _client;
|
||||
|
||||
++cov_1eyosjm197.f[2];
|
||||
++cov_1eyosjm197.s[9];
|
||||
|
||||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
args[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
return (_client = this.client).invoke.apply(_client, [name].concat(args));
|
||||
}
|
||||
}, {
|
||||
key: 'close',
|
||||
value: function close() {
|
||||
++cov_1eyosjm197.f[3];
|
||||
++cov_1eyosjm197.s[10];
|
||||
|
||||
return this.client.close();
|
||||
}
|
||||
}, {
|
||||
key: 'provision',
|
||||
value: function provision(_ref3) {
|
||||
var projectName = _ref3.projectName,
|
||||
manifest = _ref3.manifest;
|
||||
++cov_1eyosjm197.f[4];
|
||||
++cov_1eyosjm197.s[11];
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
return this._invoke('up', { project_name: projectName }, manifest);
|
||||
}
|
||||
}, {
|
||||
key: 'scale',
|
||||
value: function scale(_ref4) {
|
||||
var _this3 = this;
|
||||
|
||||
var projectName = _ref4.projectName,
|
||||
services = _ref4.services,
|
||||
manifest = _ref4.manifest;
|
||||
++cov_1eyosjm197.f[5];
|
||||
++cov_1eyosjm197.s[12];
|
||||
|
||||
return this._invoke('scale', {
|
||||
// eslint-disable-next-line camelcase
|
||||
project_name: projectName,
|
||||
services: Object.keys(services).map(function (name) {
|
||||
newArrowCheck(this, _this3);
|
||||
++cov_1eyosjm197.f[6];
|
||||
++cov_1eyosjm197.s[13];
|
||||
return {
|
||||
name: name,
|
||||
num: services[name]
|
||||
};
|
||||
}.bind(this))
|
||||
}, manifest);
|
||||
}
|
||||
}]);
|
||||
return DockerComposeClient;
|
||||
}(EventEmitter);
|
||||
|
||||
++cov_1eyosjm197.s[14];
|
||||
|
||||
|
||||
module.exports = DockerComposeClient;
|
||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IENsaWVudCB9ID0gcmVxdWlyZSgnemVyb3JwYycpO1xuY29uc3QgeyBFdmVudEVtaXR0ZXIgfSA9IHJlcXVpcmUoJ2V2ZW50cycpO1xuY29uc3QgYXdhaXRpZnkgPSByZXF1aXJlKCdhcHItYXdhaXRpZnknKTtcblxuY2xhc3MgRG9ja2VyQ29tcG9zZUNsaWVudCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIGNvbnN0cnVjdG9yKGVuZHBvaW50ID0gJ3RjcDovLzAuMC4wLjA6NDI0MicpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5jbGllbnQgPSBuZXcgQ2xpZW50KCk7XG4gICAgdGhpcy5jbGllbnQuY29ubmVjdChlbmRwb2ludCk7XG4gICAgdGhpcy5jbGllbnQub24oJ2Vycm9yJywgZXJyID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpKTtcblxuICAgIHRoaXMuX2ludm9rZSA9IGF3YWl0aWZ5KHRoaXMuX2ludm9rZS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8vIFdoeSBpc24ndCBjbGllbnQuY29ubmVjdCBhc3luYyB3aXRoIGVycm9yPz9cbiAgX2ludm9rZShuYW1lLCAuLi5hcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50Lmludm9rZShuYW1lLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdmlzaW9uKHsgcHJvamVjdE5hbWUsIG1hbmlmZXN0IH0pIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgndXAnLCB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSwgbWFuaWZlc3QpO1xuICB9XG5cbiAgc2NhbGUoeyBwcm9qZWN0TmFtZSwgc2VydmljZXMsIG1hbmlmZXN0IH0pIHtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKFxuICAgICAgJ3NjYWxlJyxcbiAgICAgIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuICAgICAgICBwcm9qZWN0X25hbWU6IHByb2plY3ROYW1lLFxuICAgICAgICBzZXJ2aWNlczogT2JqZWN0LmtleXMoc2VydmljZXMpLm1hcChuYW1lID0+ICh7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBudW06IHNlcnZpY2VzW25hbWVdXG4gICAgICAgIH0pKVxuICAgICAgfSxcbiAgICAgIG1hbmlmZXN0XG4gICAgKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IERvY2tlckNvbXBvc2VDbGllbnQ7XG4iXSwibmFtZXMiOlsicmVxdWlyZSIsIkNsaWVudCIsIkV2ZW50RW1pdHRlciIsImF3YWl0aWZ5IiwiRG9ja2VyQ29tcG9zZUNsaWVudCIsImVuZHBvaW50IiwiY2xpZW50IiwiY29ubmVjdCIsIm9uIiwiZW1pdCIsImVyciIsIl9pbnZva2UiLCJiaW5kIiwibmFtZSIsImFyZ3MiLCJpbnZva2UiLCJjbG9zZSIsInByb2plY3ROYW1lIiwibWFuaWZlc3QiLCJwcm9qZWN0X25hbWUiLCJzZXJ2aWNlcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQUFtQkEsUUFBUSxTQUFSO0lBQVhDLGNBQUFBOztvQ0FDaUJELFFBQVEsUUFBUjtJQUFqQkUscUJBQUFBOztBQUNSLElBQU1DLG1DQUFXSCxRQUFRLGNBQVIsQ0FBWCxDQUFOOztJQUVNSTs7O2lDQUN5Qzs7O1FBQWpDQyxRQUFpQyxrR0FBdEIsb0JBQXNCOzs7Ozs7Ozs7O1VBR3RDQyxNQUFMLEdBQWMsSUFBSUwsTUFBSixFQUFkOztVQUNLSyxNQUFMLENBQVlDLE9BQVosQ0FBb0JGLFFBQXBCOztVQUNLQyxNQUFMLENBQVlFLEVBQVosQ0FBZSxPQUFmLEVBQXdCLGVBQU87Ozs7bUJBQUtDLElBQUwsQ0FBVSxPQUFWLEVBQW1CQyxHQUFuQjtLQUEvQjs7O1VBRUtDLE9BQUwsR0FBZVIsU0FBUyxNQUFLUSxPQUFMLENBQWFDLElBQWIsT0FBVCxDQUFmOzs7Ozs7Ozs7NEJBSU1DLE1BQWU7Ozs7Ozt3Q0FBTkMsSUFBTTtZQUFBOzs7YUFDZCxnQkFBS1IsTUFBTCxFQUFZUyxNQUFaLGlCQUFtQkYsSUFBbkIsU0FBNEJDLElBQTVCLEVBQVA7Ozs7NEJBR007Ozs7YUFDQyxLQUFLUixNQUFMLENBQVlVLEtBQVosRUFBUDs7OztxQ0FHbUM7VUFBekJDLFdBQXlCLFNBQXpCQSxXQUF5QjtVQUFaQyxRQUFZLFNBQVpBLFFBQVk7Ozs7O2FBRTVCLEtBQUtQLE9BQUwsQ0FBYSxJQUFiLEVBQW1CLEVBQUVRLGNBQWNGLFdBQWhCLEVBQW5CLEVBQWtEQyxRQUFsRCxDQUFQOzs7O2lDQUd5Qzs7O1VBQW5DRCxXQUFtQyxTQUFuQ0EsV0FBbUM7VUFBdEJHLFFBQXNCLFNBQXRCQSxRQUFzQjtVQUFaRixRQUFZLFNBQVpBLFFBQVk7Ozs7YUFDbEMsS0FBS1AsT0FBTCxDQUNMLE9BREssRUFFTDs7c0JBRWdCTSxXQUZoQjtrQkFHWUksT0FBT0MsSUFBUCxDQUFZRixRQUFaLEVBQXNCRyxHQUF0QixDQUEwQixnQkFBUzs7Ozs7c0JBQUE7aUJBRXRDSCxTQUFTUCxJQUFUOztTQUZHO09BTFAsRUFVTEssUUFWSyxDQUFQOzs7O0VBMUI4QmhCOzs7OztBQXlDbENzQixPQUFPQyxPQUFQLEdBQWlCckIsbUJBQWpCIn0=
|
584
spikes/docker-compose-client/dist/index.umd.js
vendored
584
spikes/docker-compose-client/dist/index.umd.js
vendored
@ -1,584 +0,0 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
var classCallCheck = function (instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
};
|
||||
|
||||
var createClass = function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
};
|
||||
}();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var inherits = function (subClass, superClass) {
|
||||
if (typeof superClass !== "function" && superClass !== null) {
|
||||
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||
}
|
||||
|
||||
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||||
constructor: {
|
||||
value: subClass,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var newArrowCheck = function (innerThis, boundThis) {
|
||||
if (innerThis !== boundThis) {
|
||||
throw new TypeError("Cannot instantiate an arrow function");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var possibleConstructorReturn = function (self, call) {
|
||||
if (!self) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
||||
};
|
||||
|
||||
var cov_1eyosjm197 = function () {
|
||||
var path = '/Users/ramitos/dev/yld/joyent-portal/spikes/docker-compose-client/src/index.js',
|
||||
hash = '384e02ed4692c70a8c8d9e69b30064cdb319bdf4',
|
||||
global = new Function('return this')(),
|
||||
gcv = '__coverage__',
|
||||
coverageData = {
|
||||
path: '/Users/ramitos/dev/yld/joyent-portal/spikes/docker-compose-client/src/index.js',
|
||||
statementMap: {
|
||||
'0': {
|
||||
start: {
|
||||
line: 1,
|
||||
column: 19
|
||||
},
|
||||
end: {
|
||||
line: 1,
|
||||
column: 37
|
||||
}
|
||||
},
|
||||
'1': {
|
||||
start: {
|
||||
line: 2,
|
||||
column: 25
|
||||
},
|
||||
end: {
|
||||
line: 2,
|
||||
column: 42
|
||||
}
|
||||
},
|
||||
'2': {
|
||||
start: {
|
||||
line: 3,
|
||||
column: 17
|
||||
},
|
||||
end: {
|
||||
line: 3,
|
||||
column: 40
|
||||
}
|
||||
},
|
||||
'3': {
|
||||
start: {
|
||||
line: 7,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 7,
|
||||
column: 12
|
||||
}
|
||||
},
|
||||
'4': {
|
||||
start: {
|
||||
line: 9,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 9,
|
||||
column: 31
|
||||
}
|
||||
},
|
||||
'5': {
|
||||
start: {
|
||||
line: 10,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 10,
|
||||
column: 34
|
||||
}
|
||||
},
|
||||
'6': {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 60
|
||||
}
|
||||
},
|
||||
'7': {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 35
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 58
|
||||
}
|
||||
},
|
||||
'8': {
|
||||
start: {
|
||||
line: 13,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 13,
|
||||
column: 53
|
||||
}
|
||||
},
|
||||
'9': {
|
||||
start: {
|
||||
line: 18,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 18,
|
||||
column: 45
|
||||
}
|
||||
},
|
||||
'10': {
|
||||
start: {
|
||||
line: 22,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 22,
|
||||
column: 31
|
||||
}
|
||||
},
|
||||
'11': {
|
||||
start: {
|
||||
line: 27,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 27,
|
||||
column: 71
|
||||
}
|
||||
},
|
||||
'12': {
|
||||
start: {
|
||||
line: 31,
|
||||
column: 4
|
||||
},
|
||||
end: {
|
||||
line: 42,
|
||||
column: 6
|
||||
}
|
||||
},
|
||||
'13': {
|
||||
start: {
|
||||
line: 36,
|
||||
column: 53
|
||||
},
|
||||
end: {
|
||||
line: 39,
|
||||
column: 9
|
||||
}
|
||||
},
|
||||
'14': {
|
||||
start: {
|
||||
line: 46,
|
||||
column: 0
|
||||
},
|
||||
end: {
|
||||
line: 46,
|
||||
column: 37
|
||||
}
|
||||
}
|
||||
},
|
||||
fnMap: {
|
||||
'0': {
|
||||
name: '(anonymous_0)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 6,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 6,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 6,
|
||||
column: 47
|
||||
},
|
||||
end: {
|
||||
line: 14,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 6
|
||||
},
|
||||
'1': {
|
||||
name: '(anonymous_1)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 28
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 29
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 11,
|
||||
column: 35
|
||||
},
|
||||
end: {
|
||||
line: 11,
|
||||
column: 58
|
||||
}
|
||||
},
|
||||
line: 11
|
||||
},
|
||||
'2': {
|
||||
name: '(anonymous_2)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 17,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 17,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 17,
|
||||
column: 25
|
||||
},
|
||||
end: {
|
||||
line: 19,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 17
|
||||
},
|
||||
'3': {
|
||||
name: '(anonymous_3)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 21,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 21,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 21,
|
||||
column: 10
|
||||
},
|
||||
end: {
|
||||
line: 23,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 21
|
||||
},
|
||||
'4': {
|
||||
name: '(anonymous_4)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 25,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 25,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 25,
|
||||
column: 39
|
||||
},
|
||||
end: {
|
||||
line: 28,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 25
|
||||
},
|
||||
'5': {
|
||||
name: '(anonymous_5)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 30,
|
||||
column: 2
|
||||
},
|
||||
end: {
|
||||
line: 30,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 30,
|
||||
column: 45
|
||||
},
|
||||
end: {
|
||||
line: 43,
|
||||
column: 3
|
||||
}
|
||||
},
|
||||
line: 30
|
||||
},
|
||||
'6': {
|
||||
name: '(anonymous_6)',
|
||||
decl: {
|
||||
start: {
|
||||
line: 36,
|
||||
column: 44
|
||||
},
|
||||
end: {
|
||||
line: 36,
|
||||
column: 45
|
||||
}
|
||||
},
|
||||
loc: {
|
||||
start: {
|
||||
line: 36,
|
||||
column: 53
|
||||
},
|
||||
end: {
|
||||
line: 39,
|
||||
column: 9
|
||||
}
|
||||
},
|
||||
line: 36
|
||||
}
|
||||
},
|
||||
branchMap: {
|
||||
'0': {
|
||||
loc: {
|
||||
start: {
|
||||
line: 6,
|
||||
column: 14
|
||||
},
|
||||
end: {
|
||||
line: 6,
|
||||
column: 45
|
||||
}
|
||||
},
|
||||
type: 'default-arg',
|
||||
locations: [{
|
||||
start: {
|
||||
line: 6,
|
||||
column: 25
|
||||
},
|
||||
end: {
|
||||
line: 6,
|
||||
column: 45
|
||||
}
|
||||
}],
|
||||
line: 6
|
||||
}
|
||||
},
|
||||
s: {
|
||||
'0': 0,
|
||||
'1': 0,
|
||||
'2': 0,
|
||||
'3': 0,
|
||||
'4': 0,
|
||||
'5': 0,
|
||||
'6': 0,
|
||||
'7': 0,
|
||||
'8': 0,
|
||||
'9': 0,
|
||||
'10': 0,
|
||||
'11': 0,
|
||||
'12': 0,
|
||||
'13': 0,
|
||||
'14': 0
|
||||
},
|
||||
f: {
|
||||
'0': 0,
|
||||
'1': 0,
|
||||
'2': 0,
|
||||
'3': 0,
|
||||
'4': 0,
|
||||
'5': 0,
|
||||
'6': 0
|
||||
},
|
||||
b: {
|
||||
'0': [0]
|
||||
},
|
||||
_coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c'
|
||||
},
|
||||
coverage = global[gcv] || (global[gcv] = {});
|
||||
|
||||
if (coverage[path] && coverage[path].hash === hash) {
|
||||
return coverage[path];
|
||||
}
|
||||
|
||||
coverageData.hash = hash;
|
||||
return coverage[path] = coverageData;
|
||||
}();
|
||||
|
||||
var _ref = (++cov_1eyosjm197.s[0], require('zerorpc'));
|
||||
var Client = _ref.Client;
|
||||
|
||||
var _ref2 = (++cov_1eyosjm197.s[1], require('events'));
|
||||
var EventEmitter = _ref2.EventEmitter;
|
||||
|
||||
var awaitify = (++cov_1eyosjm197.s[2], require('apr-awaitify'));
|
||||
|
||||
var DockerComposeClient = function (_EventEmitter) {
|
||||
inherits(DockerComposeClient, _EventEmitter);
|
||||
|
||||
function DockerComposeClient() {
|
||||
var _this2 = this;
|
||||
|
||||
var endpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (++cov_1eyosjm197.b[0][0], 'tcp://0.0.0.0:4242');
|
||||
classCallCheck(this, DockerComposeClient);
|
||||
++cov_1eyosjm197.f[0];
|
||||
++cov_1eyosjm197.s[3];
|
||||
|
||||
var _this = possibleConstructorReturn(this, (DockerComposeClient.__proto__ || Object.getPrototypeOf(DockerComposeClient)).call(this));
|
||||
|
||||
++cov_1eyosjm197.s[4];
|
||||
|
||||
|
||||
_this.client = new Client();
|
||||
++cov_1eyosjm197.s[5];
|
||||
_this.client.connect(endpoint);
|
||||
++cov_1eyosjm197.s[6];
|
||||
_this.client.on('error', function (err) {
|
||||
newArrowCheck(this, _this2);
|
||||
++cov_1eyosjm197.f[1];
|
||||
++cov_1eyosjm197.s[7];
|
||||
return _this.emit('error', err);
|
||||
}.bind(this));
|
||||
|
||||
++cov_1eyosjm197.s[8];
|
||||
_this._invoke = awaitify(_this._invoke.bind(_this));
|
||||
return _this;
|
||||
}
|
||||
|
||||
// Why isn't client.connect async with error??
|
||||
|
||||
|
||||
createClass(DockerComposeClient, [{
|
||||
key: '_invoke',
|
||||
value: function _invoke(name) {
|
||||
var _client;
|
||||
|
||||
++cov_1eyosjm197.f[2];
|
||||
++cov_1eyosjm197.s[9];
|
||||
|
||||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
args[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
return (_client = this.client).invoke.apply(_client, [name].concat(args));
|
||||
}
|
||||
}, {
|
||||
key: 'close',
|
||||
value: function close() {
|
||||
++cov_1eyosjm197.f[3];
|
||||
++cov_1eyosjm197.s[10];
|
||||
|
||||
return this.client.close();
|
||||
}
|
||||
}, {
|
||||
key: 'provision',
|
||||
value: function provision(_ref3) {
|
||||
var projectName = _ref3.projectName,
|
||||
manifest = _ref3.manifest;
|
||||
++cov_1eyosjm197.f[4];
|
||||
++cov_1eyosjm197.s[11];
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
return this._invoke('up', { project_name: projectName }, manifest);
|
||||
}
|
||||
}, {
|
||||
key: 'scale',
|
||||
value: function scale(_ref4) {
|
||||
var _this3 = this;
|
||||
|
||||
var projectName = _ref4.projectName,
|
||||
services = _ref4.services,
|
||||
manifest = _ref4.manifest;
|
||||
++cov_1eyosjm197.f[5];
|
||||
++cov_1eyosjm197.s[12];
|
||||
|
||||
return this._invoke('scale', {
|
||||
// eslint-disable-next-line camelcase
|
||||
project_name: projectName,
|
||||
services: Object.keys(services).map(function (name) {
|
||||
newArrowCheck(this, _this3);
|
||||
++cov_1eyosjm197.f[6];
|
||||
++cov_1eyosjm197.s[13];
|
||||
return {
|
||||
name: name,
|
||||
num: services[name]
|
||||
};
|
||||
}.bind(this))
|
||||
}, manifest);
|
||||
}
|
||||
}]);
|
||||
return DockerComposeClient;
|
||||
}(EventEmitter);
|
||||
|
||||
++cov_1eyosjm197.s[14];
|
||||
|
||||
|
||||
module.exports = DockerComposeClient;
|
||||
|
||||
})));
|
||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBDbGllbnQgfSA9IHJlcXVpcmUoJ3plcm9ycGMnKTtcbmNvbnN0IHsgRXZlbnRFbWl0dGVyIH0gPSByZXF1aXJlKCdldmVudHMnKTtcbmNvbnN0IGF3YWl0aWZ5ID0gcmVxdWlyZSgnYXByLWF3YWl0aWZ5Jyk7XG5cbmNsYXNzIERvY2tlckNvbXBvc2VDbGllbnQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBjb25zdHJ1Y3RvcihlbmRwb2ludCA9ICd0Y3A6Ly8wLjAuMC4wOjQyNDInKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuY2xpZW50ID0gbmV3IENsaWVudCgpO1xuICAgIHRoaXMuY2xpZW50LmNvbm5lY3QoZW5kcG9pbnQpO1xuICAgIHRoaXMuY2xpZW50Lm9uKCdlcnJvcicsIGVyciA9PiB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKSk7XG5cbiAgICB0aGlzLl9pbnZva2UgPSBhd2FpdGlmeSh0aGlzLl9pbnZva2UuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvLyBXaHkgaXNuJ3QgY2xpZW50LmNvbm5lY3QgYXN5bmMgd2l0aCBlcnJvcj8/XG4gIF9pbnZva2UobmFtZSwgLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5pbnZva2UobmFtZSwgLi4uYXJncyk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3Zpc2lvbih7IHByb2plY3ROYW1lLCBtYW5pZmVzdCB9KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ3VwJywgeyBwcm9qZWN0X25hbWU6IHByb2plY3ROYW1lIH0sIG1hbmlmZXN0KTtcbiAgfVxuXG4gIHNjYWxlKHsgcHJvamVjdE5hbWUsIHNlcnZpY2VzLCBtYW5pZmVzdCB9KSB7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdzY2FsZScsXG4gICAgICB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcbiAgICAgICAgcHJvamVjdF9uYW1lOiBwcm9qZWN0TmFtZSxcbiAgICAgICAgc2VydmljZXM6IE9iamVjdC5rZXlzKHNlcnZpY2VzKS5tYXAobmFtZSA9PiAoe1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgbnVtOiBzZXJ2aWNlc1tuYW1lXVxuICAgICAgICB9KSlcbiAgICAgIH0sXG4gICAgICBtYW5pZmVzdFxuICAgICk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBEb2NrZXJDb21wb3NlQ2xpZW50O1xuIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJDbGllbnQiLCJFdmVudEVtaXR0ZXIiLCJhd2FpdGlmeSIsIkRvY2tlckNvbXBvc2VDbGllbnQiLCJlbmRwb2ludCIsImNsaWVudCIsImNvbm5lY3QiLCJvbiIsImVtaXQiLCJlcnIiLCJfaW52b2tlIiwiYmluZCIsIm5hbWUiLCJhcmdzIiwiaW52b2tlIiwiY2xvc2UiLCJwcm9qZWN0TmFtZSIsIm1hbmlmZXN0IiwicHJvamVjdF9uYW1lIiwic2VydmljZXMiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQ0FBbUJBLFFBQVEsU0FBUjtJQUFYQyxjQUFBQTs7b0NBQ2lCRCxRQUFRLFFBQVI7SUFBakJFLHFCQUFBQTs7QUFDUixJQUFNQyxtQ0FBV0gsUUFBUSxjQUFSLENBQVgsQ0FBTjs7SUFFTUk7OztpQ0FDeUM7OztRQUFqQ0MsUUFBaUMsa0dBQXRCLG9CQUFzQjs7Ozs7Ozs7OztVQUd0Q0MsTUFBTCxHQUFjLElBQUlMLE1BQUosRUFBZDs7VUFDS0ssTUFBTCxDQUFZQyxPQUFaLENBQW9CRixRQUFwQjs7VUFDS0MsTUFBTCxDQUFZRSxFQUFaLENBQWUsT0FBZixFQUF3QixlQUFPOzs7O21CQUFLQyxJQUFMLENBQVUsT0FBVixFQUFtQkMsR0FBbkI7S0FBL0I7OztVQUVLQyxPQUFMLEdBQWVSLFNBQVMsTUFBS1EsT0FBTCxDQUFhQyxJQUFiLE9BQVQsQ0FBZjs7Ozs7Ozs7OzRCQUlNQyxNQUFlOzs7Ozs7d0NBQU5DLElBQU07WUFBQTs7O2FBQ2QsZ0JBQUtSLE1BQUwsRUFBWVMsTUFBWixpQkFBbUJGLElBQW5CLFNBQTRCQyxJQUE1QixFQUFQOzs7OzRCQUdNOzs7O2FBQ0MsS0FBS1IsTUFBTCxDQUFZVSxLQUFaLEVBQVA7Ozs7cUNBR21DO1VBQXpCQyxXQUF5QixTQUF6QkEsV0FBeUI7VUFBWkMsUUFBWSxTQUFaQSxRQUFZOzs7OzthQUU1QixLQUFLUCxPQUFMLENBQWEsSUFBYixFQUFtQixFQUFFUSxjQUFjRixXQUFoQixFQUFuQixFQUFrREMsUUFBbEQsQ0FBUDs7OztpQ0FHeUM7OztVQUFuQ0QsV0FBbUMsU0FBbkNBLFdBQW1DO1VBQXRCRyxRQUFzQixTQUF0QkEsUUFBc0I7VUFBWkYsUUFBWSxTQUFaQSxRQUFZOzs7O2FBQ2xDLEtBQUtQLE9BQUwsQ0FDTCxPQURLLEVBRUw7O3NCQUVnQk0sV0FGaEI7a0JBR1lJLE9BQU9DLElBQVAsQ0FBWUYsUUFBWixFQUFzQkcsR0FBdEIsQ0FBMEIsZ0JBQVM7Ozs7O3NCQUFBO2lCQUV0Q0gsU0FBU1AsSUFBVDs7U0FGRztPQUxQLEVBVUxLLFFBVkssQ0FBUDs7OztFQTFCOEJoQjs7Ozs7QUF5Q2xDc0IsT0FBT0MsT0FBUCxHQUFpQnJCLG1CQUFqQjs7In0=
|
Loading…
Reference in New Issue
Block a user