From 02e17a52c3548084228631450aa730d01a6a055d Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Thu, 15 Mar 2018 02:29:40 +0100 Subject: [PATCH] update to latest standards --- .gitlab-ci.yml | 49 +- README.md | 6 +- dist/index.js | 2 +- dist/smartsocket.classes.smartsocket.d.ts | 7 +- dist/smartsocket.classes.smartsocket.js | 12 +- dist/smartsocket.classes.smartsocketclient.js | 5 +- .../smartsocket.classes.socketconnection.d.ts | 5 +- dist/smartsocket.classes.socketconnection.js | 5 +- dist/smartsocket.classes.socketfunction.d.ts | 4 +- dist/smartsocket.classes.socketfunction.js | 5 +- dist/smartsocket.classes.socketrequest.d.ts | 3 +- dist/smartsocket.classes.socketrequest.js | 5 +- dist/smartsocket.classes.socketrole.d.ts | 6 +- dist/smartsocket.classes.socketrole.js | 3 +- dist/smartsocket.helpers.d.ts | 10 +- dist/smartsocket.helpers.js | 14 +- dist/smartsocket.plugins.d.ts | 1 - dist/smartsocket.plugins.js | 3 +- docs/index.md | 74 +-- npmextra.json | 2 +- package.json | 15 +- test/test.ts | 141 ++--- ts/index.ts | 12 +- ts/smartsocket.classes.smartsocket.ts | 112 ++-- ts/smartsocket.classes.smartsocketclient.ts | 105 ++-- ts/smartsocket.classes.socketconnection.ts | 163 +++--- ts/smartsocket.classes.socketfunction.ts | 66 ++- ts/smartsocket.classes.socketrequest.ts | 99 ++-- ts/smartsocket.classes.socketrole.ts | 33 +- ts/smartsocket.helpers.ts | 60 +- ts/smartsocket.plugins.ts | 17 +- yarn.lock | 534 +++++++----------- 32 files changed, 759 insertions(+), 819 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6be27f..14931f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,53 +7,77 @@ cache: key: "$CI_BUILD_STAGE" stages: +- security - test - release - trigger - pages +mirror: + stage: security + script: + - npmci git mirror + tags: + - docker + +snyk: + stage: security + script: + - npmci command yarn global add snyk + - npmci command yarn install --ignore-scripts + - npmci command snyk test + tags: + - docker + testLEGACY: stage: test script: - - npmci test legacy + - npmci node install legacy + - npmci npm install + - npmci npm test coverage: /\d+.?\d+?\%\s*coverage/ tags: - - docker + - docker allow_failure: true testLTS: stage: test script: - - npmci test lts + - npmci node install lts + - npmci npm install + - npmci npm test coverage: /\d+.?\d+?\%\s*coverage/ tags: - - docker + - docker testSTABLE: stage: test script: - - npmci test stable + - npmci node install stable + - npmci npm install + - npmci npm test coverage: /\d+.?\d+?\%\s*coverage/ tags: - - docker + - docker release: stage: release script: - - npmci publish + - npmci npm prepare + - npmci npm publish only: - - tags + - tags tags: - - docker + - docker trigger: stage: trigger script: - - npmci trigger + - npmci trigger only: - - tags + - tags tags: - - docker + - docker pages: image: hosttoday/ht-docker-node:npmci @@ -69,4 +93,3 @@ pages: expire_in: 1 week paths: - public - allow_failure: true diff --git a/README.md b/README.md index 6e4d533..44f8bc6 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,16 @@ # smartsocket + easy and secure websocket communication, TypeScript ready ## Availabililty + [![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartsocket) [![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/pushrocks/smartsocket) [![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartsocket) [![docs](https://pushrocks.gitlab.io/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smartsocket/) ## Status for master + [![build status](https://GitLab.com/pushrocks/smartsocket/badges/master/build.svg)](https://GitLab.com/pushrocks/smartsocket/commits/master) [![coverage report](https://GitLab.com/pushrocks/smartsocket/badges/master/coverage.svg)](https://GitLab.com/pushrocks/smartsocket/commits/master) [![npm downloads per month](https://img.shields.io/npm/dm/smartsocket.svg)](https://www.npmjs.com/package/smartsocket) @@ -19,11 +22,12 @@ easy and secure websocket communication, TypeScript ready [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) ## Usage + Use TypeScript for best in class instellisense. For further information read the linked docs at the top of this README. > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) -| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html) +> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html) [![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks) diff --git a/dist/index.js b/dist/index.js index 226947d..ee351ed 100644 --- a/dist/index.js +++ b/dist/index.js @@ -10,4 +10,4 @@ __export(require("./smartsocket.classes.smartsocketclient")); __export(require("./smartsocket.classes.socketfunction")); __export(require("./smartsocket.classes.socketrole")); __export(require("./smartsocket.classes.socketconnection")); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHNCQUFzQjtBQUN0Qix1REFBaUQ7QUFDakQsNkRBQXVEO0FBRXZELHFDQUFxQztBQUNyQywwREFBb0Q7QUFDcEQsc0RBQWdEO0FBQ2hELDREQUFzRCJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHNCQUFzQjtBQUN0Qix1REFBa0Q7QUFDbEQsNkRBQXdEO0FBRXhELHFDQUFxQztBQUNyQywwREFBcUQ7QUFDckQsc0RBQWlEO0FBQ2pELDREQUF1RCJ9 \ No newline at end of file diff --git a/dist/smartsocket.classes.smartsocket.d.ts b/dist/smartsocket.classes.smartsocket.d.ts index 1c8fca1..2f56df9 100644 --- a/dist/smartsocket.classes.smartsocket.d.ts +++ b/dist/smartsocket.classes.smartsocket.d.ts @@ -1,9 +1,10 @@ /// /// +import * as plugins from './smartsocket.plugins'; import * as http from 'http'; -import { Objectmap } from 'lik'; import { SocketConnection } from './smartsocket.classes.socketconnection'; import { SocketRole } from './smartsocket.classes.socketrole'; +import * as SocketIO from 'socket.io'; export interface ISmartsocketConstructorOptions { port: number; } @@ -11,8 +12,8 @@ export declare class Smartsocket { options: ISmartsocketConstructorOptions; httpServer: http.Server; io: SocketIO.Server; - openSockets: Objectmap; - socketRoles: Objectmap; + openSockets: plugins.lik.Objectmap; + socketRoles: plugins.lik.Objectmap; constructor(optionsArg: ISmartsocketConstructorOptions); /** * starts listening to incoming sockets: diff --git a/dist/smartsocket.classes.smartsocket.js b/dist/smartsocket.classes.smartsocket.js index 9020320..9f767b1 100644 --- a/dist/smartsocket.classes.smartsocket.js +++ b/dist/smartsocket.classes.smartsocket.js @@ -30,7 +30,7 @@ class Smartsocket { this.httpServer = new http.Server(); } this.io = plugins.socketIo(this.httpServer); - this.io.on('connection', (socketArg) => { + this.io.on('connection', socketArg => { this._handleSocketConnection(socketArg); }); this.httpServer.listen(this.options.port, () => { @@ -76,8 +76,7 @@ class Smartsocket { funcDataArg: dataArg } }); - socketRequest.dispatch() - .then((dataArg) => { + socketRequest.dispatch().then((dataArg) => { done.resolve(dataArg.funcDataArg); }); return done.promise; @@ -105,14 +104,15 @@ class Smartsocket { }); plugins.beautylog.log('Socket connected. Trying to authenticate...'); this.openSockets.add(socketConnection); - socketConnection.authenticate() + socketConnection + .authenticate() .then(() => { return socketConnection.listenToFunctionRequests(); }) - .catch((err) => { + .catch(err => { console.log(err); }); } } exports.Smartsocket = Smartsocket; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLGlEQUFnRDtBQUdoRCw2QkFBNEI7QUFFNUIsVUFBVTtBQUNWLDZCQUErQjtBQUUvQixpR0FBeUU7QUFDekUsMkZBQW1FO0FBT25FO0lBTUUsWUFBYSxVQUEwQztRQUZ2RCxnQkFBVyxHQUFHLElBQUksZUFBUyxFQUFvQixDQUFBO1FBQy9DLGdCQUFXLEdBQUcsSUFBSSxlQUFTLEVBQWMsQ0FBQTtRQUV2QyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDRyxXQUFXOztZQUNmLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDakMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtZQUNyQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ3pDLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDaEIsQ0FBQyxD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLGlEQUFpRDtBQUdqRCw2QkFBNkI7QUFFN0IsVUFBVTtBQUNWLDZCQUFnQztBQUVoQyxpR0FBMEU7QUFDMUUsMkZBQW9FO0FBVXBFO0lBTUUsWUFBWSxVQUEwQztRQUZ0RCxnQkFBVyxHQUFHLElBQUksZUFBUyxFQUFvQixDQUFDO1FBQ2hELGdCQUFXLEdBQUcsSUFBSSxlQUFTLEVBQWMsQ0FBQztRQUV4QyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDRyxXQUFXOztZQUNmLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNHLFNBQVMsQ0FBQyxhQUEwQjs7WUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7UUFDbEMsQ0FBQztLQUFBO0lBRUQ7O09BRUc7SUFDRyxXQUFXOztZQUNmLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFpQyxFQUFFLEVBQUU7Z0JBQzdELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDakYsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixDQUFDO0tBQUE7SUFFRCxnQkFBZ0I7SUFFaEI7O09BRUc7SUFDSCxVQUFVLENBQUMsZUFBdUIsRUFBRSxPQUFZLEVBQUUseUJBQTJDO1FBQzNGLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsSUFBSSxhQUFhLEdBQUcsSUFBSSxpREFBYSxDQUFDO1lBQ3BDLElBQUksRUFBRSxZQUFZO1lBQ2xCLHNCQUFzQixFQUFFLHlCQUF5QjtZQUNqRCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbkMsWUFBWSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsT0FBTzthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUE0QixFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsZ0JBQThCO1FBQzNDLEdBQUcsQ0FBQyxDQUFDLElBQUksVUFBVSxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsTUFBTSxDQUFDO0lBQ1QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssdUJBQXVCLENBQUMsU0FBUztRQUN2QyxJQUFJLGdCQUFnQixHQUFxQixJQUFJLHVEQUFnQixDQUFDO1lBQzVELEtBQUssRUFBRSxTQUFTO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLFFBQVE7WUFDZCxlQUFlLEVBQUUsSUFBSTtZQUNyQixNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkMsZ0JBQWdCO2FBQ2IsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3JELENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0Y7QUF2R0Qsa0NBdUdDIn0= \ No newline at end of file diff --git a/dist/smartsocket.classes.smartsocketclient.js b/dist/smartsocket.classes.smartsocketclient.js index 6407c59..948f06f 100644 --- a/dist/smartsocket.classes.smartsocketclient.js +++ b/dist/smartsocket.classes.smartsocketclient.js @@ -62,12 +62,11 @@ class SmartsocketClient { funcDataArg: dataArg } }); - socketRequest.dispatch() - .then((dataArg) => { + socketRequest.dispatch().then((dataArg) => { done.resolve(dataArg.funcDataArg); }); return done.promise; } } exports.SmartsocketClient = SmartsocketClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXRjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBZ0Q7QUFPaEQsaUJBQWlCO0FBQ2pCLGlHQUF5RTtBQUV6RSwyRkFBbUU7QUFZbkU7SUFPRSxZQUFZLFVBQXFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFBO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQTtRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtRQUM3QyxJQUFJLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVEQUFnQixDQUFDO1lBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixhQUFhLEVBQUUsS0FBSztZQUNwQixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxRQUFRO1lBQ2QsZUFBZSxFQUFFLElBQUk7WUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ2hFLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7WUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDNUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2xCLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtnQkFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7Z0JBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO2dCQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDaEIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3JCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUE7UUFDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztJQUVELFVBQVUsQ0FBRSxlQUF1QixFQUFFLE9BQVk7UUFDL0MsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLGFBQWEsR0FBRyxJQUFJLGlEQUFhLENBQUM7WUFDcEMsSUFBSSxFQUFFLFlBQVk7WUFDbEIsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUM3QyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbkMsWUFBWSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsT0FBTzthQUNyQjtTQUNGLENBQUMsQ0FBQTtRQUNGLGFBQWEsQ0FBQyxRQUFRLEVBQUU7YUFDckIsSUFBSSxDQUFDLENBQUMsT0FBNEIsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ25DLENBQUMsQ0FBQyxDQUFBO1FBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztDQUVGO0FBMUVELDhDQTBFQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXRjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBaUQ7QUFNakQsaUJBQWlCO0FBQ2pCLGlHQUEwRTtBQUUxRSwyRkFBb0U7QUFZcEU7SUFPRSxZQUFZLFVBQXFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5QyxJQUFJLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVEQUFnQixDQUFDO1lBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixhQUFhLEVBQUUsS0FBSztZQUNwQixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxRQUFRO1lBQ2QsZUFBZSxFQUFFLElBQUk7WUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ2hFLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7WUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDNUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2xCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxlQUF1QixFQUFFLE9BQVk7UUFDOUMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxJQUFJLGFBQWEsR0FBRyxJQUFJLGlEQUFhLENBQUM7WUFDcEMsSUFBSSxFQUFFLFlBQVk7WUFDbEIsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUM3QyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbkMsWUFBWSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsT0FBTzthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUE0QixFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUF4RUQsOENBd0VDIn0= \ No newline at end of file diff --git a/dist/smartsocket.classes.socketconnection.d.ts b/dist/smartsocket.classes.socketconnection.d.ts index cd9b662..2820547 100644 --- a/dist/smartsocket.classes.socketconnection.d.ts +++ b/dist/smartsocket.classes.socketconnection.d.ts @@ -1,8 +1,9 @@ /// /// -import { Objectmap } from 'lik'; +import * as plugins from './smartsocket.plugins'; import { Smartsocket } from './smartsocket.classes.smartsocket'; import { SocketRole } from './smartsocket.classes.socketrole'; +import * as SocketIO from 'socket.io'; /** * defines is a SocketConnection is server or client side. Important for mesh setups. */ @@ -26,7 +27,7 @@ export interface ISocketConnectionAuthenticationObject { password: 'somePassword'; alias: 'coreflow1'; } -export declare let allSocketConnections: Objectmap; +export declare let allSocketConnections: plugins.lik.Objectmap; /** * class SocketConnection represents a websocket connection */ diff --git a/dist/smartsocket.classes.socketconnection.js b/dist/smartsocket.classes.socketconnection.js index eb52a30..8f3ac6b 100644 --- a/dist/smartsocket.classes.socketconnection.js +++ b/dist/smartsocket.classes.socketconnection.js @@ -36,6 +36,7 @@ class SocketConnection { 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); @@ -62,7 +63,7 @@ class SocketConnection { this.socket.on('function', (dataArg) => { // check if requested function is available to the socket's scope plugins.beautylog.log('function request received'); - let referencedFunction = this.role.allowedFunctions.find((socketFunctionArg) => { + let referencedFunction = this.role.allowedFunctions.find(socketFunctionArg => { return socketFunctionArg.name === dataArg.funcCallData.funcName; }); if (referencedFunction !== undefined) { @@ -96,4 +97,4 @@ class SocketConnection { } } exports.SocketConnection = SocketConnection; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWdEO0FBQ2hELGlEQUFnRDtBQUVoRCw2QkFBK0I7QUFLL0IsMkZBQWdIO0FBK0JoSCxpQkFBaUI7QUFDTixRQUFBLG9CQUFvQixHQUFHLElBQUksZUFBUyxFQUFvQixDQUFBO0FBRW5FOztHQUVHO0FBQ0g7SUFPRSxZQUFhLFVBQStDO1FBSjVELGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBSzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUE7UUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUE7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFBO1FBRS9CLHlDQUF5QztRQUN6Qyw0QkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUNoQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsSUFBSSxDQUFDLEtBQUssYUFBYSxJQUFJLENBQUMsSUFBSSxlQUFlLENBQUMsQ0FBQTtZQUN2RyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBQ3hCLDRCQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNu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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWlEO0FBQ2pELGlEQUFpRDtBQUVqRCw2QkFBZ0M7QUFLaEMsMkZBSTZDO0FBa0M3QyxpQkFBaUI7QUFDTixRQUFBLG9CQUFvQixHQUFHLElBQUksZUFBUyxFQUFvQixDQUFDO0FBRXBFOztHQUVHO0FBQ0g7SUFPRSxZQUFZLFVBQStDO1FBSjNELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBSzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRWhDLHlDQUF5QztRQUN6Qyw0QkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUNoQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDcEIsZ0NBQWdDLElBQUksQ0FBQyxLQUFLLGFBQWEsSUFBSSxDQUFDLElBQUksZUFBZSxDQUNoRixDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6Qiw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNENBQTRDO0lBRTVDOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBOEMsRUFBRSxFQUFFO1lBQzVFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDREQUE0RCxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pELEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEUsOEJBQThCO2dCQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDNUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNsQix1QkFBdUIsSUFBSSxDQUFDLEtBQUssV0FBVyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsQ0FDMUUsQ0FBQztnQkFDRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCw0Q0FBNEM7SUFFNUM7O09BRUc7SUFDSCx3QkFBd0I7UUFDdEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFpQyxFQUFFLEVBQUU7Z0JBQy9ELGlFQUFpRTtnQkFDakUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxrQkFBa0IsR0FBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3RFLGlCQUFpQixDQUFDLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ2xFLENBQUMsQ0FDRixDQUFDO2dCQUNGLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7b0JBQ2xELElBQUksa0JBQWtCLEdBQUcsSUFBSSxpREFBYSxDQUFDO3dCQUN6QyxJQUFJLEVBQUUsWUFBWTt3QkFDbEIsc0JBQXNCLEVBQUUsSUFBSTt3QkFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO3dCQUN4QixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7cUJBQ25DLENBQUMsQ0FBQztvQkFDSCxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLHNEQUFzRDtnQkFDN0YsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2dCQUN6RSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQWlDLEVBQUUsRUFBRTtnQkFDdkUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUNBQXlDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRixJQUFJLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksVUFBb0QsQ0FBQztZQUN6RCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBR0Y7QUFyR0QsNENBcUdDIn0= \ No newline at end of file diff --git a/dist/smartsocket.classes.socketfunction.d.ts b/dist/smartsocket.classes.socketfunction.d.ts index 8161d47..4373e5a 100644 --- a/dist/smartsocket.classes.socketfunction.d.ts +++ b/dist/smartsocket.classes.socketfunction.d.ts @@ -1,4 +1,4 @@ -import { Objectmap } from 'lik'; +import * as plugins from './smartsocket.plugins'; import { SocketRole } from './smartsocket.classes.socketrole'; /** * interface of the contructor options of class SocketFunction @@ -21,7 +21,7 @@ export interface ISocketFunctionCall { export interface IFuncDef { (dataArg: any): PromiseLike; } -export declare let allSocketFunctions: Objectmap; +export declare let allSocketFunctions: plugins.lik.Objectmap; /** * class that respresents a function that can be transparently called using a SocketConnection */ diff --git a/dist/smartsocket.classes.socketfunction.js b/dist/smartsocket.classes.socketfunction.js index 05f8ea7..5721808 100644 --- a/dist/smartsocket.classes.socketfunction.js +++ b/dist/smartsocket.classes.socketfunction.js @@ -28,8 +28,7 @@ class SocketFunction { invoke(dataArg) { let done = plugins.smartq.defer(); if (dataArg.funcName === this.name) { - this.funcDef(dataArg.funcDataArg) - .then((resultData) => { + this.funcDef(dataArg.funcDataArg).then((resultData) => { let funcResponseData = { funcName: this.name, funcDataArg: resultData @@ -50,4 +49,4 @@ class SocketFunction { } } exports.SocketFunction = SocketFunction; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRmdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc29ja2V0ZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBZ0Q7QUFFaEQsaUJBQWlCO0FBQ2pCLDZCQUErQjtBQTZCL0IsaUJBQWlCO0FBQ04sUUFBQSxrQkFBa0IsR0FBRyxJQUFJLGVBQVMsRUFBa0IsQ0FBQTtBQUUvRCxpQkFBaUI7QUFFakI7O0dBRUc7QUFDSDtJQUtFOztPQUVHO0lBQ0gsWUFBYSxVQUE2QztRQUN4RCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQTtRQUNwQyxHQUFHLENBQUMsQ0FBQyxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2pDLENBQUM7UUFDRCwwQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyw4QkFBOEI7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFFLE9BQTRCO1FBQ2xDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDakMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7aUJBQzlCLElBQUksQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN4QixJQUFJLGdCQUFnQixHQUF3QjtvQkFDMUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNuQixXQUFXLEVBQUUsVUFBVTtpQkFDeEIsQ0FBQTtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFDaEMsQ0FBQyxDQUFDLENBQUE7UUFFTixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUE7UUFDbEYsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBRSxhQUF5QjtRQUM1QyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkMsQ0FBQztDQUNGO0FBN0NELHdDQTZDQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRmdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc29ja2V0ZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBaUQ7QUFFakQsaUJBQWlCO0FBQ2pCLDZCQUFnQztBQTZCaEMsaUJBQWlCO0FBQ04sUUFBQSxrQkFBa0IsR0FBRyxJQUFJLGVBQVMsRUFBa0IsQ0FBQztBQUVoRSxpQkFBaUI7QUFFakI7O0dBRUc7QUFDSDtJQUtFOztPQUVHO0lBQ0gsWUFBWSxVQUE2QztRQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUNyQyxHQUFHLENBQUMsQ0FBQyxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCwwQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQTRCO1FBQ2pDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtnQkFDekQsSUFBSSxnQkFBZ0IsR0FBd0I7b0JBQzFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDbkIsV0FBVyxFQUFFLFVBQVU7aUJBQ3hCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXLENBQUMsYUFBeUI7UUFDM0MsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQTNDRCx3Q0EyQ0MifQ== \ No newline at end of file diff --git a/dist/smartsocket.classes.socketrequest.d.ts b/dist/smartsocket.classes.socketrequest.d.ts index bb951f9..26d1be2 100644 --- a/dist/smartsocket.classes.socketrequest.d.ts +++ b/dist/smartsocket.classes.socketrequest.d.ts @@ -1,6 +1,5 @@ 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'; @@ -21,7 +20,7 @@ export interface ISocketRequestDataObject { shortId: string; responseTimeout?: number; } -export declare let allSocketRequests: Objectmap; +export declare let allSocketRequests: plugins.lik.Objectmap; export declare class SocketRequest { status: TSocketRequestStatus; side: TSocketRequestSide; diff --git a/dist/smartsocket.classes.socketrequest.js b/dist/smartsocket.classes.socketrequest.js index 8e6d68d..410e437 100644 --- a/dist/smartsocket.classes.socketrequest.js +++ b/dist/smartsocket.classes.socketrequest.js @@ -44,8 +44,7 @@ class SocketRequest { createResponse() { let targetSocketFunction = helpers.getSocketFunctionByName(this.funcCallData.funcName); plugins.beautylog.info(`invoking ${targetSocketFunction.name}`); - targetSocketFunction.invoke(this.funcCallData) - .then((resultData) => { + targetSocketFunction.invoke(this.funcCallData).then(resultData => { plugins.beautylog.log('got resultData. Sending it to requesting party.'); let requestData = { funcCallData: resultData, @@ -57,4 +56,4 @@ class SocketRequest { } } exports.SocketRequest = SocketRequest; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWdEO0FBQ2hELGlEQUFnRDtBQUtoRCxpQkFBaUI7QUFDakIsNkJBQStCO0FBMkIvQixpQkFBaUI7QUFDTixRQUFBLGlCQUFpQixHQUFHLElBQUksZUFBUyxFQUFpQixDQUFBO0FBRTdELGlCQUFpQjtBQUNqQjtJQU9FLFlBQWEsVUFBMkM7UUFOeEQsV0FBTSxHQUF5QixLQUFLLENBQUE7UUFLcEMsU0FBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFFM0IsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUE7UUFDM0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQTtRQUMvRCx5QkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQUVELHdDQUF3QztJQUV4Qzs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLFdBQVcsR0FBNkI7WUFDMUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFBO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUUsZUFBeUM7UUFDdkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDL0MseUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEM7O09BRUc7SUFDSCxjQUFjO1FBQ1osSUFBSSxvQkFBb0IsR0FBbUIsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdEcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQy9ELG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzNDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUE7WUFDeEUsSUFBSSxXQUFXLEdBQTZCO2dCQUMxQyxZQUFZLEVBQUUsVUFBVTtnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUE7WUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUN4RSx5QkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0Y7QUF6REQsc0NBeURDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWlEO0FBQ2pELGlEQUFpRDtBQUtqRCxpQkFBaUI7QUFDakIsNkJBQWdDO0FBMkJoQyxpQkFBaUI7QUFDTixRQUFBLGlCQUFpQixHQUFHLElBQUksZUFBUyxFQUFpQixDQUFDO0FBRTlELGlCQUFpQjtBQUNqQjtJQU9FLFlBQVksVUFBMkM7UUFOdkQsV0FBTSxHQUF5QixLQUFLLENBQUM7UUFLckMsU0FBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDNUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztRQUNoRSx5QkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHdDQUF3QztJQUV4Qzs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLFdBQVcsR0FBNkI7WUFDMUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO1FBQ0YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsZUFBeUM7UUFDdEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQseUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEM7O09BRUc7SUFDSCxjQUFjO1FBQ1osSUFBSSxvQkFBb0IsR0FBbUIsT0FBTyxDQUFDLHVCQUF1QixDQUN4RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDM0IsQ0FBQztRQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMvRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ3pFLElBQUksV0FBVyxHQUE2QjtnQkFDMUMsWUFBWSxFQUFFLFVBQVU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFDO1lBQ0YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDekUseUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMURELHNDQTBEQyJ9 \ No newline at end of file diff --git a/dist/smartsocket.classes.socketrole.d.ts b/dist/smartsocket.classes.socketrole.d.ts index f810fb9..d89ca6b 100644 --- a/dist/smartsocket.classes.socketrole.d.ts +++ b/dist/smartsocket.classes.socketrole.d.ts @@ -1,5 +1,5 @@ -import { Objectmap } from "lik"; -import { SocketFunction } from "./smartsocket.classes.socketfunction"; +import * as plugins from './smartsocket.plugins'; +import { SocketFunction } from './smartsocket.classes.socketfunction'; /** * interface for class SocketRole */ @@ -13,7 +13,7 @@ export interface SocketRoleOptions { export declare class SocketRole { name: string; passwordHash: string; - allowedFunctions: Objectmap; + allowedFunctions: plugins.lik.Objectmap; constructor(optionsArg: SocketRoleOptions); addSocketFunction(socketFunctionArg: SocketFunction): void; } diff --git a/dist/smartsocket.classes.socketrole.js b/dist/smartsocket.classes.socketrole.js index 9ee9cd0..044847f 100644 --- a/dist/smartsocket.classes.socketrole.js +++ b/dist/smartsocket.classes.socketrole.js @@ -11,10 +11,9 @@ class SocketRole { this.name = optionsArg.name; this.passwordHash = optionsArg.passwordHash; } - ; addSocketFunction(socketFunctionArg) { this.allowedFunctions.add(socketFunctionArg); } } exports.SocketRole = SocketRole; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsaUJBQWlCO0FBQ2pCLDZCQUFnQztBQVloQzs7R0FFRztBQUNIO0lBSUksWUFBWSxVQUE2QjtRQUR6QyxxQkFBZ0IsR0FBRyxJQUFJLGVBQVMsRUFBa0IsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ2hELENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQWlCLENBQUMsaUJBQWdDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0o7QUFYRCxnQ0FXQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsaUJBQWlCO0FBQ2pCLDZCQUFnQztBQVdoQzs7R0FFRztBQUNIO0lBSUUsWUFBWSxVQUE2QjtRQUR6QyxxQkFBZ0IsR0FBRyxJQUFJLGVBQVMsRUFBa0IsQ0FBQztRQUVqRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQzlDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxpQkFBaUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQVhELGdDQVdDIn0= \ No newline at end of file diff --git a/dist/smartsocket.helpers.d.ts b/dist/smartsocket.helpers.d.ts index 2cbbc32..8bdfe5c 100644 --- a/dist/smartsocket.helpers.d.ts +++ b/dist/smartsocket.helpers.d.ts @@ -1,8 +1,8 @@ -import { Smartsocket } from "./smartsocket.classes.smartsocket"; -import { SocketFunction } from "./smartsocket.classes.socketfunction"; -import { ISocketConnectionAuthenticationObject } from "./smartsocket.classes.socketconnection"; -import { SocketRequest, TSocketRequestSide } from "./smartsocket.classes.socketrequest"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Smartsocket } from './smartsocket.classes.smartsocket'; +import { SocketFunction } from './smartsocket.classes.socketfunction'; +import { ISocketConnectionAuthenticationObject } from './smartsocket.classes.socketconnection'; +import { SocketRequest, TSocketRequestSide } from './smartsocket.classes.socketrequest'; +import { SocketRole } from './smartsocket.classes.socketrole'; export declare let checkPasswordForRole: (dataArg: ISocketConnectionAuthenticationObject, referenceSmartsocket: Smartsocket) => boolean; export declare let getSocketFunctionByName: (functionNameArg: string) => SocketFunction; /** diff --git a/dist/smartsocket.helpers.js b/dist/smartsocket.helpers.js index 72d90ea..f5f8d16 100644 --- a/dist/smartsocket.helpers.js +++ b/dist/smartsocket.helpers.js @@ -11,20 +11,26 @@ exports.checkPasswordForRole = (dataArg, referenceSmartsocket) => { }; // SocketFunction helpers exports.getSocketFunctionByName = (functionNameArg) => { - return smartsocket_classes_socketfunction_1.allSocketFunctions.find((socketFunctionArg) => { return socketFunctionArg.name === functionNameArg; }); + return smartsocket_classes_socketfunction_1.allSocketFunctions.find(socketFunctionArg => { + return socketFunctionArg.name === functionNameArg; + }); }; // SocketRequest helpers /** * get corresponding Socketrequest instance by shortId */ exports.getSocketRequestById = (shortIdArg, requestSide) => { - return smartsocket_classes_socketrequest_1.allSocketRequests.find((socketRequestArg) => { return socketRequestArg.shortid === shortIdArg; }); + return smartsocket_classes_socketrequest_1.allSocketRequests.find(socketRequestArg => { + return socketRequestArg.shortid === shortIdArg; + }); }; // SocketRole helpers /** * get corresponding SocketRole instance by name */ exports.getSocketRoleByName = (socketRoleNameArg, referenceSmartsocket) => { - return referenceSmartsocket.socketRoles.find((socketRoleArg) => { return socketRoleArg.name === socketRoleNameArg; }); + return referenceSmartsocket.socketRoles.find(socketRoleArg => { + return socketRoleArg.name === socketRoleNameArg; + }); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBaUQ7QUFJakQsNkZBQTBGO0FBRTFGLDJGQUEyRztBQUczRywyQkFBMkI7QUFDaEIsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLE9BQThDLEVBQUUsb0JBQWdDLEVBQVcsRUFBRTtJQUM1SCxJQUFJLGtCQUFrQixHQUFHLDJCQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsb0JBQW9CLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDN0YsSUFBSSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRixNQUFNLENBQUMsa0JBQWtCLEtBQUssbUJBQW1CLENBQUM7QUFDdEQsQ0FBQyxDQUFBO0FBR0QseUJBQXlCO0FBQ2QsUUFBQSx1QkFBdUIsR0FBRyxDQUFDLGVBQXVCLEVBQWtCLEVBQUU7SUFDN0UsTUFBTSxDQUFDLHVEQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pILENBQUMsQ0FBQTtBQUVELHdCQUF3QjtBQUV4Qjs7R0FFRztBQUNRLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFdBQWdDLEVBQWlCLEVBQUU7SUFDdEcsTUFBTSxDQUFDLHFEQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzNHLENBQUMsQ0FBQTtBQUVELHFCQUFxQjtBQUVyQjs7R0FFRztBQUNRLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxpQkFBeUIsRUFBQyxvQkFBZ0MsRUFBYyxFQUFFO0lBQ3hHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3hILENBQUMsQ0FBQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBaUQ7QUFJakQsNkZBQTBGO0FBSzFGLDJGQUk2QztBQUc3QywyQkFBMkI7QUFDaEIsUUFBQSxvQkFBb0IsR0FBRyxDQUNoQyxPQUE4QyxFQUM5QyxvQkFBaUMsRUFDeEIsRUFBRTtJQUNYLElBQUksa0JBQWtCLEdBQUcsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM5RixJQUFJLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxtQkFBbUIsQ0FBQztBQUNwRCxDQUFDLENBQUM7QUFFRix5QkFBeUI7QUFDZCxRQUFBLHVCQUF1QixHQUFHLENBQUMsZUFBdUIsRUFBa0IsRUFBRTtJQUMvRSxNQUFNLENBQUMsdURBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDakQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksS0FBSyxlQUFlLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRix3QkFBd0I7QUFFeEI7O0dBRUc7QUFDUSxRQUFBLG9CQUFvQixHQUFHLENBQ2hDLFVBQWtCLEVBQ2xCLFdBQWdDLEVBQ2pCLEVBQUU7SUFDakIsTUFBTSxDQUFDLHFEQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQy9DLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYscUJBQXFCO0FBRXJCOztHQUVHO0FBQ1EsUUFBQSxtQkFBbUIsR0FBRyxDQUMvQixpQkFBeUIsRUFDekIsb0JBQWlDLEVBQ3JCLEVBQUU7SUFDZCxNQUFNLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUMzRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyJ9 \ No newline at end of file diff --git a/dist/smartsocket.plugins.d.ts b/dist/smartsocket.plugins.d.ts index 1fc5052..c381d46 100644 --- a/dist/smartsocket.plugins.d.ts +++ b/dist/smartsocket.plugins.d.ts @@ -1,4 +1,3 @@ -import 'typings-global'; export import beautylog = require('beautylog'); export import lik = require('lik'); export import nodehash = require('nodehash'); diff --git a/dist/smartsocket.plugins.js b/dist/smartsocket.plugins.js index 44c5f33..a4f199b 100644 --- a/dist/smartsocket.plugins.js +++ b/dist/smartsocket.plugins.js @@ -1,6 +1,5 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -require("typings-global"); exports.beautylog = require("beautylog"); exports.lik = require("lik"); exports.nodehash = require("nodehash"); @@ -9,4 +8,4 @@ exports.smartq = require("smartq"); exports.shortid = require("shortid"); exports.socketIo = require("socket.io"); exports.socketIoClient = require("socket.io-client"); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFDdkIseUNBQThDO0FBQzlDLDZCQUFtQztBQUNuQyx1Q0FBNEM7QUFDNUMsMkNBQWdEO0FBQ2hELG1DQUF3QztBQUN4QyxxQ0FBMEM7QUFDMUMsd0NBQTZDO0FBQzdDLHFEQUEwRCJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBK0M7QUFDL0MsNkJBQW1DO0FBQ25DLHVDQUE2QztBQUM3QywyQ0FBaUQ7QUFDakQsbUNBQXlDO0FBQ3pDLHFDQUEyQztBQUMzQyx3Q0FBOEM7QUFDOUMscURBQTJEIn0= \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 246c0ff..524512e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,13 +1,16 @@ # smartsocket + easy and secure websocket communication, TypeScript ready ## Availabililty + [![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartsocket) [![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/pushrocks/smartsocket) [![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartsocket) [![docs](https://pushrocks.gitlab.io/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smartsocket/) ## Status for master + [![build status](https://GitLab.com/pushrocks/smartsocket/badges/master/build.svg)](https://GitLab.com/pushrocks/smartsocket/commits/master) [![coverage report](https://GitLab.com/pushrocks/smartsocket/badges/master/coverage.svg)](https://GitLab.com/pushrocks/smartsocket/commits/master) [![npm downloads per month](https://img.shields.io/npm/dm/smartsocket.svg)](https://www.npmjs.com/package/smartsocket) @@ -19,37 +22,39 @@ easy and secure websocket communication, TypeScript ready [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) ## Usage + Use TypeScript for best in class instellisense. Under the hood we use socket.io and shortid for managed data exchange. ### Serverside + ```typescript -import * as smartsocket from "smartsocket"; -import * as q from q // q is a promise library +import * as smartsocket from 'smartsocket'; +import * as q from q; // q is a promise library // The "Smartsocket" listens on a port and can receive new "SocketConnection" requests. let mySmartsocket = new smartsocket.Smartsocket({ - port: 3000 // the port smartsocket will listen on + port: 3000 // the port smartsocket will listen on }); // A "SocketRole" can be referenced by "SocketFunction"s. // All "SocketRequest"s carry authentication data for a specific "SocketRole". // "SocketFunction"s know which "SocketRole"s are allowed to execute them let mySocketRole = new smartsocket.SocketRole({ - name: "someRoleName", - passwordHash: "someHashedString" + name: 'someRoleName', + passwordHash: 'someHashedString' }); // A "SocketFunction" executes a referenced function and passes in any data of the corresponding "SocketRequest". // The referenced function must return a promise and resolve with data of type any. -// Any "SocketRequest" carries a unique identifier. If the referenced function's promise resolved any passed on argument will be returned to the requesting party +// Any "SocketRequest" carries a unique identifier. If the referenced function's promise resolved any passed on argument will be returned to the requesting party let testSocketFunction1 = new smartsocket.SocketFunction({ - funcName:"testSocketFunction1", - funcDef:(data) => { - console.log('testSocketFunction1 executed successfully!') - }, - allowedRoles:[mySocketRole] // all roles that have access to a specific function + funcName: 'testSocketFunction1', + funcDef: data => { + console.log('testSocketFunction1 executed successfully!'); + }, + allowedRoles: [mySocketRole] // all roles that have access to a specific function }); // A "Smartsocket" exposes a .clientCall() that gets @@ -57,55 +62,50 @@ let testSocketFunction1 = new smartsocket.SocketFunction({ // 2. the data to pass in // 3. And a target "SocketConnection" (there can be multiple connections at once) // any unique id association is done internally -mySmartsocket.clientCall("restart",data,someTargetConnection) - .then((responseData) => { - - }); +mySmartsocket.clientCall('restart', data, someTargetConnection).then(responseData => {}); ``` #### Client side + ```typescript -import * as smartsocket from "smartsocket"; +import * as smartsocket from 'smartsocket'; // A "SmartsocketClient" is different from a "Smartsocket" in that it doesn't expose any public address. // Thus any new "SocketConnection"s must be innitiated from a "SmartsocketClient". let testSmartsocketClient = new smartsocket.SmartsocketClient({ - port: testConfig.port, - url: "http://localhost", - password: "testPassword", - alias: "testClient1", - role: "testRole1" + port: testConfig.port, + url: 'http://localhost', + password: 'testPassword', + alias: 'testClient1', + role: 'testRole1' }); // You can .connect() and .disconnect() from a "Smartsocket" -testSmartsocketClient.connect() - .then(() => { - done(); - }); +testSmartsocketClient.connect().then(() => { + done(); +}); // The client can also specify "SocketFunction"s. It can also specify "SocketRole"s in case a client connects to multiple servers at once let testSocketFunction2 = new smartsocket.SocketFunction({ - funcName: "testSocketFunction2", - funcDef: (data) => {}, // the function to execute, has to return promise - allowedRoles:[] + funcName: 'testSocketFunction2', + funcDef: data => {}, // the function to execute, has to return promise + allowedRoles: [] }); - // A "SmartsocketClient" can call functions on the serverside using .serverCall() analog to the "Smartsocket"'s .clientCall method. -mySmartsocketClient.serverCall("function",functionCallData) - .then((functionResponseData) => { // the functionResponseData comes from the server... awesome, right? - - });; +mySmartsocketClient.serverCall('function', functionCallData).then(functionResponseData => { + // the functionResponseData comes from the server... awesome, right? +}); ``` > **NOTE:** -you can easily chain dependent requests on either the server or client side with promises. -`data` is always a js object that you can design for your specific needs. -It supports buffers for large binary data network exchange. +> you can easily chain dependent requests on either the server or client side with promises. +> `data` is always a js object that you can design for your specific needs. +> It supports buffers for large binary data network exchange. For further information read the linked docs at the top of this README. > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) -| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html) +> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html) [![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks) diff --git a/npmextra.json b/npmextra.json index aae90fd..941bedb 100644 --- a/npmextra.json +++ b/npmextra.json @@ -1,7 +1,7 @@ { "npmts":{}, "npmci": { - "globalNpmTools": [ + "npmGlobalTools": [ "npmts" ] } diff --git a/package.json b/package.json index fee036c..e4b6a1b 100644 --- a/package.json +++ b/package.json @@ -19,19 +19,18 @@ "homepage": "https://gitlab.com/pushrocks/smartsocket#README", "dependencies": { "@types/shortid": "0.0.29", - "@types/socket.io": "^1.4.31", - "@types/socket.io-client": "^1.4.30", + "@types/socket.io": "^1.4.32", + "@types/socket.io-client": "^1.4.32", "beautylog": "^6.1.10", - "lik": "^1.0.42", + "lik": "^2.0.5", "nodehash": "^1.0.4", "shortid": "^2.2.8", - "smartdelay": "^1.0.3", + "smartdelay": "^1.0.4", "smartq": "^1.1.6", - "socket.io": "^2.0.3", - "socket.io-client": "^2.0.3", - "typings-global": "^1.0.20" + "socket.io": "^2.0.4", + "socket.io-client": "^2.0.4" }, "devDependencies": { - "tapbundle": "^1.1.1" + "tapbundle": "^2.0.0" } } diff --git a/test/test.ts b/test/test.ts index 12b5b58..d564a68 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,113 +1,120 @@ -import { expect, tap } from 'tapbundle' +import { expect, tap } from 'tapbundle'; -import socketIoClient = require('socket.io-client') -import smartsocket = require('../ts/index') -import smartq = require('smartq') -import nodehash = require('nodehash') +import socketIoClient = require('socket.io-client'); +import smartsocket = require('../ts/index'); +import smartq = require('smartq'); +import nodehash = require('nodehash'); -let testSmartsocket: smartsocket.Smartsocket -let testSmartsocketClient: smartsocket.SmartsocketClient -let testSocketRole1: smartsocket.SocketRole -let testSocketFunction1: smartsocket.SocketFunction +let testSmartsocket: smartsocket.Smartsocket; +let testSmartsocketClient: smartsocket.SmartsocketClient; +let testSocketRole1: smartsocket.SocketRole; +let testSocketFunction1: smartsocket.SocketFunction; let testConfig = { port: 3000 -} +}; // class smartsocket tap.test('should create a new smartsocket', async () => { - testSmartsocket = new smartsocket.Smartsocket({ port: testConfig.port }) - expect(testSmartsocket).be.instanceOf(smartsocket.Smartsocket) -}) + testSmartsocket = new smartsocket.Smartsocket({ port: testConfig.port }); + expect(testSmartsocket).be.instanceOf(smartsocket.Smartsocket); +}); tap.test('should start listening when .started is called', async () => { - testSmartsocket.startServer() -}) + testSmartsocket.startServer(); +}); // class socketrole tap.test('should add a socketrole', async () => { testSocketRole1 = new smartsocket.SocketRole({ name: 'testRole1', passwordHash: nodehash.sha256FromStringSync('testPassword') - }) - testSmartsocket.addSocketRoles([ testSocketRole1 ]) -}) + }); + testSmartsocket.addSocketRoles([testSocketRole1]); +}); // class SocketFunction tap.test('should register a new Function', async () => { testSocketFunction1 = new smartsocket.SocketFunction({ funcName: 'testFunction1', - funcDef: async (dataArg) => { - return dataArg + funcDef: async dataArg => { + return dataArg; }, - allowedRoles: [ testSocketRole1 ] - }) -}) + allowedRoles: [testSocketRole1] + }); +}); // class SmartsocketClient tap.test('should react to a new websocket connection from client', async () => { - let done = smartq.defer() + 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() - }) - await done.promise -}) + }); + testSmartsocketClient.connect().then(() => { + done.resolve(); + }); + await done.promise; +}); tap.test('client should disconnect and reconnect', async () => { - let done = smartq.defer() - testSmartsocketClient.disconnect() + let done = smartq.defer(); + testSmartsocketClient + .disconnect() .then(() => { - let done = smartq.defer() + let done = smartq.defer(); setTimeout(() => { - testSmartsocketClient.connect() - .then(done.resolve) - }, 0) - return done.promise + testSmartsocketClient.connect().then(done.resolve); + }, 0); + return done.promise; }) .then(() => { - done.resolve() - }) - await done.promise -}) + 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 -}) + 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 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() - }) -}) + 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 () => { - await testSmartsocket.closeServer() -}) + await testSmartsocket.closeServer(); +}); -tap.start() +tap.start(); diff --git a/ts/index.ts b/ts/index.ts index 4b766ff..ef2a75e 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,10 +1,10 @@ -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'; diff --git a/ts/smartsocket.classes.smartsocket.ts b/ts/smartsocket.classes.smartsocket.ts index b75c20f..80919bf 100644 --- a/ts/smartsocket.classes.smartsocket.ts +++ b/ts/smartsocket.classes.smartsocket.ts @@ -1,65 +1,68 @@ -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 * as http from 'http' +import * as http from 'http'; // 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'; + +// socket.io +import * as SocketIO from 'socket.io'; export interface ISmartsocketConstructorOptions { - port: number + port: number; } export class Smartsocket { - options: ISmartsocketConstructorOptions - httpServer: http.Server - io: SocketIO.Server - openSockets = new Objectmap() - socketRoles = new Objectmap() - constructor (optionsArg: ISmartsocketConstructorOptions) { - this.options = optionsArg + options: ISmartsocketConstructorOptions; + httpServer: http.Server; + io: SocketIO.Server; + openSockets = new Objectmap(); + socketRoles = new Objectmap(); + constructor(optionsArg: ISmartsocketConstructorOptions) { + this.options = optionsArg; } /** * starts listening to incoming sockets: */ - async startServer () { - let done = plugins.smartq.defer() + async startServer() { + let done = plugins.smartq.defer(); if (!this.httpServer) { - this.httpServer = new http.Server() + this.httpServer = new http.Server(); } - this.io = plugins.socketIo(this.httpServer) - this.io.on('connection', (socketArg) => { - this._handleSocketConnection(socketArg) - }) + this.io = plugins.socketIo(this.httpServer); + this.io.on('connection', socketArg => { + this._handleSocketConnection(socketArg); + }); this.httpServer.listen(this.options.port, () => { - done.resolve() - }) - return await done.promise + done.resolve(); + }); + return await done.promise; } /** * starts the server with another server */ async setServer(httpServerArg: http.Server) { - this.httpServer = httpServerArg + this.httpServer = httpServerArg; } /** * closes the server */ - async closeServer () { - await plugins.smartdelay.delayFor(1000) + async closeServer() { + await plugins.smartdelay.delayFor(1000); this.openSockets.forEach((socketObjectArg: SocketConnection) => { - plugins.beautylog.log(`disconnect socket with >>alias ${socketObjectArg.alias}`) - socketObjectArg.socket.disconnect() - }) - this.openSockets.wipe() - this.io.close() + plugins.beautylog.log(`disconnect socket with >>alias ${socketObjectArg.alias}`); + socketObjectArg.socket.disconnect(); + }); + this.openSockets.wipe(); + this.io.close(); } // communication @@ -67,8 +70,8 @@ export class Smartsocket { /** * allows call to specific client. */ - clientCall (functionNameArg: string, dataArg: any, targetSocketConnectionArg: SocketConnection) { - let done = plugins.smartq.defer() + clientCall(functionNameArg: string, dataArg: any, targetSocketConnectionArg: SocketConnection) { + let done = plugins.smartq.defer(); let socketRequest = new SocketRequest({ side: 'requesting', originSocketConnection: targetSocketConnectionArg, @@ -77,28 +80,27 @@ export class Smartsocket { funcName: functionNameArg, funcDataArg: dataArg } - }) - socketRequest.dispatch() - .then((dataArg: ISocketFunctionCall) => { - done.resolve(dataArg.funcDataArg) - }) - return done.promise + }); + socketRequest.dispatch().then((dataArg: ISocketFunctionCall) => { + done.resolve(dataArg.funcDataArg); + }); + return done.promise; } /** * adds socketRoles */ - addSocketRoles (socketRolesArray: SocketRole[]): void { + addSocketRoles(socketRolesArray: SocketRole[]): void { for (let socketRole of socketRolesArray) { - this.socketRoles.add(socketRole) + this.socketRoles.add(socketRole); } - return + return; } /** * the standard handler for new socket connections */ - private _handleSocketConnection (socketArg) { + private _handleSocketConnection(socketArg) { let socketConnection: SocketConnection = new SocketConnection({ alias: undefined, authenticated: false, @@ -106,16 +108,16 @@ export class Smartsocket { side: 'server', smartsocketHost: this, socket: socketArg - }) - plugins.beautylog.log('Socket connected. Trying to authenticate...') - this.openSockets.add(socketConnection) - socketConnection.authenticate() + }); + plugins.beautylog.log('Socket connected. Trying to authenticate...'); + this.openSockets.add(socketConnection); + socketConnection + .authenticate() .then(() => { - return socketConnection.listenToFunctionRequests() - }) - .catch((err) => { - console.log(err) + return socketConnection.listenToFunctionRequests(); }) + .catch(err => { + console.log(err); + }); } - } diff --git a/ts/smartsocket.classes.smartsocketclient.ts b/ts/smartsocket.classes.smartsocketclient.ts index 436429a..d38167a 100644 --- a/ts/smartsocket.classes.smartsocketclient.ts +++ b/ts/smartsocket.classes.smartsocketclient.ts @@ -1,47 +1,46 @@ -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 + 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 + 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.smartq.defer() - plugins.beautylog.log('trying to connect...') - let socketUrl = `${this.serverUrl}:${this.serverPort}` + 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, @@ -49,35 +48,35 @@ export class SmartsocketClient { side: 'client', smartsocketHost: null, socket: plugins.socketIoClient(socketUrl, { multiplex: false }) - }) + }); this.socketConnection.socket.on('requestAuth', () => { - console.log('server requested authentication') + 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 + 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 + 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() + + serverCall(functionNameArg: string, dataArg: any) { + let done = plugins.smartq.defer(); let socketRequest = new SocketRequest({ side: 'requesting', originSocketConnection: this.socketConnection, @@ -86,12 +85,10 @@ export class SmartsocketClient { funcName: functionNameArg, funcDataArg: dataArg } - }) - socketRequest.dispatch() - .then((dataArg: ISocketFunctionCall) => { - done.resolve(dataArg.funcDataArg) - }) - return done.promise + }); + 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 26b85b5..961f2c2 100644 --- a/ts/smartsocket.classes.socketconnection.ts +++ b/ts/smartsocket.classes.socketconnection.ts @@ -1,70 +1,79 @@ -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'; + +// socket.io +import * as SocketIO from 'socket.io'; // 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: 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 + 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; // standard behaviour that is always true - allSocketConnections.add(this) + allSocketConnections.add(this); this.socket.on('disconnect', () => { - plugins.beautylog.info(`SocketConnection with >alias ${this.alias} on >side ${this.side} disconnected`) - this.socket.disconnect() - allSocketConnections.remove(this) - }) + plugins.beautylog.info( + `SocketConnection with >alias ${this.alias} on >side ${this.side} disconnected` + ); + this.socket.disconnect(); + allSocketConnections.remove(this); + }); } // authenticating -------------------------- @@ -72,26 +81,29 @@ export class SocketConnection { /** * authenticate the socket */ - authenticate () { - let done = plugins.smartq.defer() + 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) + 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.authenticated = false; + this.socket.disconnect(); + done.reject('not authenticated'); } - }) - this.socket.emit('requestAuth') - return done.promise + }); + this.socket.emit('requestAuth'); + return done.promise; } // listening ------------------------------- @@ -99,43 +111,44 @@ export class SocketConnection { /** * listen to function requests */ - listenToFunctionRequests () { - let done = plugins.smartq.defer() + 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 - }) + 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') + 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 + }); + 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: 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) + 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) + let errMessage: 'socket needs to be authenticated first'; + plugins.beautylog.error(errMessage); + done.reject(errMessage); } - return done.promise + return done.promise; } // sending ---------------------- - } diff --git a/ts/smartsocket.classes.socketfunction.ts b/ts/smartsocket.classes.socketfunction.ts index 90ae3db..e2f069c 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,48 +39,46 @@ 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 + constructor(optionsArg: ISocketFunctionConstructorOptions) { + this.name = optionsArg.funcName; + this.funcDef = optionsArg.funcDef; + this.roles = optionsArg.allowedRoles; for (let socketRoleArg of this.roles) { - this._notifyRole(socketRoleArg) + this._notifyRole(socketRoleArg); } - allSocketFunctions.add(this) // map instance with Objectmap + allSocketFunctions.add(this); // map instance with Objectmap } /** * invokes the function of this SocketFunction */ - invoke (dataArg: ISocketFunctionCall): Promise { - let done = plugins.smartq.defer() + 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) - }) - + 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!") + throw new Error("SocketFunction.name does not match the data argument's .name!"); } - return done.promise + return done.promise; } /** * notifies a role about access to this SocketFunction */ - private _notifyRole (socketRoleArg: SocketRole) { - socketRoleArg.addSocketFunction(this) + private _notifyRole(socketRoleArg: SocketRole) { + socketRoleArg.addSocketFunction(this); } } diff --git a/ts/smartsocket.classes.socketrequest.ts b/ts/smartsocket.classes.socketrequest.ts index 921dc37..9cfdb23 100644 --- a/ts/smartsocket.classes.socketrequest.ts +++ b/ts/smartsocket.classes.socketrequest.ts @@ -1,54 +1,54 @@ -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 let allSocketRequests = new Objectmap(); // export classes export class SocketRequest { - 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) + 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 -------------------------- @@ -56,22 +56,22 @@ export class SocketRequest { /** * dispatches a socketrequest from the requesting to the receiving side */ - dispatch () { + dispatch() { let requestData: ISocketRequestDataObject = { funcCallData: this.funcCallData, shortId: this.shortid - } - this.originSocketConnection.socket.emit('function', requestData) - return this.done.promise + }; + 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) + handleResponse(responseDataArg: ISocketRequestDataObject) { + plugins.beautylog.log('handling response!'); + this.done.resolve(responseDataArg.funcCallData); + allSocketRequests.remove(this); } // responding -------------------------- @@ -79,18 +79,19 @@ export class SocketRequest { /** * 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) - }) + 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); + }); } } diff --git a/ts/smartsocket.classes.socketrole.ts b/ts/smartsocket.classes.socketrole.ts index 0fb1f4b..25bf229 100644 --- a/ts/smartsocket.classes.socketrole.ts +++ b/ts/smartsocket.classes.socketrole.ts @@ -1,30 +1,29 @@ -import * as plugins from "./smartsocket.plugins"; +import * as plugins from './smartsocket.plugins'; // import classes -import { Objectmap } from "lik"; -import { SocketFunction } from "./smartsocket.classes.socketfunction"; - +import { Objectmap } from 'lik'; +import { SocketFunction } from './smartsocket.classes.socketfunction'; /** * interface for class SocketRole */ export interface SocketRoleOptions { - name: string; - passwordHash: string; + name: string; + passwordHash: string; } /** * A socketrole defines access to certain routines. */ export class SocketRole { - name: string; - passwordHash: string; - allowedFunctions = new Objectmap(); - constructor(optionsArg: SocketRoleOptions) { - this.name = optionsArg.name; - this.passwordHash = optionsArg.passwordHash; - }; - addSocketFunction(socketFunctionArg:SocketFunction){ - this.allowedFunctions.add(socketFunctionArg); - } -} \ No newline at end of file + name: string; + passwordHash: string; + allowedFunctions = new Objectmap(); + constructor(optionsArg: SocketRoleOptions) { + this.name = optionsArg.name; + this.passwordHash = optionsArg.passwordHash; + } + addSocketFunction(socketFunctionArg: SocketFunction) { + this.allowedFunctions.add(socketFunctionArg); + } +} diff --git a/ts/smartsocket.helpers.ts b/ts/smartsocket.helpers.ts index 6557454..d018494 100644 --- a/ts/smartsocket.helpers.ts +++ b/ts/smartsocket.helpers.ts @@ -1,40 +1,60 @@ -import * as plugins from "./smartsocket.plugins"; +import * as plugins from './smartsocket.plugins'; // classes -import { Smartsocket } from "./smartsocket.classes.smartsocket"; -import { SocketFunction, allSocketFunctions } from "./smartsocket.classes.socketfunction"; -import { SocketConnection, ISocketConnectionAuthenticationObject } from "./smartsocket.classes.socketconnection"; -import { SocketRequest, allSocketRequests, TSocketRequestSide } from "./smartsocket.classes.socketrequest"; -import { SocketRole } from "./smartsocket.classes.socketrole"; +import { Smartsocket } from './smartsocket.classes.smartsocket'; +import { SocketFunction, allSocketFunctions } from './smartsocket.classes.socketfunction'; +import { + SocketConnection, + ISocketConnectionAuthenticationObject +} from './smartsocket.classes.socketconnection'; +import { + SocketRequest, + allSocketRequests, + TSocketRequestSide +} from './smartsocket.classes.socketrequest'; +import { SocketRole } from './smartsocket.classes.socketrole'; // SocketConnection helpers -export let checkPasswordForRole = (dataArg: ISocketConnectionAuthenticationObject, referenceSmartsocket:Smartsocket): boolean => { - let targetPasswordHash = getSocketRoleByName(dataArg.role,referenceSmartsocket).passwordHash; - let computedCompareHash = plugins.nodehash.sha256FromStringSync(dataArg.password); - return targetPasswordHash === computedCompareHash; -} - +export let checkPasswordForRole = ( + dataArg: ISocketConnectionAuthenticationObject, + referenceSmartsocket: Smartsocket +): boolean => { + let targetPasswordHash = getSocketRoleByName(dataArg.role, referenceSmartsocket).passwordHash; + let computedCompareHash = plugins.nodehash.sha256FromStringSync(dataArg.password); + return targetPasswordHash === computedCompareHash; +}; // SocketFunction helpers export let getSocketFunctionByName = (functionNameArg: string): SocketFunction => { - return allSocketFunctions.find((socketFunctionArg) => { return socketFunctionArg.name === functionNameArg }); -} + return allSocketFunctions.find(socketFunctionArg => { + return socketFunctionArg.name === functionNameArg; + }); +}; // SocketRequest helpers /** * get corresponding Socketrequest instance by shortId */ -export let getSocketRequestById = (shortIdArg: string, requestSide?: TSocketRequestSide): SocketRequest => { - return allSocketRequests.find((socketRequestArg) => { return socketRequestArg.shortid === shortIdArg }) -} +export let getSocketRequestById = ( + shortIdArg: string, + requestSide?: TSocketRequestSide +): SocketRequest => { + return allSocketRequests.find(socketRequestArg => { + return socketRequestArg.shortid === shortIdArg; + }); +}; // SocketRole helpers /** * get corresponding SocketRole instance by name */ -export let getSocketRoleByName = (socketRoleNameArg: string,referenceSmartsocket:Smartsocket): SocketRole => { - return referenceSmartsocket.socketRoles.find((socketRoleArg) => { return socketRoleArg.name === socketRoleNameArg }) +export let getSocketRoleByName = ( + socketRoleNameArg: string, + referenceSmartsocket: Smartsocket +): SocketRole => { + return referenceSmartsocket.socketRoles.find(socketRoleArg => { + return socketRoleArg.name === socketRoleNameArg; + }); }; - diff --git a/ts/smartsocket.plugins.ts b/ts/smartsocket.plugins.ts index e3db4c7..c381d46 100644 --- a/ts/smartsocket.plugins.ts +++ b/ts/smartsocket.plugins.ts @@ -1,9 +1,8 @@ -import 'typings-global' -export import beautylog = require('beautylog') -export import lik = require('lik') -export import nodehash = require('nodehash') -export import smartdelay = require('smartdelay') -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 beautylog = require('beautylog'); +export import lik = require('lik'); +export import nodehash = require('nodehash'); +export import smartdelay = require('smartdelay'); +export import smartq = require('smartq'); +export import shortid = require('shortid'); +export import socketIo = require('socket.io'); +export import socketIoClient = require('socket.io-client'); diff --git a/yarn.lock b/yarn.lock index 53f79cd..f785a7e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,76 +2,49 @@ # 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.31" - resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.31.tgz#a22f75d713f69da8c5cf34f8bc808a62cd249405" +"@types/chai-as-promised@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz#010b04cde78eacfb6e72bfddb3e58fe23c2e78b9" dependencies: "@types/chai" "*" -"@types/chai@*": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.4.tgz#fe86315d9a66827feeb16f73bc954688ec950e18" - -"@types/chai@^3.4.35": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e" - -"@types/glob@*": - version "5.0.33" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.33.tgz#3dff7c6ce09d65abe919c7961dc3dee016f36ad7" +"@types/chai-string@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.4.0.tgz#c8b78deb9ae53e86c05a446c256138faeaff53c1" dependencies: - "@types/minimatch" "*" - "@types/node" "*" + "@types/chai" "*" -"@types/lodash@^4.14.55", "@types/lodash@^4.14.74": - version "4.14.77" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.77.tgz#0bc699413e84d6ed5d927ca30ea0f0a890b42d75" +"@types/chai@*", "@types/chai@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.2.tgz#f1af664769cfb50af805431c407425ed619daa21" -"@types/minimatch@*", "@types/minimatch@3.x.x": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.1.tgz#b683eb60be358304ef146f5775db4c0e3696a550" +"@types/lodash@^4.14.55", "@types/lodash@^4.14.97": + version "4.14.104" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.104.tgz#53ee2357fa2e6e68379341d92eb2ecea4b11bb80" + +"@types/minimatch@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" "@types/node@*": - version "8.0.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd" - -"@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" + version "9.4.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.7.tgz#57d81cd98719df2c9de118f2d5f3b1120dcd7275" "@types/q@0.x.x": version "0.0.37" resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.37.tgz#7d6a934b35ee2f0ed0646d286eba559599021c9e" -"@types/q@1.x.x": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.0.5.tgz#02b9d43a1a8e7503d15ed2fecb15ebb18c519b1d" - -"@types/shelljs@^0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.4.tgz#137b5f31306eaff4de120ffe5b9d74b297809cfc" - dependencies: - "@types/glob" "*" - "@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.30": - version "1.4.30" - resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.30.tgz#a76d5a1738aded8889c612bfe7f53f3b5298bfc3" +"@types/socket.io-client@^1.4.32": + version "1.4.32" + resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.32.tgz#988a65a0386c274b1c22a55377fab6a30789ac14" -"@types/socket.io@^1.4.31": - version "1.4.31" - resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-1.4.31.tgz#7a928518a35516fccd90431f94538ed3fddaba19" +"@types/socket.io@^1.4.32": + version "1.4.32" + resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-1.4.32.tgz#bf7bc4ea6991327f31672c05e237a8a28d7bfc30" dependencies: "@types/node" "*" @@ -81,15 +54,11 @@ 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" +accepts@~1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: - mime-types "~2.1.11" + mime-types "~2.1.18" negotiator "0.6.1" after@0.8.2: @@ -100,21 +69,23 @@ 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@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" -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" +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" assertion-error@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" backo2@1.0.2: version "1.0.2" @@ -167,8 +138,8 @@ blob@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" + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -177,35 +148,36 @@ 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" +chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" dependencies: check-error "^1.0.2" -chai-string@^1.3.0: +chai-string@^1.4.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" +chai@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" dependencies: assertion-error "^1.0.1" - deep-eql "^0.1.3" - type-detect "^1.0.0" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.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" +chalk@^2.0.1, chalk@^2.1.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" 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" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" -check-error@^1.0.2: +check-error@^1.0.1, check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -215,10 +187,20 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-spinners@^1.0.0: +cli-spinners@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06" +color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -249,11 +231,17 @@ debug@~2.6.4, debug@~2.6.6: 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" +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: - type-detect "0.1.1" + ms "2.0.0" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" define-properties@^1.1.2: version "1.1.2" @@ -271,47 +259,47 @@ early@^2.1.1: typings-global "^1.0.16" engine.io-client@~3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.2.tgz#62a0ef08ec83d16a06668ccc3a4f37916768a6b9" + version "3.1.6" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.6.tgz#5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd" dependencies: component-emitter "1.2.1" component-inherit "0.0.3" - debug "~2.6.4" + debug "~3.1.0" engine.io-parser "~2.1.1" has-cors "1.1.0" indexof "0.0.1" parseqs "0.0.5" parseuri "0.0.5" - ws "~2.3.1" - xmlhttprequest-ssl "1.5.3" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" 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" + version "2.1.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" dependencies: after "0.8.2" - arraybuffer.slice "0.0.6" + arraybuffer.slice "~0.0.7" base64-arraybuffer "0.1.5" blob "0.0.4" has-binary2 "~1.0.2" engine.io@~3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.2.tgz#00a3f6a4054bb1a07958074b1058764deedb7d8a" + version "3.1.5" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845" dependencies: - accepts "1.3.3" + accepts "~1.3.4" base64id "1.0.0" cookie "0.3.1" - debug "~2.6.4" + debug "~3.1.0" engine.io-parser "~2.1.0" - ws "~2.3.1" + ws "~3.3.1" optionalDependencies: - uws "~0.14.4" + uws "~9.14.0" es-abstract@^1.5.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227" + version "1.10.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.1" @@ -328,10 +316,10 @@ es-to-primitive@^1.1.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" + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" -escape-string-regexp@^1.0.2: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -343,30 +331,13 @@ 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.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" -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: +get-func-name@^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" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" has-binary2@~1.0.2: version "1.0.2" @@ -378,6 +349,10 @@ has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" @@ -388,21 +363,10 @@ 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: +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.4" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" - 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" @@ -429,10 +393,6 @@ 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" @@ -444,32 +404,29 @@ leakage@^0.3.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" + version "1.2.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" -lik@^1.0.42: - version "1.0.42" - resolved "https://registry.yarnpkg.com/lik/-/lik-1.0.42.tgz#e77604fac257c1b3552779c443de08c09b6e5332" +lik@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/lik/-/lik-2.0.5.tgz#1338a3201828b557fa91a5b8a6013743ff720e10" dependencies: - "@types/lodash" "^4.14.74" - "@types/minimatch" "3.x.x" - "@types/q" "1.x.x" + "@types/lodash" "^4.14.97" + "@types/minimatch" "^3.0.3" lodash "^4.17.4" minimatch "^3.0.4" - q "^1.5.0" - rxjs "^5.4.3" smartq "^1.1.6" - typings-global "^1.0.20" + symbol-tree "^3.2.2" lodash@^4.17.4: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" +log-symbols@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" dependencies: - chalk "^1.0.0" + chalk "^2.0.1" memwatch-next@^0.3.0: version "0.3.0" @@ -478,19 +435,19 @@ memwatch-next@^0.3.0: bindings "^1.2.1" nan "^2.3.2" -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" -mime-types@~2.1.11: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" +mime-types@~2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" dependencies: - mime-db "~1.30.0" + mime-db "~1.33.0" mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" minimatch@^3.0.4: version "3.0.4" @@ -507,8 +464,8 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" nan@^2.3.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" + version "2.9.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866" negotiator@0.6.1: version "0.6.1" @@ -524,10 +481,6 @@ nodehash@^1.0.4: 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" @@ -543,12 +496,6 @@ object.getownpropertydescriptors@^2.0.3: 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" @@ -556,13 +503,13 @@ onetime@^2.0.0: 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" + version "1.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" dependencies: - chalk "^1.1.1" + chalk "^2.1.0" cli-cursor "^2.1.0" - cli-spinners "^1.0.0" - log-symbols "^1.0.2" + cli-spinners "^1.0.1" + log-symbols "^2.1.0" parseqs@0.0.5: version "0.0.5" @@ -576,50 +523,34 @@ parseuri@0.0.5: 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" +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" 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" +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" -q@^1.4.1, q@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" +q@^1.4.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" readable-stream@^2.1.5: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + version "2.3.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~1.0.6" + process-nextick-args "~2.0.0" 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.4.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" - 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" @@ -627,32 +558,10 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -rxjs@^5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.3.tgz#0758cddee6033d68e0fd53676f0f3596ce3d483f" - 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.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - -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" @@ -661,20 +570,20 @@ 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" +smartchai@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-2.0.1.tgz#d20f17221f0e3c6c3473600b78ddfba0ab0ea762" 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" + "@types/chai" "^4.1.2" + "@types/chai-as-promised" "^7.1.0" + "@types/chai-string" "^1.4.0" + chai "^4.1.2" + chai-as-promised "^7.1.1" + chai-string "^1.4.0" -smartdelay@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.3.tgz#5fd44dad77262d110702f0293efa80c072cfb579" +smartdelay@^1.0.3, smartdelay@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.4.tgz#791c1a4ee6770494064c10b1d2d2b8e6f3105b82" dependencies: smartq "^1.1.1" typings-global "^1.0.16" @@ -694,24 +603,13 @@ smartq@^1.1.1, smartq@^1.1.6: typings-global "^1.0.19" util.promisify "^1.0.0" -smartshell@^1.0.6: - version "1.0.18" - resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.18.tgz#b84ccc65cedf3a875bf676cec78ee07f4b4aa9e5" - dependencies: - "@types/shelljs" "^0.7.4" - "@types/which" "^1.0.28" - shelljs "^0.7.8" - smartq "^1.1.6" - typings-global "^1.0.20" - which "^1.3.0" - socket.io-adapter@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" -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" +socket.io-client@2.0.4, socket.io-client@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e" dependencies: backo2 "1.0.2" base64-arraybuffer "0.1.5" @@ -728,23 +626,22 @@ socket.io-client@^2.0.3, socket.io-client@~2.0.2: 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" + version "3.1.3" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e" dependencies: component-emitter "1.2.1" - debug "~2.6.4" + debug "~3.1.0" 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" +socket.io@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014" 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-client "2.0.4" socket.io-parser "~3.1.1" string_decoder@~1.0.3: @@ -753,30 +650,25 @@ string_decoder@~1.0.3: 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" +supports-color@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" dependencies: - ansi-regex "^2.0.0" + has-flag "^3.0.0" -supports-color@^2.0.0: +symbol-tree@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + +tapbundle@^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.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.1.tgz#ec4172c0e82a77b1f6133fef2606311ede28a62d" + resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-2.0.0.tgz#79fce68ff185c786fabaf6eb589a4afc7d2714b7" dependencies: early "^2.1.1" leakage "^0.3.0" - smartchai "^1.0.3" + smartchai "^2.0.0" smartdelay "^1.0.3" smartq "^1.1.1" - typings-global "^1.0.19" through2@^2.0.1: version "2.0.3" @@ -789,24 +681,17 @@ 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@^4.0.0: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" -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.19, typings-global@^1.0.20, typings-global@^1.0.6: - version "1.0.20" - resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.20.tgz#3da769c54db538247c5d877d1d9e97eb2ec981ff" - dependencies: - semver "^5.3.0" - smartshell "^1.0.6" +typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.19, typings-global@^1.0.6: + version "1.0.28" + resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.28.tgz#e28cc965476564cbc00e438739e0aa0735d323d4" ultron@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864" + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" util-deprecate@~1.0.1: version "1.0.2" @@ -819,30 +704,21 @@ util.promisify@^1.0.0: 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" +uws@~9.14.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/uws/-/uws-9.14.0.tgz#fac8386befc33a7a3705cbd58dc47b430ca4dd95" -which@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 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" + async-limiter "~1.0.0" + safe-buffer "~5.1.0" 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" +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" xtend@~4.0.1: version "4.0.1"