From 02065e36a6f351d3963149b9a6c2f4e4a287cb11 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Fri, 7 Jul 2017 22:02:19 +0200 Subject: [PATCH] update to latest standards --- .gitlab-ci.yml | 40 +- dist/index.d.ts | 10 +- dist/index.js | 3 +- dist/smartsocket.classes.smartsocket.d.ts | 18 +- dist/smartsocket.classes.smartsocket.js | 59 +- ...smartsocket.classes.smartsocketclient.d.ts | 10 +- dist/smartsocket.classes.smartsocketclient.js | 30 +- .../smartsocket.classes.socketconnection.d.ts | 22 +- dist/smartsocket.classes.socketconnection.js | 44 +- dist/smartsocket.classes.socketfunction.d.ts | 14 +- dist/smartsocket.classes.socketfunction.js | 22 +- dist/smartsocket.classes.socketrequest.d.ts | 17 +- dist/smartsocket.classes.socketrequest.js | 22 +- dist/smartsocket.classes.socketrole.js | 3 +- dist/smartsocket.helpers.js | 3 +- dist/smartsocket.plugins.d.ts | 18 +- dist/smartsocket.plugins.js | 5 +- npmextra.json | 7 +- package.json | 26 +- test/test.d.ts | 1 - test/test.js | 108 --- test/test.ts | 203 ++-- ts/index.ts | 12 +- ts/smartsocket.classes.smartsocket.ts | 174 ++-- ts/smartsocket.classes.smartsocketclient.ts | 164 ++-- ts/smartsocket.classes.socketconnection.ts | 216 ++--- ts/smartsocket.classes.socketfunction.ts | 109 ++- ts/smartsocket.classes.socketrequest.ts | 144 +-- ts/smartsocket.plugins.ts | 18 +- tslint.json | 3 + yarn.lock | 898 ++++++++++++++++++ 31 files changed, 1613 insertions(+), 810 deletions(-) delete mode 100644 test/test.d.ts delete mode 100644 test/test.js create mode 100644 tslint.json create mode 100644 yarn.lock diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 95c5774..e6be27f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,20 +1,31 @@ -image: hosttoday/ht-docker-node:npmts +# gitzone standard +image: hosttoday/ht-docker-node:npmci + +cache: + paths: + - .yarn/ + key: "$CI_BUILD_STAGE" stages: - test - release +- trigger +- pages testLEGACY: stage: test script: - npmci test legacy + coverage: /\d+.?\d+?\%\s*coverage/ tags: - docker + allow_failure: true testLTS: stage: test script: - npmci test lts + coverage: /\d+.?\d+?\%\s*coverage/ tags: - docker @@ -22,15 +33,40 @@ testSTABLE: stage: test script: - npmci test stable + coverage: /\d+.?\d+?\%\s*coverage/ tags: - docker release: stage: release - environment: npmjs-com_registry script: - npmci publish only: - tags tags: - docker + +trigger: + stage: trigger + script: + - npmci trigger + only: + - tags + tags: + - docker + +pages: + image: hosttoday/ht-docker-node:npmci + stage: pages + script: + - npmci command yarn global add npmpage + - npmci command npmpage + tags: + - docker + only: + - tags + artifacts: + expire_in: 1 week + paths: + - public + allow_failure: true diff --git a/dist/index.d.ts b/dist/index.d.ts index 8ede4d7..bc829f9 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,5 +1,5 @@ -export * from "./smartsocket.classes.smartsocket"; -export * from "./smartsocket.classes.smartsocketclient"; -export * from "./smartsocket.classes.socketfunction"; -export * from "./smartsocket.classes.socketrole"; -export * from "./smartsocket.classes.socketconnection"; +export * from './smartsocket.classes.smartsocket'; +export * from './smartsocket.classes.smartsocketclient'; +export * from './smartsocket.classes.socketfunction'; +export * from './smartsocket.classes.socketrole'; +export * from './smartsocket.classes.socketconnection'; diff --git a/dist/index.js b/dist/index.js index 9f71d39..966476f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2,6 +2,7 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } +Object.defineProperty(exports, "__esModule", { value: true }); // export main classes __export(require("./smartsocket.classes.smartsocket")); __export(require("./smartsocket.classes.smartsocketclient")); @@ -10,4 +11,4 @@ __export(require("./smartsocket.classes.socketfunction")); __export(require("./smartsocket.classes.socketrole")); __export(require("./smartsocket.classes.socketconnection")); // need something more exposed? Create an issue on GitLab! -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsc0JBQXNCO0FBQ3RCLGlCQUFjLG1DQUFtQyxDQUFDLEVBQUE7QUFDbEQsaUJBQWMseUNBQXlDLENBQUMsRUFBQTtBQUV4RCxxQ0FBcUM7QUFDckMsaUJBQWMsc0NBQXNDLENBQUMsRUFBQTtBQUNyRCxpQkFBYyxrQ0FBa0MsQ0FBQyxFQUFBO0FBQ2pELGlCQUFjLHdDQUF3QyxDQUFDLEVBQUE7QUFFdkQsMERBQTBEIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHNCQUFzQjtBQUN0Qix1REFBaUQ7QUFDakQsNkRBQXVEO0FBRXZELHFDQUFxQztBQUNyQywwREFBb0Q7QUFDcEQsc0RBQWdEO0FBQ2hELDREQUFzRDtBQUV0RCwwREFBMEQifQ== \ No newline at end of file diff --git a/dist/smartsocket.classes.smartsocket.d.ts b/dist/smartsocket.classes.smartsocket.d.ts index 0184773..04e4139 100644 --- a/dist/smartsocket.classes.smartsocket.d.ts +++ b/dist/smartsocket.classes.smartsocket.d.ts @@ -1,9 +1,7 @@ /// -/// -import * as plugins from "./smartsocket.plugins"; -import { Objectmap } from "lik"; -import { SocketConnection } from "./smartsocket.classes.socketconnection"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Objectmap } from 'lik'; +import { SocketConnection } from './smartsocket.classes.socketconnection'; +import { SocketRole } from './smartsocket.classes.socketrole'; export interface ISmartsocketConstructorOptions { port: number; } @@ -13,10 +11,6 @@ export declare class Smartsocket { openSockets: Objectmap; socketRoles: Objectmap; constructor(optionsArg: ISmartsocketConstructorOptions); - /** - * the standard handler for new socket connections - */ - private _handleSocketConnection(socketArg); /** * starts listening to incling sockets: */ @@ -25,9 +19,13 @@ export declare class Smartsocket { /** * allows call to specific client. */ - clientCall(functionNameArg: string, dataArg: any, targetSocketConnectionArg: SocketConnection): plugins.q.Promise<{}>; + clientCall(functionNameArg: string, dataArg: any, targetSocketConnectionArg: SocketConnection): Promise<{}>; /** * adds socketRoles */ addSocketRoles(socketRolesArray: SocketRole[]): void; + /** + * the standard handler for new socket connections + */ + private _handleSocketConnection(socketArg); } diff --git a/dist/smartsocket.classes.smartsocket.js b/dist/smartsocket.classes.smartsocket.js index 47ef04f..57fb83a 100644 --- a/dist/smartsocket.classes.smartsocket.js +++ b/dist/smartsocket.classes.smartsocket.js @@ -1,10 +1,10 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smartsocket.plugins"); // classes const lik_1 = require("lik"); const smartsocket_classes_socketconnection_1 = require("./smartsocket.classes.socketconnection"); const smartsocket_classes_socketrequest_1 = require("./smartsocket.classes.socketrequest"); -; class Smartsocket { constructor(optionsArg) { this.openSockets = new lik_1.Objectmap(); @@ -14,7 +14,7 @@ class Smartsocket { */ this.startServer = () => { this.io = plugins.socketIo(this.options.port); - this.io.on("connection", (socketArg) => { + this.io.on('connection', (socketArg) => { this._handleSocketConnection(socketArg); }); }; @@ -28,38 +28,14 @@ class Smartsocket { }; this.options = optionsArg; } - ; - /** - * the standard handler for new socket connections - */ - _handleSocketConnection(socketArg) { - let socketConnection = new smartsocket_classes_socketconnection_1.SocketConnection({ - alias: undefined, - authenticated: false, - role: undefined, - side: "server", - smartsocketHost: this, - socket: socketArg - }); - plugins.beautylog.log("Socket connected. Trying to authenticate..."); - this.openSockets.add(socketConnection); - socketConnection.authenticate() - .then(() => { - return socketConnection.listenToFunctionRequests(); - }) - .catch((err) => { - console.log(err); - }); - } - ; // communication /** * allows call to specific client. */ clientCall(functionNameArg, dataArg, targetSocketConnectionArg) { - let done = plugins.q.defer(); + let done = plugins.smartq.defer(); let socketRequest = new smartsocket_classes_socketrequest_1.SocketRequest({ - side: "requesting", + side: 'requesting', originSocketConnection: targetSocketConnectionArg, shortId: plugins.shortid.generate(), funcCallData: { @@ -73,7 +49,6 @@ class Smartsocket { }); return done.promise; } - ; /** * adds socketRoles */ @@ -81,10 +56,30 @@ class Smartsocket { for (let socketRole of socketRolesArray) { this.socketRoles.add(socketRole); } - ; return; } - ; + /** + * the standard handler for new socket connections + */ + _handleSocketConnection(socketArg) { + let socketConnection = new smartsocket_classes_socketconnection_1.SocketConnection({ + alias: undefined, + authenticated: false, + role: undefined, + side: 'server', + smartsocketHost: this, + socket: socketArg + }); + plugins.beautylog.log('Socket connected. Trying to authenticate...'); + this.openSockets.add(socketConnection); + socketConnection.authenticate() + .then(() => { + return socketConnection.listenToFunctionRequests(); + }) + .catch((err) => { + console.log(err); + }); + } } exports.Smartsocket = Smartsocket; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFHakQsVUFBVTtBQUNWLHNCQUEwQixLQUFLLENBQUMsQ0FBQTtBQUVoQyx1REFBaUMsd0NBQXdDLENBQUMsQ0FBQTtBQUMxRSxvREFBOEIscUNBQXFDLENBQUMsQ0FBQTtBQUtuRSxDQUFDO0FBRUY7SUFLSSxZQUFZLFVBQTBDO1FBRnRELGdCQUFXLEdBQUcsSUFBSSxlQUFTLEVBQW9CLENBQUM7UUFDaEQsZ0JBQVcsR0FBRyxJQUFJLGVBQVMsRUFBYyxDQUFDO1FBNEIxQzs7V0FFRztRQUNILGdCQUFXLEdBQUc7WUFDVixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTO2dCQUMvQixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUE7UUFDRCxnQkFBVyxHQUFHO1lBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFpQztnQkFDdkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRixlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQztRQTFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM5QixDQUFDOztJQUVEOztPQUVHO0lBQ0ssdUJBQXVCLENBQUMsU0FBUztRQUNyQyxJQUFJLGdCQUFnQixHQUFzQixJQUFJLHVEQUFnQixDQUFDO1lBQzNELEtBQUssRUFBQyxTQUFTO1lBQ2YsYUFBYSxFQUFDLEtBQUs7WUFDbkIsSUFBSSxFQUFDLFNBQVM7WUFDZCxJQUFJLEVBQUMsUUFBUTtZQUNiLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE1BQU0sRUFBQyxTQUFTO1NBQ25CLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2QyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUU7YUFDMUIsSUFBSSxDQUFDO1lBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDdkQsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsR0FBRztZQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOztJQW9CRCxnQkFBZ0I7SUFFaEI7O09BRUc7SUFDSCxVQUFVLENBQUMsZUFBc0IsRUFBQyxPQUFXLEVBQUMseUJBQTBDO1FBQ3BGLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxhQUFhLEdBQUcsSUFBSSxpREFBYSxDQUFDO1lBQ2xDLElBQUksRUFBQyxZQUFZO1lBQ2pCLHNCQUFzQixFQUFDLHlCQUF5QjtZQUNoRCxPQUFPLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbEMsWUFBWSxFQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUMsT0FBTzthQUN0QjtTQUNKLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxRQUFRLEVBQUU7YUFDbkIsSUFBSSxDQUFDLENBQUMsT0FBMkI7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLGdCQUE2QjtRQUN4QyxHQUFHLENBQUEsQ0FBQyxJQUFJLFVBQVUsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFBLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFBLENBQUM7UUFDRixNQUFNLENBQUM7SUFDWCxDQUFDOztBQUVMLENBQUM7QUFuRlksbUJBQVcsY0FtRnZCLENBQUEifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBZ0Q7QUFHaEQsVUFBVTtBQUNWLDZCQUErQjtBQUUvQixpR0FBeUU7QUFDekUsMkZBQW1FO0FBT25FO0lBS0UsWUFBYSxVQUEwQztRQUZ2RCxnQkFBVyxHQUFHLElBQUksZUFBUyxFQUFvQixDQUFBO1FBQy9DLGdCQUFXLEdBQUcsSUFBSSxlQUFTLEVBQWMsQ0FBQTtRQUt6Qzs7V0FFRztRQUNILGdCQUFXLEdBQUc7WUFDWixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM3QyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTO2dCQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDekMsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUE7UUFDRCxnQkFBVyxHQUFHO1lBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFpQztnQkFDekQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO2dCQUNoRixlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBQ3JDLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2pCLENBQUMsQ0FBQTtRQW5CQyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUMzQixDQUFDO0lBb0JELGdCQUFnQjtJQUVoQjs7T0FFRztJQUNILFVBQVUsQ0FBRSxlQUF1QixFQUFFLE9BQVksRUFBRSx5QkFBMkM7UUFDNUYsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLGFBQWEsR0FBRyxJQUFJLGlEQUFhLENBQUM7WUFDcEMsSUFBSSxFQUFFLFlBQVk7WUFDbEIsc0JBQXNCLEVBQUUseUJBQXlCO1lBQ2pELE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNuQyxZQUFZLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFdBQVcsRUFBRSxPQUFPO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsYUFBYSxDQUFDLFFBQVEsRUFBRTthQUNyQixJQUFJLENBQUMsQ0FBQyxPQUE0QjtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FBQTtRQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBRSxnQkFBOEI7UUFDNUMsR0FBRyxDQUFDLENBQUMsSUFBSSxVQUFVLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xDLENBQUM7UUFDRCxNQUFNLENBQUE7SUFDUixDQUFDO0lBRUQ7O09BRUc7SUFDSyx1QkFBdUIsQ0FBRSxTQUFTO1FBQ3hDLElBQUksZ0JBQWdCLEdBQXFCLElBQUksdURBQWdCLENBQUM7WUFDNUQsS0FBSyxFQUFFLFNBQVM7WUFDaEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsUUFBUTtZQUNkLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE1BQU0sRUFBRSxTQUFTO1NBQ2xCLENBQUMsQ0FBQTtRQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN0QyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUU7YUFDNUIsSUFBSSxDQUFDO1lBQ0osTUFBTSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixFQUFFLENBQUE7UUFDcEQsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsR0FBRztZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0NBRUY7QUFuRkQsa0NBbUZDIn0= \ No newline at end of file diff --git a/dist/smartsocket.classes.smartsocketclient.d.ts b/dist/smartsocket.classes.smartsocketclient.d.ts index 0c9fc58..a9a3dd6 100644 --- a/dist/smartsocket.classes.smartsocketclient.d.ts +++ b/dist/smartsocket.classes.smartsocketclient.d.ts @@ -1,6 +1,4 @@ -/// -import * as plugins from "./smartsocket.plugins"; -import { SocketConnection } from "./smartsocket.classes.socketconnection"; +import { SocketConnection } from './smartsocket.classes.socketconnection'; /** * interface for class SmartsocketClient */ @@ -22,7 +20,7 @@ export declare class SmartsocketClient { /** * connect the client to the server */ - connect(): plugins.q.Promise<{}>; - disconnect(): plugins.q.Promise<{}>; - serverCall(functionNameArg: string, dataArg: any): plugins.q.Promise<{}>; + connect(): Promise<{}>; + disconnect(): Promise<{}>; + serverCall(functionNameArg: string, dataArg: any): Promise<{}>; } diff --git a/dist/smartsocket.classes.smartsocketclient.js b/dist/smartsocket.classes.smartsocketclient.js index e8fa414..a549f24 100644 --- a/dist/smartsocket.classes.smartsocketclient.js +++ b/dist/smartsocket.classes.smartsocketclient.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smartsocket.plugins"); // import classes const smartsocket_classes_socketconnection_1 = require("./smartsocket.classes.socketconnection"); @@ -11,31 +12,30 @@ class SmartsocketClient { this.serverPort = optionsArg.port; this.serverPassword = optionsArg.password; } - ; /** * connect the client to the server */ connect() { - let done = plugins.q.defer(); - plugins.beautylog.log("trying to connect..."); + let done = plugins.smartq.defer(); + plugins.beautylog.log('trying to connect...'); let socketUrl = `${this.serverUrl}:${this.serverPort}`; this.socketConnection = new smartsocket_classes_socketconnection_1.SocketConnection({ alias: this.alias, authenticated: false, role: undefined, - side: "client", + side: 'client', smartsocketHost: null, socket: plugins.socketIoClient(socketUrl, { multiplex: false }) }); - this.socketConnection.socket.on("requestAuth", () => { - console.log("server requested authentication"); - this.socketConnection.socket.emit("dataAuth", { + this.socketConnection.socket.on('requestAuth', () => { + console.log('server requested authentication'); + this.socketConnection.socket.emit('dataAuth', { role: this.role, password: this.serverPassword, alias: this.alias }); - this.socketConnection.socket.on("authenticated", () => { - console.log("client is authenticated"); + this.socketConnection.socket.on('authenticated', () => { + console.log('client is authenticated'); this.socketConnection.authenticated = true; this.socketConnection.listenToFunctionRequests(); done.resolve(); @@ -43,19 +43,18 @@ class SmartsocketClient { }); return done.promise; } - ; disconnect() { - let done = plugins.q.defer(); + let done = plugins.smartq.defer(); this.socketConnection.socket.disconnect(); this.socketConnection = undefined; - plugins.beautylog.ok("disconnected!"); + plugins.beautylog.ok('disconnected!'); done.resolve(); return done.promise; } serverCall(functionNameArg, dataArg) { - let done = plugins.q.defer(); + let done = plugins.smartq.defer(); let socketRequest = new smartsocket_classes_socketrequest_1.SocketRequest({ - side: "requesting", + side: 'requesting', originSocketConnection: this.socketConnection, shortId: plugins.shortid.generate(), funcCallData: { @@ -69,7 +68,6 @@ class SmartsocketClient { }); return done.promise; } - ; } exports.SmartsocketClient = SmartsocketClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXRjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUl6QixDQUFDLENBSitDO0FBT2hELGlCQUFpQjtBQUNqQix1REFBaUMsd0NBQXdDLENBQUMsQ0FBQTtBQUUxRSxvREFBOEIscUNBQXFDLENBQUMsQ0FBQTtBQVlwRTtJQU9JLFlBQVksVUFBb0M7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUE7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQTtJQUM3QyxDQUFDOztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNILElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5QyxJQUFJLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVEQUFnQixDQUFDO1lBQ3pDLEtBQUssRUFBQyxJQUFJLENBQUMsS0FBSztZQUNoQixhQUFhLEVBQUMsS0FBSztZQUNuQixJQUFJLEVBQUMsU0FBUztZQUNkLElBQUksRUFBQyxRQUFRO1lBQ2IsZUFBZSxFQUFFLElBQUk7WUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFDLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDO1NBQzlELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRTtZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFDO2dCQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztJQUNELFVBQVU7UUFDTixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsVUFBVSxDQUFDLGVBQXNCLEVBQUMsT0FBVztRQUN6QyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksYUFBYSxHQUFHLElBQUksaURBQWEsQ0FBQztZQUNsQyxJQUFJLEVBQUMsWUFBWTtZQUNqQixzQkFBc0IsRUFBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQzVDLE9BQU8sRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNsQyxZQUFZLEVBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFdBQVcsRUFBQyxPQUFPO2FBQ3RCO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsYUFBYSxDQUFDLFFBQVEsRUFBRTthQUNuQixJQUFJLENBQUMsQ0FBQyxPQUEyQjtZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0FBRUwsQ0FBQztBQXhFWSx5QkFBaUIsb0JBd0U3QixDQUFBIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXRjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBZ0Q7QUFPaEQsaUJBQWlCO0FBQ2pCLGlHQUF5RTtBQUV6RSwyRkFBbUU7QUFZbkU7SUFPRSxZQUFZLFVBQXFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFBO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQTtRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtRQUM3QyxJQUFJLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVEQUFnQixDQUFDO1lBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixhQUFhLEVBQUUsS0FBSztZQUNwQixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxRQUFRO1lBQ2QsZUFBZSxFQUFFLElBQUk7WUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ2hFLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRTtZQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7WUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUM1QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDbEIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFO2dCQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUE7Z0JBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFBO2dCQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQTtnQkFDaEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ2hCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFBO1FBQ2pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3JCLENBQUM7SUFDRCxVQUFVLENBQUUsZUFBdUIsRUFBRSxPQUFZO1FBQy9DLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDakMsSUFBSSxhQUFhLEdBQUcsSUFBSSxpREFBYSxDQUFDO1lBQ3BDLElBQUksRUFBRSxZQUFZO1lBQ2xCLHNCQUFzQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDN0MsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ25DLFlBQVksRUFBRTtnQkFDWixRQUFRLEVBQUUsZUFBZTtnQkFDekIsV0FBVyxFQUFFLE9BQU87YUFDckI7U0FDRixDQUFDLENBQUE7UUFDRixhQUFhLENBQUMsUUFBUSxFQUFFO2FBQ3JCLElBQUksQ0FBQyxDQUFDLE9BQTRCO1lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ25DLENBQUMsQ0FBQyxDQUFBO1FBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztDQUVGO0FBeEVELDhDQXdFQyJ9 \ No newline at end of file diff --git a/dist/smartsocket.classes.socketconnection.d.ts b/dist/smartsocket.classes.socketconnection.d.ts index 11ba497..cd9b662 100644 --- a/dist/smartsocket.classes.socketconnection.d.ts +++ b/dist/smartsocket.classes.socketconnection.d.ts @@ -1,14 +1,12 @@ /// /// -/// -import * as plugins from "./smartsocket.plugins"; -import { Objectmap } from "lik"; -import { Smartsocket } from "./smartsocket.classes.smartsocket"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Objectmap } from 'lik'; +import { Smartsocket } from './smartsocket.classes.smartsocket'; +import { SocketRole } from './smartsocket.classes.socketrole'; /** * defines is a SocketConnection is server or client side. Important for mesh setups. */ -export declare type TSocketConnectionSide = "server" | "client"; +export declare type TSocketConnectionSide = 'server' | 'client'; /** * interface for constructor of class SocketConnection */ @@ -24,9 +22,9 @@ export interface ISocketConnectionConstructorOptions { * interface for authentication data */ export interface ISocketConnectionAuthenticationObject { - role: "coreflowContainer"; - password: "somePassword"; - alias: "coreflow1"; + role: 'coreflowContainer'; + password: 'somePassword'; + alias: 'coreflow1'; } export declare let allSocketConnections: Objectmap; /** @@ -38,14 +36,14 @@ export declare class SocketConnection { authenticated: boolean; role: SocketRole; smartsocketHost: Smartsocket; - socket: SocketIO.Socket | SocketIOClient.Socket; + socket: any; constructor(optionsArg: ISocketConnectionConstructorOptions); /** * authenticate the socket */ - authenticate(): plugins.q.Promise<{}>; + authenticate(): Promise<{}>; /** * listen to function requests */ - listenToFunctionRequests(): plugins.q.Promise<{}>; + listenToFunctionRequests(): Promise<{}>; } diff --git a/dist/smartsocket.classes.socketconnection.js b/dist/smartsocket.classes.socketconnection.js index 3dc270c..d2642e1 100644 --- a/dist/smartsocket.classes.socketconnection.js +++ b/dist/smartsocket.classes.socketconnection.js @@ -1,10 +1,9 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smartsocket.plugins"); const helpers = require("./smartsocket.helpers"); const lik_1 = require("lik"); const smartsocket_classes_socketrequest_1 = require("./smartsocket.classes.socketrequest"); -; -; // export classes exports.allSocketConnections = new lik_1.Objectmap(); /** @@ -21,69 +20,65 @@ class SocketConnection { this.socket = optionsArg.socket; // standard behaviour that is always true exports.allSocketConnections.add(this); - this.socket.on("disconnect", () => { + this.socket.on('disconnect', () => { plugins.beautylog.info(`SocketConnection with >alias ${this.alias} on >side ${this.side} disconnected`); exports.allSocketConnections.remove(this); }); } - ; // authenticating -------------------------- /** * authenticate the socket */ authenticate() { - let done = plugins.q.defer(); - this.socket.on("dataAuth", (dataArg) => { - plugins.beautylog.log("received authentication data. now hashing and comparing..."); - this.socket.removeListener("dataAuth", () => { }); + let done = plugins.smartq.defer(); + this.socket.on('dataAuth', (dataArg) => { + plugins.beautylog.log('received authentication data. now hashing and comparing...'); + this.socket.removeListener('dataAuth', () => { }); if (helpers.checkPasswordForRole(dataArg, this.smartsocketHost)) { this.alias = dataArg.alias; this.authenticated = true; this.role = helpers.getSocketRoleByName(dataArg.role, this.smartsocketHost); - this.socket.emit("authenticated"); + this.socket.emit('authenticated'); plugins.beautylog.ok(`socket with >>alias ${this.alias} >>role ${this.role} is authenticated!`); done.resolve(this); } else { this.authenticated = false; this.socket.disconnect(); - done.reject("not authenticated"); + done.reject('not authenticated'); } - ; }); - this.socket.emit("requestAuth"); + this.socket.emit('requestAuth'); return done.promise; } - ; // listening ------------------------------- /** * listen to function requests */ listenToFunctionRequests() { - let done = plugins.q.defer(); + let done = plugins.smartq.defer(); if (this.authenticated) { - this.socket.on("function", (dataArg) => { + this.socket.on('function', (dataArg) => { // check if requested function is available to the socket's scope - plugins.beautylog.log("function request received"); + plugins.beautylog.log('function request received'); let referencedFunction = this.role.allowedFunctions.find((socketFunctionArg) => { return socketFunctionArg.name === dataArg.funcCallData.funcName; }); if (referencedFunction !== undefined) { - plugins.beautylog.ok("function in access scope"); + plugins.beautylog.ok('function in access scope'); let localSocketRequest = new smartsocket_classes_socketrequest_1.SocketRequest({ - side: "responding", + side: 'responding', originSocketConnection: this, shortId: dataArg.shortId, funcCallData: dataArg.funcCallData }); - localSocketRequest.createResponse(); // takes care of creating response and sending it back + localSocketRequest.createResponse(); // takes care of creating response and sending it back } else { - plugins.beautylog.warn("function not existent or out of access scope"); + plugins.beautylog.warn('function not existent or out of access scope'); } - ; }); - this.socket.on("functionResponse", (dataArg) => { + this.socket.on('functionResponse', (dataArg) => { plugins.beautylog.info(`received response for request with id ${dataArg.shortId}`); let targetSocketRequest = helpers.getSocketRequestById(dataArg.shortId); targetSocketRequest.handleResponse(dataArg); @@ -96,11 +91,8 @@ class SocketConnection { plugins.beautylog.error(errMessage); done.reject(errMessage); } - ; return done.promise; } - ; } exports.SocketConnection = SocketConnection; -; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ2pELE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFFakQsc0JBQXdCLEtBQUssQ0FBQyxDQUFBO0FBSzlCLG9EQUEyRSxxQ0FBcUMsQ0FBQyxDQUFBO0FBb0JoSCxDQUFDO0FBU0QsQ0FBQztBQUVGLGlCQUFpQjtBQUNOLDRCQUFvQixHQUFHLElBQUksZUFBUyxFQUFvQixDQUFDO0FBRXBFOztHQUVHO0FBQ0g7SUFPSSxZQUFZLFVBQStDO1FBSjNELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBSzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRWhDLHlDQUF5QztRQUN6Qyw0QkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxJQUFJLENBQUMsS0FBSyxhQUFhLElBQUksQ0FBQyxJQUFJLGVBQWUsQ0FBQyxDQUFDO1lB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWdEO0FBQ2hELGlEQUFnRDtBQUVoRCw2QkFBK0I7QUFLL0IsMkZBQWdIO0FBK0JoSCxpQkFBaUI7QUFDTixRQUFBLG9CQUFvQixHQUFHLElBQUksZUFBUyxFQUFvQixDQUFBO0FBRW5FOztHQUVHO0FBQ0g7SUFPRSxZQUFhLFVBQStDO1FBSjVELGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBSzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUE7UUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUE7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFBO1FBRS9CLHlDQUF5QztRQUN6Qyw0QkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxJQUFJLENBQUMsS0FBSyxhQUFhLElBQUksQ0FBQyxJQUFJLGVBQWUsQ0FBQyxDQUFBO1lBQ3ZHLDRCQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCw0Q0FBNEM7SUFFNUM7O09BRUc7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 \ No newline at end of file diff --git a/dist/smartsocket.classes.socketfunction.d.ts b/dist/smartsocket.classes.socketfunction.d.ts index 19b1cb8..8161d47 100644 --- a/dist/smartsocket.classes.socketfunction.d.ts +++ b/dist/smartsocket.classes.socketfunction.d.ts @@ -1,7 +1,5 @@ -/// -import * as plugins from "./smartsocket.plugins"; -import { Objectmap } from "lik"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Objectmap } from 'lik'; +import { SocketRole } from './smartsocket.classes.socketrole'; /** * interface of the contructor options of class SocketFunction */ @@ -35,12 +33,12 @@ export declare class SocketFunction { * the constructor for SocketFunction */ constructor(optionsArg: ISocketFunctionConstructorOptions); + /** + * invokes the function of this SocketFunction + */ + invoke(dataArg: ISocketFunctionCall): Promise; /** * notifies a role about access to this SocketFunction */ private _notifyRole(socketRoleArg); - /** - * invokes the function of this SocketFunction - */ - invoke(dataArg: ISocketFunctionCall): plugins.q.Promise; } diff --git a/dist/smartsocket.classes.socketfunction.js b/dist/smartsocket.classes.socketfunction.js index 46a2bec..2b1c51e 100644 --- a/dist/smartsocket.classes.socketfunction.js +++ b/dist/smartsocket.classes.socketfunction.js @@ -1,9 +1,8 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smartsocket.plugins"); // import classes const lik_1 = require("lik"); -; -; // export objects exports.allSocketFunctions = new lik_1.Objectmap(); // export classes @@ -21,21 +20,13 @@ class SocketFunction { for (let socketRoleArg of this.roles) { this._notifyRole(socketRoleArg); } - ; exports.allSocketFunctions.add(this); // map instance with Objectmap } - ; - /** - * notifies a role about access to this SocketFunction - */ - _notifyRole(socketRoleArg) { - socketRoleArg.addSocketFunction(this); - } /** * invokes the function of this SocketFunction */ invoke(dataArg) { - let done = plugins.q.defer(); + let done = plugins.smartq.defer(); if (dataArg.funcName === this.name) { this.funcDef(dataArg.funcDataArg) .then((resultData) => { @@ -51,7 +42,12 @@ class SocketFunction { } return done.promise; } - ; + /** + * notifies a role about access to this SocketFunction + */ + _notifyRole(socketRoleArg) { + socketRoleArg.addSocketFunction(this); + } } exports.SocketFunction = SocketFunction; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRmdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc29ja2V0ZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFFakQsaUJBQWlCO0FBQ2pCLHNCQUEwQixLQUFLLENBQUMsQ0FBQTtBQVkvQixDQUFDO0FBUUQsQ0FBQztBQVNGLGlCQUFpQjtBQUNOLDBCQUFrQixHQUFHLElBQUksZUFBUyxFQUFrQixDQUFDO0FBRWhFLGlCQUFpQjtBQUVqQjs7R0FFRztBQUNIO0lBS0k7O09BRUc7SUFDSCxZQUFZLFVBQTZDO1FBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxDQUFDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUFBLENBQUM7UUFDRiwwQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7SUFDaEUsQ0FBQzs7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxhQUF3QjtRQUN4QyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQTJCO1FBQzlCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsRUFBRSxDQUFBLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7aUJBQzVCLElBQUksQ0FBQyxDQUFDLFVBQWM7Z0JBQ2pCLElBQUksZ0JBQWdCLEdBQXVCO29CQUN2QyxRQUFRLEVBQUMsSUFBSSxDQUFDLElBQUk7b0JBQ2xCLFdBQVcsRUFBQyxVQUFVO2lCQUN6QixDQUFBO2dCQUNELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVYLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztRQUNyRixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7QUFFTCxDQUFDO0FBOUNZLHNCQUFjLGlCQThDMUIsQ0FBQSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRmdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc29ja2V0ZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBZ0Q7QUFFaEQsaUJBQWlCO0FBQ2pCLDZCQUErQjtBQTZCL0IsaUJBQWlCO0FBQ04sUUFBQSxrQkFBa0IsR0FBRyxJQUFJLGVBQVMsRUFBa0IsQ0FBQTtBQUUvRCxpQkFBaUI7QUFFakI7O0dBRUc7QUFDSDtJQUtFOztPQUVHO0lBQ0gsWUFBYSxVQUE2QztRQUN4RCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQTtRQUNwQyxHQUFHLENBQUMsQ0FBQyxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2pDLENBQUM7UUFDRCwwQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyw4QkFBOEI7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFFLE9BQTRCO1FBQ2xDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDakMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7aUJBQzlCLElBQUksQ0FBQyxDQUFDLFVBQWU7Z0JBQ3BCLElBQUksZ0JBQWdCLEdBQXdCO29CQUMxQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ25CLFdBQVcsRUFBRSxVQUFVO2lCQUN4QixDQUFBO2dCQUNELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUNoQyxDQUFDLENBQUMsQ0FBQTtRQUVOLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQTtRQUNsRixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFFLGFBQXlCO1FBQzVDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0Y7QUE3Q0Qsd0NBNkNDIn0= \ No newline at end of file diff --git a/dist/smartsocket.classes.socketrequest.d.ts b/dist/smartsocket.classes.socketrequest.d.ts index 8325d75..bb951f9 100644 --- a/dist/smartsocket.classes.socketrequest.d.ts +++ b/dist/smartsocket.classes.socketrequest.d.ts @@ -1,10 +1,9 @@ -/// -import * as plugins from "./smartsocket.plugins"; -import { ISocketFunctionCall } from "./smartsocket.classes.socketfunction"; -import { Objectmap } from "lik"; -import { SocketConnection } from "./smartsocket.classes.socketconnection"; -export declare type TSocketRequestStatus = "new" | "pending" | "finished"; -export declare type TSocketRequestSide = "requesting" | "responding"; +import * as plugins from './smartsocket.plugins'; +import { ISocketFunctionCall } from './smartsocket.classes.socketfunction'; +import { Objectmap } from 'lik'; +import { SocketConnection } from './smartsocket.classes.socketconnection'; +export declare type TSocketRequestStatus = 'new' | 'pending' | 'finished'; +export declare type TSocketRequestSide = 'requesting' | 'responding'; /** * interface of constructor of class SocketRequest */ @@ -29,12 +28,12 @@ export declare class SocketRequest { shortid: string; originSocketConnection: SocketConnection; funcCallData: ISocketFunctionCall; - done: plugins.q.Deferred<{}>; + done: plugins.smartq.Deferred<{}>; constructor(optionsArg: SocketRequestConstructorOptions); /** * dispatches a socketrequest from the requesting to the receiving side */ - dispatch(): plugins.q.Promise<{}>; + dispatch(): Promise<{}>; /** * handles the response that is received by the requesting side */ diff --git a/dist/smartsocket.classes.socketrequest.js b/dist/smartsocket.classes.socketrequest.js index e7db055..6017781 100644 --- a/dist/smartsocket.classes.socketrequest.js +++ b/dist/smartsocket.classes.socketrequest.js @@ -1,24 +1,22 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smartsocket.plugins"); const helpers = require("./smartsocket.helpers"); // import classes const lik_1 = require("lik"); -; -; -//export objects +// export objects exports.allSocketRequests = new lik_1.Objectmap(); // export classes class SocketRequest { constructor(optionsArg) { - this.status = "new"; - this.done = plugins.q.defer(); + this.status = 'new'; + this.done = plugins.smartq.defer(); this.side = optionsArg.side; this.shortid = optionsArg.shortId; this.funcCallData = optionsArg.funcCallData; this.originSocketConnection = optionsArg.originSocketConnection; exports.allSocketRequests.add(this); } - ; // requesting -------------------------- /** * dispatches a socketrequest from the requesting to the receiving side @@ -28,15 +26,14 @@ class SocketRequest { funcCallData: this.funcCallData, shortId: this.shortid }; - this.originSocketConnection.socket.emit("function", requestData); + this.originSocketConnection.socket.emit('function', requestData); return this.done.promise; } - ; /** * handles the response that is received by the requesting side */ handleResponse(responseDataArg) { - plugins.beautylog.log("handling response!"); + plugins.beautylog.log('handling response!'); this.done.resolve(responseDataArg.funcCallData); exports.allSocketRequests.remove(this); } @@ -49,16 +46,15 @@ class SocketRequest { plugins.beautylog.info(`invoking ${targetSocketFunction.name}`); targetSocketFunction.invoke(this.funcCallData) .then((resultData) => { - plugins.beautylog.log("got resultData. Sending it to requesting party."); + plugins.beautylog.log('got resultData. Sending it to requesting party.'); let requestData = { funcCallData: resultData, shortId: this.shortid }; - this.originSocketConnection.socket.emit("functionResponse", requestData); + this.originSocketConnection.socket.emit('functionResponse', requestData); exports.allSocketRequests.remove(this); }); } } exports.SocketRequest = SocketRequest; -; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ2pELE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFLakQsaUJBQWlCO0FBQ2pCLHNCQUEwQixLQUFLLENBQUMsQ0FBQTtBQWdCL0IsQ0FBQztBQVNELENBQUM7QUFFRixnQkFBZ0I7QUFDTCx5QkFBaUIsR0FBRyxJQUFJLGVBQVMsRUFBaUIsQ0FBQztBQUU5RCxpQkFBaUI7QUFDakI7SUFPSSxZQUFZLFVBQTJDO1FBTnZELFdBQU0sR0FBeUIsS0FBSyxDQUFDO1FBS3JDLFNBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsc0JBQXNCLENBQUM7UUFDaEUseUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O0lBRUQsd0NBQXdDO0lBRXhDOztPQUVHO0lBQ0gsUUFBUTtRQUNKLElBQUksV0FBVyxHQUE2QjtZQUN4QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3hCLENBQUE7UUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDakUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsZUFBeUM7UUFDcEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQseUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEM7O09BRUc7SUFDSCxjQUFjO1FBQ1YsSUFBSSxvQkFBb0IsR0FBbUIsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3pDLElBQUksQ0FBQyxDQUFDLFVBQVU7WUFDYixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1lBQ3hFLElBQUksV0FBVyxHQUE2QjtnQkFDeEMsWUFBWSxFQUFFLFVBQVU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN4QixDQUFDO1lBQ0YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEUseUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztBQUNMLENBQUM7QUF6RFkscUJBQWEsZ0JBeUR6QixDQUFBO0FBQUEsQ0FBQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWdEO0FBQ2hELGlEQUFnRDtBQUtoRCxpQkFBaUI7QUFDakIsNkJBQStCO0FBMkIvQixpQkFBaUI7QUFDTixRQUFBLGlCQUFpQixHQUFHLElBQUksZUFBUyxFQUFpQixDQUFBO0FBRTdELGlCQUFpQjtBQUNqQjtJQU9FLFlBQWEsVUFBMkM7UUFOeEQsV0FBTSxHQUF5QixLQUFLLENBQUE7UUFLcEMsU0FBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFFM0IsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUE7UUFDM0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQTtRQUMvRCx5QkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQUVELHdDQUF3QztJQUV4Qzs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLFdBQVcsR0FBNkI7WUFDMUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFBO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUUsZUFBeUM7UUFDdkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDL0MseUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEM7O09BRUc7SUFDSCxjQUFjO1FBQ1osSUFBSSxvQkFBb0IsR0FBbUIsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdEcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQy9ELG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzNDLElBQUksQ0FBQyxDQUFDLFVBQVU7WUFDZixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1lBQ3hFLElBQUksV0FBVyxHQUE2QjtnQkFDMUMsWUFBWSxFQUFFLFVBQVU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFBO1lBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDeEUseUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNGO0FBekRELHNDQXlEQyJ9 \ No newline at end of file diff --git a/dist/smartsocket.classes.socketrole.js b/dist/smartsocket.classes.socketrole.js index eacf188..9ee9cd0 100644 --- a/dist/smartsocket.classes.socketrole.js +++ b/dist/smartsocket.classes.socketrole.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); // import classes const lik_1 = require("lik"); /** @@ -16,4 +17,4 @@ class SocketRole { } } exports.SocketRole = SocketRole; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxpQkFBaUI7QUFDakIsc0JBQTBCLEtBQUssQ0FBQyxDQUFBO0FBWWhDOztHQUVHO0FBQ0g7SUFJSSxZQUFZLFVBQTZCO1FBRHpDLHFCQUFnQixHQUFHLElBQUksZUFBUyxFQUFrQixDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDaEQsQ0FBQzs7SUFDRCxpQkFBaUIsQ0FBQyxpQkFBZ0M7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7QUFDTCxDQUFDO0FBWFksa0JBQVUsYUFXdEIsQ0FBQSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsaUJBQWlCO0FBQ2pCLDZCQUFnQztBQVloQzs7R0FFRztBQUNIO0lBSUksWUFBWSxVQUE2QjtRQUR6QyxxQkFBZ0IsR0FBRyxJQUFJLGVBQVMsRUFBa0IsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ2hELENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQWlCLENBQUMsaUJBQWdDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0o7QUFYRCxnQ0FXQyJ9 \ No newline at end of file diff --git a/dist/smartsocket.helpers.js b/dist/smartsocket.helpers.js index e0362db..da7e75c 100644 --- a/dist/smartsocket.helpers.js +++ b/dist/smartsocket.helpers.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smartsocket.plugins"); const smartsocket_classes_socketfunction_1 = require("./smartsocket.classes.socketfunction"); const smartsocket_classes_socketrequest_1 = require("./smartsocket.classes.socketrequest"); @@ -26,4 +27,4 @@ exports.getSocketRequestById = (shortIdArg, requestSide) => { exports.getSocketRoleByName = (socketRoleNameArg, referenceSmartsocket) => { return referenceSmartsocket.socketRoles.find((socketRoleArg) => { return socketRoleArg.name === socketRoleNameArg; }); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFJakQscURBQW1ELHNDQUFzQyxDQUFDLENBQUE7QUFFMUYsb0RBQXFFLHFDQUFxQyxDQUFDLENBQUE7QUFHM0csMkJBQTJCO0FBQ2hCLDRCQUFvQixHQUFHLENBQUMsT0FBOEMsRUFBRSxvQkFBZ0M7SUFDL0csSUFBSSxrQkFBa0IsR0FBRywyQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLG9CQUFvQixDQUFDLENBQUMsWUFBWSxDQUFDO0lBQzdGLElBQUksbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEYsTUFBTSxDQUFDLGtCQUFrQixLQUFLLG1CQUFtQixDQUFDO0FBQ3RELENBQUMsQ0FBQTtBQUdELHlCQUF5QjtBQUNkLCtCQUF1QixHQUFHLENBQUMsZUFBdUI7SUFDekQsTUFBTSxDQUFDLHVEQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakgsQ0FBQyxDQUFBO0FBRUQsd0JBQXdCO0FBRXhCOztHQUVHO0FBQ1EsNEJBQW9CLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFdBQWdDO0lBQ25GLE1BQU0sQ0FBQyxxREFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzNHLENBQUMsQ0FBQTtBQUVELHFCQUFxQjtBQUVyQjs7R0FFRztBQUNRLDJCQUFtQixHQUFHLENBQUMsaUJBQXlCLEVBQUMsb0JBQWdDO0lBQ3hGLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDeEgsQ0FBQyxDQUFDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBaUQ7QUFJakQsNkZBQTBGO0FBRTFGLDJGQUEyRztBQUczRywyQkFBMkI7QUFDaEIsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLE9BQThDLEVBQUUsb0JBQWdDO0lBQy9HLElBQUksa0JBQWtCLEdBQUcsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxvQkFBb0IsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM3RixJQUFJLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxtQkFBbUIsQ0FBQztBQUN0RCxDQUFDLENBQUE7QUFHRCx5QkFBeUI7QUFDZCxRQUFBLHVCQUF1QixHQUFHLENBQUMsZUFBdUI7SUFDekQsTUFBTSxDQUFDLHVEQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakgsQ0FBQyxDQUFBO0FBRUQsd0JBQXdCO0FBRXhCOztHQUVHO0FBQ1EsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLFVBQWtCLEVBQUUsV0FBZ0M7SUFDbkYsTUFBTSxDQUFDLHFEQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDM0csQ0FBQyxDQUFBO0FBRUQscUJBQXFCO0FBRXJCOztHQUVHO0FBQ1EsUUFBQSxtQkFBbUIsR0FBRyxDQUFDLGlCQUF5QixFQUFDLG9CQUFnQztJQUN4RixNQUFNLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3hILENBQUMsQ0FBQyJ9 \ No newline at end of file diff --git a/dist/smartsocket.plugins.d.ts b/dist/smartsocket.plugins.d.ts index fdb2903..66fedc3 100644 --- a/dist/smartsocket.plugins.d.ts +++ b/dist/smartsocket.plugins.d.ts @@ -1,9 +1,9 @@ -import "typings-global"; -export import beautylog = require("beautylog"); -export import lik = require("lik"); -export import nodehash = require("nodehash"); -export import q = require("q"); -export import shortid = require("shortid"); -export import socketIo = require("socket.io"); -export import socketIoClient = require("socket.io-client"); -export import taskbuffer = require("taskbuffer"); +import 'typings-global'; +export import beautylog = require('beautylog'); +export import lik = require('lik'); +export import nodehash = require('nodehash'); +export import smartq = require('smartq'); +export import shortid = require('shortid'); +export import socketIo = require('socket.io'); +export import socketIoClient = require('socket.io-client'); +export import taskbuffer = require('taskbuffer'); diff --git a/dist/smartsocket.plugins.js b/dist/smartsocket.plugins.js index badbf7c..183663a 100644 --- a/dist/smartsocket.plugins.js +++ b/dist/smartsocket.plugins.js @@ -1,11 +1,12 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); require("typings-global"); exports.beautylog = require("beautylog"); exports.lik = require("lik"); exports.nodehash = require("nodehash"); -exports.q = require("q"); +exports.smartq = require("smartq"); exports.shortid = require("shortid"); exports.socketIo = require("socket.io"); exports.socketIoClient = require("socket.io-client"); exports.taskbuffer = require("taskbuffer"); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsV0FBRyxXQUFZLEtBQUssQ0FBQyxDQUFDO0FBQ3RCLGdCQUFRLFdBQVcsVUFBVSxDQUFDLENBQUM7QUFDL0IsU0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLGVBQU8sV0FBVyxTQUFTLENBQUMsQ0FBQztBQUM3QixnQkFBUSxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2hDLHNCQUFjLFdBQVcsa0JBQWtCLENBQUMsQ0FBQztBQUM3QyxrQkFBVSxXQUFXLFlBQVksQ0FBQyxDQUFDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFDdkIseUNBQThDO0FBQzlDLDZCQUFtQztBQUNuQyx1Q0FBNEM7QUFDNUMsbUNBQXdDO0FBQ3hDLHFDQUEwQztBQUMxQyx3Q0FBNkM7QUFDN0MscURBQTBEO0FBQzFELDJDQUFnRCJ9 \ No newline at end of file diff --git a/npmextra.json b/npmextra.json index 5354226..aae90fd 100644 --- a/npmextra.json +++ b/npmextra.json @@ -1,5 +1,8 @@ { - "npmts":{ - "coverageTreshold":50 + "npmts":{}, + "npmci": { + "globalNpmTools": [ + "npmts" + ] } } \ No newline at end of file diff --git a/package.json b/package.json index 489d4b0..dba47c7 100644 --- a/package.json +++ b/package.json @@ -18,22 +18,20 @@ }, "homepage": "https://gitlab.com/pushrocks/smartsocket#README", "dependencies": { - "@types/q": "0.x.x", - "@types/shortid": "0.0.27", - "@types/socket.io": "^1.4.26", - "@types/socket.io-client": "^1.4.26", - "beautylog": "^5.0.23", - "lik": "^1.0.15", + "@types/shortid": "0.0.29", + "@types/socket.io": "^1.4.29", + "@types/socket.io-client": "^1.4.29", + "beautylog": "^6.1.10", + "lik": "^1.0.38", "nodehash": "^1.0.4", - "q": "^1.4.1", - "shortid": "^2.2.6", - "socket.io": "^1.4.8", - "socket.io-client": "^1.4.8", - "taskbuffer": "^1.0.8" + "shortid": "^2.2.8", + "smartq": "^1.1.6", + "socket.io": "^2.0.3", + "socket.io-client": "^2.0.3", + "taskbuffer": "^1.0.17", + "typings-global": "^1.0.19" }, "devDependencies": { - "npmts-g": "^5.2.8", - "should": "^11.1.0", - "typings-test": "^1.0.3" + "tapbundle": "^1.1.0" } } diff --git a/test/test.d.ts b/test/test.d.ts deleted file mode 100644 index e7cc8ee..0000000 --- a/test/test.d.ts +++ /dev/null @@ -1 +0,0 @@ -import "typings-test"; diff --git a/test/test.js b/test/test.js deleted file mode 100644 index b74bb20..0000000 --- a/test/test.js +++ /dev/null @@ -1,108 +0,0 @@ -"use strict"; -require("typings-test"); -const should = require("should"); -const smartsocket = require("../dist/index"); -const q = require("q"); -const nodehash = require("nodehash"); -let testSmartsocket; -let testSmartsocketClient; -let testSocketRole1; -let testSocketFunction1; -let testConfig = { - port: 3000 -}; -describe("smartsocket", function () { - describe("class Smartsocket", function () { - it("should create a new smartsocket", function () { - testSmartsocket = new smartsocket.Smartsocket({ port: testConfig.port }); - should(testSmartsocket).be.instanceOf(smartsocket.Smartsocket); - }); - it("should start listening when .started is called", function () { - testSmartsocket.startServer(); - }); - }); - describe("class SocketRole", function () { - it("should add a socketrole", function () { - testSocketRole1 = new smartsocket.SocketRole({ - name: "testRole1", - passwordHash: nodehash.sha256FromStringSync("testPassword") - }); - testSmartsocket.addSocketRoles([testSocketRole1]); - }); - }); - describe("class SocketFunction", function () { - it("should register a new Function", function () { - testSocketFunction1 = new smartsocket.SocketFunction({ - funcName: "testFunction1", - funcDef: (dataArg) => { - let done = q.defer(); - done.resolve(dataArg); - return done.promise; - }, - allowedRoles: [testSocketRole1] - }); - }); - }); - describe("class SmartsocketClient", function () { - it("should react to a new websocket connection from client", function (done) { - this.timeout(10000); - testSmartsocketClient = new smartsocket.SmartsocketClient({ - port: testConfig.port, - url: "http://localhost", - password: "testPassword", - alias: "testClient1", - role: "testRole1" - }); - testSmartsocketClient.connect() - .then(() => { - done(); - }); - }); - it("client should disconnect and reconnect", function (done) { - this.timeout(10000); - testSmartsocketClient.disconnect() - .then(() => { - let done = q.defer(); - setTimeout(() => { - testSmartsocketClient.connect() - .then(done.resolve); - }, 0); - return done.promise; - }) - .then(() => { - done(); - }); - }); - it("2 clients should connect in parallel", function () { - }); - it("should be able to make a functionCall from client to server", function (done) { - this.timeout(5000); - testSmartsocketClient.serverCall("testFunction1", { - value1: "hello" - }).then((dataArg) => { - console.log(dataArg); - done(); - }); - }); - it("should be able to make a functionCall from server to client", function (done) { - this.timeout(5000); - let targetSocket = (() => { - return smartsocket.allSocketConnections.find((socketConnectionArg) => { - return socketConnectionArg.alias === "testClient1"; - }); - })(); - testSmartsocket.clientCall("testFunction1", { - value1: "helloFromServer" - }, targetSocket).then((dataArg) => { - console.log(dataArg); - done(); - }); - }); - }); - describe("terminating smartsocket", function () { - it("should close the server", function () { - testSmartsocket.closeServer(); - }); - }); -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsTUFBTyxNQUFNLFdBQVcsUUFBUSxDQUFDLENBQUM7QUFFbEMsTUFBTyxXQUFXLFdBQVcsZUFBZSxDQUFDLENBQUM7QUFDOUMsTUFBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDeEIsTUFBTyxRQUFRLFdBQVcsVUFBVSxDQUFDLENBQUM7QUFFdEMsSUFBSSxlQUF3QyxDQUFDO0FBQzdDLElBQUkscUJBQW9ELENBQUM7QUFDekQsSUFBSSxlQUF1QyxDQUFDO0FBQzVDLElBQUksbUJBQStDLENBQUM7QUFFcEQsSUFBSSxVQUFVLEdBQUc7SUFDYixJQUFJLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFFRCxRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3BCLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtRQUMxQixFQUFFLENBQUMsaUNBQWlDLEVBQUU7WUFDbEMsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN6RSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsZ0RBQWdELEVBQUU7WUFDakQsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDSCxRQUFRLENBQUMsa0JBQWtCLEVBQUU7UUFDekIsRUFBRSxDQUFDLHlCQUF5QixFQUFFO1lBQzFCLGVBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUM7Z0JBQ3pDLElBQUksRUFBRSxXQUFXO2dCQUNqQixZQUFZLEVBQUUs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 \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index ea82fa4..33e4d13 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,9 +1,9 @@ -import "typings-test"; -import should = require("should"); -import socketIoClient = require("socket.io-client"); -import smartsocket = require("../dist/index"); -import q = require("q"); -import nodehash = require("nodehash") +import { expect, tap } from 'tapbundle' + +import socketIoClient = require('socket.io-client') +import smartsocket = require('../dist/index') +import smartq = require('smartq') +import nodehash = require('nodehash') let testSmartsocket: smartsocket.Smartsocket let testSmartsocketClient: smartsocket.SmartsocketClient @@ -11,102 +11,105 @@ let testSocketRole1: smartsocket.SocketRole let testSocketFunction1: smartsocket.SocketFunction let testConfig = { - port: 3000 + port: 3000 } -describe("smartsocket", function () { - describe("class Smartsocket", function () { - it("should create a new smartsocket", function () { - testSmartsocket = new smartsocket.Smartsocket({ port: testConfig.port }); - should(testSmartsocket).be.instanceOf(smartsocket.Smartsocket); - }); - it("should start listening when .started is called", function () { - testSmartsocket.startServer(); - }); - }); - describe("class SocketRole", function () { - it("should add a socketrole", function () { - testSocketRole1 = new smartsocket.SocketRole({ - name: "testRole1", - passwordHash: nodehash.sha256FromStringSync("testPassword") - }); - testSmartsocket.addSocketRoles([testSocketRole1]); - }); - }) - describe("class SocketFunction", function () { - it("should register a new Function", function () { - testSocketFunction1 = new smartsocket.SocketFunction({ - funcName: "testFunction1", - funcDef: (dataArg) => { - let done = q.defer(); - done.resolve(dataArg); - return done.promise; - }, - allowedRoles: [testSocketRole1] - }); - }); - }); - describe("class SmartsocketClient", function () { - it("should react to a new websocket connection from client", function (done) { - this.timeout(10000); - testSmartsocketClient = new smartsocket.SmartsocketClient({ - port: testConfig.port, - url: "http://localhost", - password: "testPassword", - alias: "testClient1", - role: "testRole1" - }); - testSmartsocketClient.connect() - .then(() => { - done(); - }); - }); - it("client should disconnect and reconnect", function (done) { - this.timeout(10000); - testSmartsocketClient.disconnect() - .then(() => { - let done = q.defer(); - setTimeout(() => { - testSmartsocketClient.connect() - .then(done.resolve) - }, 0) - return done.promise; - }) - .then(() => { - done(); - }); - }); - it("2 clients should connect in parallel", function () { +// class smartsocket +tap.test('should create a new smartsocket', async () => { + testSmartsocket = new smartsocket.Smartsocket({ port: testConfig.port }) + expect(testSmartsocket).be.instanceOf(smartsocket.Smartsocket) +}) - }); - it("should be able to make a functionCall from client to server", function (done) { - this.timeout(5000); - testSmartsocketClient.serverCall("testFunction1", { - value1: "hello" - }).then((dataArg) => { - console.log(dataArg); - done(); - }); - }); - it("should be able to make a functionCall from server to client", function (done) { - this.timeout(5000); - let targetSocket = (() => { - return smartsocket.allSocketConnections.find((socketConnectionArg) => { - return socketConnectionArg.alias === "testClient1"; - }); - })(); - testSmartsocket.clientCall("testFunction1", { - value1: "helloFromServer" - }, targetSocket).then((dataArg) => { - console.log(dataArg); - done(); - }); - }); +tap.test('should start listening when .started is called', async () => { + testSmartsocket.startServer() +}) - }); - describe("terminating smartsocket", function () { - it("should close the server", function () { - testSmartsocket.closeServer(); - }); +// class socketrole +tap.test('should add a socketrole', async () => { + testSocketRole1 = new smartsocket.SocketRole({ + name: 'testRole1', + passwordHash: nodehash.sha256FromStringSync('testPassword') + }) + testSmartsocket.addSocketRoles([ testSocketRole1 ]) +}) + +// class SocketFunction +tap.test('should register a new Function', async () => { + testSocketFunction1 = new smartsocket.SocketFunction({ + funcName: 'testFunction1', + funcDef: (dataArg) => { + let done = smartq.defer() + done.resolve(dataArg) + return done.promise + }, + allowedRoles: [ testSocketRole1 ] + }) +}) + +// class SmartsocketClient +tap.test('should react to a new websocket connection from client',async () => { + let done = smartq.defer() + testSmartsocketClient = new smartsocket.SmartsocketClient({ + port: testConfig.port, + url: 'http://localhost', + password: 'testPassword', + alias: 'testClient1', + role: 'testRole1' + }) + testSmartsocketClient.connect() + .then(() => { + done.resolve() }) -}); \ No newline at end of file + await done.promise +}) +tap.test('client should disconnect and reconnect', async () => { + let done = smartq.defer() + testSmartsocketClient.disconnect() + .then(() => { + let done = smartq.defer() + setTimeout(() => { + testSmartsocketClient.connect() + .then(done.resolve) + }, 0) + return done.promise + }) + .then(() => { + done.resolve() + }) + await done.promise +}) +tap.test('2 clients should connect in parallel', async () => { + // nothing here +}) +tap.test('should be able to make a functionCall from client to server', async () => { + let done = smartq.defer() + testSmartsocketClient.serverCall('testFunction1', { + value1: 'hello' + }).then((dataArg) => { + console.log(dataArg) + done.resolve() + }) + await done.promise +}) + +tap.test('should be able to make a functionCall from server to client', async () => { + let done = smartq.defer() + let targetSocket = (() => { + return smartsocket.allSocketConnections.find((socketConnectionArg) => { + return socketConnectionArg.alias === 'testClient1' + }) + })() + testSmartsocket.clientCall('testFunction1', { + value1: 'helloFromServer' + }, targetSocket).then((dataArg) => { + console.log(dataArg) + done.resolve() + }) +}) + +// terminate +tap.test('should close the server', async () => { + testSmartsocket.closeServer() +}) + +tap.start() diff --git a/ts/index.ts b/ts/index.ts index daa7f2e..941e927 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,12 +1,12 @@ -import * as plugins from "./smartsocket.plugins"; +import * as plugins from './smartsocket.plugins' // export main classes -export * from "./smartsocket.classes.smartsocket"; -export * from "./smartsocket.classes.smartsocketclient"; +export * from './smartsocket.classes.smartsocket' +export * from './smartsocket.classes.smartsocketclient' // export further classes and objects -export * from "./smartsocket.classes.socketfunction"; -export * from "./smartsocket.classes.socketrole"; -export * from "./smartsocket.classes.socketconnection"; +export * from './smartsocket.classes.socketfunction' +export * from './smartsocket.classes.socketrole' +export * from './smartsocket.classes.socketconnection' // need something more exposed? Create an issue on GitLab! diff --git a/ts/smartsocket.classes.smartsocket.ts b/ts/smartsocket.classes.smartsocket.ts index 8254a2b..e02e487 100644 --- a/ts/smartsocket.classes.smartsocket.ts +++ b/ts/smartsocket.classes.smartsocket.ts @@ -1,98 +1,98 @@ -import * as plugins from "./smartsocket.plugins"; -import * as helpers from "./smartsocket.helpers"; +import * as plugins from './smartsocket.plugins' +import * as helpers from './smartsocket.helpers' // classes -import { Objectmap } from "lik"; -import { SocketFunction,ISocketFunctionCall} from "./smartsocket.classes.socketfunction"; -import { SocketConnection } from "./smartsocket.classes.socketconnection"; -import { SocketRequest } from "./smartsocket.classes.socketrequest"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Objectmap } from 'lik' +import { SocketFunction, ISocketFunctionCall } from './smartsocket.classes.socketfunction' +import { SocketConnection } from './smartsocket.classes.socketconnection' +import { SocketRequest } from './smartsocket.classes.socketrequest' +import { SocketRole } from './smartsocket.classes.socketrole' export interface ISmartsocketConstructorOptions { - port: number; -}; + port: number +} export class Smartsocket { - options: ISmartsocketConstructorOptions - io: SocketIO.Server; - openSockets = new Objectmap(); - socketRoles = new Objectmap(); - constructor(optionsArg: ISmartsocketConstructorOptions) { - this.options = optionsArg; - }; + options: ISmartsocketConstructorOptions + io: SocketIO.Server + openSockets = new Objectmap() + socketRoles = new Objectmap() + constructor (optionsArg: ISmartsocketConstructorOptions) { + this.options = optionsArg + } - /** - * the standard handler for new socket connections - */ - private _handleSocketConnection(socketArg) { - let socketConnection: SocketConnection = new SocketConnection({ - alias:undefined, - authenticated:false, - role:undefined, - side:"server", - smartsocketHost: this, - socket:socketArg - }); - plugins.beautylog.log("Socket connected. Trying to authenticate...") - this.openSockets.add(socketConnection); - socketConnection.authenticate() - .then(() => { - return socketConnection.listenToFunctionRequests(); - }) - .catch((err) => { - console.log(err); - }); - }; + /** + * starts listening to incling sockets: + */ + startServer = () => { + this.io = plugins.socketIo(this.options.port) + this.io.on('connection', (socketArg) => { + this._handleSocketConnection(socketArg) + }) + } + closeServer = () => { + this.openSockets.forEach((socketObjectArg: SocketConnection) => { + plugins.beautylog.log(`disconnect socket with >>alias ${socketObjectArg.alias}`) + socketObjectArg.socket.disconnect() + }) + this.openSockets.wipe() + this.io.close() + } - /** - * starts listening to incling sockets: - */ - startServer = () => { - this.io = plugins.socketIo(this.options.port); - this.io.on("connection", (socketArg) => { - this._handleSocketConnection(socketArg); - }); + // communication + + /** + * allows call to specific client. + */ + clientCall (functionNameArg: string, dataArg: any, targetSocketConnectionArg: SocketConnection) { + let done = plugins.smartq.defer() + let socketRequest = new SocketRequest({ + side: 'requesting', + originSocketConnection: targetSocketConnectionArg, + shortId: plugins.shortid.generate(), + funcCallData: { + funcName: functionNameArg, + funcDataArg: dataArg + } + }) + socketRequest.dispatch() + .then((dataArg: ISocketFunctionCall) => { + done.resolve(dataArg.funcDataArg) + }) + return done.promise + } + + /** + * adds socketRoles + */ + addSocketRoles (socketRolesArray: SocketRole[]): void { + for (let socketRole of socketRolesArray) { + this.socketRoles.add(socketRole) } - closeServer = () => { - this.openSockets.forEach((socketObjectArg: SocketConnection) => { - plugins.beautylog.log(`disconnect socket with >>alias ${socketObjectArg.alias}`); - socketObjectArg.socket.disconnect(); - }); - this.openSockets.wipe(); - this.io.close(); - }; + return + } - // communication + /** + * the standard handler for new socket connections + */ + private _handleSocketConnection (socketArg) { + let socketConnection: SocketConnection = new SocketConnection({ + alias: undefined, + authenticated: false, + role: undefined, + side: 'server', + smartsocketHost: this, + socket: socketArg + }) + plugins.beautylog.log('Socket connected. Trying to authenticate...') + this.openSockets.add(socketConnection) + socketConnection.authenticate() + .then(() => { + return socketConnection.listenToFunctionRequests() + }) + .catch((err) => { + console.log(err) + }) + } - /** - * allows call to specific client. - */ - clientCall(functionNameArg:string,dataArg:any,targetSocketConnectionArg:SocketConnection){ - let done = plugins.q.defer(); - let socketRequest = new SocketRequest({ - side:"requesting", - originSocketConnection:targetSocketConnectionArg, - shortId:plugins.shortid.generate(), - funcCallData:{ - funcName: functionNameArg, - funcDataArg:dataArg - } - }); - socketRequest.dispatch() - .then((dataArg:ISocketFunctionCall) => { - done.resolve(dataArg.funcDataArg); - }); - return done.promise; - }; - - /** - * adds socketRoles - */ - addSocketRoles(socketRolesArray:SocketRole[]):void{ - for(let socketRole of socketRolesArray){ - this.socketRoles.add(socketRole); - }; - return; - }; - -} \ No newline at end of file +} diff --git a/ts/smartsocket.classes.smartsocketclient.ts b/ts/smartsocket.classes.smartsocketclient.ts index 76d6cb7..a7e42de 100644 --- a/ts/smartsocket.classes.smartsocketclient.ts +++ b/ts/smartsocket.classes.smartsocketclient.ts @@ -1,95 +1,95 @@ -import * as plugins from "./smartsocket.plugins" +import * as plugins from './smartsocket.plugins' // import interfaces -import { ISocketFunctionCall } from "./smartsocket.classes.socketfunction"; -import { ISocketRequestDataObject } from "./smartsocket.classes.socketrequest" +import { ISocketFunctionCall } from './smartsocket.classes.socketfunction' +import { ISocketRequestDataObject } from './smartsocket.classes.socketrequest' // import classes -import { SocketConnection } from "./smartsocket.classes.socketconnection"; -import { SocketFunction } from "./smartsocket.classes.socketfunction"; -import { SocketRequest } from "./smartsocket.classes.socketrequest"; +import { SocketConnection } from './smartsocket.classes.socketconnection' +import { SocketFunction } from './smartsocket.classes.socketfunction' +import { SocketRequest } from './smartsocket.classes.socketrequest' /** * interface for class SmartsocketClient */ export interface ISmartsocketClientOptions { - port: number; - url: string; - alias:string; // an alias makes it easier to identify this client in a multo client environment - role:string; - password: string; // by setting a password access to functions can be limited + port: number + url: string + alias: string // an alias makes it easier to identify this client in a multo client environment + role: string + password: string // by setting a password access to functions can be limited } export class SmartsocketClient { - alias:string; - role:string; - socketConnection:SocketConnection; - serverUrl:string; - serverPort:number; - serverPassword:string; - constructor(optionsArg:ISmartsocketClientOptions){ - this.alias = optionsArg.alias; - this.role = optionsArg.role; - this.serverUrl = optionsArg.url - this.serverPort = optionsArg.port; - this.serverPassword = optionsArg.password - }; + alias: string + role: string + socketConnection: SocketConnection + serverUrl: string + serverPort: number + serverPassword: string + constructor(optionsArg: ISmartsocketClientOptions) { + this.alias = optionsArg.alias + this.role = optionsArg.role + this.serverUrl = optionsArg.url + this.serverPort = optionsArg.port + this.serverPassword = optionsArg.password + } - /** - * connect the client to the server - */ - connect(){ - let done = plugins.q.defer(); - plugins.beautylog.log("trying to connect..."); - let socketUrl = `${this.serverUrl}:${this.serverPort}`; - this.socketConnection = new SocketConnection({ - alias:this.alias, - authenticated:false, - role:undefined, - side:"client", - smartsocketHost: null, - socket: plugins.socketIoClient(socketUrl,{multiplex:false}) - }); - this.socketConnection.socket.on("requestAuth", () => { - console.log("server requested authentication"); - this.socketConnection.socket.emit("dataAuth", { - role: this.role, - password: this.serverPassword, - alias: this.alias - }); - this.socketConnection.socket.on("authenticated",() => { - console.log("client is authenticated"); - this.socketConnection.authenticated = true; - this.socketConnection.listenToFunctionRequests(); - done.resolve(); - }); - }); - return done.promise; - }; - disconnect(){ - let done = plugins.q.defer(); - this.socketConnection.socket.disconnect(); - this.socketConnection = undefined; - plugins.beautylog.ok("disconnected!"); - done.resolve(); - return done.promise; - } - serverCall(functionNameArg:string,dataArg:any){ - let done = plugins.q.defer(); - let socketRequest = new SocketRequest({ - side:"requesting", - originSocketConnection:this.socketConnection, - shortId:plugins.shortid.generate(), - funcCallData:{ - funcName: functionNameArg, - funcDataArg:dataArg - } - }); - socketRequest.dispatch() - .then((dataArg:ISocketFunctionCall) => { - done.resolve(dataArg.funcDataArg); - }); - return done.promise; - }; - -} \ No newline at end of file + /** + * connect the client to the server + */ + connect () { + let done = plugins.smartq.defer() + plugins.beautylog.log('trying to connect...') + let socketUrl = `${this.serverUrl}:${this.serverPort}` + this.socketConnection = new SocketConnection({ + alias: this.alias, + authenticated: false, + role: undefined, + side: 'client', + smartsocketHost: null, + socket: plugins.socketIoClient(socketUrl, { multiplex: false }) + }) + this.socketConnection.socket.on('requestAuth', () => { + console.log('server requested authentication') + this.socketConnection.socket.emit('dataAuth', { + role: this.role, + password: this.serverPassword, + alias: this.alias + }) + this.socketConnection.socket.on('authenticated', () => { + console.log('client is authenticated') + this.socketConnection.authenticated = true + this.socketConnection.listenToFunctionRequests() + done.resolve() + }) + }) + return done.promise + } + disconnect () { + let done = plugins.smartq.defer() + this.socketConnection.socket.disconnect() + this.socketConnection = undefined + plugins.beautylog.ok('disconnected!') + done.resolve() + return done.promise + } + serverCall (functionNameArg: string, dataArg: any) { + let done = plugins.smartq.defer() + let socketRequest = new SocketRequest({ + side: 'requesting', + originSocketConnection: this.socketConnection, + shortId: plugins.shortid.generate(), + funcCallData: { + funcName: functionNameArg, + funcDataArg: dataArg + } + }) + socketRequest.dispatch() + .then((dataArg: ISocketFunctionCall) => { + done.resolve(dataArg.funcDataArg) + }) + return done.promise + } + +} diff --git a/ts/smartsocket.classes.socketconnection.ts b/ts/smartsocket.classes.socketconnection.ts index 8581a89..c9d9aff 100644 --- a/ts/smartsocket.classes.socketconnection.ts +++ b/ts/smartsocket.classes.socketconnection.ts @@ -1,140 +1,140 @@ -import * as plugins from "./smartsocket.plugins"; -import * as helpers from "./smartsocket.helpers"; +import * as plugins from './smartsocket.plugins' +import * as helpers from './smartsocket.helpers' -import {Objectmap} from "lik"; +import { Objectmap } from 'lik' // import classes -import { Smartsocket } from "./smartsocket.classes.smartsocket" -import { SocketFunction } from "./smartsocket.classes.socketfunction"; -import { SocketRequest, ISocketRequestDataObject, allSocketRequests } from "./smartsocket.classes.socketrequest"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Smartsocket } from './smartsocket.classes.smartsocket' +import { SocketFunction } from './smartsocket.classes.socketfunction' +import { SocketRequest, ISocketRequestDataObject, allSocketRequests } from './smartsocket.classes.socketrequest' +import { SocketRole } from './smartsocket.classes.socketrole' // export interfaces /** * defines is a SocketConnection is server or client side. Important for mesh setups. */ -export type TSocketConnectionSide = "server" | "client"; +export type TSocketConnectionSide = 'server' | 'client' /** * interface for constructor of class SocketConnection */ export interface ISocketConnectionConstructorOptions { - alias: string; - authenticated: boolean; - role: SocketRole; - side: TSocketConnectionSide; - smartsocketHost: Smartsocket; - socket: SocketIO.Socket | SocketIOClient.Socket; -}; + alias: string + authenticated: boolean + role: SocketRole + side: TSocketConnectionSide + smartsocketHost: Smartsocket + socket: SocketIO.Socket | SocketIOClient.Socket +} /** * interface for authentication data */ export interface ISocketConnectionAuthenticationObject { - role: "coreflowContainer", - password: "somePassword", - alias: "coreflow1" -}; + role: 'coreflowContainer', + password: 'somePassword', + alias: 'coreflow1' +} // export classes -export let allSocketConnections = new Objectmap(); +export let allSocketConnections = new Objectmap() /** * class SocketConnection represents a websocket connection */ export class SocketConnection { - alias: string; - side:TSocketConnectionSide; - authenticated: boolean = false; - role: SocketRole; - smartsocketHost:Smartsocket; - socket: SocketIO.Socket | SocketIOClient.Socket; - constructor(optionsArg: ISocketConnectionConstructorOptions) { - this.alias = optionsArg.alias; - this.authenticated = optionsArg.authenticated; - this.role = optionsArg.role; - this.side = optionsArg.side; - this.smartsocketHost = optionsArg.smartsocketHost; - this.socket = optionsArg.socket; - - // standard behaviour that is always true - allSocketConnections.add(this); - this.socket.on("disconnect", () => { - plugins.beautylog.info(`SocketConnection with >alias ${this.alias} on >side ${this.side} disconnected`); - allSocketConnections.remove(this); - }); - }; + alias: string + side: TSocketConnectionSide + authenticated: boolean = false + role: SocketRole + smartsocketHost: Smartsocket + socket: any //: SocketIO.Socket | SocketIOClient.Socket + constructor (optionsArg: ISocketConnectionConstructorOptions) { + this.alias = optionsArg.alias + this.authenticated = optionsArg.authenticated + this.role = optionsArg.role + this.side = optionsArg.side + this.smartsocketHost = optionsArg.smartsocketHost + this.socket = optionsArg.socket - // authenticating -------------------------- + // standard behaviour that is always true + allSocketConnections.add(this) + this.socket.on('disconnect', () => { + plugins.beautylog.info(`SocketConnection with >alias ${this.alias} on >side ${this.side} disconnected`) + allSocketConnections.remove(this) + }) + } - /** - * authenticate the socket - */ - authenticate() { - let done = plugins.q.defer(); - this.socket.on("dataAuth", (dataArg:ISocketConnectionAuthenticationObject) => { - plugins.beautylog.log("received authentication data. now hashing and comparing..."); - this.socket.removeListener("dataAuth", () => { }); - if (helpers.checkPasswordForRole(dataArg,this.smartsocketHost)) { // TODO: authenticate password - this.alias = dataArg.alias - this.authenticated = true; - this.role = helpers.getSocketRoleByName(dataArg.role,this.smartsocketHost); - this.socket.emit("authenticated"); - plugins.beautylog.ok(`socket with >>alias ${this.alias} >>role ${this.role} is authenticated!`); - done.resolve(this); - } else { - this.authenticated = false; - this.socket.disconnect(); - done.reject("not authenticated"); - }; - }); - this.socket.emit("requestAuth"); - return done.promise; - }; + // authenticating -------------------------- - // listening ------------------------------- + /** + * authenticate the socket + */ + authenticate () { + let done = plugins.smartq.defer() + this.socket.on('dataAuth', (dataArg: ISocketConnectionAuthenticationObject) => { + plugins.beautylog.log('received authentication data. now hashing and comparing...') + this.socket.removeListener('dataAuth', () => { }) + if (helpers.checkPasswordForRole(dataArg, this.smartsocketHost)) { // TODO: authenticate password + this.alias = dataArg.alias + this.authenticated = true + this.role = helpers.getSocketRoleByName(dataArg.role, this.smartsocketHost) + this.socket.emit('authenticated') + plugins.beautylog.ok(`socket with >>alias ${this.alias} >>role ${this.role} is authenticated!`) + done.resolve(this) + } else { + this.authenticated = false + this.socket.disconnect() + done.reject('not authenticated') + } + }) + this.socket.emit('requestAuth') + return done.promise + } - /** - * listen to function requests - */ - listenToFunctionRequests(){ - let done = plugins.q.defer(); - if(this.authenticated){ - this.socket.on("function", (dataArg:ISocketRequestDataObject) => { - // check if requested function is available to the socket's scope - plugins.beautylog.log("function request received"); - let referencedFunction:SocketFunction = this.role.allowedFunctions.find((socketFunctionArg) => { - return socketFunctionArg.name === dataArg.funcCallData.funcName; - }); - if(referencedFunction !== undefined){ - plugins.beautylog.ok!("function in access scope"); - let localSocketRequest = new SocketRequest({ - side:"responding", - originSocketConnection:this, - shortId:dataArg.shortId, - funcCallData:dataArg.funcCallData - }); - localSocketRequest.createResponse(); // takes care of creating response and sending it back - } else { - plugins.beautylog.warn("function not existent or out of access scope"); - }; - }); - this.socket.on("functionResponse", (dataArg:ISocketRequestDataObject) => { - plugins.beautylog.info(`received response for request with id ${dataArg.shortId}`); - let targetSocketRequest = helpers.getSocketRequestById(dataArg.shortId); - targetSocketRequest.handleResponse(dataArg); - }); - plugins.beautylog.log(`now listening to function requests for ${this.alias}`); - done.resolve(this); + // listening ------------------------------- + + /** + * listen to function requests + */ + listenToFunctionRequests () { + let done = plugins.smartq.defer() + if (this.authenticated) { + this.socket.on('function', (dataArg: ISocketRequestDataObject) => { + // check if requested function is available to the socket's scope + plugins.beautylog.log('function request received') + let referencedFunction: SocketFunction = this.role.allowedFunctions.find((socketFunctionArg) => { + return socketFunctionArg.name === dataArg.funcCallData.funcName + }) + if (referencedFunction !== undefined) { + plugins.beautylog.ok!('function in access scope') + let localSocketRequest = new SocketRequest({ + side: 'responding', + originSocketConnection: this, + shortId: dataArg.shortId, + funcCallData: dataArg.funcCallData + }) + localSocketRequest.createResponse() // takes care of creating response and sending it back } else { - let errMessage: "socket needs to be authenticated first"; - plugins.beautylog.error(errMessage); - done.reject(errMessage); - }; - return done.promise; - }; + plugins.beautylog.warn('function not existent or out of access scope') + } + }) + this.socket.on('functionResponse', (dataArg: ISocketRequestDataObject) => { + plugins.beautylog.info(`received response for request with id ${dataArg.shortId}`) + let targetSocketRequest = helpers.getSocketRequestById(dataArg.shortId) + targetSocketRequest.handleResponse(dataArg) + }) + plugins.beautylog.log(`now listening to function requests for ${this.alias}`) + done.resolve(this) + } else { + let errMessage: 'socket needs to be authenticated first' + plugins.beautylog.error(errMessage) + done.reject(errMessage) + } + return done.promise + } - // sending ---------------------- - -}; + // sending ---------------------- + +} diff --git a/ts/smartsocket.classes.socketfunction.ts b/ts/smartsocket.classes.socketfunction.ts index 1d87a92..90ae3db 100644 --- a/ts/smartsocket.classes.socketfunction.ts +++ b/ts/smartsocket.classes.socketfunction.ts @@ -1,8 +1,8 @@ -import * as plugins from "./smartsocket.plugins"; +import * as plugins from './smartsocket.plugins' // import classes -import { Objectmap } from "lik"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Objectmap } from 'lik' +import { SocketRole } from './smartsocket.classes.socketrole' // export interfaces @@ -10,28 +10,28 @@ import { SocketRole } from "./smartsocket.classes.socketrole"; * interface of the contructor options of class SocketFunction */ export interface ISocketFunctionConstructorOptions { - funcName: string; - funcDef: any; - allowedRoles: SocketRole[]; // all roles that are allowed to execute a SocketFunction -}; + funcName: string + funcDef: any + allowedRoles: SocketRole[] // all roles that are allowed to execute a SocketFunction +} /** * interface of the Socket Function call, in other words the object that routes a call to a function */ export interface ISocketFunctionCall { - funcName:string; - funcDataArg:any; -}; + funcName: string + funcDataArg: any +} /** * interface for function definition of SocketFunction */ export interface IFuncDef { - (dataArg:any):PromiseLike + (dataArg: any): PromiseLike } // export objects -export let allSocketFunctions = new Objectmap(); +export let allSocketFunctions = new Objectmap() // export classes @@ -39,49 +39,48 @@ export let allSocketFunctions = new Objectmap(); * class that respresents a function that can be transparently called using a SocketConnection */ export class SocketFunction { - name: string; - funcDef: IFuncDef; - roles: SocketRole[]; + name: string + funcDef: IFuncDef + roles: SocketRole[] - /** - * the constructor for SocketFunction - */ - constructor(optionsArg: ISocketFunctionConstructorOptions) { - this.name = optionsArg.funcName; - this.funcDef = optionsArg.funcDef; - this.roles = optionsArg.allowedRoles; - for (let socketRoleArg of this.roles){ - this._notifyRole(socketRoleArg); - }; - allSocketFunctions.add(this); // map instance with Objectmap - }; - - /** - * notifies a role about access to this SocketFunction - */ - private _notifyRole(socketRoleArg:SocketRole){ - socketRoleArg.addSocketFunction(this); + /** + * the constructor for SocketFunction + */ + constructor (optionsArg: ISocketFunctionConstructorOptions) { + this.name = optionsArg.funcName + this.funcDef = optionsArg.funcDef + this.roles = optionsArg.allowedRoles + for (let socketRoleArg of this.roles) { + this._notifyRole(socketRoleArg) } - - /** - * invokes the function of this SocketFunction - */ - invoke(dataArg:ISocketFunctionCall):plugins.q.Promise { - let done = plugins.q.defer(); - if(dataArg.funcName === this.name){ - this.funcDef(dataArg.funcDataArg) - .then((resultData:any) => { - let funcResponseData:ISocketFunctionCall = { - funcName:this.name, - funcDataArg:resultData - } - done.resolve(funcResponseData); - }); - - } else { - throw new Error("SocketFunction.name does not match the data argument's .name!"); - } - return done.promise; - }; + allSocketFunctions.add(this) // map instance with Objectmap + } -} \ No newline at end of file + /** + * invokes the function of this SocketFunction + */ + invoke (dataArg: ISocketFunctionCall): Promise { + let done = plugins.smartq.defer() + if (dataArg.funcName === this.name) { + this.funcDef(dataArg.funcDataArg) + .then((resultData: any) => { + let funcResponseData: ISocketFunctionCall = { + funcName: this.name, + funcDataArg: resultData + } + done.resolve(funcResponseData) + }) + + } else { + throw new Error("SocketFunction.name does not match the data argument's .name!") + } + return done.promise + } + + /** + * notifies a role about access to this SocketFunction + */ + private _notifyRole (socketRoleArg: SocketRole) { + socketRoleArg.addSocketFunction(this) + } +} diff --git a/ts/smartsocket.classes.socketrequest.ts b/ts/smartsocket.classes.socketrequest.ts index c8a0230..921dc37 100644 --- a/ts/smartsocket.classes.socketrequest.ts +++ b/ts/smartsocket.classes.socketrequest.ts @@ -1,96 +1,96 @@ -import * as plugins from "./smartsocket.plugins"; -import * as helpers from "./smartsocket.helpers"; +import * as plugins from './smartsocket.plugins' +import * as helpers from './smartsocket.helpers' // import interfaces -import { ISocketFunctionCall } from "./smartsocket.classes.socketfunction"; +import { ISocketFunctionCall } from './smartsocket.classes.socketfunction' // import classes -import { Objectmap } from "lik"; -import { SocketFunction } from "./smartsocket.classes.socketfunction"; -import { SocketConnection } from "./smartsocket.classes.socketconnection"; +import { Objectmap } from 'lik' +import { SocketFunction } from './smartsocket.classes.socketfunction' +import { SocketConnection } from './smartsocket.classes.socketconnection' // export interfaces -export type TSocketRequestStatus = "new" | "pending" | "finished"; -export type TSocketRequestSide = "requesting" | "responding"; +export type TSocketRequestStatus = 'new' | 'pending' | 'finished' +export type TSocketRequestSide = 'requesting' | 'responding' /** * interface of constructor of class SocketRequest */ export interface SocketRequestConstructorOptions { - side: TSocketRequestSide; - originSocketConnection: SocketConnection; - shortId: string; - funcCallData?: ISocketFunctionCall; -}; + side: TSocketRequestSide + originSocketConnection: SocketConnection + shortId: string + funcCallData?: ISocketFunctionCall +} /** * request object that is sent initially and may or may not receive a response */ export interface ISocketRequestDataObject { - funcCallData: ISocketFunctionCall; - shortId: string; - responseTimeout?: number; -}; + funcCallData: ISocketFunctionCall + shortId: string + responseTimeout?: number +} -//export objects -export let allSocketRequests = new Objectmap(); +// export objects +export let allSocketRequests = new Objectmap() // export classes export class SocketRequest { - status: TSocketRequestStatus = "new"; - side: TSocketRequestSide; - shortid: string; - originSocketConnection: SocketConnection; - funcCallData: ISocketFunctionCall - done = plugins.q.defer(); - constructor(optionsArg: SocketRequestConstructorOptions) { - this.side = optionsArg.side; - this.shortid = optionsArg.shortId; - this.funcCallData = optionsArg.funcCallData; - this.originSocketConnection = optionsArg.originSocketConnection; - allSocketRequests.add(this); - }; + status: TSocketRequestStatus = 'new' + side: TSocketRequestSide + shortid: string + originSocketConnection: SocketConnection + funcCallData: ISocketFunctionCall + done = plugins.smartq.defer() + constructor (optionsArg: SocketRequestConstructorOptions) { + this.side = optionsArg.side + this.shortid = optionsArg.shortId + this.funcCallData = optionsArg.funcCallData + this.originSocketConnection = optionsArg.originSocketConnection + allSocketRequests.add(this) + } - // requesting -------------------------- + // requesting -------------------------- - /** - * dispatches a socketrequest from the requesting to the receiving side - */ - dispatch() { + /** + * dispatches a socketrequest from the requesting to the receiving side + */ + dispatch () { + let requestData: ISocketRequestDataObject = { + funcCallData: this.funcCallData, + shortId: this.shortid + } + this.originSocketConnection.socket.emit('function', requestData) + return this.done.promise + } + + /** + * handles the response that is received by the requesting side + */ + handleResponse (responseDataArg: ISocketRequestDataObject) { + plugins.beautylog.log('handling response!') + this.done.resolve(responseDataArg.funcCallData) + allSocketRequests.remove(this) + } + + // responding -------------------------- + + /** + * creates the response on the responding side + */ + createResponse () { + let targetSocketFunction: SocketFunction = helpers.getSocketFunctionByName(this.funcCallData.funcName) + plugins.beautylog.info(`invoking ${targetSocketFunction.name}`) + targetSocketFunction.invoke(this.funcCallData) + .then((resultData) => { + plugins.beautylog.log('got resultData. Sending it to requesting party.') let requestData: ISocketRequestDataObject = { - funcCallData: this.funcCallData, - shortId: this.shortid + funcCallData: resultData, + shortId: this.shortid } - this.originSocketConnection.socket.emit("function", requestData); - return this.done.promise; - }; - - /** - * handles the response that is received by the requesting side - */ - handleResponse(responseDataArg: ISocketRequestDataObject) { - plugins.beautylog.log("handling response!"); - this.done.resolve(responseDataArg.funcCallData); - allSocketRequests.remove(this); - } - - // responding -------------------------- - - /** - * creates the response on the responding side - */ - createResponse() { - let targetSocketFunction: SocketFunction = helpers.getSocketFunctionByName(this.funcCallData.funcName); - plugins.beautylog.info(`invoking ${targetSocketFunction.name}`); - targetSocketFunction.invoke(this.funcCallData) - .then((resultData) => { - plugins.beautylog.log("got resultData. Sending it to requesting party.") - let requestData: ISocketRequestDataObject = { - funcCallData: resultData, - shortId: this.shortid - }; - this.originSocketConnection.socket.emit("functionResponse",requestData); - allSocketRequests.remove(this); - }); - } -}; + this.originSocketConnection.socket.emit('functionResponse', requestData) + allSocketRequests.remove(this) + }) + } +} diff --git a/ts/smartsocket.plugins.ts b/ts/smartsocket.plugins.ts index ff2355c..27f2a29 100644 --- a/ts/smartsocket.plugins.ts +++ b/ts/smartsocket.plugins.ts @@ -1,9 +1,9 @@ -import "typings-global"; -export import beautylog = require("beautylog"); -export import lik = require("lik"); -export import nodehash = require("nodehash"); -export import q = require("q"); -export import shortid = require("shortid"); -export import socketIo = require("socket.io"); -export import socketIoClient = require("socket.io-client"); -export import taskbuffer = require("taskbuffer"); \ No newline at end of file +import 'typings-global' +export import beautylog = require('beautylog') +export import lik = require('lik') +export import nodehash = require('nodehash') +export import smartq = require('smartq') +export import shortid = require('shortid') +export import socketIo = require('socket.io') +export import socketIoClient = require('socket.io-client') +export import taskbuffer = require('taskbuffer') diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..45052ad --- /dev/null +++ b/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "tslint-config-standard" +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..a1bdf6a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,898 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/chai-as-promised@0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77" + dependencies: + "@types/chai" "*" + "@types/promises-a-plus" "*" + +"@types/chai-string@^1.1.30": + version "1.1.30" + resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.30.tgz#4d8744b31a5a2295fc01c981ed1e2d4c8a070f0a" + dependencies: + "@types/chai" "*" + +"@types/chai@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.1.tgz#37fea779617cfec3fd2b19a0247e8bbdd5133bf6" + +"@types/chai@^3.4.35": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e" + +"@types/cron@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/cron/-/cron-1.2.1.tgz#95c1e432d6106ca34c92f0743638bc786c073faa" + +"@types/lodash@4.x.x", "@types/lodash@^4.14.55", "@types/lodash@^4.14.67": + version "4.14.68" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.68.tgz#754fbab68bd2bbb69547dc8ce7574f7012eed7f6" + +"@types/minimatch@2.x.x": + version "2.0.29" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a" + +"@types/node@*": + version "8.0.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.8.tgz#0dc4ca2c6f6fc69baee16c5e928c4a627f517ada" + +"@types/promises-a-plus@*": + version "0.0.27" + resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780" + +"@types/q@0.x.x": + version "0.0.35" + resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.35.tgz#1893674fb15f138013ec108d233f68fc7df0f155" + +"@types/q@1.x.x": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.0.2.tgz#41f0b0f6ae0eeed3a51b003e2e08cba5525b74f6" + +"@types/shelljs@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.2.tgz#c2bdb3fe80cd7a3da08750ca898ae44c589671f3" + dependencies: + "@types/node" "*" + +"@types/shortid@0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/shortid/-/shortid-0.0.29.tgz#8093ee0416a6e2bf2aa6338109114b3fbffa0e9b" + +"@types/socket.io-client@^1.4.29": + version "1.4.29" + resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.29.tgz#f8743070cee93175e36e0b6a77a8af73e58ccb32" + +"@types/socket.io@^1.4.29": + version "1.4.29" + resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-1.4.29.tgz#86a6b3a9ab78cf9a900ceef85b9b68b6bea86712" + dependencies: + "@types/node" "*" + +"@types/through2@0.x.x": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/through2/-/through2-0.4.1.tgz#0f008e174c1dc5f1cc7e00eb2d132b2cb67f7bd2" + dependencies: + "@types/node" "*" + +"@types/which@^1.0.28": + version "1.0.28" + resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6" + +accepts@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +ansi-256-colors@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + +assertion-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +beautycolor@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.7.tgz#a4715738ac4c8221371e9cbeb5a6cc6d11ecbf7c" + dependencies: + ansi-256-colors "^1.1.0" + typings-global "^1.0.14" + +beautylog@^6.1.10: + version "6.1.10" + resolved "https://registry.yarnpkg.com/beautylog/-/beautylog-6.1.10.tgz#9c27e566937684cb689f9372d98cfa5415d50b72" + dependencies: + "@types/lodash" "^4.14.55" + beautycolor "^1.0.7" + figlet "^1.2.0" + lodash "^4.17.4" + ora "^1.1.0" + smartenv "^2.0.0" + smartq "^1.1.1" + typings-global "^1.0.14" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +bindings@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +chai-as-promised@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6" + dependencies: + check-error "^1.0.2" + +chai-string@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49" + +chai@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chalk@^1.0.0, chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cron@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cron/-/cron-1.2.1.tgz#3a86c09b41b8f261ac863a7cc85ea4735857eab2" + dependencies: + moment-timezone "^0.5.x" + +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +debug@~2.6.4, debug@~2.6.6: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + dependencies: + type-detect "0.1.1" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +early@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c" + dependencies: + beautycolor "^1.0.7" + smartq "^1.1.1" + typings-global "^1.0.16" + +engine.io-client@~3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.1.tgz#415a9852badb14fa008fa3ef1e31608db6761325" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~2.6.4" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~2.3.1" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.1.tgz#e0fb3f0e0462f7f58bb77c1a52e9f5a7e26e4668" + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary2 "~1.0.2" + +engine.io@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.0.tgz#5ca438e3ce9fdbc915c4a21c8dd9e1266706e57e" + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "~2.6.4" + engine.io-parser "~2.1.0" + ws "~2.3.1" + optionalDependencies: + uws "~0.14.4" + +es-abstract@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + is-callable "^1.1.3" + is-regex "^1.0.3" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es6-error@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +figlet@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.0.tgz#6c46537378fab649146b5a6143dda019b430b410" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +function-bind@^1.0.2, function-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +glob@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98" + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +interpret@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-regex@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +leakage@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39" + dependencies: + es6-error "^4.0.2" + left-pad "^1.1.3" + memwatch-next "^0.3.0" + minimist "^1.2.0" + pretty-bytes "^4.0.2" + +left-pad@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" + +lik@^1.0.32, lik@^1.0.38: + version "1.0.38" + resolved "https://registry.yarnpkg.com/lik/-/lik-1.0.38.tgz#ccff0abd3d9236a5e4b7d80d514c5c210f18469b" + dependencies: + "@types/lodash" "^4.14.67" + "@types/minimatch" "2.x.x" + "@types/q" "1.x.x" + lodash "^4.17.4" + minimatch "^3.0.4" + q "^1.5.0" + rxjs "^5.4.1" + smartq "^1.1.1" + typings-global "^1.0.19" + +lodash@^4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +memwatch-next@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f" + dependencies: + bindings "^1.2.1" + nan "^2.3.2" + +mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" + +mime-types@~2.1.11: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + dependencies: + mime-db "~1.27.0" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +moment-timezone@^0.5.x: + version "0.5.13" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.13.tgz#99ce5c7d827262eb0f1f702044177f60745d7b90" + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0": + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@^2.3.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +nodehash@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nodehash/-/nodehash-1.0.4.tgz#fd733397a0925b9b4bc19726f3c0e68850206e7f" + dependencies: + "@types/q" "0.x.x" + "@types/through2" "0.x.x" + q "^1.4.1" + through2 "^2.0.1" + typings-global "^1.0.6" + +object-assign@~4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +ora@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a" + dependencies: + chalk "^1.1.1" + cli-cursor "^2.1.0" + cli-spinners "^1.0.0" + log-symbols "^1.0.2" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +q@^1.4.1, q@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + +readable-stream@^2.1.5: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +resolve@^1.1.6: + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rxjs@^5.4.1: + version "5.4.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.2.tgz#2a3236fcbf03df57bae06fd6972fd99e5c08fcf7" + dependencies: + symbol-observable "^1.0.1" + +safe-buffer@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +semver@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +shelljs@^0.7.8: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shortid@^2.2.8: + version "2.2.8" + resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131" + +signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +smartchai@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f" + dependencies: + "@types/chai" "^3.4.35" + "@types/chai-as-promised" "0.0.29" + "@types/chai-string" "^1.1.30" + chai "^3.5.0" + chai-as-promised "^6.0.0" + chai-string "^1.3.0" + +smartdelay@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.3.tgz#5fd44dad77262d110702f0293efa80c072cfb579" + dependencies: + smartq "^1.1.1" + typings-global "^1.0.16" + +smartenv@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/smartenv/-/smartenv-2.0.6.tgz#b38c679b0c151b9af548f68c3a072c29d1417e8d" + dependencies: + lodash "^4.17.4" + smartq "^1.1.1" + typings-global "^1.0.14" + +smartq@^1.1.1, smartq@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.6.tgz#0c1ff4336d95e95b4f1fdd8ccd7e2c5a323b8412" + dependencies: + typings-global "^1.0.19" + util.promisify "^1.0.0" + +smartshell@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.8.tgz#1535756c0fe8069f7e6da1e3f9cb6c8f77094e42" + dependencies: + "@types/shelljs" "^0.7.2" + "@types/which" "^1.0.28" + shelljs "^0.7.8" + smartq "^1.1.1" + typings-global "^1.0.19" + which "^1.2.14" + +socket.io-adapter@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.0.tgz#c7aa46501dd556c2cb8a28af8ff95c0b5e1daa4c" + dependencies: + debug "2.3.3" + +socket.io-client@^2.0.3, socket.io-client@~2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.3.tgz#6caf4aff9f85b19fd91b6ce13d69adb564f8873b" + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~2.6.4" + engine.io-client "~3.1.0" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.1.1" + to-array "0.1.4" + +socket.io-parser@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.2.tgz#dbc2282151fc4faebbe40aeedc0772eba619f7f2" + dependencies: + component-emitter "1.2.1" + debug "~2.6.4" + has-binary2 "~1.0.2" + isarray "2.0.1" + +socket.io@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.3.tgz#4359f06a24933ae6bd087798af78c680eae345e3" + dependencies: + debug "~2.6.6" + engine.io "~3.1.0" + object-assign "~4.1.1" + socket.io-adapter "~1.1.0" + socket.io-client "~2.0.2" + socket.io-parser "~3.1.1" + +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +symbol-observable@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +tapbundle@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.0.tgz#e0547f683ae36260f639ecd7435df95f0af01683" + dependencies: + early "^2.1.1" + leakage "^0.3.0" + smartchai "^1.0.3" + smartdelay "^1.0.3" + smartq "^1.1.1" + typings-global "^1.0.19" + +taskbuffer@^1.0.17: + version "1.0.17" + resolved "https://registry.yarnpkg.com/taskbuffer/-/taskbuffer-1.0.17.tgz#3d304cb80449ff536aacf92f8a051a34620c223e" + dependencies: + "@types/cron" "^1.2.1" + "@types/lodash" "4.x.x" + beautylog "^6.1.10" + cron "^1.2.1" + lik "^1.0.32" + lodash "^4.17.4" + rxjs "^5.4.1" + smartdelay "^1.0.3" + smartq "^1.1.1" + typings-global "^1.0.17" + +through2@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + +typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.17, typings-global@^1.0.19, typings-global@^1.0.6: + version "1.0.19" + resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.19.tgz#3376a72d4de1e5541bf5702248ff64c3e6ea316c" + dependencies: + semver "^5.3.0" + smartshell "^1.0.6" + +ultron@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +uws@~0.14.4: + version "0.14.5" + resolved "https://registry.yarnpkg.com/uws/-/uws-0.14.5.tgz#67aaf33c46b2a587a5f6666d00f7691328f149dc" + +which@^1.2.14: + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + dependencies: + isexe "^2.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +ws@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80" + dependencies: + safe-buffer "~5.0.1" + ultron "~1.1.0" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + +xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"