New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@makerdao/services-core

Package Overview
Dependencies
Maintainers
17
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@makerdao/services-core - npm Package Compare versions

Comparing version 0.9.8 to 0.9.9

dist/ServiceProvider.js

243

dist/Container.js

@@ -1,113 +0,95 @@

'use strict';
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ServiceNotFoundError = exports.ServiceAlreadyRegisteredError = exports.InvalidServiceError = exports.ExtractedServiceError = exports.default = undefined;
exports.orderServices = orderServices;
Object.defineProperty(exports, "InvalidServiceError", {
enumerable: true,
get: function get() {
return _ServiceManager.InvalidServiceError;
}
});
exports.ServiceNotFoundError = exports.ServiceAlreadyRegisteredError = exports.ExtractedServiceError = exports["default"] = void 0;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _keys = require('babel-runtime/core-js/object/keys');
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _keys2 = _interopRequireDefault(_keys);
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _createClass2 = require('babel-runtime/helpers/createClass');
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createClass3 = _interopRequireDefault(_createClass2);
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
var _values = _interopRequireDefault(require("lodash/values"));
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _uniq = _interopRequireDefault(require("lodash/uniq"));
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _ServiceManager = _interopRequireWildcard(require("./ServiceManager"));
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _toposort = _interopRequireDefault(require("toposort"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var ServiceAlreadyRegisteredError =
/*#__PURE__*/
function (_Error) {
(0, _inherits2["default"])(ServiceAlreadyRegisteredError, _Error);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
exports.orderServices = orderServices;
var _lodash = require('lodash.values');
var _lodash2 = _interopRequireDefault(_lodash);
var _ServiceManager = require('./ServiceManager');
var _ServiceManager2 = _interopRequireDefault(_ServiceManager);
var _toposort = require('toposort');
var _toposort2 = _interopRequireDefault(_toposort);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ServiceAlreadyRegisteredError = function (_Error) {
(0, _inherits3.default)(ServiceAlreadyRegisteredError, _Error);
function ServiceAlreadyRegisteredError(name) {
(0, _classCallCheck3.default)(this, ServiceAlreadyRegisteredError);
(0, _classCallCheck2["default"])(this, ServiceAlreadyRegisteredError);
// prettier-ignore
return (0, _possibleConstructorReturn3.default)(this, (ServiceAlreadyRegisteredError.__proto__ || (0, _getPrototypeOf2.default)(ServiceAlreadyRegisteredError)).call(this, 'Service with name \'' + name + '\' is already registered with this container.'));
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceAlreadyRegisteredError).call(this, 'Service with name \'' + name + '\' is already registered with this container.'));
}
return ServiceAlreadyRegisteredError;
}(Error);
}((0, _wrapNativeSuper2["default"])(Error));
var ServiceNotFoundError = function (_Error2) {
(0, _inherits3.default)(ServiceNotFoundError, _Error2);
exports.ServiceAlreadyRegisteredError = ServiceAlreadyRegisteredError;
var ServiceNotFoundError =
/*#__PURE__*/
function (_Error2) {
(0, _inherits2["default"])(ServiceNotFoundError, _Error2);
function ServiceNotFoundError(name) {
(0, _classCallCheck3.default)(this, ServiceNotFoundError);
(0, _classCallCheck2["default"])(this, ServiceNotFoundError);
// prettier-ignore
return (0, _possibleConstructorReturn3.default)(this, (ServiceNotFoundError.__proto__ || (0, _getPrototypeOf2.default)(ServiceNotFoundError)).call(this, 'Service with name \'' + name + '\' cannot be found in this container.'));
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceNotFoundError).call(this, 'Service with name \'' + name + '\' cannot be found in this container.'));
}
return ServiceNotFoundError;
}(Error);
}((0, _wrapNativeSuper2["default"])(Error));
var ExtractedServiceError = function (_Error3) {
(0, _inherits3.default)(ExtractedServiceError, _Error3);
exports.ServiceNotFoundError = ServiceNotFoundError;
var ExtractedServiceError =
/*#__PURE__*/
function (_Error3) {
(0, _inherits2["default"])(ExtractedServiceError, _Error3);
function ExtractedServiceError(name) {
(0, _classCallCheck3.default)(this, ExtractedServiceError);
(0, _classCallCheck2["default"])(this, ExtractedServiceError);
// prettier-ignore
return (0, _possibleConstructorReturn3.default)(this, (ExtractedServiceError.__proto__ || (0, _getPrototypeOf2.default)(ExtractedServiceError)).call(this, 'Service with name \'' + name + '\' has been extracted from the core dai.js library into a discrete plugin. Please refer to the documentation here to install and add it to your configuration: \n\n https://github.com/makerdao/dai.js/wiki/Basic-Usage-(Plugins) \n\n'));
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ExtractedServiceError).call(this, 'Service with name \'' + name + '\' has been extracted from the core dai.js library into a discrete plugin. Please refer to the documentation here to install and add it to your configuration: \n\n https://github.com/makerdao/dai.js/wiki/Basic-Usage-(Plugins) \n\n'));
}
return ExtractedServiceError;
}(Error);
}((0, _wrapNativeSuper2["default"])(Error)); // exported just for testing
// exported just for testing
exports.ExtractedServiceError = ExtractedServiceError;
function orderServices(services) {
var edges = [];
var _loop = function _loop(service) {
var name = service.manager().name();
var depNames = service.manager().dependencies();
depNames.forEach(function (dn) {
return edges.push([dn, name]);
});
};
var servicesWithoutDeps = [];
var _iteratorNormalCompletion = true;

@@ -118,6 +100,18 @@ var _didIteratorError = false;

try {
for (var _iterator = (0, _getIterator3.default)(services), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var _loop = function _loop() {
var service = _step.value;
var name = service.manager().name();
var depNames = service.manager().dependencies();
_loop(service);
if (depNames.length === 0) {
servicesWithoutDeps.push(name);
} else {
depNames.forEach(function (dn) {
return edges.push([dn, name]);
});
}
};
for (var _iterator = services[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
_loop();
}

@@ -129,4 +123,4 @@ } catch (err) {

try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
_iterator["return"]();
}

@@ -140,9 +134,10 @@ } finally {

return (0, _toposort2.default)(edges);
return (0, _uniq["default"])((0, _toposort["default"])(edges).concat(servicesWithoutDeps));
}
var Container = function () {
var Container =
/*#__PURE__*/
function () {
function Container() {
(0, _classCallCheck3.default)(this, Container);
(0, _classCallCheck2["default"])(this, Container);
this._services = {};

@@ -152,8 +147,8 @@ this.isAuthenticated = false;

(0, _createClass3.default)(Container, [{
key: 'register',
(0, _createClass2["default"])(Container, [{
key: "register",
value: function register(service) {
var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
if (!_ServiceManager2.default.isValidService(service)) {
if (!_ServiceManager["default"].isValidService(service)) {
throw new _ServiceManager.InvalidServiceError('Service must be an object with manager() method returning a valid ServiceManager');

@@ -163,4 +158,4 @@ }

name = name || service.manager().name();
var s = this.service(name, false);
var s = this.service(name, false);
if (s !== undefined && s !== service) {

@@ -174,6 +169,5 @@ throw new ServiceAlreadyRegisteredError(name);

}, {
key: 'service',
key: "service",
value: function service(name) {
var throwIfMissing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var extractedServices = ['exchange'];

@@ -196,10 +190,10 @@

}, {
key: 'getRegisteredServiceNames',
key: "getRegisteredServiceNames",
value: function getRegisteredServiceNames() {
return (0, _keys2.default)(this._services);
return Object.keys(this._services);
}
}, {
key: 'injectDependencies',
key: "injectDependencies",
value: function injectDependencies() {
var services = (0, _lodash2.default)(this._services);
var services = (0, _values["default"])(this._services);
var _iteratorNormalCompletion2 = true;

@@ -210,5 +204,4 @@ var _didIteratorError2 = false;

try {
for (var _iterator2 = (0, _getIterator3.default)(services), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
for (var _iterator2 = services[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var service = _step2.value;
var manager = service.manager();

@@ -220,8 +213,7 @@ var _iteratorNormalCompletion3 = true;

try {
for (var _iterator3 = (0, _getIterator3.default)(manager.dependencies()), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var _name = _step3.value;
var dep = this._services[_name];
if (!dep) throw new ServiceNotFoundError(_name);
manager.inject(_name, this._services[_name]);
for (var _iterator3 = manager.dependencies()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var name = _step3.value;
var dep = this._services[name];
if (!dep) throw new ServiceNotFoundError(name);
manager.inject(name, this._services[name]);
}

@@ -233,4 +225,4 @@ } catch (err) {

try {
if (!_iteratorNormalCompletion3 && _iterator3.return) {
_iterator3.return();
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
_iterator3["return"]();
}

@@ -249,4 +241,4 @@ } finally {

try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
_iterator2["return"]();
}

@@ -261,3 +253,3 @@ } finally {

}, {
key: 'initialize',
key: "initialize",
value: function initialize() {

@@ -269,3 +261,3 @@ return this._waitForServices(function (s) {

}, {
key: 'connect',
key: "connect",
value: function connect() {

@@ -277,5 +269,5 @@ return this._waitForServices(function (s) {

}, {
key: 'authenticate',
key: "authenticate",
value: function authenticate() {
var _this4 = this;
var _this = this;

@@ -285,12 +277,14 @@ return this._waitForServices(function (s) {

}).then(function () {
_this4.isAuthenticated = true;
_this.isAuthenticated = true;
});
}
}, {
key: '_waitForServices',
key: "_waitForServices",
value: function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(callback) {
var _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, _name2, service;
var _waitForServices2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee(callback) {
var _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, name, service;
return _regenerator2.default.wrap(function _callee$(_context) {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {

@@ -300,4 +294,5 @@ switch (_context.prev = _context.next) {

if (!this._orderedServiceNames) {
this._orderedServiceNames = orderServices((0, _lodash2.default)(this._services));
this._orderedServiceNames = orderServices((0, _values["default"])(this._services));
}
_iteratorNormalCompletion4 = true;

@@ -307,3 +302,3 @@ _didIteratorError4 = false;

_context.prev = 4;
_iterator4 = (0, _getIterator3.default)(this._orderedServiceNames);
_iterator4 = this._orderedServiceNames[Symbol.iterator]();

@@ -316,4 +311,4 @@ case 6:

_name2 = _step4.value;
service = this._services[_name2];
name = _step4.value;
service = this._services[name];

@@ -325,7 +320,7 @@ if (service) {

throw new Error('No service for ' + _name2);
throw new Error("No service for ".concat(name));
case 11:
_context.next = 13;
return callback(this._services[_name2]);
return callback(this._services[name]);

@@ -343,3 +338,3 @@ case 13:

_context.prev = 18;
_context.t0 = _context['catch'](4);
_context.t0 = _context["catch"](4);
_didIteratorError4 = true;

@@ -352,4 +347,4 @@ _iteratorError4 = _context.t0;

if (!_iteratorNormalCompletion4 && _iterator4.return) {
_iterator4.return();
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
_iterator4["return"]();
}

@@ -374,3 +369,3 @@

case 30:
case 'end':
case "end":
return _context.stop();

@@ -382,4 +377,4 @@ }

function _waitForServices(_x3) {
return _ref.apply(this, arguments);
function _waitForServices(_x) {
return _waitForServices2.apply(this, arguments);
}

@@ -393,6 +388,2 @@

exports.default = Container;
exports.ExtractedServiceError = ExtractedServiceError;
exports.InvalidServiceError = _ServiceManager.InvalidServiceError;
exports.ServiceAlreadyRegisteredError = ServiceAlreadyRegisteredError;
exports.ServiceNotFoundError = ServiceNotFoundError;
exports["default"] = Container;

@@ -1,61 +0,71 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Container = require('./Container');
Object.defineProperty(exports, 'Container', {
Object.defineProperty(exports, "standardizeConfig", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_Container).default;
return _standardizeConfig["default"];
}
});
var _LocalService = require('./LocalService');
Object.defineProperty(exports, 'LocalService', {
Object.defineProperty(exports, "ServiceProvider", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_LocalService).default;
return _ServiceProvider["default"];
}
});
var _PublicService = require('./PublicService');
Object.defineProperty(exports, 'PublicService', {
Object.defineProperty(exports, "Container", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_PublicService).default;
return _Container["default"];
}
});
var _PrivateService = require('./PrivateService');
Object.defineProperty(exports, 'PrivateService', {
Object.defineProperty(exports, "LocalService", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_PrivateService).default;
return _LocalService["default"];
}
});
var _ServiceManager = require('./ServiceManager');
Object.defineProperty(exports, 'ServiceManager', {
Object.defineProperty(exports, "PublicService", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_ServiceManager).default;
return _PublicService["default"];
}
});
var _StateMachine = require('./StateMachine');
Object.defineProperty(exports, 'StateMachine', {
Object.defineProperty(exports, "PrivateService", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_StateMachine).default;
return _PrivateService["default"];
}
});
Object.defineProperty(exports, "ServiceManager", {
enumerable: true,
get: function get() {
return _ServiceManager["default"];
}
});
Object.defineProperty(exports, "StateMachine", {
enumerable: true,
get: function get() {
return _StateMachine["default"];
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _standardizeConfig = _interopRequireDefault(require("./standardizeConfig"));
var _ServiceProvider = _interopRequireDefault(require("./ServiceProvider"));
var _Container = _interopRequireDefault(require("./Container"));
var _LocalService = _interopRequireDefault(require("./LocalService"));
var _PublicService = _interopRequireDefault(require("./PublicService"));
var _PrivateService = _interopRequireDefault(require("./PrivateService"));
var _ServiceManager = _interopRequireDefault(require("./ServiceManager"));
var _StateMachine = _interopRequireDefault(require("./StateMachine"));

@@ -1,38 +0,29 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _ServiceType = _interopRequireDefault(require("./ServiceType"));
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _ServiceBase2 = _interopRequireDefault(require("./ServiceBase"));
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _ServiceType = require('./ServiceType');
var _ServiceType2 = _interopRequireDefault(_ServiceType);
var _ServiceBase2 = require('./ServiceBase');
var _ServiceBase3 = _interopRequireDefault(_ServiceBase2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
*/
var LocalService = function (_ServiceBase) {
(0, _inherits3.default)(LocalService, _ServiceBase);
var LocalService =
/*#__PURE__*/
function (_ServiceBase) {
(0, _inherits2["default"])(LocalService, _ServiceBase);

@@ -45,9 +36,10 @@ /**

var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
(0, _classCallCheck3.default)(this, LocalService);
return (0, _possibleConstructorReturn3.default)(this, (LocalService.__proto__ || (0, _getPrototypeOf2.default)(LocalService)).call(this, _ServiceType2.default.LOCAL, name, dependencies));
(0, _classCallCheck2["default"])(this, LocalService);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LocalService).call(this, _ServiceType["default"].LOCAL, name, dependencies));
}
return LocalService;
}(_ServiceBase3.default);
}(_ServiceBase2["default"]);
exports.default = LocalService;
var _default = LocalService;
exports["default"] = _default;

@@ -1,38 +0,29 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _ServiceType = _interopRequireDefault(require("./ServiceType"));
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _ServiceBase2 = _interopRequireDefault(require("./ServiceBase"));
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _ServiceType = require('./ServiceType');
var _ServiceType2 = _interopRequireDefault(_ServiceType);
var _ServiceBase2 = require('./ServiceBase');
var _ServiceBase3 = _interopRequireDefault(_ServiceBase2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
*/
var PrivateService = function (_ServiceBase) {
(0, _inherits3.default)(PrivateService, _ServiceBase);
var PrivateService =
/*#__PURE__*/
function (_ServiceBase) {
(0, _inherits2["default"])(PrivateService, _ServiceBase);

@@ -45,9 +36,10 @@ /**

var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
(0, _classCallCheck3.default)(this, PrivateService);
return (0, _possibleConstructorReturn3.default)(this, (PrivateService.__proto__ || (0, _getPrototypeOf2.default)(PrivateService)).call(this, _ServiceType2.default.PRIVATE, name, dependencies));
(0, _classCallCheck2["default"])(this, PrivateService);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PrivateService).call(this, _ServiceType["default"].PRIVATE, name, dependencies));
}
return PrivateService;
}(_ServiceBase3.default);
}(_ServiceBase2["default"]);
exports.default = PrivateService;
var _default = PrivateService;
exports["default"] = _default;

@@ -1,38 +0,29 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _ServiceType = _interopRequireDefault(require("./ServiceType"));
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _ServiceBase2 = _interopRequireDefault(require("./ServiceBase"));
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _ServiceType = require('./ServiceType');
var _ServiceType2 = _interopRequireDefault(_ServiceType);
var _ServiceBase2 = require('./ServiceBase');
var _ServiceBase3 = _interopRequireDefault(_ServiceBase2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
*/
var PublicService = function (_ServiceBase) {
(0, _inherits3.default)(PublicService, _ServiceBase);
var PublicService =
/*#__PURE__*/
function (_ServiceBase) {
(0, _inherits2["default"])(PublicService, _ServiceBase);

@@ -45,9 +36,10 @@ /**

var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
(0, _classCallCheck3.default)(this, PublicService);
return (0, _possibleConstructorReturn3.default)(this, (PublicService.__proto__ || (0, _getPrototypeOf2.default)(PublicService)).call(this, _ServiceType2.default.PUBLIC, name, dependencies));
(0, _classCallCheck2["default"])(this, PublicService);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PublicService).call(this, _ServiceType["default"].PUBLIC, name, dependencies));
}
return PublicService;
}(_ServiceBase3.default);
}(_ServiceBase2["default"]);
exports.default = PublicService;
var _default = PublicService;
exports["default"] = _default;

@@ -1,29 +0,20 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _createClass2 = require('babel-runtime/helpers/createClass');
var _ServiceManager = _interopRequireDefault(require("./ServiceManager"));
var _createClass3 = _interopRequireDefault(_createClass2);
var _ServiceType = _interopRequireDefault(require("./ServiceType"));
var _ServiceManager = require('./ServiceManager');
var _ServiceState = _interopRequireDefault(require("./ServiceState"));
var _ServiceManager2 = _interopRequireDefault(_ServiceManager);
var _ServiceType = require('./ServiceType');
var _ServiceType2 = _interopRequireDefault(_ServiceType);
var _ServiceState = require('./ServiceState');
var _ServiceState2 = _interopRequireDefault(_ServiceState);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**

@@ -38,3 +29,3 @@ * @param {string} type

if (type !== _ServiceType2.default.LOCAL) {
if (type !== _ServiceType["default"].LOCAL) {
if (typeof this.connect === 'undefined') {

@@ -47,3 +38,3 @@ this.connect = function () {};

if (type === _ServiceType2.default.PRIVATE) {
if (type === _ServiceType["default"].PRIVATE) {
if (typeof this.authenticate === 'undefined') {

@@ -56,3 +47,2 @@ this.authenticate = function () {};

}
/**

@@ -65,19 +55,19 @@ * @param {string} type

*/
function _buildServiceManager(type, name, dependencies) {
var _this = this;
var connect = type === _ServiceType2.default.LOCAL ? null : function (disconnect) {
var connect = type === _ServiceType["default"].LOCAL ? null : function (disconnect) {
_this.disconnect = disconnect;
return _this.connect();
};
var auth = type !== _ServiceType2.default.PRIVATE ? null : function (deauthenticate) {
var auth = type !== _ServiceType["default"].PRIVATE ? null : function (deauthenticate) {
_this.deauthenticate = deauthenticate;
return _this.authenticate();
};
return new _ServiceManager2.default(name, dependencies, function (settings) {
return new _ServiceManager["default"](name, dependencies, function (settings) {
return _this.initialize(settings);
}, connect, auth);
}
/**

@@ -87,2 +77,4 @@ * @param {ServiceManager} mgr

*/
function _installLifeCycleHooks(mgr) {

@@ -92,3 +84,3 @@ var _this2 = this;

mgr.onInitialized(function () {
if (mgr.type() !== _ServiceType2.default.LOCAL) {
if (mgr.type() !== _ServiceType["default"].LOCAL) {
mgr.dependencies().forEach(function (d) {

@@ -101,3 +93,3 @@ _this2.get(d).manager().onDisconnected(function () {

if (mgr.type() === _ServiceType2.default.PRIVATE) {
if (mgr.type() === _ServiceType["default"].PRIVATE) {
mgr.dependencies().forEach(function (d) {

@@ -111,6 +103,7 @@ _this2.get(d).manager().onDeauthenticated(function () {

}
/**
* @private
*/
function _guardLifeCycleMethods() {

@@ -124,3 +117,3 @@ var original = {

this.initialize = function (settings) {
if (this.manager().state() !== _ServiceState2.default.INITIALIZING) {
if (this.manager().state() !== _ServiceState["default"].INITIALIZING) {
throw new Error('Expected state INITIALIZING, but got ' + this.manager().state() + '. Did you mean to call service.manager().initialize() instead of service.initialize()?');

@@ -134,3 +127,3 @@ }

this.connect = function () {
if (this.manager().state() !== _ServiceState2.default.CONNECTING) {
if (this.manager().state() !== _ServiceState["default"].CONNECTING) {
throw new Error('Expected state CONNECTING, but got ' + this.manager().state() + '. Did you mean to call service.manager().connect() instead of service.connect()?');

@@ -145,3 +138,3 @@ }

this.authenticate = function () {
if (this.manager().state() !== _ServiceState2.default.AUTHENTICATING) {
if (this.manager().state() !== _ServiceState["default"].AUTHENTICATING) {
throw new Error('Expected state AUTHENTICATING, but got ' + this.manager().state() + '. Did you mean to call service.manager().authenticate() instead of service.authenticate()?');

@@ -155,3 +148,5 @@ }

var ServiceBase = function () {
var ServiceBase =
/*#__PURE__*/
function () {
/**

@@ -164,5 +159,5 @@ * @param {string} type

var dependencies = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
(0, _classCallCheck3.default)(this, ServiceBase);
(0, _classCallCheck2["default"])(this, ServiceBase);
if (typeof _ServiceType2.default[type] === 'undefined') {
if (typeof _ServiceType["default"][type] === 'undefined') {
throw new Error('Invalid ServiceType: ' + type);

@@ -172,7 +167,9 @@ }

_defineLifeCycleMethods.call(this, type);
this._serviceManager = _buildServiceManager.call(this, type, name, dependencies);
_installLifeCycleHooks.call(this, this._serviceManager);
_guardLifeCycleMethods.call(this);
}
/**

@@ -183,8 +180,7 @@ * @returns {ServiceManager}

(0, _createClass3.default)(ServiceBase, [{
key: 'manager',
(0, _createClass2["default"])(ServiceBase, [{
key: "manager",
value: function manager() {
return this._serviceManager;
}
/**

@@ -196,3 +192,3 @@ * @param {string} dependency

}, {
key: 'get',
key: "get",
value: function get(dependency) {

@@ -205,2 +201,3 @@ return this._serviceManager.dependency(dependency);

exports.default = ServiceBase;
var _default = ServiceBase;
exports["default"] = _default;

@@ -1,60 +0,43 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DependencyNotResolvedError = exports.UnknownDependencyError = exports.InvalidServiceError = exports.default = undefined;
exports.DependencyNotResolvedError = exports.UnknownDependencyError = exports.InvalidServiceError = exports["default"] = void 0;
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _typeof3 = _interopRequireDefault(_typeof2);
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
var _get2 = require('babel-runtime/helpers/get');
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _get3 = _interopRequireDefault(_get2);
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = require('babel-runtime/helpers/createClass');
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _createClass3 = _interopRequireDefault(_createClass2);
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _promise = require('babel-runtime/core-js/promise');
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _promise2 = _interopRequireDefault(_promise);
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _ServiceManagerBase2 = _interopRequireDefault(require("./ServiceManagerBase"));
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _ServiceManagerBase2 = require('./ServiceManagerBase');
var _ServiceManagerBase3 = _interopRequireDefault(_ServiceManagerBase2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
*/
var InvalidServiceError = function (_Error) {
(0, _inherits3.default)(InvalidServiceError, _Error);
var InvalidServiceError =
/*#__PURE__*/
function (_Error) {
(0, _inherits2["default"])(InvalidServiceError, _Error);
function InvalidServiceError(message) {
(0, _classCallCheck3.default)(this, InvalidServiceError);
return (0, _possibleConstructorReturn3.default)(this, (InvalidServiceError.__proto__ || (0, _getPrototypeOf2.default)(InvalidServiceError)).call(this, message));
(0, _classCallCheck2["default"])(this, InvalidServiceError);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(InvalidServiceError).call(this, message));
}
return InvalidServiceError;
}(Error);
}((0, _wrapNativeSuper2["default"])(Error));
/**

@@ -65,13 +48,16 @@ *

var UnknownDependencyError = function (_Error2) {
(0, _inherits3.default)(UnknownDependencyError, _Error2);
exports.InvalidServiceError = InvalidServiceError;
var UnknownDependencyError =
/*#__PURE__*/
function (_Error2) {
(0, _inherits2["default"])(UnknownDependencyError, _Error2);
function UnknownDependencyError(service, dependency) {
(0, _classCallCheck3.default)(this, UnknownDependencyError);
return (0, _possibleConstructorReturn3.default)(this, (UnknownDependencyError.__proto__ || (0, _getPrototypeOf2.default)(UnknownDependencyError)).call(this, 'Injected service ' + dependency + ' is not a dependency of ' + service));
(0, _classCallCheck2["default"])(this, UnknownDependencyError);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(UnknownDependencyError).call(this, 'Injected service ' + dependency + ' is not a dependency of ' + service));
}
return UnknownDependencyError;
}(Error);
}((0, _wrapNativeSuper2["default"])(Error));
/**

@@ -82,13 +68,16 @@ *

var DependencyNotResolvedError = function (_Error3) {
(0, _inherits3.default)(DependencyNotResolvedError, _Error3);
exports.UnknownDependencyError = UnknownDependencyError;
var DependencyNotResolvedError =
/*#__PURE__*/
function (_Error3) {
(0, _inherits2["default"])(DependencyNotResolvedError, _Error3);
function DependencyNotResolvedError(service, dependency) {
(0, _classCallCheck3.default)(this, DependencyNotResolvedError);
return (0, _possibleConstructorReturn3.default)(this, (DependencyNotResolvedError.__proto__ || (0, _getPrototypeOf2.default)(DependencyNotResolvedError)).call(this, 'Dependency ' + dependency + ' of service ' + service + ' is unavailable.'));
(0, _classCallCheck2["default"])(this, DependencyNotResolvedError);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DependencyNotResolvedError).call(this, 'Dependency ' + dependency + ' of service ' + service + ' is unavailable.'));
}
return DependencyNotResolvedError;
}(Error);
}((0, _wrapNativeSuper2["default"])(Error));
/**

@@ -101,8 +90,9 @@ * @param callback

exports.DependencyNotResolvedError = DependencyNotResolvedError;
function _waitForDependencies(callback) {
return _promise2.default.all(this.dependencies().map(function (dependency) {
return Promise.all(this.dependencies().map(function (dependency) {
return callback(dependency);
}));
}
/**

@@ -112,7 +102,10 @@ *

var ServiceManager = function (_ServiceManagerBase) {
(0, _inherits3.default)(ServiceManager, _ServiceManagerBase);
(0, _createClass3.default)(ServiceManager, null, [{
key: 'isValidService',
var ServiceManager =
/*#__PURE__*/
function (_ServiceManagerBase) {
(0, _inherits2["default"])(ServiceManager, _ServiceManagerBase);
(0, _createClass2["default"])(ServiceManager, null, [{
key: "isValidService",
/**

@@ -123,5 +116,4 @@ * @param {*} service

value: function isValidService(service) {
return service !== null && (typeof service === 'undefined' ? 'undefined' : (0, _typeof3.default)(service)) === 'object' && typeof service.manager === 'function';
return service !== null && (0, _typeof2["default"])(service) === 'object' && typeof service.manager === 'function';
}
/**

@@ -138,2 +130,4 @@ * @param {string} name

function ServiceManager(name) {
var _this;
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];

@@ -143,6 +137,5 @@ var init = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;

var auth = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
(0, _classCallCheck3.default)(this, ServiceManager);
(0, _classCallCheck2["default"])(this, ServiceManager);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceManager).call(this, init, connect, auth));
var _this4 = (0, _possibleConstructorReturn3.default)(this, (ServiceManager.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager)).call(this, init, connect, auth));
if (!name) {

@@ -152,13 +145,13 @@ throw new Error('Service name must not be empty.');

_this4._name = name;
_this4._dependencies = dependencies;
_this4._injections = {};
_this._name = name;
_this._dependencies = dependencies;
_this._injections = {};
dependencies.forEach(function (d) {
return _this4._injections[d] = null;
return _this._injections[d] = null;
});
return _this4;
return _this;
}
(0, _createClass3.default)(ServiceManager, [{
key: 'name',
(0, _createClass2["default"])(ServiceManager, [{
key: "name",
value: function name() {

@@ -168,3 +161,3 @@ return this._name;

}, {
key: 'dependencies',
key: "dependencies",
value: function dependencies() {

@@ -174,3 +167,3 @@ return this._dependencies;

}, {
key: 'inject',
key: "inject",
value: function inject(dependency, service) {

@@ -186,7 +179,6 @@ if (typeof this._injections[dependency] === 'undefined') {

this._injections[dependency] = service;
return this;
}
}, {
key: 'dependency',
key: "dependency",
value: function dependency(name) {

@@ -200,71 +192,70 @@ if (!this._injections[name]) {

}, {
key: 'initialize',
key: "initialize",
value: function initialize() {
var _this5 = this;
var _this2 = this;
return this.initializeDependencies().then(function () {
return (0, _get3.default)(ServiceManager.prototype.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager.prototype), 'initialize', _this5).call(_this5, _this5._settings);
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ServiceManager.prototype), "initialize", _this2).call(_this2, _this2._settings);
});
}
}, {
key: 'connect',
key: "connect",
value: function connect() {
var _this6 = this;
var _this3 = this;
return this.connectDependencies().then(function () {
return (0, _get3.default)(ServiceManager.prototype.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager.prototype), 'connect', _this6).call(_this6);
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ServiceManager.prototype), "connect", _this3).call(_this3);
});
}
}, {
key: 'authenticate',
key: "authenticate",
value: function authenticate() {
var _this7 = this;
var _this4 = this;
return this.authenticateDependencies().then(function () {
return (0, _get3.default)(ServiceManager.prototype.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager.prototype), 'authenticate', _this7).call(_this7);
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ServiceManager.prototype), "authenticate", _this4).call(_this4);
});
}
}, {
key: 'initializeDependencies',
key: "initializeDependencies",
value: function initializeDependencies() {
var _this8 = this;
var _this5 = this;
return _waitForDependencies.call(this, function (d) {
return _this8.dependency(d).manager().initialize();
return _this5.dependency(d).manager().initialize();
});
}
}, {
key: 'connectDependencies',
key: "connectDependencies",
value: function connectDependencies() {
var _this9 = this;
var _this6 = this;
return _waitForDependencies.call(this, function (d) {
return _this9.dependency(d).manager().connect();
return _this6.dependency(d).manager().connect();
});
}
}, {
key: 'authenticateDependencies',
key: "authenticateDependencies",
value: function authenticateDependencies() {
var _this10 = this;
var _this7 = this;
return _waitForDependencies.call(this, function (d) {
return _this10.dependency(d).manager().authenticate();
return _this7.dependency(d).manager().authenticate();
});
}
}, {
key: 'createService',
key: "createService",
value: function createService() {
var _this11 = this;
var _this8 = this;
return { manager: function manager() {
return _this11;
} };
return {
manager: function manager() {
return _this8;
}
};
}
}]);
return ServiceManager;
}(_ServiceManagerBase3.default);
}(_ServiceManagerBase2["default"]);
exports.default = ServiceManager;
exports.InvalidServiceError = InvalidServiceError;
exports.UnknownDependencyError = UnknownDependencyError;
exports.DependencyNotResolvedError = DependencyNotResolvedError;
exports["default"] = ServiceManager;

@@ -1,41 +0,28 @@

'use strict';
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _createClass2 = require('babel-runtime/helpers/createClass');
var _StateMachine = _interopRequireDefault(require("./StateMachine"));
var _createClass3 = _interopRequireDefault(_createClass2);
var _ServiceState = _interopRequireDefault(require("./ServiceState"));
var _promise = require('babel-runtime/core-js/promise');
var _ServiceType = _interopRequireWildcard(require("./ServiceType"));
var _promise2 = _interopRequireDefault(_promise);
var _debug = _interopRequireDefault(require("debug"));
var _StateMachine = require('./StateMachine');
var log = (0, _debug["default"])('dai:ServiceManagerBase');
var _StateMachine2 = _interopRequireDefault(_StateMachine);
var _ServiceState = require('./ServiceState');
var _ServiceState2 = _interopRequireDefault(_ServiceState);
var _ServiceType = require('./ServiceType');
var _ServiceType2 = _interopRequireDefault(_ServiceType);
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var log = (0, _debug2.default)('dai:ServiceManagerBase');
function _promisify(unsafeCallback) {
return new _promise2.default(function (resolve, reject) {
return new Promise(function (resolve, reject) {
try {

@@ -49,3 +36,5 @@ resolve(unsafeCallback());

var ServiceManagerBase = function () {
var ServiceManagerBase =
/*#__PURE__*/
function () {
/**

@@ -60,3 +49,3 @@ * @param init {function|null}

var auth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
(0, _classCallCheck3.default)(this, ServiceManagerBase);
(0, _classCallCheck2["default"])(this, ServiceManagerBase);

@@ -68,7 +57,7 @@ // Validate init

init = function init() {
return _promise2.default.resolve();
return Promise.resolve();
};
}
} // Validate connect
// Validate connect
if (connect !== null && typeof connect !== 'function') {

@@ -78,17 +67,17 @@ throw new Error('Invalid argument connect: not a function or null.');

connect = function connect() {
return _promise2.default.resolve();
return Promise.resolve();
};
}
} // Validate auth
// Validate auth
if (auth !== null && typeof auth !== 'function') {
throw new Error('Invalid argument auth: not a function or null.');
}
} // Set initial props
// Set initial props
this._init = init;
this._connect = connect;
this._auth = auth;
this._type = auth === null ? connect === null ? _ServiceType2.default.LOCAL : _ServiceType2.default.PUBLIC : _ServiceType2.default.PRIVATE;
this._state = new _StateMachine2.default(_ServiceState2.default.CREATED, _ServiceType.serviceTypeTransitions[this._type]);
this._type = auth === null ? connect === null ? _ServiceType["default"].LOCAL : _ServiceType["default"].PUBLIC : _ServiceType["default"].PRIVATE;
this._state = new _StateMachine["default"](_ServiceState["default"].CREATED, _ServiceType.serviceTypeTransitions[this._type]);
this._initPromise = null;

@@ -98,3 +87,2 @@ this._connectPromise = null;

}
/**

@@ -105,4 +93,4 @@ * @returns {Promise}

(0, _createClass3.default)(ServiceManagerBase, [{
key: 'initialize',
(0, _createClass2["default"])(ServiceManagerBase, [{
key: "initialize",
value: function initialize(settings) {

@@ -112,20 +100,23 @@ var _this = this;

// If our current state is preceding the INITIALIZING state, we need to set up initialization
if (this._state.inState(_ServiceState2.default.CREATED)) {
if (this._state.inState(_ServiceState["default"].CREATED)) {
// Assert that there is no initPromise at this point
/* istanbul ignore next */
if (this._initPromise) {
throw new Error('Unexpected init promise in state CREATED.');
}
} // Enter the INITIALIZING state
// Enter the INITIALIZING state
this._state.transitionTo(_ServiceState2.default.INITIALIZING);
// After trying to initialize, transition to the success state (READY/OFFLINE) or revert to CREATED
this._state.transitionTo(_ServiceState["default"].INITIALIZING); // After trying to initialize, transition to the success state (READY/OFFLINE) or revert to CREATED
this._initPromise = _promisify(function () {
return _this._init(settings);
}).then(function () {
return _this._state.transitionTo(_this._type === _ServiceType2.default.LOCAL ? _ServiceState2.default.READY : _ServiceState2.default.OFFLINE);
return _this._state.transitionTo(_this._type === _ServiceType["default"].LOCAL ? _ServiceState["default"].READY : _ServiceState["default"].OFFLINE);
}, function (reason) {
log(reason);
_this._state.transitionTo(_ServiceState2.default.CREATED);
_this._state.transitionTo(_ServiceState["default"].CREATED);
throw reason;

@@ -137,3 +128,2 @@ });

}
/**

@@ -144,3 +134,3 @@ * @returns {Promise}

}, {
key: 'connect',
key: "connect",
value: function connect() {

@@ -150,14 +140,14 @@ var _this2 = this;

// Local Services are 'connected' whenever they are initialized
if (this._type === _ServiceType2.default.LOCAL) {
if (this._type === _ServiceType["default"].LOCAL) {
return this.initialize();
}
} // If our current state is preceding the CONNECTING state, we need to set up a new connection
// If our current state is preceding the CONNECTING state, we need to set up a new connection
if (this._state.inState([_ServiceState2.default.CREATED, _ServiceState2.default.INITIALIZING, _ServiceState2.default.OFFLINE]) && this._connectPromise === null) {
if (this._state.inState([_ServiceState["default"].CREATED, _ServiceState["default"].INITIALIZING, _ServiceState["default"].OFFLINE]) && this._connectPromise === null) {
// Make sure to be initialized before trying to connect
this._connectPromise = this.initialize().then(function () {
// Enter the CONNECTING state
_this2._state.transitionTo(_ServiceState2.default.CONNECTING);
_this2._state.transitionTo(_ServiceState["default"].CONNECTING); // After trying to connect, transition to the success state (ONLINE/READY) or revert to OFFLINE.
// After trying to connect, transition to the success state (ONLINE/READY) or revert to OFFLINE.
return _promisify(function () {

@@ -169,11 +159,12 @@ return _this2._connect(function () {

// Check if we are still CONNECTING, because another process might have come in between
if (_this2._state.inState(_ServiceState2.default.CONNECTING)) {
_this2._state.transitionTo(_this2._type === _ServiceType2.default.PUBLIC ? _ServiceState2.default.READY : _ServiceState2.default.ONLINE);
if (_this2._state.inState(_ServiceState["default"].CONNECTING)) {
_this2._state.transitionTo(_this2._type === _ServiceType["default"].PUBLIC ? _ServiceState["default"].READY : _ServiceState["default"].ONLINE);
}
}, function (error) {
log('connect error:', error);
// Check if we are still CONNECTING, because another process might have come in between
if (_this2._state.inState(_ServiceState2.default.CONNECTING)) {
_this2._state.transitionTo(_ServiceState2.default.OFFLINE);
log('connect error:', error); // Check if we are still CONNECTING, because another process might have come in between
if (_this2._state.inState(_ServiceState["default"].CONNECTING)) {
_this2._state.transitionTo(_ServiceState["default"].OFFLINE);
}
throw error;

@@ -186,3 +177,2 @@ });

}
/**

@@ -193,3 +183,3 @@ * @returns {Promise}

}, {
key: 'authenticate',
key: "authenticate",
value: function authenticate() {

@@ -199,14 +189,14 @@ var _this3 = this;

// Public and Local Services are 'authenticated' whenever they are connected (/initialized)
if (this._type !== _ServiceType2.default.PRIVATE) {
if (this._type !== _ServiceType["default"].PRIVATE) {
return this.connect();
}
} // If our current state is preceding the AUTHENTICATING state, we need to set up a new authentication
// If our current state is preceding the AUTHENTICATING state, we need to set up a new authentication
if (this._state.inState([_ServiceState2.default.CREATED, _ServiceState2.default.INITIALIZING, _ServiceState2.default.OFFLINE, _ServiceState2.default.CONNECTING, _ServiceState2.default.ONLINE]) && this._authPromise === null) {
if (this._state.inState([_ServiceState["default"].CREATED, _ServiceState["default"].INITIALIZING, _ServiceState["default"].OFFLINE, _ServiceState["default"].CONNECTING, _ServiceState["default"].ONLINE]) && this._authPromise === null) {
// Make sure to be connected before trying to authenticate
this._authPromise = this.connect().then(function () {
// Enter the AUTHENTICATING state
_this3._state.transitionTo(_ServiceState2.default.AUTHENTICATING);
_this3._state.transitionTo(_ServiceState["default"].AUTHENTICATING); // After trying to authenticate, transition to the success state (READY) or revert to ONLINE
// After trying to authenticate, transition to the success state (READY) or revert to ONLINE
return _promisify(function () {

@@ -219,10 +209,10 @@ return _this3._auth(function () {

// (Most notably, a disconnect may have transitioned us into OFFLINE state).
if (_this3._state.inState(_ServiceState2.default.AUTHENTICATING)) {
_this3._state.transitionTo(_ServiceState2.default.READY);
if (_this3._state.inState(_ServiceState["default"].AUTHENTICATING)) {
_this3._state.transitionTo(_ServiceState["default"].READY);
}
}, function (reason) {
log('authenticate error: ' + reason);
// Check if we are still AUTHENTICATING, because another process might have come in between
if (_this3._state.inState(_ServiceState2.default.AUTHENTICATING)) {
_this3._state.transitionTo(_ServiceState2.default.ONLINE);
log('authenticate error: ' + reason); // Check if we are still AUTHENTICATING, because another process might have come in between
if (_this3._state.inState(_ServiceState["default"].AUTHENTICATING)) {
_this3._state.transitionTo(_ServiceState["default"].ONLINE);
}

@@ -235,3 +225,2 @@ });

}
/**

@@ -242,3 +231,3 @@ * @returns { ServiceManagerBase }

}, {
key: 'settings',
key: "settings",
value: function settings(_settings) {

@@ -248,3 +237,2 @@ this._settings = _settings;

}
/**

@@ -255,7 +243,6 @@ * @returns {string}

}, {
key: 'state',
key: "state",
value: function state() {
return this._state.state();
}
/**

@@ -266,7 +253,6 @@ * @returns {string}

}, {
key: 'type',
key: "type",
value: function type() {
return this._type;
}
/**

@@ -277,7 +263,6 @@ * @returns {boolean}

}, {
key: 'isInitialized',
key: "isInitialized",
value: function isInitialized() {
return !this._state.inState([_ServiceState2.default.CREATED, _ServiceState2.default.INITIALIZING]);
return !this._state.inState([_ServiceState["default"].CREATED, _ServiceState["default"].INITIALIZING]);
}
/**

@@ -288,7 +273,6 @@ * @returns {boolean|null}

}, {
key: 'isConnected',
key: "isConnected",
value: function isConnected() {
return this._type === _ServiceType2.default.LOCAL ? null : this._state.inState([_ServiceState2.default.ONLINE, _ServiceState2.default.AUTHENTICATING, _ServiceState2.default.READY]);
return this._type === _ServiceType["default"].LOCAL ? null : this._state.inState([_ServiceState["default"].ONLINE, _ServiceState["default"].AUTHENTICATING, _ServiceState["default"].READY]);
}
/**

@@ -299,7 +283,6 @@ * @returns {boolean|null}

}, {
key: 'isAuthenticated',
key: "isAuthenticated",
value: function isAuthenticated() {
return this._type === _ServiceType2.default.PRIVATE ? this._state.inState(_ServiceState2.default.READY) : null;
return this._type === _ServiceType["default"].PRIVATE ? this._state.inState(_ServiceState["default"].READY) : null;
}
/**

@@ -310,7 +293,6 @@ * @returns {boolean}

}, {
key: 'isReady',
key: "isReady",
value: function isReady() {
return this._state.inState(_ServiceState2.default.READY);
return this._state.inState(_ServiceState["default"].READY);
}
/**

@@ -322,6 +304,6 @@ * @param {function} handler

}, {
key: 'onInitialized',
key: "onInitialized",
value: function onInitialized(handler) {
this._state.onStateChanged(function (oldState, newState) {
if (oldState === _ServiceState2.default.INITIALIZING && (newState === _ServiceState2.default.OFFLINE || newState === _ServiceState2.default.READY)) {
if (oldState === _ServiceState["default"].INITIALIZING && (newState === _ServiceState["default"].OFFLINE || newState === _ServiceState["default"].READY)) {
handler();

@@ -333,3 +315,2 @@ }

}
/**

@@ -341,6 +322,6 @@ * @param {function} handler

}, {
key: 'onConnected',
key: "onConnected",
value: function onConnected(handler) {
this._state.onStateChanged(function (oldState, newState) {
if (oldState === _ServiceState2.default.CONNECTING && (newState === _ServiceState2.default.ONLINE || newState === _ServiceState2.default.READY)) {
if (oldState === _ServiceState["default"].CONNECTING && (newState === _ServiceState["default"].ONLINE || newState === _ServiceState["default"].READY)) {
handler();

@@ -352,3 +333,2 @@ }

}
/**

@@ -360,6 +340,6 @@ * @param {function} handler

}, {
key: 'onDisconnected',
key: "onDisconnected",
value: function onDisconnected(handler) {
this._state.onStateChanged(function (oldState, newState) {
if (newState === _ServiceState2.default.OFFLINE && (oldState === _ServiceState2.default.ONLINE || oldState === _ServiceState2.default.READY)) {
if (newState === _ServiceState["default"].OFFLINE && (oldState === _ServiceState["default"].ONLINE || oldState === _ServiceState["default"].READY)) {
handler();

@@ -371,3 +351,2 @@ }

}
/**

@@ -379,6 +358,6 @@ * @param {function} handler

}, {
key: 'onAuthenticated',
key: "onAuthenticated",
value: function onAuthenticated(handler) {
this._state.onStateChanged(function (oldState, newState) {
if (oldState === _ServiceState2.default.AUTHENTICATING && newState === _ServiceState2.default.READY) {
if (oldState === _ServiceState["default"].AUTHENTICATING && newState === _ServiceState["default"].READY) {
handler();

@@ -390,3 +369,2 @@ }

}
/**

@@ -398,7 +376,7 @@ * @param {function} handler

}, {
key: 'onDeauthenticated',
key: "onDeauthenticated",
value: function onDeauthenticated(handler) {
if (this.type() === _ServiceType2.default.PRIVATE) {
if (this.type() === _ServiceType["default"].PRIVATE) {
this._state.onStateChanged(function (oldState, newState) {
if ((newState === _ServiceState2.default.OFFLINE || newState === _ServiceState2.default.ONLINE) && oldState === _ServiceState2.default.READY) {
if ((newState === _ServiceState["default"].OFFLINE || newState === _ServiceState["default"].ONLINE) && oldState === _ServiceState["default"].READY) {
handler();

@@ -411,3 +389,2 @@ }

}
/**

@@ -419,6 +396,6 @@ * @param {function} handler

}, {
key: 'onReady',
key: "onReady",
value: function onReady(handler) {
this._state.onStateChanged(function (_, newState) {
if (newState === _ServiceState2.default.READY) {
if (newState === _ServiceState["default"].READY) {
handler();

@@ -430,3 +407,2 @@ }

}
/**

@@ -438,8 +414,8 @@ * @param {function} handler

}, {
key: 'onStateChanged',
key: "onStateChanged",
value: function onStateChanged(handler) {
this._state.onStateChanged(handler);
return this;
}
/**

@@ -454,21 +430,20 @@ * This is called by the service implementation object, which is the only authority with knowledge on the true

}, {
key: '_disconnect',
key: "_disconnect",
value: function _disconnect() {
/* istanbul ignore next */
if (this._type === _ServiceType2.default.LOCAL) {
if (this._type === _ServiceType["default"].LOCAL) {
throw new Error('_disconnect must not be called on a Local Service');
}
if (this._state.inState(_ServiceState2.default.AUTHENTICATING)) {
if (this._state.inState(_ServiceState["default"].AUTHENTICATING)) {
this._deauthenticate();
}
if (this._state.inState([_ServiceState2.default.READY, _ServiceState2.default.ONLINE, _ServiceState2.default.CONNECTING])) {
if (this._state.inState([_ServiceState["default"].READY, _ServiceState["default"].ONLINE, _ServiceState["default"].CONNECTING])) {
this._authPromise = null;
this._connectPromise = null;
this._state.transitionTo(_ServiceState2.default.OFFLINE);
this._state.transitionTo(_ServiceState["default"].OFFLINE);
}
}
/**

@@ -483,12 +458,13 @@ * This is called by the service implementation object, which is the only authority with knowledge on the true

}, {
key: '_deauthenticate',
key: "_deauthenticate",
value: function _deauthenticate() {
/* istanbul ignore next */
if (this._type !== _ServiceType2.default.PRIVATE) {
if (this._type !== _ServiceType["default"].PRIVATE) {
throw new Error('_deauthenticate must not be called on a Local or Public Service');
}
if (this._state.inState([_ServiceState2.default.READY, _ServiceState2.default.AUTHENTICATING])) {
if (this._state.inState([_ServiceState["default"].READY, _ServiceState["default"].AUTHENTICATING])) {
this._authPromise = null;
this._state.transitionTo(_ServiceState2.default.ONLINE);
this._state.transitionTo(_ServiceState["default"].ONLINE);
}

@@ -500,2 +476,3 @@ }

exports.default = ServiceManagerBase;
var _default = ServiceManagerBase;
exports["default"] = _default;

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,2 +6,3 @@ Object.defineProperty(exports, "__esModule", {

});
exports["default"] = void 0;
var ServiceState = {

@@ -17,3 +18,3 @@ CREATED: 'CREATED',

};
exports.default = ServiceState;
var _default = ServiceState;
exports["default"] = _default;

@@ -1,14 +0,12 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.serviceTypeTransitions = exports.default = undefined;
exports.serviceTypeTransitions = exports["default"] = void 0;
var _ServiceState = require('./ServiceState');
var _ServiceState = _interopRequireDefault(require("./ServiceState"));
var _ServiceState2 = _interopRequireDefault(_ServiceState);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ServiceType = {

@@ -19,30 +17,27 @@ LOCAL: 'LOCAL',

};
exports["default"] = ServiceType;
var localServiceLifeCycle = {
CREATED: [_ServiceState2.default.INITIALIZING],
INITIALIZING: [_ServiceState2.default.CREATED, _ServiceState2.default.READY],
READY: [_ServiceState2.default.ERROR],
CREATED: [_ServiceState["default"].INITIALIZING],
INITIALIZING: [_ServiceState["default"].CREATED, _ServiceState["default"].READY],
READY: [_ServiceState["default"].ERROR],
ERROR: []
};
var publicServiceLifeCycle = {
CREATED: [_ServiceState2.default.INITIALIZING],
INITIALIZING: [_ServiceState2.default.CREATED, _ServiceState2.default.OFFLINE],
OFFLINE: [_ServiceState2.default.CONNECTING],
CONNECTING: [_ServiceState2.default.OFFLINE, _ServiceState2.default.READY],
READY: [_ServiceState2.default.OFFLINE, _ServiceState2.default.ERROR],
CREATED: [_ServiceState["default"].INITIALIZING],
INITIALIZING: [_ServiceState["default"].CREATED, _ServiceState["default"].OFFLINE],
OFFLINE: [_ServiceState["default"].CONNECTING],
CONNECTING: [_ServiceState["default"].OFFLINE, _ServiceState["default"].READY],
READY: [_ServiceState["default"].OFFLINE, _ServiceState["default"].ERROR],
ERROR: []
};
var privateServiceLifeCycle = {
CREATED: [_ServiceState2.default.INITIALIZING],
INITIALIZING: [_ServiceState2.default.CREATED, _ServiceState2.default.OFFLINE],
OFFLINE: [_ServiceState2.default.CONNECTING],
CONNECTING: [_ServiceState2.default.OFFLINE, _ServiceState2.default.ONLINE],
ONLINE: [_ServiceState2.default.OFFLINE, _ServiceState2.default.AUTHENTICATING],
AUTHENTICATING: [_ServiceState2.default.ONLINE, _ServiceState2.default.READY],
READY: [_ServiceState2.default.OFFLINE, _ServiceState2.default.ONLINE, _ServiceState2.default.ERROR],
CREATED: [_ServiceState["default"].INITIALIZING],
INITIALIZING: [_ServiceState["default"].CREATED, _ServiceState["default"].OFFLINE],
OFFLINE: [_ServiceState["default"].CONNECTING],
CONNECTING: [_ServiceState["default"].OFFLINE, _ServiceState["default"].ONLINE],
ONLINE: [_ServiceState["default"].OFFLINE, _ServiceState["default"].AUTHENTICATING],
AUTHENTICATING: [_ServiceState["default"].ONLINE, _ServiceState["default"].READY],
READY: [_ServiceState["default"].OFFLINE, _ServiceState["default"].ONLINE, _ServiceState["default"].ERROR],
ERROR: []
};
var serviceTypeTransitions = {

@@ -53,4 +48,2 @@ LOCAL: localServiceLifeCycle,

};
exports.default = ServiceType;
exports.serviceTypeTransitions = serviceTypeTransitions;

@@ -1,58 +0,50 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.IllegalStateError = undefined;
exports["default"] = exports.IllegalStateError = void 0;
var _keys = require('babel-runtime/core-js/object/keys');
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _keys2 = _interopRequireDefault(_keys);
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _typeof2 = require('babel-runtime/helpers/typeof');
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _typeof3 = _interopRequireDefault(_typeof2);
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _createClass2 = require('babel-runtime/helpers/createClass');
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _createClass3 = _interopRequireDefault(_createClass2);
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var IllegalStateError =
/*#__PURE__*/
function (_Error) {
(0, _inherits2["default"])(IllegalStateError, _Error);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var IllegalStateError = exports.IllegalStateError = function (_Error) {
(0, _inherits3.default)(IllegalStateError, _Error);
function IllegalStateError() {
(0, _classCallCheck3.default)(this, IllegalStateError);
return (0, _possibleConstructorReturn3.default)(this, (IllegalStateError.__proto__ || (0, _getPrototypeOf2.default)(IllegalStateError)).apply(this, arguments));
(0, _classCallCheck2["default"])(this, IllegalStateError);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(IllegalStateError).apply(this, arguments));
}
return IllegalStateError;
}(Error);
}((0, _wrapNativeSuper2["default"])(Error));
var StateMachine = function () {
exports.IllegalStateError = IllegalStateError;
var StateMachine =
/*#__PURE__*/
function () {
function StateMachine(initialState, transitions) {
(0, _classCallCheck3.default)(this, StateMachine);
(0, _classCallCheck2["default"])(this, StateMachine);
if ((typeof transitions === 'undefined' ? 'undefined' : (0, _typeof3.default)(transitions)) !== 'object') {
if ((0, _typeof2["default"])(transitions) !== 'object') {
throw new Error('StateMachine transitions parameter must be an object.');
}
if ((0, _keys2.default)(transitions).filter(function (k) {
if (Object.keys(transitions).filter(function (k) {
return transitions.hasOwnProperty(k) && !(transitions[k] instanceof Array);

@@ -63,3 +55,3 @@ }).length > 0) {

if ((0, _keys2.default)(transitions).filter(function (k) {
if (Object.keys(transitions).filter(function (k) {
return transitions.hasOwnProperty(k) && transitions[k].filter(function (s) {

@@ -81,4 +73,4 @@ return !transitions[s];

(0, _createClass3.default)(StateMachine, [{
key: 'onStateChanged',
(0, _createClass2["default"])(StateMachine, [{
key: "onStateChanged",
value: function onStateChanged(callback) {

@@ -88,3 +80,3 @@ this._stateChangedHandlers.push(callback);

}, {
key: 'state',
key: "state",
value: function state() {

@@ -94,3 +86,3 @@ return this._state;

}, {
key: 'inState',
key: "inState",
value: function inState(state) {

@@ -104,3 +96,3 @@ if (!(state instanceof Array)) {

}, {
key: 'assertState',
key: "assertState",
value: function assertState(state) {

@@ -114,3 +106,3 @@ var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

}, {
key: 'transitionTo',
key: "transitionTo",
value: function transitionTo(newState) {

@@ -128,2 +120,3 @@ if (this._nextStates[newState] === undefined) {

this._state = newState;
this._stateChangedHandlers.forEach(function (cb) {

@@ -140,2 +133,2 @@ return cb(oldState, newState);

exports.default = StateMachine;
exports["default"] = StateMachine;
{
"name": "@makerdao/services-core",
"description": "Dependency injection framework",
"version": "0.9.8",
"version": "0.9.9",
"license": "MIT",

@@ -18,15 +18,7 @@ "main": "dist/index.js",

],
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-jest": "^22.4.3",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-2": "^6.24.1",
"jest": "^23.6.0"
},
"dependencies": {
"babel-runtime": "^6.26.0",
"lodash.values": "^4.3.0",
"lodash": "^4.17.15",
"toposort": "^2.0.2"
}
}

@@ -1,2 +0,3 @@

import values from 'lodash.values';
import values from 'lodash/values';
import uniq from 'lodash/uniq';
import ServiceManager, { InvalidServiceError } from './ServiceManager';

@@ -29,8 +30,13 @@ import toposort from 'toposort';

const edges = [];
const servicesWithoutDeps = [];
for (let service of services) {
const name = service.manager().name();
const depNames = service.manager().dependencies();
depNames.forEach(dn => edges.push([dn, name]));
if (depNames.length === 0) {
servicesWithoutDeps.push(name);
} else {
depNames.forEach(dn => edges.push([dn, name]));
}
}
return toposort(edges);
return uniq(toposort(edges).concat(servicesWithoutDeps));
}

@@ -37,0 +43,0 @@

@@ -0,1 +1,3 @@

export { default as standardizeConfig } from './standardizeConfig';
export { default as ServiceProvider } from './ServiceProvider';
export { default as Container } from './Container';

@@ -2,0 +4,0 @@ export { default as LocalService } from './LocalService';

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc