unit tests, and some cleaning up

This commit is contained in:
Josh Burman
2019-03-14 10:14:42 -04:00
parent 501a14d713
commit 21f77fa4c3
134 changed files with 16787 additions and 359 deletions

View File

@ -0,0 +1,37 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="d5a5c0b1c501b10faedee0bc82acc612e2afecb4";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:11},end:{line:3,column:40}},"2":{start:{line:4,column:13},end:{line:4,column:35}},"3":{start:{line:5,column:12},end:{line:5,column:28}},"4":{start:{line:6,column:16},end:{line:6,column:29}},"5":{start:{line:7,column:10},end:{line:7,column:34}},"6":{start:{line:8,column:13},end:{line:8,column:33}},"7":{start:{line:9,column:11},end:{line:9,column:25}},"8":{start:{line:10,column:10},end:{line:10,column:67}},"9":{start:{line:11,column:15},end:{line:11,column:33}},"10":{start:{line:15,column:0},end:{line:50,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:15,column:24},end:{line:15,column:25}},loc:{start:{line:15,column:36},end:{line:50,column:1}},line:15}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});var exec=(cov_h9a3mwwe1.s[1]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[2]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[3]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[4]++,require('ws'));var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));var server=(cov_h9a3mwwe1.s[6]++,require('../server'));var name=(cov_h9a3mwwe1.s[7]++,'test channel');var url=(cov_h9a3mwwe1.s[8]++,`wss://${app.hostname}:${app.port}?token=${app.devToken}`);var wsClient=(cov_h9a3mwwe1.s[9]++,new WebSocket(url));var channel;// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[10]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAGA,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,42 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="4d8f0fc7ce68fac26e9178a0ef3264e5c0687664";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:11},end:{line:3,column:40}},"2":{start:{line:4,column:13},end:{line:4,column:35}},"3":{start:{line:5,column:12},end:{line:5,column:28}},"4":{start:{line:6,column:16},end:{line:6,column:29}},"5":{start:{line:7,column:10},end:{line:7,column:34}},"6":{start:{line:15,column:0},end:{line:50,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:15,column:24},end:{line:15,column:25}},loc:{start:{line:15,column:36},end:{line:50,column:1}},line:15}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});var exec=(cov_h9a3mwwe1.s[1]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[2]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[3]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[4]++,require('ws'));var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));// var server = require('../server');
// var name: string = 'test channel';
// var url: string = `wss://${app.hostname}:${app.port}?token=${app.devToken}`;
// var wsClient = new WebSocket(url);
// var channel: ChannelBase;
// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[6]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAGA,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,qCAAqC;AAErC,qCAAqC;AACrC,+EAA+E;AAC/E,qCAAqC;AACrC,4BAA4B;AAC5B,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAAA,yDAAkD;AAClD,sDAA+C;AAE/C,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAClD,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEnC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,IAAI,MAAM,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;AACzD,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AACrC,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,MAAM,CAAE,cAAY,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,+CAA+C;QAC/C,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,KAAK,CAAE,cAAY,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,38 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="68e52daa9db4e6b4d68f38008a1b8576c8b6849d";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:11},end:{line:3,column:40}},"2":{start:{line:4,column:13},end:{line:4,column:35}},"3":{start:{line:5,column:12},end:{line:5,column:28}},"4":{start:{line:6,column:16},end:{line:6,column:29}},"5":{start:{line:7,column:10},end:{line:7,column:34}},"6":{start:{line:8,column:13},end:{line:8,column:33}},"7":{start:{line:9,column:11},end:{line:9,column:25}},"8":{start:{line:11,column:10},end:{line:11,column:367}},"9":{start:{line:12,column:15},end:{line:12,column:33}},"10":{start:{line:16,column:0},end:{line:51,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:16,column:24},end:{line:16,column:25}},loc:{start:{line:16,column:36},end:{line:51,column:1}},line:16}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});var exec=(cov_h9a3mwwe1.s[1]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[2]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[3]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[4]++,require('ws'));var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));var server=(cov_h9a3mwwe1.s[6]++,require('../server'));var name=(cov_h9a3mwwe1.s[7]++,'test channel');// var url: string = `wss://ysbraid.localhost:8443?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6InRlc3QiLCJjbGllbnRfdHlwZSI6InNpdGUiLCJ1c2VyX3R5cGUiOiJ1c2VyIiwidXNlcl9pZCI6MjAwLCJjaGFubmVsIjoidGVzdF9jaGFubmVsIn0sImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5KNCov_EW1cycT4Ay0oSvk4Z4PHFedd3bWOyqkHHTBQ`;
var url=(cov_h9a3mwwe1.s[8]++,"wss://ysbraid.localhost:8443?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6Im1ocyIsImNsaWVudF90eXBlIjoic2l0ZSIsInVzZXJfdHlwZSI6InVzZXIiLCJ1c2VyX2lkIjoxMjUsImNoYW5uZWwiOiJtaHNfMTIzOSJ9LCJleHAiOjE1NTI4NDYzOTQsImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5a_s8rgln4rwhVqJLcSS9Uw7yw1_PmYgslWKZllgK6g");var wsClient=(cov_h9a3mwwe1.s[9]++,new WebSocket(url));var channel;// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[10]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAGA,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,2WAA2W;AAC3W,IAAI,GAAG,GAAW,qWAAqW,CAAC;AACxX,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,43 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="558185a080af0ed59a3e157c724f2d28ab4e47f6";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:4,column:11},end:{line:4,column:40}},"2":{start:{line:5,column:13},end:{line:5,column:35}},"3":{start:{line:6,column:12},end:{line:6,column:28}},"4":{start:{line:7,column:16},end:{line:7,column:29}},"5":{start:{line:8,column:10},end:{line:8,column:34}},"6":{start:{line:16,column:0},end:{line:51,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:16,column:24},end:{line:16,column:25}},loc:{start:{line:16,column:36},end:{line:51,column:1}},line:16}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});// import ChannelManager from '../channelManager';
var exec=(cov_h9a3mwwe1.s[1]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[2]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[3]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[4]++,require('ws'));var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));// var server = require('../server');
// var name: string = 'test channel';
// var url: string = `wss://${app.hostname}:${app.port}?token=${app.devToken}`;
// var wsClient = new WebSocket(url);
// var channel: ChannelBase;
// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[6]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAEA,kDAAkD;AAElD,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,qCAAqC;AAErC,qCAAqC;AACrC,+EAA+E;AAC/E,qCAAqC;AACrC,4BAA4B;AAC5B,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,3 @@
"use strict";var cov_1hb41h5zwr=function(){var path="/Users/josh.burman/Projects/braid/dist/server/routes.js";var hash="c4d590f2c6dcf78a827ead7408903c087e1921c2";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/routes.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:13},end:{line:3,column:28}},"2":{start:{line:4,column:16},end:{line:4,column:34}},"3":{start:{line:5,column:10},end:{line:5,column:33}},"4":{start:{line:6,column:18},end:{line:15,column:1}},"5":{start:{line:8,column:8},end:{line:13,column:9}},"6":{start:{line:9,column:12},end:{line:9,column:33}},"7":{start:{line:12,column:12},end:{line:12,column:74}},"8":{start:{line:16,column:13},end:{line:16,column:29}},"9":{start:{line:18,column:20},end:{line:18,column:58}},"10":{start:{line:19,column:0},end:{line:19,column:53}},"11":{start:{line:21,column:21},end:{line:21,column:60}},"12":{start:{line:22,column:0},end:{line:22,column:80}},"13":{start:{line:23,column:0},end:{line:23,column:24}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:7,column:12},end:{line:7,column:13}},loc:{start:{line:7,column:34},end:{line:14,column:5}},line:7}},branchMap:{"0":{loc:{start:{line:8,column:8},end:{line:13,column:9}},type:"if",locations:[{start:{line:8,column:8},end:{line:13,column:9}},{start:{line:8,column:8},end:{line:13,column:9}}],line:8}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0},f:{"0":0},b:{"0":[0,0]},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_1hb41h5zwr.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const cors=(cov_1hb41h5zwr.s[1]++,require("cors"));const express=(cov_1hb41h5zwr.s[2]++,require("express"));var app=(cov_1hb41h5zwr.s[3]++,require('./config/app'));var corsOptions=(cov_1hb41h5zwr.s[4]++,{origin:(origin,callback)=>{cov_1hb41h5zwr.f[0]++;cov_1hb41h5zwr.s[5]++;if(app.whitelist.indexOf(origin)!==-1){cov_1hb41h5zwr.b[0][0]++;cov_1hb41h5zwr.s[6]++;callback(null,true);}else{cov_1hb41h5zwr.b[0][1]++;cov_1hb41h5zwr.s[7]++;callback(new Error(`Not allowed by CORS. Origin: ${origin}`));}}});var router=(cov_1hb41h5zwr.s[8]++,express.Router());//application
var appController=(cov_1hb41h5zwr.s[9]++,require('./controllers/appController'));cov_1hb41h5zwr.s[10]++;router.route(['/','/home']).get(appController.home);//auth
var authController=(cov_1hb41h5zwr.s[11]++,require('./controllers/authController'));cov_1hb41h5zwr.s[12]++;router.route('/auth/user').post(cors(corsOptions),authController.confirmToken);cov_1hb41h5zwr.s[13]++;module.exports=router;//# sourceMappingURL=routes.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,mCAAmC;AAEnC,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AACjC,IAAI,WAAW,GAAG;IAChB,MAAM,EAAE,CAAC,MAAc,EAAE,QAAkB,EAAE,EAAE;QAC7C,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YACxC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SACrB;aAAM;YACL,QAAQ,CAAC,IAAI,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC,CAAA;SAC9D;IACH,CAAC;CACF,CAAA;AAED,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AAE9B,aAAa;AACb,IAAI,aAAa,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAC3D,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAEpD,MAAM;AACN,IAAI,cAAc,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAC7D,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;AAEhF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC"}

View File

@ -0,0 +1,13 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="1d390f7f6f20afb0b77ddae87a3c8c87eeb22334";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:21},end:{line:3,column:53}},"2":{start:{line:5,column:11},end:{line:5,column:40}},"3":{start:{line:6,column:13},end:{line:6,column:35}},"4":{start:{line:7,column:12},end:{line:7,column:28}},"5":{start:{line:8,column:16},end:{line:8,column:29}},"6":{start:{line:9,column:10},end:{line:9,column:34}},"7":{start:{line:10,column:13},end:{line:10,column:33}},"8":{start:{line:11,column:11},end:{line:11,column:25}},"9":{start:{line:12,column:10},end:{line:12,column:67}},"10":{start:{line:13,column:15},end:{line:13,column:33}},"11":{start:{line:15,column:11},end:{line:15,column:118}},"12":{start:{line:16,column:13},end:{line:16,column:53}},"13":{start:{line:17,column:0},end:{line:52,column:3}},"14":{start:{line:19,column:4},end:{line:22,column:7}},"15":{start:{line:20,column:8},end:{line:20,column:53}},"16":{start:{line:21,column:8},end:{line:21,column:45}},"17":{start:{line:23,column:4},end:{line:26,column:7}},"18":{start:{line:24,column:21},end:{line:24,column:46}},"19":{start:{line:25,column:8},end:{line:25,column:53}},"20":{start:{line:27,column:4},end:{line:30,column:7}},"21":{start:{line:28,column:21},end:{line:28,column:46}},"22":{start:{line:29,column:8},end:{line:29,column:52}},"23":{start:{line:31,column:4},end:{line:35,column:7}},"24":{start:{line:32,column:20},end:{line:32,column:51}},"25":{start:{line:33,column:21},end:{line:33,column:41}},"26":{start:{line:34,column:8},end:{line:34,column:41}},"27":{start:{line:36,column:4},end:{line:44,column:7}},"28":{start:{line:45,column:4},end:{line:51,column:7}},"29":{start:{line:49,column:21},end:{line:49,column:69}},"30":{start:{line:50,column:8},end:{line:50,column:53}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:17,column:24},end:{line:17,column:25}},loc:{start:{line:17,column:36},end:{line:52,column:1}},line:17},"1":{name:"(anonymous_1)",decl:{start:{line:19,column:47},end:{line:19,column:48}},loc:{start:{line:19,column:59},end:{line:22,column:5}},line:19},"2":{name:"(anonymous_2)",decl:{start:{line:23,column:41},end:{line:23,column:42}},loc:{start:{line:23,column:53},end:{line:26,column:5}},line:23},"3":{name:"(anonymous_3)",decl:{start:{line:27,column:73},end:{line:27,column:74}},loc:{start:{line:27,column:85},end:{line:30,column:5}},line:27},"4":{name:"(anonymous_4)",decl:{start:{line:31,column:31},end:{line:31,column:32}},loc:{start:{line:31,column:43},end:{line:35,column:5}},line:31},"5":{name:"(anonymous_5)",decl:{start:{line:36,column:47},end:{line:36,column:48}},loc:{start:{line:36,column:59},end:{line:44,column:5}},line:36},"6":{name:"(anonymous_6)",decl:{start:{line:45,column:49},end:{line:45,column:50}},loc:{start:{line:45,column:61},end:{line:51,column:5}},line:45}},branchMap:{"0":{loc:{start:{line:33,column:21},end:{line:33,column:41}},type:"cond-expr",locations:[{start:{line:33,column:29},end:{line:33,column:33}},{start:{line:33,column:36},end:{line:33,column:41}}],line:33}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},b:{"0":[0,0]},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const clientBase_1=(cov_h9a3mwwe1.s[1]++,require("../clients/clientBase"));// import ChannelManager from '../channelManager';
var exec=(cov_h9a3mwwe1.s[2]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[3]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[4]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[5]++,require('ws'));var app=(cov_h9a3mwwe1.s[6]++,require('../config/app'));var server=(cov_h9a3mwwe1.s[7]++,require('../server'));var name=(cov_h9a3mwwe1.s[8]++,'test channel');var url=(cov_h9a3mwwe1.s[9]++,`wss://${app.hostname}:${app.port}?token=${app.devToken}`);var wsClient=(cov_h9a3mwwe1.s[10]++,new WebSocket(url));var channel;var data=(cov_h9a3mwwe1.s[11]++,{'client':'test','client_type':'site','user_id':125,'user_type':'user','channel':'test channel'});var client=(cov_h9a3mwwe1.s[12]++,new clientBase_1.default(data,wsClient));cov_h9a3mwwe1.s[13]++;describe('ChannelBase',function(){cov_h9a3mwwe1.f[0]++;cov_h9a3mwwe1.s[14]++;// before ( function () { server.startServer; });
it('should create a class of ChannelBase',function(){cov_h9a3mwwe1.f[1]++;cov_h9a3mwwe1.s[15]++;channel=server.channelManager.sadsdf(name);cov_h9a3mwwe1.s[16]++;expect(channel.id).to.be.equal(name);});cov_h9a3mwwe1.s[17]++;it('should add a client to channel',function(){cov_h9a3mwwe1.f[2]++;var result=(cov_h9a3mwwe1.s[18]++,channel.addClient(client));cov_h9a3mwwe1.s[19]++;expect(result.status).to.be.equal('success');});cov_h9a3mwwe1.s[20]++;it('should find a client when trying to add said client to channel',function(){cov_h9a3mwwe1.f[3]++;var result=(cov_h9a3mwwe1.s[21]++,channel.addClient(client));cov_h9a3mwwe1.s[22]++;expect(result.status).to.be.equal('notice');});cov_h9a3mwwe1.s[23]++;it('should find a client',function(){cov_h9a3mwwe1.f[4]++;var exist=(cov_h9a3mwwe1.s[24]++,channel.clientExists(client.id));var result=(cov_h9a3mwwe1.s[25]++,exist?(cov_h9a3mwwe1.b[0][0]++,true):(cov_h9a3mwwe1.b[0][1]++,false));cov_h9a3mwwe1.s[26]++;expect(result).to.be.equal(true);});cov_h9a3mwwe1.s[27]++;it('should broadcast a message to others',function(){// var wstClient = new WebSocketClient();
// var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// channel.addClient(client);
// channel.addClient(teacher);
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
cov_h9a3mwwe1.f[5]++;});cov_h9a3mwwe1.s[28]++;it('should not broadcast a message to self',function(){cov_h9a3mwwe1.f[6]++;// var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// return message;
// })
var result=(cov_h9a3mwwe1.s[29]++,channel.broadcastMessage(client,'test message'));cov_h9a3mwwe1.s[30]++;expect(result.status).to.be.equal('success');});});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AACA,sDAA+C;AAC/C,kDAAkD;AAElD,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAC1H,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,iIAAiI;QACjI,oBAAoB;QACpB,KAAK;QACL,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1 @@
"use strict";var cov_2gwmauqsnp=function(){var path="/Users/josh.burman/Projects/braid/dist/server/controllers/appController.js";var hash="8493a8aacdbdcb9a24015c3d3540033d7988cd1a";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/controllers/appController.js",statementMap:{"0":{start:{line:2,column:10},end:{line:2,column:34}},"1":{start:{line:3,column:0},end:{line:7,column:2}},"2":{start:{line:5,column:8},end:{line:5,column:53}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:4,column:10},end:{line:4,column:11}},loc:{start:{line:4,column:24},end:{line:6,column:5}},line:4}},branchMap:{},s:{"0":0,"1":0,"2":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var app=(cov_2gwmauqsnp.s[0]++,require('../config/app'));cov_2gwmauqsnp.s[1]++;module.exports={home:(req,res)=>{cov_2gwmauqsnp.f[0]++;cov_2gwmauqsnp.s[2]++;res.send(`Welcome to Braid v${app.version}`);}};//# sourceMappingURL=appController.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"appController.js","sourceRoot":"","sources":["../../../src/controllers/appController.ts"],"names":[],"mappings":";AAAA,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAElC,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE;QAC5B,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9C,CAAC;CACF,CAAA"}

View File

@ -0,0 +1 @@
"use strict";var cov_240eder9dd=function(){var path="/Users/josh.burman/Projects/braid/dist/server/config/app.js";var hash="6a61ae0c1c6bc8407a3235ea60cb4230cd775842";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/config/app.js",statementMap:{"0":{start:{line:2,column:0},end:{line:17,column:2}}},fnMap:{},branchMap:{"0":{loc:{start:{line:4,column:16},end:{line:4,column:65}},type:"binary-expr",locations:[{start:{line:4,column:16},end:{line:4,column:37}},{start:{line:4,column:41},end:{line:4,column:65}}],line:4},"1":{loc:{start:{line:5,column:12},end:{line:5,column:40}},type:"binary-expr",locations:[{start:{line:5,column:12},end:{line:5,column:30}},{start:{line:5,column:34},end:{line:5,column:40}}],line:5},"2":{loc:{start:{line:7,column:10},end:{line:7,column:34}},type:"binary-expr",locations:[{start:{line:7,column:10},end:{line:7,column:26}},{start:{line:7,column:30},end:{line:7,column:34}}],line:7},"3":{loc:{start:{line:8,column:14},end:{line:8,column:57}},type:"binary-expr",locations:[{start:{line:8,column:14},end:{line:8,column:34}},{start:{line:8,column:38},end:{line:8,column:57}}],line:8},"4":{loc:{start:{line:9,column:17},end:{line:9,column:57}},type:"binary-expr",locations:[{start:{line:9,column:17},end:{line:9,column:40}},{start:{line:9,column:44},end:{line:9,column:57}}],line:9},"5":{loc:{start:{line:10,column:15},end:{line:10,column:47}},type:"binary-expr",locations:[{start:{line:10,column:15},end:{line:10,column:36}},{start:{line:10,column:40},end:{line:10,column:47}}],line:10}},s:{"0":0},f:{},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_240eder9dd.s[0]++;module.exports={version:'0.7.1',whitelist:((cov_240eder9dd.b[0][0]++,process.env.WHITELIST)||(cov_240eder9dd.b[0][1]++,"http://admin.localhost")).split(','),secret:(cov_240eder9dd.b[1][0]++,process.env.SECRET)||(cov_240eder9dd.b[1][1]++,"test"),devToken:'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6Im1ocyIsImNsaWVudF90eXBlIjoic2l0ZSIsInVzZXJfdHlwZSI6InVzZXIiLCJ1c2VyX2lkIjoxMjUsImNoYW5uZWwiOiJtaHNfMTIzOSJ9LCJleHAiOjE1NTI4NDYzOTQsImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5a_s8rgln4rwhVqJLcSS9Uw7yw1_PmYgslWKZllgK6g',port:(cov_240eder9dd.b[2][0]++,process.env.PORT)||(cov_240eder9dd.b[2][1]++,8443),hostname:(cov_240eder9dd.b[3][0]++,process.env.HOSTNAME)||(cov_240eder9dd.b[3][1]++,'ysbraid.localhost'),environment:(cov_240eder9dd.b[4][0]++,process.env.ENVIRONMENT)||(cov_240eder9dd.b[4][1]++,'development'),log_level:(cov_240eder9dd.b[5][0]++,process.env.LOG_LEVEL)||(cov_240eder9dd.b[5][1]++,'debug'),signOptions:{issuer:'Yardstick Software',subject:'Braid JWT',audience:'internal',algorithm:["HS256"]}};//# sourceMappingURL=app.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/config/app.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,OAAO,EAAG,OAAO;IACjB,SAAS,EAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,wBAAwB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1E,MAAM,EAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM;IACrC,QAAQ,EAAE,kUAAkU;IAC5U,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI;IAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,mBAAmB;IACrD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa;IACrD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO;IAC3C,WAAW,EAAG;QACZ,MAAM,EAAG,oBAAoB;QAC7B,OAAO,EAAG,WAAW;QACrB,QAAQ,EAAG,UAAU;QACrB,SAAS,EAAG,CAAC,OAAO,CAAC;KACtB;CACF,CAAA"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAAA,yDAAkD;AAClD,sDAA+C;AAE/C,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,iIAAiI;QACjI,oBAAoB;QACpB,KAAK;QACL,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,54 @@
"use strict";// import * as WebSocket from 'ws';
// import ClientBase from '../clients/clientBase';
// import MHSClient from '../clients/sites/mhsClient';
// import ClientManager from '../clientManager';
// var expect = require('chai').expect;
// var assert = require('chai').assert;
// var sinon = require('sinon');
// var name: string = 'test channel';
// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': name }
// var WebSocketClient = require('websocket').client;
// var wsClient = new WebSocketClient();
// var client: ClientBase = new ClientBase(data, wsClient);
// let clientManager = new ClientManager();
// describe('ClientManager', function () {
// it('should add a client', function () {
// var result = clientManager.addClient(data, wsClient);
// expect(result.id).to.be.equal(125);
// });
// it('should get clients of type', function () {
// var result = clientManager.clientsOfType('site');
// assert(result.length > 0, 'returns one client');
// });
// it('should see client exists', function () {
// var exists = clientManager.clientExists(data.user_id);
// var result = exists ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should see client does not exists', function () {
// var exists = clientManager.clientExists(200);
// var result = exists ? true : false;
// expect(result).to.be.equal(false);
// });
// it('should get an existing client', function () {
// var exists = clientManager.getClient(data.user_id);
// var result = exists ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should not get an existing client', function () {
// var exists = clientManager.getClient(200);
// var result = exists ? true : false;
// expect(result).to.be.equal(false);
// });
// it('should add client of type MHSClient', function () {
// var data: any = { 'client': 'mhs', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': name }
// var result = clientManager.getClientType(data, wsClient);
// expect(result.clientType()).to.be.equal('mhs');
// });
// // it('should remove a client', function () {
// // clientManager.removeClient(data.user_id);
// // expect(clientManager.clients.length).to.be.equal(0);
// // });
// });
//# sourceMappingURL=clientManager.spec.js.map
var cov_1wd6f9mhef=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/clientManager.spec.js";var hash="58341126b5dbf87407cd4141f560d34c63bb7c65";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/clientManager.spec.js",statementMap:{},fnMap:{},branchMap:{},s:{},f:{},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();

View File

@ -0,0 +1 @@
{"version":3,"file":"clientManager.spec.js","sourceRoot":"","sources":["../../../src/test/clientManager.spec.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,kDAAkD;AAClD,sDAAsD;AACtD,gDAAgD;AAEhD,uCAAuC;AACvC,uCAAuC;AACvC,gCAAgC;AAEhC,qCAAqC;AACrC,mHAAmH;AACnH,qDAAqD;AACrD,wCAAwC;AACxC,2DAA2D;AAE3D,2CAA2C;AAE3C,0CAA0C;AAC1C,4CAA4C;AAC5C,4DAA4D;AAC5D,0CAA0C;AAC1C,QAAQ;AAER,mDAAmD;AACnD,wDAAwD;AACxD,uDAAuD;AACvD,QAAQ;AAER,iDAAiD;AACjD,6DAA6D;AAC7D,0CAA0C;AAC1C,wCAAwC;AACxC,QAAQ;AAER,0DAA0D;AAC1D,oDAAoD;AACpD,0CAA0C;AAC1C,yCAAyC;AACzC,QAAQ;AAER,sDAAsD;AACtD,0DAA0D;AAC1D,0CAA0C;AAC1C,wCAAwC;AACxC,QAAQ;AAER,0DAA0D;AAC1D,iDAAiD;AACjD,0CAA0C;AAC1C,yCAAyC;AACzC,QAAQ;AAER,4DAA4D;AAC5D,sHAAsH;AACtH,gEAAgE;AAChE,sDAAsD;AACtD,QAAQ;AAER,kDAAkD;AAClD,mDAAmD;AACnD,8DAA8D;AAC9D,WAAW;AACX,MAAM"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAAA,yDAAkD;AAClD,sDAA+C;AAE/C,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAClD,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEnC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AACrC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,iIAAiI;QACjI,oBAAoB;QACpB,KAAK;QACL,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}

View File

@ -0,0 +1 @@
"use strict";var cov_240eder9dd=function(){var path="/Users/josh.burman/Projects/braid/dist/server/config/app.js";var hash="6a61ae0c1c6bc8407a3235ea60cb4230cd775842";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/config/app.js",statementMap:{"0":{start:{line:2,column:0},end:{line:17,column:2}}},fnMap:{},branchMap:{"0":{loc:{start:{line:4,column:16},end:{line:4,column:65}},type:"binary-expr",locations:[{start:{line:4,column:16},end:{line:4,column:37}},{start:{line:4,column:41},end:{line:4,column:65}}],line:4},"1":{loc:{start:{line:5,column:12},end:{line:5,column:40}},type:"binary-expr",locations:[{start:{line:5,column:12},end:{line:5,column:30}},{start:{line:5,column:34},end:{line:5,column:40}}],line:5},"2":{loc:{start:{line:7,column:10},end:{line:7,column:34}},type:"binary-expr",locations:[{start:{line:7,column:10},end:{line:7,column:26}},{start:{line:7,column:30},end:{line:7,column:34}}],line:7},"3":{loc:{start:{line:8,column:14},end:{line:8,column:57}},type:"binary-expr",locations:[{start:{line:8,column:14},end:{line:8,column:34}},{start:{line:8,column:38},end:{line:8,column:57}}],line:8},"4":{loc:{start:{line:9,column:17},end:{line:9,column:57}},type:"binary-expr",locations:[{start:{line:9,column:17},end:{line:9,column:40}},{start:{line:9,column:44},end:{line:9,column:57}}],line:9},"5":{loc:{start:{line:10,column:15},end:{line:10,column:47}},type:"binary-expr",locations:[{start:{line:10,column:15},end:{line:10,column:36}},{start:{line:10,column:40},end:{line:10,column:47}}],line:10}},s:{"0":0},f:{},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_240eder9dd.s[0]++;module.exports={version:'0.7.1',whitelist:((cov_240eder9dd.b[0][0]++,process.env.WHITELIST)||(cov_240eder9dd.b[0][1]++,"http://admin.localhost")).split(','),secret:(cov_240eder9dd.b[1][0]++,process.env.SECRET)||(cov_240eder9dd.b[1][1]++,"test"),devToken:'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6InRlc3QiLCJjbGllbnRfdHlwZSI6InNpdGUiLCJ1c2VyX3R5cGUiOiJ1c2VyIiwidXNlcl9pZCI6MjAwLCJjaGFubmVsIjoidGVzdF9jaGFubmVsIn0sImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5KNCov_EW1cycT4Ay0oSvk4Z4PHFedd3bWOyqkHHTBQ',port:(cov_240eder9dd.b[2][0]++,process.env.PORT)||(cov_240eder9dd.b[2][1]++,8443),hostname:(cov_240eder9dd.b[3][0]++,process.env.HOSTNAME)||(cov_240eder9dd.b[3][1]++,'ysbraid.localhost'),environment:(cov_240eder9dd.b[4][0]++,process.env.ENVIRONMENT)||(cov_240eder9dd.b[4][1]++,'development'),log_level:(cov_240eder9dd.b[5][0]++,process.env.LOG_LEVEL)||(cov_240eder9dd.b[5][1]++,'debug'),signOptions:{issuer:'Yardstick Software',subject:'Braid JWT',audience:'internal',algorithm:["HS256"]}};//# sourceMappingURL=app.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/config/app.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,OAAO,EAAG,OAAO;IACjB,SAAS,EAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,wBAAwB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1E,MAAM,EAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM;IACrC,QAAQ,EAAE,kTAAkT;IAC5T,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI;IAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,mBAAmB;IACrD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa;IACrD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO;IAC3C,WAAW,EAAG;QACZ,MAAM,EAAG,oBAAoB;QAC7B,OAAO,EAAG,WAAW;QACrB,QAAQ,EAAG,UAAU;QACrB,SAAS,EAAG,CAAC,OAAO,CAAC;KACtB;CACF,CAAA"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":"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"}

View File

@ -0,0 +1,38 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="afd95f93e5b730e5fc84aaa29ba8fc51245618fa";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:18},end:{line:3,column:31}},"2":{start:{line:4,column:11},end:{line:4,column:40}},"3":{start:{line:5,column:13},end:{line:5,column:35}},"4":{start:{line:6,column:12},end:{line:6,column:28}},"5":{start:{line:8,column:10},end:{line:8,column:34}},"6":{start:{line:9,column:11},end:{line:9,column:25}},"7":{start:{line:11,column:10},end:{line:11,column:367}},"8":{start:{line:15,column:0},end:{line:54,column:3}},"9":{start:{line:17,column:4},end:{line:20,column:7}},"10":{start:{line:18,column:8},end:{line:18,column:38}},"11":{start:{line:19,column:23},end:{line:19,column:41}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:15,column:24},end:{line:15,column:25}},loc:{start:{line:15,column:36},end:{line:54,column:1}},line:15},"1":{name:"(anonymous_1)",decl:{start:{line:17,column:11},end:{line:17,column:12}},loc:{start:{line:17,column:23},end:{line:20,column:5}},line:17}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},f:{"0":0,"1":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const WebSocket=(cov_h9a3mwwe1.s[1]++,require("ws"));var exec=(cov_h9a3mwwe1.s[2]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[3]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[4]++,require('sinon'));// var WebSocket = require('ws');s
var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));var name=(cov_h9a3mwwe1.s[6]++,'test channel');// var url: string = `wss://ysbraid.localhost:8443?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6InRlc3QiLCJjbGllbnRfdHlwZSI6InNpdGUiLCJ1c2VyX3R5cGUiOiJ1c2VyIiwidXNlcl9pZCI6MjAwLCJjaGFubmVsIjoidGVzdF9jaGFubmVsIn0sImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5KNCov_EW1cycT4Ay0oSvk4Z4PHFedd3bWOyqkHHTBQ`;
var url=(cov_h9a3mwwe1.s[7]++,"wss://ysbraid.localhost:8443?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6Im1ocyIsImNsaWVudF90eXBlIjoic2l0ZSIsInVzZXJfdHlwZSI6InVzZXIiLCJ1c2VyX2lkIjoxMjUsImNoYW5uZWwiOiJtaHNfMTIzOSJ9LCJleHAiOjE1NTI4NDYzOTQsImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5a_s8rgln4rwhVqJLcSS9Uw7yw1_PmYgslWKZllgK6g");var channel;// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[8]++;describe('ChannelBase',function(){cov_h9a3mwwe1.f[0]++;var server;cov_h9a3mwwe1.s[9]++;before(function(){cov_h9a3mwwe1.f[1]++;cov_h9a3mwwe1.s[10]++;server=require('../server');var wsClient=(cov_h9a3mwwe1.s[11]++,new WebSocket(url));});// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAEA,gCAAgC;AAEhC,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,kCAAkC;AAClC,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEnC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,2WAA2W;AAC3W,IAAI,GAAG,GAAW,qWAAqW,CAAC;AACxX,IAAI,OAAoB,CAAC;AACzB,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAI,MAAW,CAAC;IAChB,MAAM,CAAG;QACP,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9B,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,13 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="b0f58ae25bda40fbcab69503d969fb1beaaf0382";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:21},end:{line:3,column:53}},"2":{start:{line:5,column:11},end:{line:5,column:40}},"3":{start:{line:6,column:13},end:{line:6,column:35}},"4":{start:{line:7,column:12},end:{line:7,column:28}},"5":{start:{line:8,column:16},end:{line:8,column:29}},"6":{start:{line:9,column:10},end:{line:9,column:34}},"7":{start:{line:10,column:13},end:{line:10,column:33}},"8":{start:{line:11,column:11},end:{line:11,column:25}},"9":{start:{line:12,column:10},end:{line:12,column:67}},"10":{start:{line:13,column:15},end:{line:13,column:33}},"11":{start:{line:15,column:11},end:{line:15,column:118}},"12":{start:{line:16,column:13},end:{line:16,column:53}},"13":{start:{line:17,column:0},end:{line:52,column:3}},"14":{start:{line:19,column:4},end:{line:22,column:7}},"15":{start:{line:20,column:8},end:{line:20,column:60}},"16":{start:{line:21,column:8},end:{line:21,column:45}},"17":{start:{line:23,column:4},end:{line:26,column:7}},"18":{start:{line:24,column:21},end:{line:24,column:46}},"19":{start:{line:25,column:8},end:{line:25,column:53}},"20":{start:{line:27,column:4},end:{line:30,column:7}},"21":{start:{line:28,column:21},end:{line:28,column:46}},"22":{start:{line:29,column:8},end:{line:29,column:52}},"23":{start:{line:31,column:4},end:{line:35,column:7}},"24":{start:{line:32,column:20},end:{line:32,column:51}},"25":{start:{line:33,column:21},end:{line:33,column:41}},"26":{start:{line:34,column:8},end:{line:34,column:41}},"27":{start:{line:36,column:4},end:{line:44,column:7}},"28":{start:{line:45,column:4},end:{line:51,column:7}},"29":{start:{line:49,column:21},end:{line:49,column:69}},"30":{start:{line:50,column:8},end:{line:50,column:53}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:17,column:24},end:{line:17,column:25}},loc:{start:{line:17,column:36},end:{line:52,column:1}},line:17},"1":{name:"(anonymous_1)",decl:{start:{line:19,column:47},end:{line:19,column:48}},loc:{start:{line:19,column:59},end:{line:22,column:5}},line:19},"2":{name:"(anonymous_2)",decl:{start:{line:23,column:41},end:{line:23,column:42}},loc:{start:{line:23,column:53},end:{line:26,column:5}},line:23},"3":{name:"(anonymous_3)",decl:{start:{line:27,column:73},end:{line:27,column:74}},loc:{start:{line:27,column:85},end:{line:30,column:5}},line:27},"4":{name:"(anonymous_4)",decl:{start:{line:31,column:31},end:{line:31,column:32}},loc:{start:{line:31,column:43},end:{line:35,column:5}},line:31},"5":{name:"(anonymous_5)",decl:{start:{line:36,column:47},end:{line:36,column:48}},loc:{start:{line:36,column:59},end:{line:44,column:5}},line:36},"6":{name:"(anonymous_6)",decl:{start:{line:45,column:49},end:{line:45,column:50}},loc:{start:{line:45,column:61},end:{line:51,column:5}},line:45}},branchMap:{"0":{loc:{start:{line:33,column:21},end:{line:33,column:41}},type:"cond-expr",locations:[{start:{line:33,column:29},end:{line:33,column:33}},{start:{line:33,column:36},end:{line:33,column:41}}],line:33}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},b:{"0":[0,0]},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const clientBase_1=(cov_h9a3mwwe1.s[1]++,require("../clients/clientBase"));// import ChannelManager from '../channelManager';
var exec=(cov_h9a3mwwe1.s[2]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[3]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[4]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[5]++,require('ws'));var app=(cov_h9a3mwwe1.s[6]++,require('../config/app'));var server=(cov_h9a3mwwe1.s[7]++,require('../server'));var name=(cov_h9a3mwwe1.s[8]++,'test channel');var url=(cov_h9a3mwwe1.s[9]++,`wss://${app.hostname}:${app.port}?token=${app.devToken}`);var wsClient=(cov_h9a3mwwe1.s[10]++,new WebSocket(url));var channel;var data=(cov_h9a3mwwe1.s[11]++,{'client':'test','client_type':'site','user_id':125,'user_type':'user','channel':'test channel'});var client=(cov_h9a3mwwe1.s[12]++,new clientBase_1.default(data,wsClient));cov_h9a3mwwe1.s[13]++;describe('ChannelBase',function(){cov_h9a3mwwe1.f[0]++;cov_h9a3mwwe1.s[14]++;// before ( function () { server.startServer; });
it('should create a class of ChannelBase',function(){cov_h9a3mwwe1.f[1]++;cov_h9a3mwwe1.s[15]++;channel=server.channelManager.channelExists(name);cov_h9a3mwwe1.s[16]++;expect(channel.id).to.be.equal(name);});cov_h9a3mwwe1.s[17]++;it('should add a client to channel',function(){cov_h9a3mwwe1.f[2]++;var result=(cov_h9a3mwwe1.s[18]++,channel.addClient(client));cov_h9a3mwwe1.s[19]++;expect(result.status).to.be.equal('success');});cov_h9a3mwwe1.s[20]++;it('should find a client when trying to add said client to channel',function(){cov_h9a3mwwe1.f[3]++;var result=(cov_h9a3mwwe1.s[21]++,channel.addClient(client));cov_h9a3mwwe1.s[22]++;expect(result.status).to.be.equal('notice');});cov_h9a3mwwe1.s[23]++;it('should find a client',function(){cov_h9a3mwwe1.f[4]++;var exist=(cov_h9a3mwwe1.s[24]++,channel.clientExists(client.id));var result=(cov_h9a3mwwe1.s[25]++,exist?(cov_h9a3mwwe1.b[0][0]++,true):(cov_h9a3mwwe1.b[0][1]++,false));cov_h9a3mwwe1.s[26]++;expect(result).to.be.equal(true);});cov_h9a3mwwe1.s[27]++;it('should broadcast a message to others',function(){// var wstClient = new WebSocketClient();
// var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// channel.addClient(client);
// channel.addClient(teacher);
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
cov_h9a3mwwe1.f[5]++;});cov_h9a3mwwe1.s[28]++;it('should not broadcast a message to self',function(){cov_h9a3mwwe1.f[6]++;// var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// return message;
// })
var result=(cov_h9a3mwwe1.s[29]++,channel.broadcastMessage(client,'test message'));cov_h9a3mwwe1.s[30]++;expect(result.status).to.be.equal('success');});});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AACA,sDAA+C;AAC/C,kDAAkD;AAElD,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAC1H,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,iIAAiI;QACjI,oBAAoB;QACpB,KAAK;QACL,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAAA,yDAAkD;AAClD,sDAA+C;AAE/C,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAClD,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEnC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AACrC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,2CAA2C;IAC3C,gIAAgI;IAChI,uEAAuE;IACvE,+BAA+B;IAC/B,gCAAgC;IAChC,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;IAEN,EAAE,CAAC,wCAAwC,EAAE;QAC3C,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,37 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="aba088e297b0691d8a9517b176dd843212448a27";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:11},end:{line:3,column:40}},"2":{start:{line:4,column:13},end:{line:4,column:35}},"3":{start:{line:5,column:12},end:{line:5,column:28}},"4":{start:{line:6,column:16},end:{line:6,column:29}},"5":{start:{line:7,column:10},end:{line:7,column:34}},"6":{start:{line:8,column:13},end:{line:8,column:33}},"7":{start:{line:9,column:11},end:{line:9,column:25}},"8":{start:{line:10,column:10},end:{line:10,column:356}},"9":{start:{line:11,column:15},end:{line:11,column:33}},"10":{start:{line:15,column:0},end:{line:50,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:15,column:24},end:{line:15,column:25}},loc:{start:{line:15,column:36},end:{line:50,column:1}},line:15}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});var exec=(cov_h9a3mwwe1.s[1]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[2]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[3]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[4]++,require('ws'));var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));var server=(cov_h9a3mwwe1.s[6]++,require('../server'));var name=(cov_h9a3mwwe1.s[7]++,'test channel');var url=(cov_h9a3mwwe1.s[8]++,`wss://${app.hostname}:${app.port}?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6InRlc3QiLCJjbGllbnRfdHlwZSI6InNpdGUiLCJ1c2VyX3R5cGUiOiJ1c2VyIiwidXNlcl9pZCI6MjAwLCJjaGFubmVsIjoidGVzdF9jaGFubmVsIn0sImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5KNCov_EW1cycT4Ay0oSvk4Z4PHFedd3bWOyqkHHTBQ`);var wsClient=(cov_h9a3mwwe1.s[9]++,new WebSocket(url));var channel;// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[10]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAGA,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,yTAAyT,CAAC;AAC7W,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,39 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="fde0ff071e915a256f767c8c02c7e97f611961f9";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:18},end:{line:3,column:31}},"2":{start:{line:4,column:11},end:{line:4,column:40}},"3":{start:{line:5,column:13},end:{line:5,column:35}},"4":{start:{line:6,column:12},end:{line:6,column:28}},"5":{start:{line:8,column:10},end:{line:8,column:34}},"6":{start:{line:9,column:13},end:{line:9,column:33}},"7":{start:{line:10,column:11},end:{line:10,column:25}},"8":{start:{line:12,column:10},end:{line:12,column:367}},"9":{start:{line:13,column:15},end:{line:13,column:33}},"10":{start:{line:17,column:0},end:{line:52,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:17,column:24},end:{line:17,column:25}},loc:{start:{line:17,column:36},end:{line:52,column:1}},line:17}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const WebSocket=(cov_h9a3mwwe1.s[1]++,require("ws"));var exec=(cov_h9a3mwwe1.s[2]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[3]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[4]++,require('sinon'));// var WebSocket = require('ws');s
var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));var server=(cov_h9a3mwwe1.s[6]++,require('../server'));var name=(cov_h9a3mwwe1.s[7]++,'test channel');// var url: string = `wss://ysbraid.localhost:8443?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6InRlc3QiLCJjbGllbnRfdHlwZSI6InNpdGUiLCJ1c2VyX3R5cGUiOiJ1c2VyIiwidXNlcl9pZCI6MjAwLCJjaGFubmVsIjoidGVzdF9jaGFubmVsIn0sImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5KNCov_EW1cycT4Ay0oSvk4Z4PHFedd3bWOyqkHHTBQ`;
var url=(cov_h9a3mwwe1.s[8]++,"wss://ysbraid.localhost:8443?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6Im1ocyIsImNsaWVudF90eXBlIjoic2l0ZSIsInVzZXJfdHlwZSI6InVzZXIiLCJ1c2VyX2lkIjoxMjUsImNoYW5uZWwiOiJtaHNfMTIzOSJ9LCJleHAiOjE1NTI4NDYzOTQsImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5a_s8rgln4rwhVqJLcSS9Uw7yw1_PmYgslWKZllgK6g");var wsClient=(cov_h9a3mwwe1.s[9]++,new WebSocket(url));var channel;// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[10]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAEA,gCAAgC;AAEhC,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,kCAAkC;AAClC,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,2WAA2W;AAC3W,IAAI,GAAG,GAAW,qWAAqW,CAAC;AACxX,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAAA,yDAAkD;AAClD,sDAA+C;AAE/C,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAClD,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AACrC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,MAAM,CAAG,cAAc,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,iIAAiI;QACjI,oBAAoB;QACpB,KAAK;QACL,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAAA,yDAAkD;AAClD,sDAA+C;AAE/C,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAClD,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEnC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AACrC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,SAAS,CAAC,UAAU,MAAuB,EAAE,OAAe;YACzH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAA;QACF,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,49 @@
"use strict";// import ChannelBase from '../channels/channelBase';
// import ClientBase from '../clients/clientBase';
// import MHSClient from '../clients/sites/mhsClient';
// import MHSChannel from '../channels/sites/mhsChannel';
// import ChannelManager from '../channelManager';
// var expect = require('chai').expect;
// var sinon = require('sinon');
// var name: string = 'test channel';
// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': name }
// var WebSocketClient = require('websocket').client;
// var wsClient = new WebSocketClient();
// var client: ClientBase = new ClientBase(data, wsClient);
// let channelManager = new ChannelManager();
// describe('ChannelManager', function () {
// var channel: ChannelBase;
// it('should create a channel', function () {
// channel = channelManager.createChannel(data);
// expect(channel.id).to.be.equal(name);
// });
// it('should return existing channel when attempting to create a channel', function () {
// channel = channelManager.createChannel(data);
// expect(channel.id).to.be.equal(name);
// });
// it('should return a channel when searching if channel exists', function () {
// var exists = channelManager.channelExists(channel.id);
// var result = exists ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should not return a channel when serachingif channel exists', function () {
// var exists = channelManager.channelExists('no channel');
// var result = exists ? true : false;
// expect(result).to.be.equal(false);
// });
// it('should add a client to channel', function () {
// var result = channelManager.addClientToChannel(client, channel.id);
// expect(result.status).to.be.equal('success');
// });
// it('should not add a client to channel', function () {
// var result = channelManager.addClientToChannel(client, 'no channel');
// expect(result.status).to.be.equal('notice');
// });
// it('should create a channel of type MHSChannel', function () {
// var data2 = { 'channel': 'test channel 2', 'client': 'mhs', 'client_type':'site' };
// var result = channelManager.createByChannelType(data2);
// expect(result.id).to.be.equal('test channel 2');
// });
// });
//# sourceMappingURL=channelManager.spec.js.map
var cov_2ekv66b3zw=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelManager.spec.js";var hash="f222a0ce55557ab9204e7e683e44bdf3f4fa25dc";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelManager.spec.js",statementMap:{},fnMap:{},branchMap:{},s:{},f:{},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();

View File

@ -0,0 +1 @@
{"version":3,"file":"channelManager.spec.js","sourceRoot":"","sources":["../../../src/test/channelManager.spec.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,kDAAkD;AAClD,sDAAsD;AACtD,yDAAyD;AACzD,kDAAkD;AAElD,uCAAuC;AACvC,gCAAgC;AAEhC,qCAAqC;AACrC,mHAAmH;AACnH,qDAAqD;AACrD,wCAAwC;AACxC,2DAA2D;AAE3D,6CAA6C;AAE7C,2CAA2C;AAC3C,8BAA8B;AAE9B,gDAAgD;AAChD,oDAAoD;AACpD,4CAA4C;AAC5C,QAAQ;AAER,2FAA2F;AAC3F,oDAAoD;AACpD,4CAA4C;AAC5C,QAAQ;AAER,iFAAiF;AACjF,6DAA6D;AAC7D,0CAA0C;AAC1C,wCAAwC;AACxC,QAAQ;AAER,oFAAoF;AACpF,+DAA+D;AAC/D,0CAA0C;AAC1C,yCAAyC;AACzC,QAAQ;AAER,uDAAuD;AACvD,0EAA0E;AAC1E,oDAAoD;AACpD,QAAQ;AAER,2DAA2D;AAC3D,4EAA4E;AAC5E,mDAAmD;AACnD,QAAQ;AAER,mEAAmE;AACnE,0FAA0F;AAC1F,8DAA8D;AAC9D,uDAAuD;AACvD,QAAQ;AACR,MAAM"}

View File

@ -0,0 +1,37 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="63ffcce8be98f330812dd9c1afd8ea3d74aa9946";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:21},end:{line:3,column:53}},"2":{start:{line:5,column:11},end:{line:5,column:40}},"3":{start:{line:6,column:13},end:{line:6,column:35}},"4":{start:{line:7,column:12},end:{line:7,column:28}},"5":{start:{line:8,column:16},end:{line:8,column:29}},"6":{start:{line:9,column:10},end:{line:9,column:34}},"7":{start:{line:11,column:11},end:{line:11,column:25}},"8":{start:{line:12,column:10},end:{line:12,column:67}},"9":{start:{line:13,column:15},end:{line:13,column:33}},"10":{start:{line:15,column:11},end:{line:15,column:118}},"11":{start:{line:16,column:13},end:{line:16,column:53}},"12":{start:{line:17,column:0},end:{line:52,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:17,column:24},end:{line:17,column:25}},loc:{start:{line:17,column:36},end:{line:52,column:1}},line:17}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const clientBase_1=(cov_h9a3mwwe1.s[1]++,require("../clients/clientBase"));// import ChannelManager from '../channelManager';
var exec=(cov_h9a3mwwe1.s[2]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[3]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[4]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[5]++,require('ws'));var app=(cov_h9a3mwwe1.s[6]++,require('../config/app'));// var server = require('../server');
var name=(cov_h9a3mwwe1.s[7]++,'test channel');var url=(cov_h9a3mwwe1.s[8]++,`wss://${app.hostname}:${app.port}?token=${app.devToken}`);var wsClient=(cov_h9a3mwwe1.s[9]++,new WebSocket(url));var channel;var data=(cov_h9a3mwwe1.s[10]++,{'client':'test','client_type':'site','user_id':125,'user_type':'user','channel':'test channel'});var client=(cov_h9a3mwwe1.s[11]++,new clientBase_1.default(data,wsClient));cov_h9a3mwwe1.s[12]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AACA,sDAA+C;AAC/C,kDAAkD;AAElD,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,qCAAqC;AAErC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAC1H,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1 @@
"use strict";var cov_168kex5smj=function(){var path="/Users/josh.burman/Projects/braid/dist/server/controllers/authController.js";var hash="9b244a5d65883cecf9b9d7f1e2724f50100deff5";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/controllers/authController.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:12},end:{line:3,column:35}},"2":{start:{line:4,column:10},end:{line:4,column:34}},"3":{start:{line:5,column:0},end:{line:12,column:2}},"4":{start:{line:7,column:20},end:{line:7,column:34}},"5":{start:{line:8,column:8},end:{line:10,column:11}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:6,column:18},end:{line:6,column:19}},loc:{start:{line:6,column:32},end:{line:11,column:5}},line:6}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_168kex5smj.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const jwt=(cov_168kex5smj.s[1]++,require("jsonwebtoken"));var app=(cov_168kex5smj.s[2]++,require('../config/app'));cov_168kex5smj.s[3]++;module.exports={confirmToken:(req,res)=>{cov_168kex5smj.f[0]++;var token=(cov_168kex5smj.s[4]++,req.body.token);cov_168kex5smj.s[5]++;res.json({response:JSON.stringify(jwt.verify(token,app.secret,app.signOptions))});}};//# sourceMappingURL=authController.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"authController.js","sourceRoot":"","sources":["../../../src/controllers/authController.ts"],"names":[],"mappings":";;AAAA,oCAAoC;AAEpC,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAElC,MAAM,CAAC,OAAO,GAAG;IACf,YAAY,EAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE;QACpC,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;QAC1B,GAAG,CAAC,IAAI,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;SACzE,CAAC,CAAC;IACL,CAAC;CACF,CAAA"}

View File

@ -0,0 +1,13 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="423cf496207f090eadafa33d7df60ffadb5cfa8f";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:21},end:{line:3,column:53}},"2":{start:{line:5,column:11},end:{line:5,column:40}},"3":{start:{line:6,column:13},end:{line:6,column:35}},"4":{start:{line:7,column:12},end:{line:7,column:28}},"5":{start:{line:8,column:16},end:{line:8,column:29}},"6":{start:{line:9,column:10},end:{line:9,column:34}},"7":{start:{line:10,column:13},end:{line:10,column:33}},"8":{start:{line:11,column:11},end:{line:11,column:25}},"9":{start:{line:12,column:10},end:{line:12,column:67}},"10":{start:{line:13,column:15},end:{line:13,column:33}},"11":{start:{line:15,column:11},end:{line:15,column:108}},"12":{start:{line:16,column:13},end:{line:16,column:53}},"13":{start:{line:17,column:0},end:{line:52,column:3}},"14":{start:{line:19,column:4},end:{line:22,column:7}},"15":{start:{line:20,column:8},end:{line:20,column:60}},"16":{start:{line:21,column:8},end:{line:21,column:45}},"17":{start:{line:23,column:4},end:{line:26,column:7}},"18":{start:{line:24,column:21},end:{line:24,column:46}},"19":{start:{line:25,column:8},end:{line:25,column:53}},"20":{start:{line:27,column:4},end:{line:30,column:7}},"21":{start:{line:28,column:21},end:{line:28,column:46}},"22":{start:{line:29,column:8},end:{line:29,column:52}},"23":{start:{line:31,column:4},end:{line:35,column:7}},"24":{start:{line:32,column:20},end:{line:32,column:51}},"25":{start:{line:33,column:21},end:{line:33,column:41}},"26":{start:{line:34,column:8},end:{line:34,column:41}},"27":{start:{line:36,column:4},end:{line:44,column:7}},"28":{start:{line:45,column:4},end:{line:51,column:7}},"29":{start:{line:49,column:21},end:{line:49,column:69}},"30":{start:{line:50,column:8},end:{line:50,column:53}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:17,column:24},end:{line:17,column:25}},loc:{start:{line:17,column:36},end:{line:52,column:1}},line:17},"1":{name:"(anonymous_1)",decl:{start:{line:19,column:47},end:{line:19,column:48}},loc:{start:{line:19,column:59},end:{line:22,column:5}},line:19},"2":{name:"(anonymous_2)",decl:{start:{line:23,column:41},end:{line:23,column:42}},loc:{start:{line:23,column:53},end:{line:26,column:5}},line:23},"3":{name:"(anonymous_3)",decl:{start:{line:27,column:73},end:{line:27,column:74}},loc:{start:{line:27,column:85},end:{line:30,column:5}},line:27},"4":{name:"(anonymous_4)",decl:{start:{line:31,column:31},end:{line:31,column:32}},loc:{start:{line:31,column:43},end:{line:35,column:5}},line:31},"5":{name:"(anonymous_5)",decl:{start:{line:36,column:47},end:{line:36,column:48}},loc:{start:{line:36,column:59},end:{line:44,column:5}},line:36},"6":{name:"(anonymous_6)",decl:{start:{line:45,column:49},end:{line:45,column:50}},loc:{start:{line:45,column:61},end:{line:51,column:5}},line:45}},branchMap:{"0":{loc:{start:{line:33,column:21},end:{line:33,column:41}},type:"cond-expr",locations:[{start:{line:33,column:29},end:{line:33,column:33}},{start:{line:33,column:36},end:{line:33,column:41}}],line:33}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},b:{"0":[0,0]},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});const clientBase_1=(cov_h9a3mwwe1.s[1]++,require("../clients/clientBase"));// import ChannelManager from '../channelManager';
var exec=(cov_h9a3mwwe1.s[2]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[3]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[4]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[5]++,require('ws'));var app=(cov_h9a3mwwe1.s[6]++,require('../config/app'));var server=(cov_h9a3mwwe1.s[7]++,require('../server'));var name=(cov_h9a3mwwe1.s[8]++,'test channel');var url=(cov_h9a3mwwe1.s[9]++,`wss://${app.hostname}:${app.port}?token=${app.devToken}`);var wsClient=(cov_h9a3mwwe1.s[10]++,new WebSocket(url));var channel;var data=(cov_h9a3mwwe1.s[11]++,{'client':'test','client_type':'site','user_id':125,'user_type':'user','channel':name});var client=(cov_h9a3mwwe1.s[12]++,new clientBase_1.default(data,wsClient));cov_h9a3mwwe1.s[13]++;describe('ChannelBase',function(){cov_h9a3mwwe1.f[0]++;cov_h9a3mwwe1.s[14]++;// before ( function () { server.startServer; });
it('should create a class of ChannelBase',function(){cov_h9a3mwwe1.f[1]++;cov_h9a3mwwe1.s[15]++;channel=server.channelManager.channelExists(name);cov_h9a3mwwe1.s[16]++;expect(channel.id).to.be.equal(name);});cov_h9a3mwwe1.s[17]++;it('should add a client to channel',function(){cov_h9a3mwwe1.f[2]++;var result=(cov_h9a3mwwe1.s[18]++,channel.addClient(client));cov_h9a3mwwe1.s[19]++;expect(result.status).to.be.equal('success');});cov_h9a3mwwe1.s[20]++;it('should find a client when trying to add said client to channel',function(){cov_h9a3mwwe1.f[3]++;var result=(cov_h9a3mwwe1.s[21]++,channel.addClient(client));cov_h9a3mwwe1.s[22]++;expect(result.status).to.be.equal('notice');});cov_h9a3mwwe1.s[23]++;it('should find a client',function(){cov_h9a3mwwe1.f[4]++;var exist=(cov_h9a3mwwe1.s[24]++,channel.clientExists(client.id));var result=(cov_h9a3mwwe1.s[25]++,exist?(cov_h9a3mwwe1.b[0][0]++,true):(cov_h9a3mwwe1.b[0][1]++,false));cov_h9a3mwwe1.s[26]++;expect(result).to.be.equal(true);});cov_h9a3mwwe1.s[27]++;it('should broadcast a message to others',function(){// var wstClient = new WebSocketClient();
// var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// channel.addClient(client);
// channel.addClient(teacher);
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
cov_h9a3mwwe1.f[5]++;});cov_h9a3mwwe1.s[28]++;it('should not broadcast a message to self',function(){cov_h9a3mwwe1.f[6]++;// var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// return message;
// })
var result=(cov_h9a3mwwe1.s[29]++,channel.broadcastMessage(client,'test message'));cov_h9a3mwwe1.s[30]++;expect(result.status).to.be.equal('success');});});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AACA,sDAA+C;AAC/C,kDAAkD;AAElD,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,iIAAiI;QACjI,oBAAoB;QACpB,KAAK;QACL,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAAA,yDAAkD;AAClD,sDAA+C;AAE/C,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAClD,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AACrC,IAAI,OAAoB,CAAC;AACzB,IAAI,IAAI,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAChH,IAAI,MAAM,GAAe,IAAI,oBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,aAAa,EAAE;IACtB,MAAM,CAAG,cAAc,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C,EAAE,CAAC,sCAAsC,EAAE;QACzC,OAAO,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAI,MAAM,GAAQ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,yCAAyC;QACzC,8HAA8H;QAC9H,qEAAqE;QACrE,6BAA6B;QAC7B,8BAA8B;QAC9B,iEAAiE;QACjE,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,iIAAiI;QACjI,oBAAoB;QACpB,KAAK;QACL,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@ -0,0 +1,38 @@
"use strict";var cov_h9a3mwwe1=function(){var path="/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js";var hash="d1bcf0cdba10b9c476b1df1c9aa192473a158583";var Function=function(){}.constructor;var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/josh.burman/Projects/braid/dist/server/test/channelBase.spec.js",statementMap:{"0":{start:{line:2,column:0},end:{line:2,column:62}},"1":{start:{line:3,column:11},end:{line:3,column:40}},"2":{start:{line:4,column:13},end:{line:4,column:35}},"3":{start:{line:5,column:12},end:{line:5,column:28}},"4":{start:{line:6,column:16},end:{line:6,column:29}},"5":{start:{line:7,column:10},end:{line:7,column:34}},"6":{start:{line:9,column:11},end:{line:9,column:25}},"7":{start:{line:10,column:10},end:{line:10,column:67}},"8":{start:{line:11,column:15},end:{line:11,column:33}},"9":{start:{line:15,column:0},end:{line:50,column:3}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:15,column:24},end:{line:15,column:25}},loc:{start:{line:15,column:36},end:{line:50,column:1}},line:15}},branchMap:{},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},f:{"0":0},b:{},_coverageSchema:"43e27e138ebf9cfc5966b082cf9a028302ed4184"};var coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();cov_h9a3mwwe1.s[0]++;Object.defineProperty(exports,"__esModule",{value:true});var exec=(cov_h9a3mwwe1.s[1]++,require('child_process').exec);var expect=(cov_h9a3mwwe1.s[2]++,require('chai').expect);var sinon=(cov_h9a3mwwe1.s[3]++,require('sinon'));var WebSocket=(cov_h9a3mwwe1.s[4]++,require('ws'));var app=(cov_h9a3mwwe1.s[5]++,require('../config/app'));// var server = require('../server');
var name=(cov_h9a3mwwe1.s[6]++,'test channel');var url=(cov_h9a3mwwe1.s[7]++,`wss://${app.hostname}:${app.port}?token=${app.devToken}`);var wsClient=(cov_h9a3mwwe1.s[8]++,new WebSocket(url));var channel;// var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': 'test channel' }
// var client: ClientBase = new ClientBase(data, wsClient);
cov_h9a3mwwe1.s[9]++;describe('ChannelBase',function(){// before ( function () { server.startServer; });
// it('should create a class of ChannelBase', function () {
// channel = server.channelManager.channelExists(name);
// expect(channel.id).to.be.equal(name);
// });
// it('should add a client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('success');
// });
// it('should find a client when trying to add said client to channel', function () {
// var result: any = channel.addClient(client);
// expect(result.status).to.be.equal('notice');
// });
// it('should find a client', function () {
// var exist = channel.clientExists(client.id);
// var result = exist ? true : false;
// expect(result).to.be.equal(true);
// });
// it('should broadcast a message to others', function () {
// // var wstClient = new WebSocketClient();
// // var teacher_data: any = { 'client': 'test', 'client_type':'site', 'user_id': 126, 'user_type': 'teacher', 'channel': name }
// // var teacher: ClientBase = new ClientBase(teacher_data, wstClient);
// // channel.addClient(client);
// // channel.addClient(teacher);
// // var result = channel.broadcastMessage(client, 'test message');
// // expect(result.status).to.be.equal('success');
// });
// it('should not broadcast a message to self', function () {
// // var broadcastMessage = sinon.stub(channel, 'broadcastMessage').callsFake(function (client: ClientBase|null, message: string) {
// // return message;
// // })
// var result = channel.broadcastMessage(client, 'test message');
// expect(result.status).to.be.equal('success');
// });
cov_h9a3mwwe1.f[0]++;});//# sourceMappingURL=channelBase.spec.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"channelBase.spec.js","sourceRoot":"","sources":["../../../src/test/channelBase.spec.ts"],"names":[],"mappings":";;AAGA,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnC,qCAAqC;AAErC,IAAI,IAAI,GAAW,cAAc,CAAC;AAClC,IAAI,GAAG,GAAW,SAAS,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAoB,CAAC;AACzB,6HAA6H;AAC7H,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE;IACtB,iDAAiD;IAEjD,2DAA2D;IAC3D,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM;IAEN,qDAAqD;IACrD,iDAAiD;IACjD,kDAAkD;IAClD,MAAM;IAEN,qFAAqF;IACrF,iDAAiD;IACjD,iDAAiD;IACjD,MAAM;IAEN,2CAA2C;IAC3C,iDAAiD;IACjD,uCAAuC;IACvC,sCAAsC;IACtC,MAAM;IAEN,2DAA2D;IAC3D,8CAA8C;IAC9C,mIAAmI;IACnI,0EAA0E;IAC1E,kCAAkC;IAClC,mCAAmC;IACnC,sEAAsE;IACtE,qDAAqD;IACrD,MAAM;IAEN,6DAA6D;IAC7D,sIAAsI;IACtI,yBAAyB;IACzB,UAAU;IACV,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;AACR,CAAC,CAAC,CAAC"}

21
node_modules/mock-socket/LICENSE.txt generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2017 Travis Hoover
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

232
node_modules/mock-socket/README.md generated vendored Normal file
View File

@ -0,0 +1,232 @@
<p align="center">
<img width=600 src="http://imgur.com/Xt9X83M.png">
</p>
<p align="center">
Javascript mocking library for <a href="https://developer.mozilla.org/en-US/docs/WebSockets">websockets</a> and <a href="http://socket.io/">socket.io</a>
</p>
<p align="center">
<a href="https://travis-ci.org/thoov/mock-socket">
<img src="https://img.shields.io/travis/thoov/mock-socket.svg?style=for-the-badge" alt="Build Status">
</a>
<a href="https://github.com/thoov/mock-socket/blob/master/LICENSE.txt">
<img src="https://img.shields.io/github/license/thoov/mock-socket.svg?style=for-the-badge" alt="Code Coverage">
</a>
<a href="https://www.npmjs.com/package/mock-socket">
<img src="https://img.shields.io/npm/v/mock-socket.svg?style=for-the-badge" alt="NPM Version">
</a>
</p>
## Contents
- [Installation](#installation)
- [Basic Usage](#usage)
- [Advanced Usage](#advanced-usage)
- [Typescript Support](#typescript-support)
- [Socket.IO](#socket-io)
- [Contributing](#contributing)
- [Feedback](#feedback)
## Installation
```shell
npm install mock-socket
```
```js
import { WebSocket, Server } from 'mock-socket';
```
## Usage
```js
import test from 'ava';
import { Server } from 'mock-socket';
class ChatApp {
constructor(url) {
this.messages = [];
this.connection = new WebSocket(url);
this.connection.onmessage = (event) => {
this.messages.push(event.data);
};
}
sendMessage(message) {
this.connection.send(message);
}
}
test.cb('that chat app can be mocked', t => {
const fakeURL = 'ws://localhost:8080';
const mockServer = new Server(fakeURL);
mockServer.on('connection', socket => {
socket.on('message', data => {
t.is(data, 'test message from app', 'we have intercepted the message and can assert on it');
socket.send('test message from mock server');
});
});
const app = new ChatApp(fakeURL);
app.sendMessage('test message from app'); // NOTE: this line creates a micro task
// NOTE: this timeout is for creating another micro task that will happen after the above one
setTimeout(() => {
t.is(app.messages.length, 1);
t.is(app.messages[0], 'test message from mock server', 'we have subbed our websocket backend');
mockServer.stop(t.done);
}, 100);
});
```
## Advanced Usage
### Stubbing the "global"
```js
import { WebSocket, Server } from 'mock-socket';
/*
* By default the global WebSocket object is stubbed out. However,
* if you need to stub something else out you can like so:
*/
window.WebSocket = WebSocket; // Here we stub out the window object
```
### Server Methods
```js
const mockServer = new Server('ws://localhost:8080');
mockServer.on('connection', socket => {
socket.on('message', () => {});
socket.on('close', () => {});
socket.send('message');
socket.close();
});
mockServer.clients() // array of all connected clients
mockServer.emit('room', 'message');
mockServer.stop(optionalCallback);
```
## Typescript Support
A [declaration file](https://github.com/thoov/mock-socket/blob/master/index.d.ts) is included by default. If you notice any issues with the types please create an issue or a PR!
## Socket IO
[Socket.IO](https://socket.io/) has **limited support**. Below is a similar example to the one above but modified to show off socket.io support.
```js
import test from 'ava';
import { SocketIO, Server } from 'mock-socket';
class ChatApp {
constructor(url) {
this.messages = [];
this.connection = new io(url);
this.connection.on('chat-message', data => {
this.messages.push(event.data);
};
}
sendMessage(message) {
this.connection.emit('chat-message', message);
}
}
test.cb('that socket.io works', t => {
const fakeURL = 'ws://localhost:8080';
const mockServer = new Server(fakeURL);
window.io = SocketIO;
mockServer.on('connection', socket => {
socket.on('chat-message', data => {
t.is(data, 'test message from app', 'we have intercepted the message and can assert on it');
socket.emit('chat-message', 'test message from mock server');
});
});
const app = new ChatApp(fakeURL);
app.sendMessage('test message from app');
setTimeout(() => {
t.is(app.messages.length, 1);
t.is(app.messages[0], 'test message from mock server', 'we have subbed our websocket backend');
mockServer.stop(t.done);
}, 100);
});
```
## Contributing
The easiest way to work on the project is to clone the repo down via:
```shell
git clone git@github.com:thoov/mock-socket.git
cd mock-socket
yarn install
```
Then to create a local build via:
```shell
yarn build
```
Then create a local npm link via:
```shell
yarn link
```
At this point you can create other projects / apps locally and reference this local build via:
```shell
yarn link mock-socket
```
from within your other projects folder. Make sure that after any changes you run `yarn build`!
### Tests
This project uses [ava.js](https://github.com/avajs/ava) as its test framework. Tests are located in /tests. To run tests:
```shell
yarn test
```
### Linting
This project uses eslint and a rules set from [airbnb's javascript style guides](https://github.com/airbnb/javascript). To run linting:
```shell
yarn lint
```
### Formatting
This project uses [prettier](https://github.com/prettier/prettier). To run the formatting:
```shell
yarn format
```
### Code Coverage
Code coverage reports are created in /coverage after all of the tests have successfully passed. To run the coverage:
```shell
yarn test:coverage
```
## Feedback
If you have any feedback, encounter any bugs, or just have a question, please feel free to create a [github issue](https://github.com/thoov/mock-socket/issues/new) or send me a tweet at [@thoov](https://twitter.com/thoov).

1928
node_modules/mock-socket/dist/mock-socket.amd.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1926
node_modules/mock-socket/dist/mock-socket.cjs.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1920
node_modules/mock-socket/dist/mock-socket.es.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1932
node_modules/mock-socket/dist/mock-socket.js generated vendored Normal file

File diff suppressed because one or more lines are too long

84
node_modules/mock-socket/index.d.ts generated vendored Normal file
View File

@ -0,0 +1,84 @@
// Type definitions for Mock Socket 8.X+
// Project: Mock Socket
// Definitions by: Travis Hoover <https://github.com/thoov/mock-socket>
declare module 'mock-socket' {
class EventTarget {
listeners: any;
addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;
dispatchEvent(evt: Event): boolean;
removeEventListener(type: string, listener?: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
}
//
// https://html.spec.whatwg.org/multipage/web-sockets.html#websocket
//
class WebSocket extends EventTarget {
constructor(url?: string, protocols?: string|string[]);
static readonly CONNECTING: 0;
static readonly OPEN: 1;
static readonly CLOSING: 2;
static readonly CLOSED: 3;
readonly url: string;
readonly CONNECTING: 0;
readonly OPEN: 1;
readonly CLOSING: 2;
readonly CLOSED: 3;
readonly readyState: number;
readonly bufferedAmount: number;
onopen: EventHandlerNonNull;
onerror: EventHandlerNonNull;
onclose: EventHandlerNonNull;
readonly extensions: string;
readonly protocol: string;
close(code?: number, reason?: string): void;
onmessage: EventHandlerNonNull;
binaryType: BinaryType;
send(data: string | Blob | ArrayBuffer | ArrayBufferView): void;
}
class Server extends EventTarget {
constructor(url: string, options?: ServerOptions);
readonly options?: ServerOptions;
start(): void;
stop(callback?: () => void): void;
on(type: string, callback: (socket: WebSocket) => void): void;
close(options?: CloseOptions): void;
emit(event: string, data: any, options?: EmitOptions): void;
clients(): WebSocket[];
to(room: any, broadcaster: any, broadcastList?: object): ToReturnObject;
in(any: any): ToReturnObject;
simulate(event: Event): void;
public of(url: string): Server;
}
interface CloseOptions {
code: number;
reason: string;
wasClean: boolean;
}
interface EmitOptions {
websockets: WebSocket[];
}
interface ToReturnObject {
to: (chainedRoom: any, chainedBroadcaster: any) => ToReturnObject;
emit(event: Event, data: any): void;
}
interface ServerOptions {
verifyClient: () => any;
selectProtocol: () => any;
}
}

108
node_modules/mock-socket/package.json generated vendored Normal file
View File

@ -0,0 +1,108 @@
{
"_from": "mock-socket",
"_id": "mock-socket@8.0.5",
"_inBundle": false,
"_integrity": "sha512-dE2EbcxJKQCeYLZSsI7BAiMZCe/bHbJ2LHb5aGwUuDmfoOINEJ8QI6qYJ85NHsSNkNa90F3s6onZcmt/+MppFA==",
"_location": "/mock-socket",
"_phantomChildren": {},
"_requested": {
"type": "tag",
"registry": true,
"raw": "mock-socket",
"name": "mock-socket",
"escapedName": "mock-socket",
"rawSpec": "",
"saveSpec": null,
"fetchSpec": "latest"
},
"_requiredBy": [
"#DEV:/",
"#USER"
],
"_resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-8.0.5.tgz",
"_shasum": "4ce8909601b2bcdf5f7680f35c2f7b34beb2afc4",
"_spec": "mock-socket",
"_where": "/Users/josh.burman/Projects/braid",
"author": {
"name": "Travis Hoover"
},
"ava": {
"files": [
"tests/**/*.test.js"
],
"require": [
"babel-register",
"babel-polyfill"
],
"babel": "inherit"
},
"bugs": {
"url": "https://github.com/thoov/mock-socket/issues"
},
"bundleDependencies": false,
"dependencies": {
"url-parse": "^1.2.0"
},
"deprecated": false,
"description": "Javascript mocking library for websockets and socket.io",
"devDependencies": {
"ava": "^0.19.1",
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babel-polyfill": "^6.23.0",
"babel-preset-latest": "^6.24.1",
"cross-env": "^5.0.0",
"eslint": "^3.19.0",
"eslint-config-airbnb-base": "^11.2.0",
"eslint-plugin-import": "^2.0.1",
"husky": "^0.13.3",
"jsdom": "^11.5.1",
"lint-staged": "^3.4.1",
"nyc": "^10.3.2",
"prettier": "^1.3.1",
"rollup": "^0.41.6",
"rollup-plugin-buble": "^0.15.0",
"rollup-plugin-commonjs": "^8.2.6",
"rollup-plugin-node-resolve": "^3.0.0",
"systemjs": "^0.20.12",
"typescript": "^2.9.2",
"typescript-eslint-parser": "^16.0.1"
},
"directories": {
"test": "tests"
},
"engines": {
"node": ">= 6"
},
"homepage": "https://github.com/thoov/mock-socket",
"keywords": [
"websockets",
"mock",
"mocksocket",
"sockets"
],
"license": "MIT",
"lint-staged": {
"*.js": [
"format",
"lint",
"git add"
]
},
"main": "./dist/mock-socket",
"name": "mock-socket",
"repository": {
"type": "git",
"url": "git+https://github.com/thoov/mock-socket.git"
},
"scripts": {
"build": "rm -rf dist && rollup -c rollup.config.js",
"format": "prettier --print-width 120 --single-quote --write '{src,tests}/**/*.js'",
"lint": "eslint src tests",
"precommit": "lint-staged",
"prepublishOnly": "yarn build",
"test": "cross-env NODE_ENV=test ava --serial --verbose",
"test:coverage": "cross-env NODE_ENV=test nyc ava --serial"
},
"version": "8.0.5"
}

57
node_modules/mock-socket/src/algorithms/close.js generated vendored Normal file
View File

@ -0,0 +1,57 @@
import WebSocket from '../websocket';
import delay from '../helpers/delay';
import networkBridge from '../network-bridge';
import { createCloseEvent, createEvent } from '../event/factory';
export function closeWebSocketConnection(context, code, reason) {
context.readyState = WebSocket.CLOSING;
const server = networkBridge.serverLookup(context.url);
const closeEvent = createCloseEvent({
type: 'close',
target: context,
code,
reason
});
delay(() => {
networkBridge.removeWebSocket(context, context.url);
context.readyState = WebSocket.CLOSED;
context.dispatchEvent(closeEvent);
if (server) {
server.dispatchEvent(closeEvent, server);
}
}, context);
}
export function failWebSocketConnection(context, code, reason) {
context.readyState = WebSocket.CLOSING;
const server = networkBridge.serverLookup(context.url);
const closeEvent = createCloseEvent({
type: 'close',
target: context,
code,
reason,
wasClean: false
});
const errorEvent = createEvent({
type: 'error',
target: context
});
delay(() => {
networkBridge.removeWebSocket(context, context.url);
context.readyState = WebSocket.CLOSED;
context.dispatchEvent(errorEvent);
context.dispatchEvent(closeEvent);
if (server) {
server.dispatchEvent(closeEvent, server);
}
}, context);
}

29
node_modules/mock-socket/src/constants.js generated vendored Normal file
View File

@ -0,0 +1,29 @@
/*
* https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
*/
export const CLOSE_CODES = {
CLOSE_NORMAL: 1000,
CLOSE_GOING_AWAY: 1001,
CLOSE_PROTOCOL_ERROR: 1002,
CLOSE_UNSUPPORTED: 1003,
CLOSE_NO_STATUS: 1005,
CLOSE_ABNORMAL: 1006,
UNSUPPORTED_DATA: 1007,
POLICY_VIOLATION: 1008,
CLOSE_TOO_LARGE: 1009,
MISSING_EXTENSION: 1010,
INTERNAL_ERROR: 1011,
SERVICE_RESTART: 1012,
TRY_AGAIN_LATER: 1013,
TLS_HANDSHAKE: 1015
};
export const ERROR_PREFIX = {
CONSTRUCTOR_ERROR: "Failed to construct 'WebSocket':",
CLOSE_ERROR: "Failed to execute 'close' on 'WebSocket':",
EVENT: {
CONSTRUCT: "Failed to construct 'Event':",
MESSAGE: "Failed to construct 'MessageEvent':",
CLOSE: "Failed to construct 'CloseEvent':"
}
};

34
node_modules/mock-socket/src/event/close.js generated vendored Normal file
View File

@ -0,0 +1,34 @@
import EventPrototype from './prototype';
import { ERROR_PREFIX } from '../constants';
export default class CloseEvent extends EventPrototype {
constructor(type, eventInitConfig = {}) {
super();
if (!type) {
throw new TypeError(`${ERROR_PREFIX.EVENT.CLOSE} 1 argument required, but only 0 present.`);
}
if (typeof eventInitConfig !== 'object') {
throw new TypeError(`${ERROR_PREFIX.EVENT.CLOSE} parameter 2 ('eventInitDict') is not an object`);
}
const { bubbles, cancelable, code, reason, wasClean } = eventInitConfig;
this.type = `${type}`;
this.timeStamp = Date.now();
this.target = null;
this.srcElement = null;
this.returnValue = true;
this.isTrusted = false;
this.eventPhase = 0;
this.defaultPrevented = false;
this.currentTarget = null;
this.cancelable = cancelable ? Boolean(cancelable) : false;
this.cancelBubble = false;
this.bubbles = bubbles ? Boolean(bubbles) : false;
this.code = typeof code === 'number' ? parseInt(code, 10) : 0;
this.reason = `${reason || ''}`;
this.wasClean = wasClean ? Boolean(wasClean) : false;
}
}

31
node_modules/mock-socket/src/event/event.js generated vendored Normal file
View File

@ -0,0 +1,31 @@
import EventPrototype from './prototype';
import { ERROR_PREFIX } from '../constants';
export default class Event extends EventPrototype {
constructor(type, eventInitConfig = {}) {
super();
if (!type) {
throw new TypeError(`${ERROR_PREFIX.EVENT_ERROR} 1 argument required, but only 0 present.`);
}
if (typeof eventInitConfig !== 'object') {
throw new TypeError(`${ERROR_PREFIX.EVENT_ERROR} parameter 2 ('eventInitDict') is not an object.`);
}
const { bubbles, cancelable } = eventInitConfig;
this.type = `${type}`;
this.timeStamp = Date.now();
this.target = null;
this.srcElement = null;
this.returnValue = true;
this.isTrusted = false;
this.eventPhase = 0;
this.defaultPrevented = false;
this.currentTarget = null;
this.cancelable = cancelable ? Boolean(cancelable) : false;
this.canncelBubble = false;
this.bubbles = bubbles ? Boolean(bubbles) : false;
}
}

75
node_modules/mock-socket/src/event/factory.js generated vendored Normal file
View File

@ -0,0 +1,75 @@
import Event from './event';
import MessageEvent from './message';
import CloseEvent from './close';
/*
* Creates an Event object and extends it to allow full modification of
* its properties.
*
* @param {object} config - within config you will need to pass type and optionally target
*/
function createEvent(config) {
const { type, target } = config;
const eventObject = new Event(type);
if (target) {
eventObject.target = target;
eventObject.srcElement = target;
eventObject.currentTarget = target;
}
return eventObject;
}
/*
* Creates a MessageEvent object and extends it to allow full modification of
* its properties.
*
* @param {object} config - within config: type, origin, data and optionally target
*/
function createMessageEvent(config) {
const { type, origin, data, target } = config;
const messageEvent = new MessageEvent(type, {
data,
origin
});
if (target) {
messageEvent.target = target;
messageEvent.srcElement = target;
messageEvent.currentTarget = target;
}
return messageEvent;
}
/*
* Creates a CloseEvent object and extends it to allow full modification of
* its properties.
*
* @param {object} config - within config: type and optionally target, code, and reason
*/
function createCloseEvent(config) {
const { code, reason, type, target } = config;
let { wasClean } = config;
if (!wasClean) {
wasClean = code === 1000;
}
const closeEvent = new CloseEvent(type, {
code,
reason,
wasClean
});
if (target) {
closeEvent.target = target;
closeEvent.srcElement = target;
closeEvent.currentTarget = target;
}
return closeEvent;
}
export { createEvent, createMessageEvent, createCloseEvent };

35
node_modules/mock-socket/src/event/message.js generated vendored Normal file
View File

@ -0,0 +1,35 @@
import EventPrototype from './prototype';
import { ERROR_PREFIX } from '../constants';
export default class MessageEvent extends EventPrototype {
constructor(type, eventInitConfig = {}) {
super();
if (!type) {
throw new TypeError(`${ERROR_PREFIX.EVENT.MESSAGE} 1 argument required, but only 0 present.`);
}
if (typeof eventInitConfig !== 'object') {
throw new TypeError(`${ERROR_PREFIX.EVENT.MESSAGE} parameter 2 ('eventInitDict') is not an object`);
}
const { bubbles, cancelable, data, origin, lastEventId, ports } = eventInitConfig;
this.type = `${type}`;
this.timeStamp = Date.now();
this.target = null;
this.srcElement = null;
this.returnValue = true;
this.isTrusted = false;
this.eventPhase = 0;
this.defaultPrevented = false;
this.currentTarget = null;
this.cancelable = cancelable ? Boolean(cancelable) : false;
this.canncelBubble = false;
this.bubbles = bubbles ? Boolean(bubbles) : false;
this.origin = `${origin}`;
this.ports = typeof ports === 'undefined' ? null : ports;
this.data = typeof data === 'undefined' ? null : data;
this.lastEventId = `${lastEventId || ''}`;
}
}

13
node_modules/mock-socket/src/event/prototype.js generated vendored Normal file
View File

@ -0,0 +1,13 @@
export default class EventPrototype {
// Noops
stopPropagation() {}
stopImmediatePropagation() {}
// if no arguments are passed then the type is set to "undefined" on
// chrome and safari.
initEvent(type = 'undefined', bubbles = false, cancelable = false) {
this.type = `${type}`;
this.bubbles = Boolean(bubbles);
this.cancelable = Boolean(cancelable);
}
}

73
node_modules/mock-socket/src/event/target.js generated vendored Normal file
View File

@ -0,0 +1,73 @@
import { reject, filter } from '../helpers/array-helpers';
/*
* EventTarget is an interface implemented by objects that can
* receive events and may have listeners for them.
*
* https://developer.mozilla.org/en-US/docs/Web/API/EventTarget
*/
class EventTarget {
constructor() {
this.listeners = {};
}
/*
* Ties a listener function to an event type which can later be invoked via the
* dispatchEvent method.
*
* @param {string} type - the type of event (ie: 'open', 'message', etc.)
* @param {function} listener - the callback function to invoke whenever an event is dispatched matching the given type
* @param {boolean} useCapture - N/A TODO: implement useCapture functionality
*/
addEventListener(type, listener /* , useCapture */) {
if (typeof listener === 'function') {
if (!Array.isArray(this.listeners[type])) {
this.listeners[type] = [];
}
// Only add the same function once
if (filter(this.listeners[type], item => item === listener).length === 0) {
this.listeners[type].push(listener);
}
}
}
/*
* Removes the listener so it will no longer be invoked via the dispatchEvent method.
*
* @param {string} type - the type of event (ie: 'open', 'message', etc.)
* @param {function} listener - the callback function to invoke whenever an event is dispatched matching the given type
* @param {boolean} useCapture - N/A TODO: implement useCapture functionality
*/
removeEventListener(type, removingListener /* , useCapture */) {
const arrayOfListeners = this.listeners[type];
this.listeners[type] = reject(arrayOfListeners, listener => listener === removingListener);
}
/*
* Invokes all listener functions that are listening to the given event.type property. Each
* listener will be passed the event as the first argument.
*
* @param {object} event - event object which will be passed to all listeners of the event.type property
*/
dispatchEvent(event, ...customArguments) {
const eventName = event.type;
const listeners = this.listeners[eventName];
if (!Array.isArray(listeners)) {
return false;
}
listeners.forEach(listener => {
if (customArguments.length > 0) {
listener.apply(this, customArguments);
} else {
listener.call(this, event);
}
});
return true;
}
}
export default EventTarget;

21
node_modules/mock-socket/src/helpers/array-helpers.js generated vendored Normal file
View File

@ -0,0 +1,21 @@
export function reject(array, callback) {
const results = [];
array.forEach(itemInArray => {
if (!callback(itemInArray)) {
results.push(itemInArray);
}
});
return results;
}
export function filter(array, callback) {
const results = [];
array.forEach(itemInArray => {
if (callback(itemInArray)) {
results.push(itemInArray);
}
});
return results;
}

5
node_modules/mock-socket/src/helpers/byte-length.js generated vendored Normal file
View File

@ -0,0 +1,5 @@
export default function lengthInUtf8Bytes(str) {
// Matches only the 10.. bytes that are non-initial characters in a multi-byte sequence.
const m = encodeURIComponent(str).match(/%[89ABab]/g);
return str.length + (m ? m.length : 0);
}

5
node_modules/mock-socket/src/helpers/dedupe.js generated vendored Normal file
View File

@ -0,0 +1,5 @@
export default arr =>
arr.reduce((deduped, b) => {
if (deduped.indexOf(b) > -1) return deduped;
return deduped.concat(b);
}, []);

11
node_modules/mock-socket/src/helpers/delay.js generated vendored Normal file
View File

@ -0,0 +1,11 @@
/*
* This delay allows the thread to finish assigning its on* methods
* before invoking the delay callback. This is purely a timing hack.
* http://geekabyte.blogspot.com/2014/01/javascript-effect-of-setting-settimeout.html
*
* @param {callback: function} the callback which will be invoked after the timeout
* @parma {context: object} the context in which to invoke the function
*/
export default function delay(callback, context) {
setTimeout(timeoutContext => callback.call(timeoutContext), 4, context);
}

View File

@ -0,0 +1,7 @@
export default function retrieveGlobalObject() {
if (typeof window !== 'undefined') {
return window;
}
return typeof process === 'object' && typeof require === 'function' && typeof global === 'object' ? global : this;
}

7
node_modules/mock-socket/src/helpers/logger.js generated vendored Normal file
View File

@ -0,0 +1,7 @@
export default function log(method, message) {
/* eslint-disable no-console */
if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'test') {
console[method].call(null, message);
}
/* eslint-enable no-console */
}

View File

@ -0,0 +1,7 @@
export default function normalizeSendData(data) {
if (Object.prototype.toString.call(data) !== '[object Blob]' && !(data instanceof ArrayBuffer)) {
data = String(data);
}
return data;
}

View File

@ -0,0 +1,24 @@
import { ERROR_PREFIX } from '../constants';
export default function protocolVerification(protocols = []) {
if (!Array.isArray(protocols) && typeof protocols !== 'string') {
throw new SyntaxError(`${ERROR_PREFIX.CONSTRUCTOR_ERROR} The subprotocol '${protocols.toString()}' is invalid.`);
}
if (typeof protocols === 'string') {
protocols = [protocols];
}
const uniq = protocols.map(p => ({ count: 1, protocol: p })).reduce((a, b) => {
a[b.protocol] = (a[b.protocol] || 0) + b.count;
return a;
}, {});
const duplicates = Object.keys(uniq).filter(a => uniq[a] > 1);
if (duplicates.length > 0) {
throw new SyntaxError(`${ERROR_PREFIX.CONSTRUCTOR_ERROR} The subprotocol '${duplicates[0]}' is duplicated.`);
}
return protocols;
}

45
node_modules/mock-socket/src/helpers/proxy-factory.js generated vendored Normal file
View File

@ -0,0 +1,45 @@
import { CLOSE_CODES } from '../constants';
import { closeWebSocketConnection } from '../algorithms/close';
import normalizeSendData from './normalize-send';
import { createMessageEvent } from '../event/factory';
export default function proxyFactory(target) {
const handler = {
get(obj, prop) {
if (prop === 'close') {
return function close(options = {}) {
const code = options.code || CLOSE_CODES.CLOSE_NORMAL;
const reason = options.reason || '';
closeWebSocketConnection(target, code, reason);
};
}
if (prop === 'send') {
return function send(data) {
data = normalizeSendData(data);
target.dispatchEvent(
createMessageEvent({
type: 'message',
data,
origin: this.url,
target
})
);
};
}
if (prop === 'on') {
return function onWrapper(type, cb) {
target.addEventListener(`server::${type}`, cb);
};
}
return obj[prop];
}
};
const proxy = new Proxy(target, handler);
return proxy;
}

View File

@ -0,0 +1,37 @@
import URL from 'url-parse';
import { ERROR_PREFIX } from '../constants';
export default function urlVerification(url) {
const urlRecord = new URL(url);
const { pathname, protocol, hash } = urlRecord;
if (!url) {
throw new TypeError(`${ERROR_PREFIX.CONSTRUCTOR_ERROR} 1 argument required, but only 0 present.`);
}
if (!pathname) {
urlRecord.pathname = '/';
}
if (protocol === '') {
throw new SyntaxError(`${ERROR_PREFIX.CONSTRUCTOR_ERROR} The URL '${urlRecord.toString()}' is invalid.`);
}
if (protocol !== 'ws:' && protocol !== 'wss:') {
throw new SyntaxError(
`${ERROR_PREFIX.CONSTRUCTOR_ERROR} The URL's scheme must be either 'ws' or 'wss'. '${protocol}' is not allowed.`
);
}
if (hash !== '') {
/* eslint-disable max-len */
throw new SyntaxError(
`${
ERROR_PREFIX.CONSTRUCTOR_ERROR
} The URL contains a fragment identifier ('${hash}'). Fragment identifiers are not allowed in WebSocket URLs.`
);
/* eslint-enable max-len */
}
return urlRecord.toString();
}

7
node_modules/mock-socket/src/index.js generated vendored Normal file
View File

@ -0,0 +1,7 @@
import MockServer from './server';
import MockSocketIO from './socket-io';
import MockWebSocket from './websocket';
export const Server = MockServer;
export const WebSocket = MockWebSocket;
export const SocketIO = MockSocketIO;

135
node_modules/mock-socket/src/network-bridge.js generated vendored Normal file
View File

@ -0,0 +1,135 @@
import { reject } from './helpers/array-helpers';
/*
* The network bridge is a way for the mock websocket object to 'communicate' with
* all available servers. This is a singleton object so it is important that you
* clean up urlMap whenever you are finished.
*/
class NetworkBridge {
constructor() {
this.urlMap = {};
}
/*
* Attaches a websocket object to the urlMap hash so that it can find the server
* it is connected to and the server in turn can find it.
*
* @param {object} websocket - websocket object to add to the urlMap hash
* @param {string} url
*/
attachWebSocket(websocket, url) {
const connectionLookup = this.urlMap[url];
if (connectionLookup && connectionLookup.server && connectionLookup.websockets.indexOf(websocket) === -1) {
connectionLookup.websockets.push(websocket);
return connectionLookup.server;
}
}
/*
* Attaches a websocket to a room
*/
addMembershipToRoom(websocket, room) {
const connectionLookup = this.urlMap[websocket.url];
if (connectionLookup && connectionLookup.server && connectionLookup.websockets.indexOf(websocket) !== -1) {
if (!connectionLookup.roomMemberships[room]) {
connectionLookup.roomMemberships[room] = [];
}
connectionLookup.roomMemberships[room].push(websocket);
}
}
/*
* Attaches a server object to the urlMap hash so that it can find a websockets
* which are connected to it and so that websockets can in turn can find it.
*
* @param {object} server - server object to add to the urlMap hash
* @param {string} url
*/
attachServer(server, url) {
const connectionLookup = this.urlMap[url];
if (!connectionLookup) {
this.urlMap[url] = {
server,
websockets: [],
roomMemberships: {}
};
return server;
}
}
/*
* Finds the server which is 'running' on the given url.
*
* @param {string} url - the url to use to find which server is running on it
*/
serverLookup(url) {
const connectionLookup = this.urlMap[url];
if (connectionLookup) {
return connectionLookup.server;
}
}
/*
* Finds all websockets which is 'listening' on the given url.
*
* @param {string} url - the url to use to find all websockets which are associated with it
* @param {string} room - if a room is provided, will only return sockets in this room
* @param {class} broadcaster - socket that is broadcasting and is to be excluded from the lookup
*/
websocketsLookup(url, room, broadcaster) {
let websockets;
const connectionLookup = this.urlMap[url];
websockets = connectionLookup ? connectionLookup.websockets : [];
if (room) {
const members = connectionLookup.roomMemberships[room];
websockets = members || [];
}
return broadcaster ? websockets.filter(websocket => websocket !== broadcaster) : websockets;
}
/*
* Removes the entry associated with the url.
*
* @param {string} url
*/
removeServer(url) {
delete this.urlMap[url];
}
/*
* Removes the individual websocket from the map of associated websockets.
*
* @param {object} websocket - websocket object to remove from the url map
* @param {string} url
*/
removeWebSocket(websocket, url) {
const connectionLookup = this.urlMap[url];
if (connectionLookup) {
connectionLookup.websockets = reject(connectionLookup.websockets, socket => socket === websocket);
}
}
/*
* Removes a websocket from a room
*/
removeMembershipFromRoom(websocket, room) {
const connectionLookup = this.urlMap[websocket.url];
const memberships = connectionLookup.roomMemberships[room];
if (connectionLookup && memberships !== null) {
connectionLookup.roomMemberships[room] = reject(memberships, socket => socket === websocket);
}
}
}
export default new NetworkBridge(); // Note: this is a singleton

217
node_modules/mock-socket/src/server.js generated vendored Normal file
View File

@ -0,0 +1,217 @@
import URL from 'url-parse';
import WebSocket from './websocket';
import dedupe from './helpers/dedupe';
import EventTarget from './event/target';
import { CLOSE_CODES } from './constants';
import networkBridge from './network-bridge';
import globalObject from './helpers/global-object';
import normalizeSendData from './helpers/normalize-send';
import { createEvent, createMessageEvent, createCloseEvent } from './event/factory';
class Server extends EventTarget {
constructor(url, options = {}) {
super();
const urlRecord = new URL(url);
if (!urlRecord.pathname) {
urlRecord.pathname = '/';
}
this.url = urlRecord.toString();
this.originalWebSocket = null;
const server = networkBridge.attachServer(this, this.url);
if (!server) {
this.dispatchEvent(createEvent({ type: 'error' }));
throw new Error('A mock server is already listening on this url');
}
if (typeof options.verifyClient === 'undefined') {
options.verifyClient = null;
}
if (typeof options.selectProtocol === 'undefined') {
options.selectProtocol = null;
}
this.options = options;
this.start();
}
/*
* Attaches the mock websocket object to the global object
*/
start() {
const globalObj = globalObject();
if (globalObj.WebSocket) {
this.originalWebSocket = globalObj.WebSocket;
}
globalObj.WebSocket = WebSocket;
}
/*
* Removes the mock websocket object from the global object
*/
stop(callback = () => {}) {
const globalObj = globalObject();
if (this.originalWebSocket) {
globalObj.WebSocket = this.originalWebSocket;
} else {
delete globalObj.WebSocket;
}
this.originalWebSocket = null;
networkBridge.removeServer(this.url);
if (typeof callback === 'function') {
callback();
}
}
/*
* This is the main function for the mock server to subscribe to the on events.
*
* ie: mockServer.on('connection', function() { console.log('a mock client connected'); });
*
* @param {string} type - The event key to subscribe to. Valid keys are: connection, message, and close.
* @param {function} callback - The callback which should be called when a certain event is fired.
*/
on(type, callback) {
this.addEventListener(type, callback);
}
/*
* Closes the connection and triggers the onclose method of all listening
* websockets. After that it removes itself from the urlMap so another server
* could add itself to the url.
*
* @param {object} options
*/
close(options = {}) {
const { code, reason, wasClean } = options;
const listeners = networkBridge.websocketsLookup(this.url);
// Remove server before notifications to prevent immediate reconnects from
// socket onclose handlers
networkBridge.removeServer(this.url);
listeners.forEach(socket => {
socket.readyState = WebSocket.CLOSE;
socket.dispatchEvent(
createCloseEvent({
type: 'close',
target: socket,
code: code || CLOSE_CODES.CLOSE_NORMAL,
reason: reason || '',
wasClean
})
);
});
this.dispatchEvent(createCloseEvent({ type: 'close' }), this);
}
/*
* Sends a generic message event to all mock clients.
*/
emit(event, data, options = {}) {
let { websockets } = options;
if (!websockets) {
websockets = networkBridge.websocketsLookup(this.url);
}
if (typeof options !== 'object' || arguments.length > 3) {
data = Array.prototype.slice.call(arguments, 1, arguments.length);
data = data.map(item => normalizeSendData(item));
} else {
data = normalizeSendData(data);
}
websockets.forEach(socket => {
if (Array.isArray(data)) {
socket.dispatchEvent(
createMessageEvent({
type: event,
data,
origin: this.url,
target: socket
}),
...data
);
} else {
socket.dispatchEvent(
createMessageEvent({
type: event,
data,
origin: this.url,
target: socket
})
);
}
});
}
/*
* Returns an array of websockets which are listening to this server
* TOOD: this should return a set and not be a method
*/
clients() {
return networkBridge.websocketsLookup(this.url);
}
/*
* Prepares a method to submit an event to members of the room
*
* e.g. server.to('my-room').emit('hi!');
*/
to(room, broadcaster, broadcastList = []) {
const self = this;
const websockets = dedupe(broadcastList.concat(networkBridge.websocketsLookup(this.url, room, broadcaster)));
return {
to: (chainedRoom, chainedBroadcaster) => this.to.call(this, chainedRoom, chainedBroadcaster, websockets),
emit(event, data) {
self.emit(event, data, { websockets });
}
};
}
/*
* Alias for Server.to
*/
in(...args) {
return this.to.apply(null, args);
}
/*
* Simulate an event from the server to the clients. Useful for
* simulating errors.
*/
simulate(event) {
const listeners = networkBridge.websocketsLookup(this.url);
if (event === 'error') {
listeners.forEach(socket => {
socket.readyState = WebSocket.CLOSE;
socket.dispatchEvent(createEvent({ type: 'error' }));
});
}
}
}
/*
* Alternative constructor to support namespaces in socket.io
*
* http://socket.io/docs/rooms-and-namespaces/#custom-namespaces
*/
Server.of = function of(url) {
return new Server(url);
};
export default Server;

279
node_modules/mock-socket/src/socket-io.js generated vendored Normal file
View File

@ -0,0 +1,279 @@
import URL from 'url-parse';
import delay from './helpers/delay';
import EventTarget from './event/target';
import networkBridge from './network-bridge';
import { CLOSE_CODES } from './constants';
import logger from './helpers/logger';
import { createEvent, createMessageEvent, createCloseEvent } from './event/factory';
/*
* The socket-io class is designed to mimick the real API as closely as possible.
*
* http://socket.io/docs/
*/
class SocketIO extends EventTarget {
/*
* @param {string} url
*/
constructor(url = 'socket.io', protocol = '') {
super();
this.binaryType = 'blob';
const urlRecord = new URL(url);
if (!urlRecord.pathname) {
urlRecord.pathname = '/';
}
this.url = urlRecord.toString();
this.readyState = SocketIO.CONNECTING;
this.protocol = '';
if (typeof protocol === 'string' || (typeof protocol === 'object' && protocol !== null)) {
this.protocol = protocol;
} else if (Array.isArray(protocol) && protocol.length > 0) {
this.protocol = protocol[0];
}
const server = networkBridge.attachWebSocket(this, this.url);
/*
* Delay triggering the connection events so they can be defined in time.
*/
delay(function delayCallback() {
if (server) {
this.readyState = SocketIO.OPEN;
server.dispatchEvent(createEvent({ type: 'connection' }), server, this);
server.dispatchEvent(createEvent({ type: 'connect' }), server, this); // alias
this.dispatchEvent(createEvent({ type: 'connect', target: this }));
} else {
this.readyState = SocketIO.CLOSED;
this.dispatchEvent(createEvent({ type: 'error', target: this }));
this.dispatchEvent(
createCloseEvent({
type: 'close',
target: this,
code: CLOSE_CODES.CLOSE_NORMAL
})
);
logger('error', `Socket.io connection to '${this.url}' failed`);
}
}, this);
/**
Add an aliased event listener for close / disconnect
*/
this.addEventListener('close', event => {
this.dispatchEvent(
createCloseEvent({
type: 'disconnect',
target: event.target,
code: event.code
})
);
});
}
/*
* Closes the SocketIO connection or connection attempt, if any.
* If the connection is already CLOSED, this method does nothing.
*/
close() {
if (this.readyState !== SocketIO.OPEN) {
return undefined;
}
const server = networkBridge.serverLookup(this.url);
networkBridge.removeWebSocket(this, this.url);
this.readyState = SocketIO.CLOSED;
this.dispatchEvent(
createCloseEvent({
type: 'close',
target: this,
code: CLOSE_CODES.CLOSE_NORMAL
})
);
if (server) {
server.dispatchEvent(
createCloseEvent({
type: 'disconnect',
target: this,
code: CLOSE_CODES.CLOSE_NORMAL
}),
server
);
}
return this;
}
/*
* Alias for Socket#close
*
* https://github.com/socketio/socket.io-client/blob/master/lib/socket.js#L383
*/
disconnect() {
return this.close();
}
/*
* Submits an event to the server with a payload
*/
emit(event, ...data) {
if (this.readyState !== SocketIO.OPEN) {
throw new Error('SocketIO is already in CLOSING or CLOSED state');
}
const messageEvent = createMessageEvent({
type: event,
origin: this.url,
data
});
const server = networkBridge.serverLookup(this.url);
if (server) {
server.dispatchEvent(messageEvent, ...data);
}
return this;
}
/*
* Submits a 'message' event to the server.
*
* Should behave exactly like WebSocket#send
*
* https://github.com/socketio/socket.io-client/blob/master/lib/socket.js#L113
*/
send(data) {
this.emit('message', data);
return this;
}
/*
* For broadcasting events to other connected sockets.
*
* e.g. socket.broadcast.emit('hi!');
* e.g. socket.broadcast.to('my-room').emit('hi!');
*/
get broadcast() {
if (this.readyState !== SocketIO.OPEN) {
throw new Error('SocketIO is already in CLOSING or CLOSED state');
}
const self = this;
const server = networkBridge.serverLookup(this.url);
if (!server) {
throw new Error(`SocketIO can not find a server at the specified URL (${this.url})`);
}
return {
emit(event, data) {
server.emit(event, data, { websockets: networkBridge.websocketsLookup(self.url, null, self) });
return self;
},
to(room) {
return server.to(room, self);
},
in(room) {
return server.in(room, self);
}
};
}
/*
* For registering events to be received from the server
*/
on(type, callback) {
this.addEventListener(type, callback);
return this;
}
/*
* Remove event listener
*
* https://socket.io/docs/client-api/#socket-on-eventname-callback
*/
off(type) {
this.removeEventListener(type);
}
/*
* Join a room on a server
*
* http://socket.io/docs/rooms-and-namespaces/#joining-and-leaving
*/
join(room) {
networkBridge.addMembershipToRoom(this, room);
}
/*
* Get the websocket to leave the room
*
* http://socket.io/docs/rooms-and-namespaces/#joining-and-leaving
*/
leave(room) {
networkBridge.removeMembershipFromRoom(this, room);
}
to(room) {
return this.broadcast.to(room);
}
in() {
return this.to.apply(null, arguments);
}
/*
* Invokes all listener functions that are listening to the given event.type property. Each
* listener will be passed the event as the first argument.
*
* @param {object} event - event object which will be passed to all listeners of the event.type property
*/
dispatchEvent(event, ...customArguments) {
const eventName = event.type;
const listeners = this.listeners[eventName];
if (!Array.isArray(listeners)) {
return false;
}
listeners.forEach(listener => {
if (customArguments.length > 0) {
listener.apply(this, customArguments);
} else {
// Regular WebSockets expect a MessageEvent but Socketio.io just wants raw data
// payload instanceof MessageEvent works, but you can't isntance of NodeEvent
// for now we detect if the output has data defined on it
listener.call(this, event.data ? event.data : event);
}
});
}
}
SocketIO.CONNECTING = 0;
SocketIO.OPEN = 1;
SocketIO.CLOSING = 2;
SocketIO.CLOSED = 3;
/*
* Static constructor methods for the IO Socket
*/
const IO = function ioConstructor(url, protocol) {
return new SocketIO(url, protocol);
};
/*
* Alias the raw IO() constructor
*/
IO.connect = function ioConnect(url, protocol) {
/* eslint-disable new-cap */
return IO(url, protocol);
/* eslint-enable new-cap */
};
export default IO;

191
node_modules/mock-socket/src/websocket.js generated vendored Normal file
View File

@ -0,0 +1,191 @@
import delay from './helpers/delay';
import logger from './helpers/logger';
import EventTarget from './event/target';
import networkBridge from './network-bridge';
import proxyFactory from './helpers/proxy-factory';
import lengthInUtf8Bytes from './helpers/byte-length';
import { CLOSE_CODES, ERROR_PREFIX } from './constants';
import urlVerification from './helpers/url-verification';
import normalizeSendData from './helpers/normalize-send';
import protocolVerification from './helpers/protocol-verification';
import { createEvent, createMessageEvent, createCloseEvent } from './event/factory';
import { closeWebSocketConnection, failWebSocketConnection } from './algorithms/close';
/*
* The main websocket class which is designed to mimick the native WebSocket class as close
* as possible.
*
* https://html.spec.whatwg.org/multipage/web-sockets.html
*/
class WebSocket extends EventTarget {
constructor(url, protocols) {
super();
this.url = urlVerification(url);
protocols = protocolVerification(protocols);
this.protocol = protocols[0] || '';
this.binaryType = 'blob';
this.readyState = WebSocket.CONNECTING;
const server = networkBridge.attachWebSocket(this, this.url);
/*
* This delay is needed so that we dont trigger an event before the callbacks have been
* setup. For example:
*
* var socket = new WebSocket('ws://localhost');
*
* If we dont have the delay then the event would be triggered right here and this is
* before the onopen had a chance to register itself.
*
* socket.onopen = () => { // this would never be called };
*
* and with the delay the event gets triggered here after all of the callbacks have been
* registered :-)
*/
delay(function delayCallback() {
if (server) {
if (
server.options.verifyClient &&
typeof server.options.verifyClient === 'function' &&
!server.options.verifyClient()
) {
this.readyState = WebSocket.CLOSED;
logger(
'error',
`WebSocket connection to '${this.url}' failed: HTTP Authentication failed; no valid credentials available`
);
networkBridge.removeWebSocket(this, this.url);
this.dispatchEvent(createEvent({ type: 'error', target: this }));
this.dispatchEvent(createCloseEvent({ type: 'close', target: this, code: CLOSE_CODES.CLOSE_NORMAL }));
} else {
if (server.options.selectProtocol && typeof server.options.selectProtocol === 'function') {
const selectedProtocol = server.options.selectProtocol(protocols);
const isFilled = selectedProtocol !== '';
const isRequested = protocols.indexOf(selectedProtocol) !== -1;
if (isFilled && !isRequested) {
this.readyState = WebSocket.CLOSED;
logger('error', `WebSocket connection to '${this.url}' failed: Invalid Sub-Protocol`);
networkBridge.removeWebSocket(this, this.url);
this.dispatchEvent(createEvent({ type: 'error', target: this }));
this.dispatchEvent(createCloseEvent({ type: 'close', target: this, code: CLOSE_CODES.CLOSE_NORMAL }));
return;
}
this.protocol = selectedProtocol;
}
this.readyState = WebSocket.OPEN;
this.dispatchEvent(createEvent({ type: 'open', target: this }));
server.dispatchEvent(createEvent({ type: 'connection' }), proxyFactory(this));
}
} else {
this.readyState = WebSocket.CLOSED;
this.dispatchEvent(createEvent({ type: 'error', target: this }));
this.dispatchEvent(createCloseEvent({ type: 'close', target: this, code: CLOSE_CODES.CLOSE_NORMAL }));
logger('error', `WebSocket connection to '${this.url}' failed`);
}
}, this);
}
get onopen() {
return this.listeners.open;
}
get onmessage() {
return this.listeners.message;
}
get onclose() {
return this.listeners.close;
}
get onerror() {
return this.listeners.error;
}
set onopen(listener) {
delete this.listeners.open;
this.addEventListener('open', listener);
}
set onmessage(listener) {
delete this.listeners.message;
this.addEventListener('message', listener);
}
set onclose(listener) {
delete this.listeners.close;
this.addEventListener('close', listener);
}
set onerror(listener) {
delete this.listeners.error;
this.addEventListener('error', listener);
}
send(data) {
if (this.readyState === WebSocket.CLOSING || this.readyState === WebSocket.CLOSED) {
throw new Error('WebSocket is already in CLOSING or CLOSED state');
}
// TODO: handle bufferedAmount
const messageEvent = createMessageEvent({
type: 'server::message',
origin: this.url,
data: normalizeSendData(data)
});
const server = networkBridge.serverLookup(this.url);
if (server) {
delay(() => {
this.dispatchEvent(messageEvent, data);
}, server);
}
}
close(code, reason) {
if (code !== undefined) {
if (typeof code !== 'number' || (code !== 1000 && (code < 3000 || code > 4999))) {
throw new TypeError(
`${ERROR_PREFIX.CLOSE_ERROR} The code must be either 1000, or between 3000 and 4999. ${code} is neither.`
);
}
}
if (reason !== undefined) {
const length = lengthInUtf8Bytes(reason);
if (length > 123) {
throw new SyntaxError(`${ERROR_PREFIX.CLOSE_ERROR} The message must not be greater than 123 bytes.`);
}
}
if (this.readyState === WebSocket.CLOSING || this.readyState === WebSocket.CLOSED) {
return;
}
if (this.readyState === WebSocket.CONNECTING) {
failWebSocketConnection(this, code, reason);
} else {
closeWebSocketConnection(this, code, reason);
}
}
}
WebSocket.CONNECTING = 0;
WebSocket.prototype.CONNECTING = WebSocket.CONNECTING;
WebSocket.OPEN = 1;
WebSocket.prototype.OPEN = WebSocket.OPEN;
WebSocket.CLOSING = 2;
WebSocket.prototype.CLOSING = WebSocket.CLOSING;
WebSocket.CLOSED = 3;
WebSocket.prototype.CLOSED = WebSocket.CLOSED;
export default WebSocket;

4687
node_modules/mock-socket/yarn.lock generated vendored Normal file

File diff suppressed because it is too large Load Diff

22
node_modules/querystringify/LICENSE generated vendored Normal file
View File

@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

60
node_modules/querystringify/README.md generated vendored Normal file
View File

@ -0,0 +1,60 @@
# querystringify
[![Made by unshift](https://img.shields.io/badge/made%20by-unshift-00ffcc.svg?style=flat-square)](http://unshift.io)[![Version npm](http://img.shields.io/npm/v/querystringify.svg?style=flat-square)](http://browsenpm.org/package/querystringify)[![Build Status](http://img.shields.io/travis/unshiftio/querystringify/master.svg?style=flat-square)](https://travis-ci.org/unshiftio/querystringify)[![Dependencies](https://img.shields.io/david/unshiftio/querystringify.svg?style=flat-square)](https://david-dm.org/unshiftio/querystringify)[![Coverage Status](http://img.shields.io/coveralls/unshiftio/querystringify/master.svg?style=flat-square)](https://coveralls.io/r/unshiftio/querystringify?branch=master)[![IRC channel](http://img.shields.io/badge/IRC-irc.freenode.net%23unshift-00a8ff.svg?style=flat-square)](http://webchat.freenode.net/?channels=unshift)
A somewhat JSON compatible interface for query string parsing. This query string
parser is dumb, don't expect to much from it as it only wants to parse simple
query strings. If you want to parse complex, multi level and deeply nested
query strings then you should ask your self. WTF am I doing?
## Installation
This module is released in npm as `querystringify`. It's also compatible with
`browserify` so it can be used on the server as well as on the client. To
install it simply run the following command from your CLI:
```
npm install --save querystringify
```
## Usage
In the following examples we assume that you've already required the library as:
```js
'use strict';
var qs = require('querystringify');
```
### qs.parse()
The parse method transforms a given query string in to an object. Parameters
without values are set to empty strings. It does not care if your query string
is prefixed with a `?` or not. It just extracts the parts between the `=` and
`&`:
```js
qs.parse('?foo=bar'); // { foo: 'bar' }
qs.parse('foo=bar'); // { foo: 'bar' }
qs.parse('foo=bar&bar=foo'); // { foo: 'bar', bar: 'foo' }
qs.parse('foo&bar=foo'); // { foo: '', bar: 'foo' }
```
### qs.stringify()
This transforms a given object in to a query string. By default we return the
query string without a `?` prefix. If you want to prefix it by default simply
supply `true` as second argument. If it should be prefixed by something else
simply supply a string with the prefix value as second argument:
```js
qs.stringify({ foo: bar }); // foo=bar
qs.stringify({ foo: bar }, true); // ?foo=bar
qs.stringify({ foo: bar }, '&'); // &foo=bar
qs.stringify({ foo: '' }, '&'); // &foo=
```
## License
MIT

88
node_modules/querystringify/index.js generated vendored Normal file
View File

@ -0,0 +1,88 @@
'use strict';
var has = Object.prototype.hasOwnProperty
, undef;
/**
* Decode a URI encoded string.
*
* @param {String} input The URI encoded string.
* @returns {String} The decoded string.
* @api private
*/
function decode(input) {
return decodeURIComponent(input.replace(/\+/g, ' '));
}
/**
* Simple query string parser.
*
* @param {String} query The query string that needs to be parsed.
* @returns {Object}
* @api public
*/
function querystring(query) {
var parser = /([^=?&]+)=?([^&]*)/g
, result = {}
, part;
while (part = parser.exec(query)) {
var key = decode(part[1])
, value = decode(part[2]);
//
// Prevent overriding of existing properties. This ensures that build-in
// methods like `toString` or __proto__ are not overriden by malicious
// querystrings.
//
if (key in result) continue;
result[key] = value;
}
return result;
}
/**
* Transform a query string to an object.
*
* @param {Object} obj Object that should be transformed.
* @param {String} prefix Optional prefix.
* @returns {String}
* @api public
*/
function querystringify(obj, prefix) {
prefix = prefix || '';
var pairs = []
, value
, key;
//
// Optionally prefix with a '?' if needed
//
if ('string' !== typeof prefix) prefix = '?';
for (key in obj) {
if (has.call(obj, key)) {
value = obj[key];
//
// Edge cases where we actually want to encode the value to an empty
// string instead of the stringified value.
//
if (!value && (value === null || value === undef || isNaN(value))) {
value = '';
}
pairs.push(encodeURIComponent(key) +'='+ encodeURIComponent(value));
}
}
return pairs.length ? prefix + pairs.join('&') : '';
}
//
// Expose the module.
//
exports.stringify = querystringify;
exports.parse = querystring;

66
node_modules/querystringify/package.json generated vendored Normal file
View File

@ -0,0 +1,66 @@
{
"_from": "querystringify@^2.0.0",
"_id": "querystringify@2.1.0",
"_inBundle": false,
"_integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
"_location": "/querystringify",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "querystringify@^2.0.0",
"name": "querystringify",
"escapedName": "querystringify",
"rawSpec": "^2.0.0",
"saveSpec": null,
"fetchSpec": "^2.0.0"
},
"_requiredBy": [
"/url-parse"
],
"_resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz",
"_shasum": "7ded8dfbf7879dcc60d0a644ac6754b283ad17ef",
"_spec": "querystringify@^2.0.0",
"_where": "/Users/josh.burman/Projects/braid/node_modules/url-parse",
"author": {
"name": "Arnout Kazemier"
},
"bugs": {
"url": "https://github.com/unshiftio/querystringify/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "Querystringify - Small, simple but powerful query string parser.",
"devDependencies": {
"assume": "^2.1.0",
"istanbul": "^0.4.5",
"mocha": "^5.2.0",
"pre-commit": "^1.2.2"
},
"homepage": "https://github.com/unshiftio/querystringify",
"keywords": [
"query",
"string",
"query-string",
"querystring",
"qs",
"stringify",
"parse",
"decode",
"encode"
],
"license": "MIT",
"main": "index.js",
"name": "querystringify",
"repository": {
"type": "git",
"url": "git+https://github.com/unshiftio/querystringify.git"
},
"scripts": {
"coverage": "istanbul cover _mocha -- test.js",
"test": "mocha test.js",
"test-travis": "istanbul cover _mocha --report lcovonly -- test.js",
"watch": "mocha --watch test.js"
},
"version": "2.1.0"
}

2
node_modules/requires-port/.npmignore generated vendored Normal file
View File

@ -0,0 +1,2 @@
node_modules
coverage

19
node_modules/requires-port/.travis.yml generated vendored Normal file
View File

@ -0,0 +1,19 @@
sudo: false
language: node_js
node_js:
- "4"
- "iojs"
- "0.12"
- "0.10"
script:
- "npm run test-travis"
after_script:
- "npm install coveralls@2 && cat coverage/lcov.info | coveralls"
matrix:
fast_finish: true
notifications:
irc:
channels:
- "irc.freenode.org#unshift"
on_success: change
on_failure: change

22
node_modules/requires-port/LICENSE generated vendored Normal file
View File

@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

47
node_modules/requires-port/README.md generated vendored Normal file
View File

@ -0,0 +1,47 @@
# requires-port
[![Made by unshift](https://img.shields.io/badge/made%20by-unshift-00ffcc.svg?style=flat-square)](http://unshift.io)[![Version npm](http://img.shields.io/npm/v/requires-port.svg?style=flat-square)](http://browsenpm.org/package/requires-port)[![Build Status](http://img.shields.io/travis/unshiftio/requires-port/master.svg?style=flat-square)](https://travis-ci.org/unshiftio/requires-port)[![Dependencies](https://img.shields.io/david/unshiftio/requires-port.svg?style=flat-square)](https://david-dm.org/unshiftio/requires-port)[![Coverage Status](http://img.shields.io/coveralls/unshiftio/requires-port/master.svg?style=flat-square)](https://coveralls.io/r/unshiftio/requires-port?branch=master)[![IRC channel](http://img.shields.io/badge/IRC-irc.freenode.net%23unshift-00a8ff.svg?style=flat-square)](http://webchat.freenode.net/?channels=unshift)
The module name says it all, check if a protocol requires a given port.
## Installation
This module is intended to be used with browserify or Node.js and is distributed
in the public npm registry. To install it simply run the following command from
your CLI:
```j
npm install --save requires-port
```
## Usage
The module exports it self as function and requires 2 arguments:
1. The port number, can be a string or number.
2. Protocol, can be `http`, `http:` or even `https://yomoma.com`. We just split
it at `:` and use the first result. We currently accept the following
protocols:
- `http`
- `https`
- `ws`
- `wss`
- `ftp`
- `gopher`
- `file`
It returns a boolean that indicates if protocol requires this port to be added
to your URL.
```js
'use strict';
var required = require('requires-port');
console.log(required('8080', 'http')) // true
console.log(required('80', 'http')) // false
```
# License
MIT

Some files were not shown because too many files have changed in this diff Show More