add some more logic
This commit is contained in:
		
							
								
								
									
										6
									
								
								dist/smartsocket.classes.smartsocket.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/smartsocket.classes.smartsocket.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,20 +1,18 @@ | |||||||
| /// <reference types="socket.io" /> | /// <reference types="socket.io" /> | ||||||
| import { Objectmap } from "lik"; | import { Objectmap } from "lik"; | ||||||
| import { SocketRole } from "./smartsocket.classes.socketrole"; | import { SocketConnection } from "./smartsocket.classes.socketconnection"; | ||||||
| export interface ISmartsocketConstructorOptions { | export interface ISmartsocketConstructorOptions { | ||||||
|     port: number; |     port: number; | ||||||
| } | } | ||||||
| export declare class Smartsocket { | export declare class Smartsocket { | ||||||
|     options: ISmartsocketConstructorOptions; |     options: ISmartsocketConstructorOptions; | ||||||
|     io: SocketIO.Server; |     io: SocketIO.Server; | ||||||
|     openSockets: Objectmap; |     openSockets: Objectmap<SocketConnection>; | ||||||
|     registeredFunctions: Objectmap; |  | ||||||
|     constructor(optionsArg: ISmartsocketConstructorOptions); |     constructor(optionsArg: ISmartsocketConstructorOptions); | ||||||
|     /** |     /** | ||||||
|      * the standard handler for new socket connections |      * the standard handler for new socket connections | ||||||
|      */ |      */ | ||||||
|     private _handleSocket(socketArg); |     private _handleSocket(socketArg); | ||||||
|     registerFunction(socketRoleArg: SocketRole): void; |  | ||||||
|     /** |     /** | ||||||
|      * starts listening to incling sockets: |      * starts listening to incling sockets: | ||||||
|      */ |      */ | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								dist/smartsocket.classes.smartsocket.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								dist/smartsocket.classes.smartsocket.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,5 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
| const plugins = require("./smartsocket.plugins"); | const plugins = require("./smartsocket.plugins"); | ||||||
| const helpers = require("./smartsocket.helpers"); |  | ||||||
| // classes | // classes | ||||||
| const lik_1 = require("lik"); | const lik_1 = require("lik"); | ||||||
| const smartsocket_classes_socketconnection_1 = require("./smartsocket.classes.socketconnection"); | const smartsocket_classes_socketconnection_1 = require("./smartsocket.classes.socketconnection"); | ||||||
| @@ -8,7 +7,6 @@ const smartsocket_classes_socketconnection_1 = require("./smartsocket.classes.so | |||||||
| class Smartsocket { | class Smartsocket { | ||||||
|     constructor(optionsArg) { |     constructor(optionsArg) { | ||||||
|         this.openSockets = new lik_1.Objectmap(); |         this.openSockets = new lik_1.Objectmap(); | ||||||
|         this.registeredFunctions = new lik_1.Objectmap(); |  | ||||||
|         /** |         /** | ||||||
|          * starts listening to incling sockets: |          * starts listening to incling sockets: | ||||||
|          */ |          */ | ||||||
| @@ -39,13 +37,10 @@ class Smartsocket { | |||||||
|         }); |         }); | ||||||
|         plugins.beautylog.log("Socket connected. Trying to authenticate..."); |         plugins.beautylog.log("Socket connected. Trying to authenticate..."); | ||||||
|         this.openSockets.add(socketConnection); |         this.openSockets.add(socketConnection); | ||||||
|         helpers.authenticateSocket(socketConnection) |         socketConnection.authenticate() | ||||||
|             .then(); |             .then(socketConnection.listenToFunctionRequests); | ||||||
|     } |  | ||||||
|     registerFunction(socketRoleArg) { |  | ||||||
|         this.registeredFunctions.add(socketRoleArg); |  | ||||||
|     } |     } | ||||||
|     ; |     ; | ||||||
| } | } | ||||||
| exports.Smartsocket = Smartsocket; | exports.Smartsocket = Smartsocket; | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDakQsTUFBWSxPQUFPLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUVqRCxVQUFVO0FBQ1Ysc0JBQTBCLEtBQUssQ0FBQyxDQUFBO0FBR2hDLHVEQUFpQyx3Q0FBd0MsQ0FBQyxDQUFBO0FBS3pFLENBQUM7QUFFRjtJQUtJLFlBQVksVUFBMEM7UUFGdEQsZ0JBQVcsR0FBRyxJQUFJLGVBQVMsRUFBRSxDQUFDO1FBQzlCLHdCQUFtQixHQUFHLElBQUksZUFBUyxFQUFFLENBQUM7UUF3QnRDOztXQUVHO1FBRUgsZ0JBQVcsR0FBRztZQUNWLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVM7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUE7UUFDRCxnQkFBVyxHQUFHO1lBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUE4QjtnQkFDcEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRixlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQTtRQXZDRyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM5QixDQUFDOztJQUVEOztPQUVHO0lBQ0ssYUFBYSxDQUFDLFNBQVM7UUFDM0IsSUFBSSxnQkFBZ0IsR0FBc0IsSUFBSSx1REFBZ0IsQ0FBQztZQUMzRCxhQUFhLEVBQUMsS0FBSztZQUNuQixNQUFNLEVBQUMsU0FBUztTQUNuQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO2FBQ3ZDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxhQUF5QjtRQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWhELENBQUM7O0FBb0JMLENBQUM7QUE5Q1ksbUJBQVcsY0E4Q3ZCLENBQUEifQ== | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFHakQsVUFBVTtBQUNWLHNCQUEwQixLQUFLLENBQUMsQ0FBQTtBQUdoQyx1REFBaUMsd0NBQXdDLENBQUMsQ0FBQTtBQUt6RSxDQUFDO0FBRUY7SUFJSSxZQUFZLFVBQTBDO1FBRHRELGdCQUFXLEdBQUcsSUFBSSxlQUFTLEVBQW9CLENBQUM7UUFtQmhEOztXQUVHO1FBRUgsZ0JBQVcsR0FBRztZQUNWLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVM7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUE7UUFDRCxnQkFBVyxHQUFHO1lBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFpQztnQkFDdkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRixlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQTtRQWxDRyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM5QixDQUFDOztJQUVEOztPQUVHO0lBQ0ssYUFBYSxDQUFDLFNBQVM7UUFDM0IsSUFBSSxnQkFBZ0IsR0FBc0IsSUFBSSx1REFBZ0IsQ0FBQztZQUMzRCxhQUFhLEVBQUMsS0FBSztZQUNuQixNQUFNLEVBQUMsU0FBUztTQUNuQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFO2FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7O0FBb0JMLENBQUM7QUF4Q1ksbUJBQVcsY0F3Q3ZCLENBQUEifQ== | ||||||
| @@ -1,3 +1,6 @@ | |||||||
|  | /// <reference types="q" /> | ||||||
|  | import * as plugins from "./smartsocket.plugins"; | ||||||
|  | import { ISocketFunctionRequestObject, ISocketFunctionResponseObject } from "./smartsocket.classes.socketfunction"; | ||||||
| /** | /** | ||||||
|  * interface for class SmartsocketClient |  * interface for class SmartsocketClient | ||||||
|  */ |  */ | ||||||
| @@ -7,4 +10,5 @@ export interface ISmartsocketClientOptions { | |||||||
| } | } | ||||||
| export declare class SmartsocketClient { | export declare class SmartsocketClient { | ||||||
|     constructor(); |     constructor(); | ||||||
|  |     dispatchFunctionRequest(dataArg: ISocketFunctionRequestObject): plugins.q.Promise<ISocketFunctionResponseObject>; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								dist/smartsocket.classes.smartsocketclient.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								dist/smartsocket.classes.smartsocketclient.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,15 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
|  | const plugins = require("./smartsocket.plugins"); | ||||||
| class SmartsocketClient { | class SmartsocketClient { | ||||||
|     constructor() { |     constructor() { | ||||||
|     } |     } | ||||||
|  |     dispatchFunctionRequest(dataArg) { | ||||||
|  |         let done = plugins.q.defer(); | ||||||
|  |         let responseData; | ||||||
|  |         done.resolve(responseData); | ||||||
|  |         return done.promise; | ||||||
|  |     } | ||||||
|  |     ; | ||||||
| } | } | ||||||
| exports.SmartsocketClient = SmartsocketClient; | exports.SmartsocketClient = SmartsocketClient; | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXRjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBO0lBQ0k7SUFFQSxDQUFDO0FBQ0wsQ0FBQztBQUpZLHlCQUFpQixvQkFJN0IsQ0FBQSJ9 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXRjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUl6QixDQUFDLENBSitDO0FBaUJoRDtJQUNJO0lBRUEsQ0FBQztJQUNELHVCQUF1QixDQUFDLE9BQW9DO1FBQ3hELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFpQyxDQUFDO1FBQzVELElBQUksWUFBMEMsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0FBQ0wsQ0FBQztBQVZZLHlCQUFpQixvQkFVN0IsQ0FBQSJ9 | ||||||
							
								
								
									
										29
									
								
								dist/smartsocket.classes.socketconnection.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								dist/smartsocket.classes.socketconnection.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +1,39 @@ | |||||||
| /// <reference types="socket.io" /> | /// <reference types="socket.io" /> | ||||||
|  | /// <reference types="q" /> | ||||||
|  | import * as plugins from "./smartsocket.plugins"; | ||||||
|  | import { SocketRole } from "./smartsocket.classes.socketrole"; | ||||||
|  | /** | ||||||
|  |  * interface for constructor of class SocketConnection | ||||||
|  |  */ | ||||||
| export interface ISocketConnectionOptions { | export interface ISocketConnectionOptions { | ||||||
|     alias?: string; |     alias?: string; | ||||||
|     authenticated: boolean; |     authenticated: boolean; | ||||||
|     role?: string; |     role?: SocketRole; | ||||||
|     socket: SocketIO.Socket; |     socket: SocketIO.Socket; | ||||||
| } | } | ||||||
|  | /** | ||||||
|  |  * interface for authentication data | ||||||
|  |  */ | ||||||
|  | export interface ISocketConnectionAuthenticationObject { | ||||||
|  |     role: "coreflowContainer"; | ||||||
|  |     password: "somePassword"; | ||||||
|  |     alias: "coreflow1"; | ||||||
|  | } | ||||||
|  | /** | ||||||
|  |  * class SocketConnection represents a websocket connection | ||||||
|  |  */ | ||||||
| export declare class SocketConnection { | export declare class SocketConnection { | ||||||
|     alias?: string; |     alias?: string; | ||||||
|     authenticated: boolean; |     authenticated: boolean; | ||||||
|     role?: string; |     role?: SocketRole; | ||||||
|     socket: SocketIO.Socket; |     socket: SocketIO.Socket; | ||||||
|     constructor(optionsArg: ISocketConnectionOptions); |     constructor(optionsArg: ISocketConnectionOptions); | ||||||
|  |     /** | ||||||
|  |      * authenticate the socket | ||||||
|  |      */ | ||||||
|  |     authenticate(): plugins.q.Promise<{}>; | ||||||
|  |     /** | ||||||
|  |      * listen to function requests | ||||||
|  |      */ | ||||||
|  |     listenToFunctionRequests(): plugins.q.Promise<{}>; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										59
									
								
								dist/smartsocket.classes.socketconnection.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										59
									
								
								dist/smartsocket.classes.socketconnection.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,11 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
|  | const plugins = require("./smartsocket.plugins"); | ||||||
|  | const helpers = require("./smartsocket.helpers"); | ||||||
| ; | ; | ||||||
|  | // export classes | ||||||
|  | /** | ||||||
|  |  * class SocketConnection represents a websocket connection | ||||||
|  |  */ | ||||||
| class SocketConnection { | class SocketConnection { | ||||||
|     constructor(optionsArg) { |     constructor(optionsArg) { | ||||||
|         this.alias = optionsArg.alias; |         this.alias = optionsArg.alias; | ||||||
| @@ -7,7 +13,58 @@ class SocketConnection { | |||||||
|         this.role = optionsArg.role; |         this.role = optionsArg.role; | ||||||
|         this.socket = optionsArg.socket; |         this.socket = optionsArg.socket; | ||||||
|     } |     } | ||||||
|  |     /** | ||||||
|  |      * authenticate the socket | ||||||
|  |      */ | ||||||
|  |     authenticate() { | ||||||
|  |         let done = plugins.q.defer(); | ||||||
|  |         this.socket.on("dataAuth", dataArg => { | ||||||
|  |             plugins.beautylog.log("received authentication data. now hashing and comparing..."); | ||||||
|  |             this.socket.removeListener("dataAuth", () => { }); | ||||||
|  |             if ((true)) { | ||||||
|  |                 this.alias = dataArg.alias; | ||||||
|  |                 this.authenticated = true; | ||||||
|  |                 this.role = helpers.findSocketRoleByString(dataArg.role); | ||||||
|  |                 this.socket.emit("authenticated"); | ||||||
|  |                 plugins.beautylog.ok(`socket with >>alias ${this.alias} >>role ${this.role} is authenticated!`); | ||||||
|  |                 done.resolve(this); | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 this.socket.disconnect(); | ||||||
|  |                 done.reject("not authenticated"); | ||||||
|  |             } | ||||||
|  |             ; | ||||||
|  |         }); | ||||||
|  |         this.socket.emit("requestAuth"); | ||||||
|  |         return done.promise; | ||||||
|  |     } | ||||||
|  |     ; | ||||||
|  |     /** | ||||||
|  |      * listen to function requests | ||||||
|  |      */ | ||||||
|  |     listenToFunctionRequests() { | ||||||
|  |         let done = plugins.q.defer(); | ||||||
|  |         if (this.authenticated) { | ||||||
|  |             this.socket.on("function", (dataArg) => { | ||||||
|  |                 let referencedFunction = this.role.allowedFunctions.find((socketFunctionArg) => { | ||||||
|  |                     return socketFunctionArg.name === dataArg.functionName; | ||||||
|  |                 }); | ||||||
|  |                 if (referencedFunction !== undefined) { | ||||||
|  |                     referencedFunction.invoke(dataArg); | ||||||
|  |                 } | ||||||
|  |                 else { | ||||||
|  |                     plugins.beautylog.warn("function not existent or out of access scope"); | ||||||
|  |                 } | ||||||
|  |                 ; | ||||||
|  |             }); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             done.reject("socket needs to be authenticated first"); | ||||||
|  |         } | ||||||
|  |         ; | ||||||
|  |         return done.promise; | ||||||
|  |     } | ||||||
| } | } | ||||||
| exports.SocketConnection = SocketConnection; | exports.SocketConnection = SocketConnection; | ||||||
| ; | ; | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFPQyxDQUFDO0FBRUY7SUFLSSxZQUFZLFVBQW1DO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0FBQ0wsQ0FBQztBQVhZLHdCQUFnQixtQkFXNUIsQ0FBQTtBQUFBLENBQUMifQ== | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ2pELE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFpQmhELENBQUM7QUFXRixpQkFBaUI7QUFFakI7O0dBRUc7QUFDSDtJQUtJLFlBQVksVUFBb0M7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFDRDs7T0FFRztJQUNILFlBQVk7UUFDUixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPO1lBQzlCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDREQUE0RCxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO2dCQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLElBQUksQ0FBQyxLQUFLLFdBQVcsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQztnQkFDaEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFBQSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztJQUVEOztPQUVHO0lBQ0gsd0JBQXdCO1FBQ3BCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsRUFBRSxDQUFBLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBb0M7Z0JBQzVELElBQUksa0JBQWtCLEdBQWtCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsaUJBQWlCO29CQUN0RixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxZQUFZLENBQUE7Z0JBQzFELENBQUMsQ0FBQyxDQUFDO2dCQUNILEVBQUUsQ0FBQSxDQUFDLGtCQUFrQixLQUFLLFNBQVMsQ0FBQyxDQUFBLENBQUM7b0JBQ2pDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2dCQUMzRSxDQUFDO2dCQUFBLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQUEsQ0FBQztRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7QUFDTCxDQUFDO0FBeERZLHdCQUFnQixtQkF3RDVCLENBQUE7QUFBQSxDQUFDIn0= | ||||||
							
								
								
									
										23
									
								
								dist/smartsocket.classes.socketfunction.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								dist/smartsocket.classes.socketfunction.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,19 +1,36 @@ | |||||||
| import { SocketRole } from "./smartsocket.classes.socketrole"; | import { SocketRole } from "./smartsocket.classes.socketrole"; | ||||||
| export interface ISocketFunctionData { | export interface ISocketFunctionRequestObject { | ||||||
|     functionName: string; |     functionName: string; | ||||||
|     functionData: any; |     argumentObject: any; | ||||||
|  |     shortId: string; | ||||||
|     responseTimeout?: number; |     responseTimeout?: number; | ||||||
| } | } | ||||||
|  | export interface ISocketFunctionResponseObject { | ||||||
|  |     shortId: string; | ||||||
|  |     argumentObject: any; | ||||||
|  | } | ||||||
| export interface SocketFunctionOptions { | export interface SocketFunctionOptions { | ||||||
|     name: string; |     name: string; | ||||||
|     func: any; |     func: any; | ||||||
|     roles: SocketRole[]; |     roles: SocketRole[]; | ||||||
| } | } | ||||||
|  | /** | ||||||
|  |  * class SocketFunction respresents a function that can be transparently called using a SocketConnection | ||||||
|  |  */ | ||||||
| export declare class SocketFunction { | export declare class SocketFunction { | ||||||
|     name: string; |     name: string; | ||||||
|     func: any; |     func: any; | ||||||
|     roles: SocketRole[]; |     roles: SocketRole[]; | ||||||
|  |     /** | ||||||
|  |      * the constructor for SocketFunction | ||||||
|  |      */ | ||||||
|     constructor(optionsArg: SocketFunctionOptions); |     constructor(optionsArg: SocketFunctionOptions); | ||||||
|  |     /** | ||||||
|  |      * notifies a role about access to this SocketFunction | ||||||
|  |      */ | ||||||
|     private _notifyRole(socketRoleArg); |     private _notifyRole(socketRoleArg); | ||||||
|     functionRequest(dataArg: ISocketFunctionData): void; |     /** | ||||||
|  |      * invokes the function of this SocketFunction | ||||||
|  |      */ | ||||||
|  |     invoke(dataArg: ISocketFunctionRequestObject): void; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								dist/smartsocket.classes.socketfunction.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								dist/smartsocket.classes.socketfunction.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,15 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
| ; | ; | ||||||
| ; | ; | ||||||
|  | ; | ||||||
|  | // export classes | ||||||
|  | /** | ||||||
|  |  * class SocketFunction respresents a function that can be transparently called using a SocketConnection | ||||||
|  |  */ | ||||||
| class SocketFunction { | class SocketFunction { | ||||||
|  |     /** | ||||||
|  |      * the constructor for SocketFunction | ||||||
|  |      */ | ||||||
|     constructor(optionsArg) { |     constructor(optionsArg) { | ||||||
|         this.name = optionsArg.name; |         this.name = optionsArg.name; | ||||||
|         this.func = optionsArg.func; |         this.func = optionsArg.func; | ||||||
| @@ -11,11 +19,18 @@ class SocketFunction { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     ; |     ; | ||||||
|  |     /** | ||||||
|  |      * notifies a role about access to this SocketFunction | ||||||
|  |      */ | ||||||
|     _notifyRole(socketRoleArg) { |     _notifyRole(socketRoleArg) { | ||||||
|         socketRoleArg.addSocketFunction(this); |         socketRoleArg.addSocketFunction(this); | ||||||
|     } |     } | ||||||
|     functionRequest(dataArg) { |     /** | ||||||
|  |      * invokes the function of this SocketFunction | ||||||
|  |      */ | ||||||
|  |     invoke(dataArg) { | ||||||
|     } |     } | ||||||
|  |     ; | ||||||
| } | } | ||||||
| exports.SocketFunction = SocketFunction; | exports.SocketFunction = SocketFunction; | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRmdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc29ja2V0ZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVDLENBQUM7QUFNRCxDQUFDO0FBRUY7SUFJSSxZQUFZLFVBQWlDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzlCLEdBQUcsQ0FBQyxDQUFDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7O0lBQ08sV0FBVyxDQUFDLGFBQXdCO1FBQ3hDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsZUFBZSxDQUFDLE9BQTJCO0lBRTNDLENBQUM7QUFDTCxDQUFDO0FBbEJZLHNCQUFjLGlCQWtCMUIsQ0FBQSJ9 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRmdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc29ja2V0ZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWFDLENBQUM7QUFLRCxDQUFDO0FBTUQsQ0FBQztBQUVGLGlCQUFpQjtBQUVqQjs7R0FFRztBQUNIO0lBS0k7O09BRUc7SUFDSCxZQUFZLFVBQWlDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzlCLEdBQUcsQ0FBQyxDQUFDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7O0lBRUQ7O09BRUc7SUFDSyxXQUFXLENBQUMsYUFBd0I7UUFDeEMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFvQztJQUUzQyxDQUFDOztBQUVMLENBQUM7QUEvQlksc0JBQWMsaUJBK0IxQixDQUFBIn0= | ||||||
							
								
								
									
										18
									
								
								dist/smartsocket.classes.socketrequest.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								dist/smartsocket.classes.socketrequest.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | import { ISocketFunctionResponseObject } from "./smartsocket.classes.socketfunction"; | ||||||
|  | import { Objectmap } from "lik"; | ||||||
|  | export declare type TSocketRequestStatus = "new" | "pending" | "finished"; | ||||||
|  | export declare type TSocketRequestSide = "requesting" | "responding"; | ||||||
|  | export interface SocketRequestConstructorOptions { | ||||||
|  |     side: TSocketRequestSide; | ||||||
|  |     shortid: string; | ||||||
|  | } | ||||||
|  | export declare let allRequestingSocketRequests: Objectmap<SocketRequest>; | ||||||
|  | export declare let allRespondingSocketRequests: Objectmap<SocketRequest>; | ||||||
|  | export declare class SocketRequest { | ||||||
|  |     status: TSocketRequestStatus; | ||||||
|  |     side: TSocketRequestSide; | ||||||
|  |     shortid: string; | ||||||
|  |     constructor(optionsArg: SocketRequestConstructorOptions); | ||||||
|  |     respond(dataArg: ISocketFunctionResponseObject): void; | ||||||
|  |     private _dispatch(); | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								dist/smartsocket.classes.socketrequest.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								dist/smartsocket.classes.socketrequest.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | "use strict"; | ||||||
|  | // import classes | ||||||
|  | const lik_1 = require("lik"); | ||||||
|  | ; | ||||||
|  | //export objects | ||||||
|  | exports.allRequestingSocketRequests = new lik_1.Objectmap(); | ||||||
|  | exports.allRespondingSocketRequests = new lik_1.Objectmap(); | ||||||
|  | // export classes | ||||||
|  | class SocketRequest { | ||||||
|  |     constructor(optionsArg) { | ||||||
|  |         this.status = "new"; | ||||||
|  |         this.side = optionsArg.side; | ||||||
|  |         this.shortid = optionsArg.shortid; | ||||||
|  |         if (this.side === "requesting") { | ||||||
|  |             exports.allRequestingSocketRequests.add(this); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             exports.allRespondingSocketRequests.add(this); | ||||||
|  |         } | ||||||
|  |         ; | ||||||
|  |     } | ||||||
|  |     ; | ||||||
|  |     respond(dataArg) { | ||||||
|  |     } | ||||||
|  |     _dispatch() { | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | exports.SocketRequest = SocketRequest; | ||||||
|  | ; | ||||||
|  | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLQSxpQkFBaUI7QUFDakIsc0JBQTBCLEtBQUssQ0FBQyxDQUFBO0FBVS9CLENBQUM7QUFFRixnQkFBZ0I7QUFDTCxtQ0FBMkIsR0FBRyxJQUFJLGVBQVMsRUFBaUIsQ0FBQztBQUM3RCxtQ0FBMkIsR0FBRyxJQUFJLGVBQVMsRUFBaUIsQ0FBQztBQUV4RSxpQkFBaUI7QUFDakI7SUFJSSxZQUFZLFVBQTJDO1FBSHZELFdBQU0sR0FBeUIsS0FBSyxDQUFDO1FBSWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDbEMsRUFBRSxDQUFBLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQSxDQUFDO1lBQzNCLG1DQUEyQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixtQ0FBMkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUFBLENBQUM7SUFDTixDQUFDOztJQUNELE9BQU8sQ0FBQyxPQUFxQztJQUU3QyxDQUFDO0lBQ08sU0FBUztJQUVqQixDQUFDO0FBQ0wsQ0FBQztBQW5CWSxxQkFBYSxnQkFtQnpCLENBQUE7QUFBQSxDQUFDIn0= | ||||||
							
								
								
									
										4
									
								
								dist/smartsocket.classes.socketrole.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/smartsocket.classes.socketrole.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,6 @@ | |||||||
|  | import { Objectmap } from "lik"; | ||||||
| import { SocketFunction } from "./smartsocket.classes.socketfunction"; | import { SocketFunction } from "./smartsocket.classes.socketfunction"; | ||||||
|  | export declare let allSocketRoles: Objectmap<SocketRole>; | ||||||
| /** | /** | ||||||
|  * interface for class SocketRole |  * interface for class SocketRole | ||||||
|  */ |  */ | ||||||
| @@ -12,7 +14,7 @@ export interface SocketRoleOptions { | |||||||
| export declare class SocketRole { | export declare class SocketRole { | ||||||
|     name: string; |     name: string; | ||||||
|     passwordHash: string; |     passwordHash: string; | ||||||
|     allowedFunctions: SocketFunction[]; |     allowedFunctions: Objectmap<SocketFunction>; | ||||||
|     constructor(optionsArg: SocketRoleOptions); |     constructor(optionsArg: SocketRoleOptions); | ||||||
|     addSocketFunction(socketFunctionArg: SocketFunction): void; |     addSocketFunction(socketFunctionArg: SocketFunction): void; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								dist/smartsocket.classes.socketrole.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								dist/smartsocket.classes.socketrole.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,16 +1,21 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
|  | // import classes | ||||||
|  | const lik_1 = require("lik"); | ||||||
|  | exports.allSocketRoles = new lik_1.Objectmap(); | ||||||
| /** | /** | ||||||
|  * A socketrole defines access to certain routines. |  * A socketrole defines access to certain routines. | ||||||
|  */ |  */ | ||||||
| class SocketRole { | class SocketRole { | ||||||
|     constructor(optionsArg) { |     constructor(optionsArg) { | ||||||
|  |         this.allowedFunctions = new lik_1.Objectmap(); | ||||||
|         this.name = optionsArg.name; |         this.name = optionsArg.name; | ||||||
|         this.passwordHash = optionsArg.passwordHash; |         this.passwordHash = optionsArg.passwordHash; | ||||||
|  |         exports.allSocketRoles.add(this); | ||||||
|     } |     } | ||||||
|     ; |     ; | ||||||
|     addSocketFunction(socketFunctionArg) { |     addSocketFunction(socketFunctionArg) { | ||||||
|         this.allowedFunctions.push(socketFunctionArg); |         this.allowedFunctions.add(socketFunctionArg); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| exports.SocketRole = SocketRole; | exports.SocketRole = SocketRole; | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFjQTs7R0FFRztBQUNIO0lBSUksWUFBWSxVQUE2QjtRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ2hELENBQUM7O0lBQ0QsaUJBQWlCLENBQUMsaUJBQWdDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0FBQ0wsQ0FBQztBQVhZLGtCQUFVLGFBV3RCLENBQUEifQ== | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxpQkFBaUI7QUFDakIsc0JBQTBCLEtBQUssQ0FBQyxDQUFBO0FBSXJCLHNCQUFjLEdBQUcsSUFBSSxlQUFTLEVBQWMsQ0FBQztBQVd4RDs7R0FFRztBQUNIO0lBSUksWUFBWSxVQUE2QjtRQUR6QyxxQkFBZ0IsR0FBRyxJQUFJLGVBQVMsRUFBa0IsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQzVDLHNCQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7O0lBQ0QsaUJBQWlCLENBQUMsaUJBQWdDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0FBQ0wsQ0FBQztBQVpZLGtCQUFVLGFBWXRCLENBQUEifQ== | ||||||
							
								
								
									
										10
									
								
								dist/smartsocket.helpers.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								dist/smartsocket.helpers.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,2 @@ | |||||||
| /// <reference types="q" /> | import { SocketRole } from "./smartsocket.classes.socketrole"; | ||||||
| import * as plugins from "./smartsocket.plugins"; | export declare let findSocketRoleByString: (socketRoleNameArg: string) => SocketRole; | ||||||
| import { SocketConnection } from "./smartsocket.classes.socketconnection"; |  | ||||||
| /** |  | ||||||
|  * authenticate a socket |  | ||||||
|  */ |  | ||||||
| export declare let authenticateSocket: (socketConnectionArg: SocketConnection) => plugins.q.Promise<{}>; |  | ||||||
| export declare let listenToReadySocket: (socketConnectionArg: SocketConnection) => plugins.q.Promise<{}>; |  | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								dist/smartsocket.helpers.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								dist/smartsocket.helpers.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,33 +1,7 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
| const plugins = require("./smartsocket.plugins"); | const smartsocket_classes_socketrole_1 = require("./smartsocket.classes.socketrole"); | ||||||
| /** | // SocketRole helpers | ||||||
|  * authenticate a socket | exports.findSocketRoleByString = (socketRoleNameArg) => { | ||||||
|  */ |     return smartsocket_classes_socketrole_1.allSocketRoles.find((socketRoleArg) => { return socketRoleArg.name === socketRoleNameArg; }); | ||||||
| exports.authenticateSocket = (socketConnectionArg) => { |  | ||||||
|     let done = plugins.q.defer(); |  | ||||||
|     socketConnectionArg.socket.on("dataAuth", dataArg => { |  | ||||||
|         plugins.beautylog.log("received authentication data. now hashing and comparing..."); |  | ||||||
|         socketConnectionArg.socket.removeListener("dataAuth", () => { }); |  | ||||||
|         if ((true)) { |  | ||||||
|             socketConnectionArg.alias = dataArg.alias; |  | ||||||
|             socketConnectionArg.authenticated = true; |  | ||||||
|             socketConnectionArg.role = dataArg.role; |  | ||||||
|             socketConnectionArg.socket.emit("authenticated"); |  | ||||||
|             plugins.beautylog.ok(`socket with >>alias ${socketConnectionArg.alias} >>role ${socketConnectionArg.role} is authenticated!`); |  | ||||||
|             done.resolve(socketConnectionArg); |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             socketConnectionArg.socket.disconnect(); |  | ||||||
|             done.reject("not authenticated"); |  | ||||||
|         } |  | ||||||
|         ; |  | ||||||
|     }); |  | ||||||
|     socketConnectionArg.socket.emit("requestAuth"); |  | ||||||
|     return done.promise; |  | ||||||
| }; | }; | ||||||
| exports.listenToReadySocket = (socketConnectionArg) => { | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU1BLGlEQUEyQyxrQ0FBa0MsQ0FBQyxDQUFBO0FBRzlFLHFCQUFxQjtBQUNWLDhCQUFzQixHQUFHLENBQUMsaUJBQXlCO0lBQzFELE1BQU0sQ0FBQywrQ0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3RHLENBQUMsQ0FBQyJ9 | ||||||
|     let done = plugins.q.defer(); |  | ||||||
|     // socketConnectionArg.socket.listen("function", ) |  | ||||||
|     return done.promise; |  | ||||||
| }; |  | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFRakQ7O0dBRUc7QUFDUSwwQkFBa0IsR0FBRyxDQUFDLG1CQUFxQztJQUNsRSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLE9BQU87UUFDN0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsNERBQTRELENBQUMsQ0FBQztRQUNwRixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1QsbUJBQW1CLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7WUFDekMsbUJBQW1CLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUN6QyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN4QyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLHVCQUF1QixtQkFBbUIsQ0FBQyxLQUFLLFdBQVcsbUJBQW1CLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFBO1lBQzdILElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFBQSxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7SUFDSCxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVTLDJCQUFtQixHQUFHLENBQUMsbUJBQXFDO0lBQ25FLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0Isa0RBQWtEO0lBQ2xELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSJ9 |  | ||||||
							
								
								
									
										1
									
								
								dist/smartsocket.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/smartsocket.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -2,6 +2,7 @@ import "typings-global"; | |||||||
| export import beautylog = require("beautylog"); | export import beautylog = require("beautylog"); | ||||||
| export import lik = require("lik"); | export import lik = require("lik"); | ||||||
| export import q = require("q"); | export import q = require("q"); | ||||||
|  | export import shortid = require("shortid"); | ||||||
| export import socketIo = require("socket.io"); | export import socketIo = require("socket.io"); | ||||||
| export import socketIoClient = require("socket.io-client"); | export import socketIoClient = require("socket.io-client"); | ||||||
| export import taskbuffer = require("taskbuffer"); | export import taskbuffer = require("taskbuffer"); | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								dist/smartsocket.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/smartsocket.plugins.js
									
									
									
									
										vendored
									
									
								
							| @@ -3,7 +3,8 @@ require("typings-global"); | |||||||
| exports.beautylog = require("beautylog"); | exports.beautylog = require("beautylog"); | ||||||
| exports.lik = require("lik"); | exports.lik = require("lik"); | ||||||
| exports.q = require("q"); | exports.q = require("q"); | ||||||
|  | exports.shortid = require("shortid"); | ||||||
| exports.socketIo = require("socket.io"); | exports.socketIo = require("socket.io"); | ||||||
| exports.socketIoClient = require("socket.io-client"); | exports.socketIoClient = require("socket.io-client"); | ||||||
| exports.taskbuffer = require("taskbuffer"); | exports.taskbuffer = require("taskbuffer"); | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsV0FBRyxXQUFZLEtBQUssQ0FBQyxDQUFDO0FBQ3RCLFNBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNqQixnQkFBUSxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2hDLHNCQUFjLFdBQVcsa0JBQWtCLENBQUMsQ0FBQztBQUM3QyxrQkFBVSxXQUFXLFlBQVksQ0FBQyxDQUFDIn0= | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsV0FBRyxXQUFZLEtBQUssQ0FBQyxDQUFDO0FBQ3RCLFNBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLFdBQVcsU0FBUyxDQUFDLENBQUM7QUFDN0IsZ0JBQVEsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUNoQyxzQkFBYyxXQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDN0Msa0JBQVUsV0FBVyxZQUFZLENBQUMsQ0FBQyJ9 | ||||||
| @@ -1,5 +1,12 @@ | |||||||
| import * as plugins from "./smartsocket.plugins" | import * as plugins from "./smartsocket.plugins" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // import interfaces | ||||||
|  | import { ISocketFunctionRequestObject, ISocketFunctionResponseObject } from "./smartsocket.classes.socketfunction"; | ||||||
|  |  | ||||||
|  | // import classes | ||||||
|  | import { SocketFunction } from "./smartsocket.classes.socketfunction"; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * interface for class SmartsocketClient |  * interface for class SmartsocketClient | ||||||
|  */ |  */ | ||||||
| @@ -12,4 +19,10 @@ export class SmartsocketClient { | |||||||
|     constructor() { |     constructor() { | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |     dispatchFunctionRequest(dataArg:ISocketFunctionRequestObject): plugins.q.Promise<ISocketFunctionResponseObject> { | ||||||
|  |         let done = plugins.q.defer<ISocketFunctionResponseObject>(); | ||||||
|  |         let responseData:ISocketFunctionResponseObject; | ||||||
|  |         done.resolve(responseData); | ||||||
|  |         return done.promise; | ||||||
|  |     }; | ||||||
| } | } | ||||||
| @@ -2,9 +2,15 @@ import * as plugins from "./smartsocket.plugins"; | |||||||
| import * as helpers from "./smartsocket.helpers"; | import * as helpers from "./smartsocket.helpers"; | ||||||
|  |  | ||||||
| // import classes | // import classes | ||||||
|  | import { SocketFunction, ISocketFunctionRequestObject } from "./smartsocket.classes.socketfunction"; | ||||||
|  | import { SocketRequest } from "./smartsocket.classes.socketrequest"; | ||||||
| import { SocketRole } from "./smartsocket.classes.socketrole"; | import { SocketRole } from "./smartsocket.classes.socketrole"; | ||||||
| import { SocketFunction, ISocketFunctionData } from "./smartsocket.classes.socketfunction"; |  | ||||||
|  |  | ||||||
|  | // export interfaces | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * interface for constructor of class SocketConnection | ||||||
|  |  */ | ||||||
| export interface ISocketConnectionOptions { | export interface ISocketConnectionOptions { | ||||||
|     alias?: string; |     alias?: string; | ||||||
|     authenticated: boolean; |     authenticated: boolean; | ||||||
| @@ -12,6 +18,20 @@ export interface ISocketConnectionOptions { | |||||||
|     socket: SocketIO.Socket; |     socket: SocketIO.Socket; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * interface for authentication data | ||||||
|  |  */ | ||||||
|  | export interface ISocketConnectionAuthenticationObject { | ||||||
|  |     role: "coreflowContainer", | ||||||
|  |     password: "somePassword", | ||||||
|  |     alias: "coreflow1" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // export classes | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * class SocketConnection represents a websocket connection | ||||||
|  |  */ | ||||||
| export class SocketConnection { | export class SocketConnection { | ||||||
|     alias?: string; |     alias?: string; | ||||||
|     authenticated: boolean; |     authenticated: boolean; | ||||||
| @@ -53,8 +73,15 @@ export class SocketConnection { | |||||||
|     listenToFunctionRequests() { |     listenToFunctionRequests() { | ||||||
|         let done = plugins.q.defer(); |         let done = plugins.q.defer(); | ||||||
|         if(this.authenticated){ |         if(this.authenticated){ | ||||||
|             this.socket.on("function", (dataArg:ISocketFunctionData) => { |             this.socket.on("function", (dataArg:ISocketFunctionRequestObject) => { | ||||||
|                 this.role.allowedFunctions |                 let referencedFunction:SocketFunction = this.role.allowedFunctions.find((socketFunctionArg) => { | ||||||
|  |                     return socketFunctionArg.name === dataArg.functionName | ||||||
|  |                 }); | ||||||
|  |                 if(referencedFunction !== undefined){ | ||||||
|  |                     referencedFunction.invoke(dataArg); | ||||||
|  |                 } else { | ||||||
|  |                     plugins.beautylog.warn("function not existent or out of access scope"); | ||||||
|  |                 }; | ||||||
|             }) |             }) | ||||||
|         } else { |         } else { | ||||||
|             done.reject("socket needs to be authenticated first"); |             done.reject("socket needs to be authenticated first"); | ||||||
|   | |||||||
| @@ -4,18 +4,31 @@ import * as plugins from "./smartsocket.plugins"; | |||||||
| import { Stringmap } from "lik"; | import { Stringmap } from "lik"; | ||||||
| import { SocketRole } from "./smartsocket.classes.socketrole"; | import { SocketRole } from "./smartsocket.classes.socketrole"; | ||||||
|  |  | ||||||
| export interface ISocketFunctionData { | // export interfaces | ||||||
|  |  | ||||||
|  | export interface ISocketFunctionRequestObject { | ||||||
|     functionName:string, |     functionName:string, | ||||||
|     functionData:any, |     argumentObject:any, | ||||||
|  |     shortId:string, | ||||||
|     responseTimeout?:number |     responseTimeout?:number | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | export interface ISocketFunctionResponseObject { | ||||||
|  |     shortId:string; | ||||||
|  |     argumentObject:any; | ||||||
|  | }; | ||||||
|  |  | ||||||
| export interface SocketFunctionOptions { | export interface SocketFunctionOptions { | ||||||
|     name: string; |     name: string; | ||||||
|     func: any; |     func: any; | ||||||
|     roles: SocketRole[]; // all roles that are allowed to execute a SocketFunction |     roles: SocketRole[]; // all roles that are allowed to execute a SocketFunction | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | // export classes | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * class SocketFunction respresents a function that can be transparently called using a SocketConnection | ||||||
|  |  */ | ||||||
| export class SocketFunction { | export class SocketFunction { | ||||||
|     name: string; |     name: string; | ||||||
|     func: any; |     func: any; | ||||||
| @@ -41,9 +54,9 @@ export class SocketFunction { | |||||||
|     } |     } | ||||||
|      |      | ||||||
|     /** |     /** | ||||||
|      * handles a function request to this SocketFunction |      * invokes the function of this SocketFunction | ||||||
|      */ |      */ | ||||||
|     functionRequest(dataArg:ISocketFunctionData){ |     invoke(dataArg:ISocketFunctionRequestObject){ | ||||||
|          |          | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										43
									
								
								ts/smartsocket.classes.socketrequest.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								ts/smartsocket.classes.socketrequest.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | import * as plugins from "./smartsocket.plugins"; | ||||||
|  |  | ||||||
|  | // import interfaces | ||||||
|  | import { ISocketFunctionRequestObject, ISocketFunctionResponseObject } from "./smartsocket.classes.socketfunction"; | ||||||
|  |  | ||||||
|  | // import classes | ||||||
|  | import { Objectmap } from "lik"; | ||||||
|  | import { SocketFunction } from "./smartsocket.classes.socketfunction"; | ||||||
|  |  | ||||||
|  | // export interfaces | ||||||
|  | export type TSocketRequestStatus = "new" | "pending" | "finished"; | ||||||
|  | export type TSocketRequestSide = "requesting" | "responding"; | ||||||
|  |  | ||||||
|  | export interface SocketRequestConstructorOptions { | ||||||
|  |     side: TSocketRequestSide; | ||||||
|  |     shortid: string; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | //export objects | ||||||
|  | export let allRequestingSocketRequests = new Objectmap<SocketRequest>(); | ||||||
|  | export let allRespondingSocketRequests = new Objectmap<SocketRequest>(); | ||||||
|  |  | ||||||
|  | // export classes | ||||||
|  | export class SocketRequest { | ||||||
|  |     status: TSocketRequestStatus = "new"; | ||||||
|  |     side: TSocketRequestSide; | ||||||
|  |     shortid: string; | ||||||
|  |     constructor(optionsArg: SocketRequestConstructorOptions) { | ||||||
|  |         this.side = optionsArg.side; | ||||||
|  |         this.shortid = optionsArg.shortid; | ||||||
|  |         if(this.side === "requesting"){ | ||||||
|  |             allRequestingSocketRequests.add(this); | ||||||
|  |         } else { | ||||||
|  |             allRespondingSocketRequests.add(this); | ||||||
|  |         }; | ||||||
|  |     }; | ||||||
|  |     respond(dataArg:ISocketFunctionResponseObject){ | ||||||
|  |  | ||||||
|  |     } | ||||||
|  |     private _dispatch(){ // note: dispatch is private as it will be fired from the constructor | ||||||
|  |          | ||||||
|  |     } | ||||||
|  | }; | ||||||
| @@ -2,6 +2,7 @@ import "typings-global"; | |||||||
| export import beautylog = require("beautylog"); | export import beautylog = require("beautylog"); | ||||||
| export import lik  = require("lik"); | export import lik  = require("lik"); | ||||||
| export import q = require("q"); | export import q = require("q"); | ||||||
|  | export import shortid = require("shortid"); | ||||||
| export import socketIo = require("socket.io"); | export import socketIo = require("socket.io"); | ||||||
| export import socketIoClient = require("socket.io-client"); | export import socketIoClient = require("socket.io-client"); | ||||||
| export import taskbuffer = require("taskbuffer"); | export import taskbuffer = require("taskbuffer"); | ||||||
		Reference in New Issue
	
	Block a user