diff --git a/s4t-server-node/.crossbar/config.json b/.crossbar/config.json
similarity index 92%
rename from s4t-server-node/.crossbar/config.json
rename to .crossbar/config.json
index 2371cfe..9243667 100644
--- a/s4t-server-node/.crossbar/config.json
+++ b/.crossbar/config.json
@@ -17,7 +17,8 @@
"publish": true,
"subscribe": true,
"call": true,
- "register": true
+ "register": true,
+ "debug":true
}
]
}
diff --git a/.gitignore b/.gitignore
index 1819a7a..db06cf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
s4t-server-node/node_modules
+s4t-server-node/lib/node_modules
diff --git a/s4t-server-node/.crossbar/node.pid b/s4t-server-node/.crossbar/node.pid
deleted file mode 100644
index d1403fd..0000000
--- a/s4t-server-node/.crossbar/node.pid
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "pid": 9890,
- "options": {
- "loglevel": "info",
- "logdir": null,
- "config": "/mnt/Data-Partition/Develop/crossbar.io/s4t/.crossbar/config.json",
- "cbdir": "/mnt/Data-Partition/Develop/crossbar.io/s4t/.crossbar",
- "command": "start",
- "reactor": null,
- "debug": false
- },
- "argv": [
- "/mnt/Data-Partition/IoT-Communication/pypy-2.4.0-linux/bin/crossbar",
- "start"
- ]
-}
diff --git a/s4t-server-node/node_modules/node-reverse-wstunnel/lib/wst.js b/s4t-server-node/bin/server
old mode 100644
new mode 100755
similarity index 82%
rename from s4t-server-node/node_modules/node-reverse-wstunnel/lib/wst.js
rename to s4t-server-node/bin/server
index 83adf83..618c5f1
--- a/s4t-server-node/node_modules/node-reverse-wstunnel/lib/wst.js
+++ b/s4t-server-node/bin/server
@@ -1,3 +1,5 @@
+#!/usr/bin/env node
+
/*
The MIT License (MIT)
@@ -22,13 +24,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-(function() {
- module.exports = {
- server: require("./wst_server"),
- client: require("./wst_client"),
- server_reverse : require("./wst_server_reverse"),
- client_reverse : require("./wst_client_reverse"),
- };
+var s4t = require("../lib/s4t_WS");
-}).call(this);
+var server = new s4t.server
+server.start(6655);
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/node-reverse-wstunnel/bin/wstt.js b/s4t-server-node/index.js
old mode 100755
new mode 100644
similarity index 96%
rename from s4t-server-node/node_modules/node-reverse-wstunnel/bin/wstt.js
rename to s4t-server-node/index.js
index 8b0376e..d904a97
--- a/s4t-server-node/node_modules/node-reverse-wstunnel/bin/wstt.js
+++ b/s4t-server-node/index.js
@@ -1,5 +1,3 @@
-#!/usr/bin/env node
-
/*
The MIT License (MIT)
@@ -23,4 +21,5 @@ 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.
*/
-require("./wst")
+
+module.exports = require('./lib/s4t_WS');
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/node-reverse-wstunnel/libr/https_override.js b/s4t-server-node/lib/getIP.js
similarity index 72%
rename from s4t-server-node/node_modules/node-reverse-wstunnel/libr/https_override.js
rename to s4t-server-node/lib/getIP.js
index 7262e55..cc3c6c7 100644
--- a/s4t-server-node/node_modules/node-reverse-wstunnel/libr/https_override.js
+++ b/s4t-server-node/lib/getIP.js
@@ -1,18 +1,14 @@
/*
The MIT License (MIT)
-
Copyright (c) 2014 Andrea Rocco Lotronto
-
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
@@ -22,18 +18,18 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-(function() {
- var https, old_https_request;
-
- https = require("https");
-
- old_https_request = https.request;
-
- https.request = function() {
- var options;
- options = arguments[0];
- options.rejectUnauthorized = false;
- return old_https_request.apply(void 0, Array.apply(null, arguments));
- };
-
-}).call(this);
+var networkInterfaces = require('os').networkInterfaces();
+
+module.exports = function (interface, version) {
+ var ip ;
+ for (var ifName in networkInterfaces){
+ if(ifName == interface){
+ var ifDetails = networkInterfaces[ifName];
+ for (var i = 0; ifDetails[i].family == version; i++){
+ ip = ifDetails[i].address;
+ }
+ }
+ }
+
+ return ip;
+};
diff --git a/s4t-server-node/node_modules/node-reverse-wstunnel/LICENSE b/s4t-server-node/lib/s4t_WS.js
similarity index 93%
rename from s4t-server-node/node_modules/node-reverse-wstunnel/LICENSE
rename to s4t-server-node/lib/s4t_WS.js
index 42eace7..9461824 100644
--- a/s4t-server-node/node_modules/node-reverse-wstunnel/LICENSE
+++ b/s4t-server-node/lib/s4t_WS.js
@@ -1,3 +1,4 @@
+ /*
The MIT License (MIT)
Copyright (c) 2014 Andrea Rocco Lotronto
@@ -18,4 +19,9 @@ 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.
\ No newline at end of file
+SOFTWARE.
+*/
+
+module.exports = {
+ server: require("./s4t_wamp_server")
+};
\ No newline at end of file
diff --git a/s4t-server-node/lib/s4t_wamp_server.js b/s4t-server-node/lib/s4t_wamp_server.js
new file mode 100644
index 0000000..d72be80
--- /dev/null
+++ b/s4t-server-node/lib/s4t_wamp_server.js
@@ -0,0 +1,143 @@
+/*
+The MIT License (MIT)
+Copyright (c) 2014 Andrea Rocco Lotronto
+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.
+*/
+
+var autobahn = require('autobahn');
+var express = require('express');
+
+
+s4t_wamp_server = function(){
+
+
+}
+
+s4t_wamp_server.prototype.start = function(restPort){
+
+
+ var boards = {};
+ var getIP = require('./getIP.js');
+ var IPLocal = getIP('eth0', 'IPv4');
+
+ var url_wamp_router = "ws://ip:port/ws"; //example of url wamp router
+
+ var connection = new autobahn.Connection({
+ url: url_wamp_router,
+ realm: "s4t"
+ });
+
+ var topic_command = 'board.command'
+ var topic_connection = 'board.connection'
+
+ connection.onopen = function (session, details) {
+
+
+ var rest = express();
+
+ rest.get('/', function (req, res){
+ res.send('API:
http://'+IPLocal+':'+restPort+'/list for board list');
+ });
+
+ rest.get('/command/', function (req, res){
+
+ //DEBUG Message
+ console.log('POST::::'+req.originalUrl);
+ var board = req.query.board
+ var command = req.query.command
+
+ if(boards[board] != undefined){
+ //DEBUG Message
+ //
+ console.log("ID exsist");
+ //random port for reverse service
+ var port = randomIntInc(6000,7000);
+ session.publish(topic_command, [board, command, port]);
+ if(command == 'ssh'){
+ res.send("ssh -p "+port+" root@"+IPLocal);
+ }
+ if(command == 'ideino'){
+ res.send("http://"+IPLocal+":"+port);
+ }
+
+ }
+ else
+ res.send("Error: malformed REST ");
+
+ });
+
+ rest.get('/list/', function (req, res){
+
+ var board_list='';
+
+ for (var i in boards){
+ board_list += boards[i];
+ command_list = "ssh"
+ }
+
+ res.send('List of the board: '+board_list+'
'+'use URL: '+IPLocal+":"+'6655'+"/commad/?board=board_name&command=ssh|ideino");
+ });
+
+ rest.listen(restPort);
+ console.log("Server REST started on: http://"+IPLocal+":"+restPort);
+
+ console.log("Connected to router WAMP");
+ // Publish, Subscribe, Call and Register
+
+ var onBoardConnected = function (args){
+ //registrare le schede che si connettono
+ if(args[1]=='connection'){
+ boards[args[0]] = args[0];
+ //DEBUGGG Message
+ console.log("Board connected:"+args[0]+" board state:"+args[1]);
+ //DEBUGGG Message
+ console.log("List of board::"+boards.length);
+ for (var i in boards){
+ console.log('Key: '+i+' value: '+boards[i]);
+ }
+
+ }
+ if(args[1]=='disconnect'){
+ delete boards[args[0]];
+ //DEBUGGG
+ console.log("Board disconnected:"+args[0]+" board state:"+args[1]);
+ //DEBUGGG
+ console.log("List of the board::"+boards.length);
+ for (var i in boards){
+ console.log('Key: '+i+' value: '+boards[i]);
+ }
+ }
+ }
+
+ session.subscribe(topic_connection, onBoardConnected);
+ console.log("Subsscribe to topic: "+topic_connection);
+ };
+
+ connection.onclose = function (reason, details) {
+ // handle connection lost
+ }
+
+ connection.open();
+
+}
+
+//function for pseudo random number
+function randomIntInc (low, high) {
+ return Math.floor(Math.random() * (high - low + 1) + low);
+}
+
+module.exports = s4t_wamp_server;
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/.npmignore b/s4t-server-node/node_modules/autobahn/.npmignore
deleted file mode 100644
index 0effafd..0000000
--- a/s4t-server-node/node_modules/autobahn/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-npm-debug.log
-node_modules
-.*.swp
-.lock-*
-build
diff --git a/s4t-server-node/node_modules/autobahn/Makefile b/s4t-server-node/node_modules/autobahn/Makefile
deleted file mode 100644
index be182a7..0000000
--- a/s4t-server-node/node_modules/autobahn/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-## http://dontkry.com/posts/code/browserify-and-the-universal-module-definition.html
-## http://addyosmani.com/writing-modular-js/
-
-##
-## ~/.npmrc
-## npm config edit
-## npm adduser
-##
-
-all: bundle
-
-bundle:
- browserify lib/autobahn.js --standalone autobahn -o build/autobahn.js
-
-test:
- npm test
-
-install:
- npm install ws
- npm install when
- npm install crypto-js
- npm install browserify
-
-publish:
- npm publish
diff --git a/s4t-server-node/node_modules/autobahn/README.md b/s4t-server-node/node_modules/autobahn/README.md
deleted file mode 100644
index 80ef3c8..0000000
--- a/s4t-server-node/node_modules/autobahn/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# AutobahnJS
-
-AutobahnJS implements **[The Web Application Messaging Protocol V2](http://wamp.ws/)** in JavaScript.
-
-WAMP provides asynchronous **Remote Procedure Calls** and **Publish & Subscribe** for applications in *one* protocol running over [WebSocket](http://tools.ietf.org/html/rfc6455).
-
-AutobahnJS runs on both **Web browsers** and **[Node.js](http://nodejs.org/)**, and implements the following WAMP roles:
-
-1. Publisher
-2. Subscriber
-3. Caller
-4. Callee
-
-AutobahnJS is part of the [Autobahn project](http://autobahn.ws/), MIT licensed, and full source code can be found on [GitHub](https://github.com/tavendo/AutobahnJS/).
diff --git a/s4t-server-node/node_modules/autobahn/index.js b/s4t-server-node/node_modules/autobahn/index.js
deleted file mode 100644
index 19cdd99..0000000
--- a/s4t-server-node/node_modules/autobahn/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-module.exports = require('./lib/autobahn');
diff --git a/s4t-server-node/node_modules/autobahn/lib/auth/cra.js b/s4t-server-node/node_modules/autobahn/lib/auth/cra.js
deleted file mode 100644
index fbf1d9a..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/auth/cra.js
+++ /dev/null
@@ -1,39 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-// require('assert') would be nice .. but it does not
-// work with Google Closure after Browserify
-
-var crypto = require('crypto-js');
-
-// PBKDF2-base key derivation function for salted WAMP-CRA
-//
-function derive_key (secret, salt, iterations, keylen) {
- var iterations = iterations || 1000;
- var keylen = keylen || 32;
- var config = {
- keySize: keylen / 4,
- iterations: iterations,
- hasher: crypto.algo.SHA256
- }
- var key = crypto.PBKDF2(secret, salt, config);
- return key.toString(crypto.enc.Base64);
-}
-
-
-function sign (key, challenge) {
- return crypto.HmacSHA256(challenge, key).toString(crypto.enc.Base64);
-}
-
-exports.sign = sign;
-exports.derive_key = derive_key;
diff --git a/s4t-server-node/node_modules/autobahn/lib/auth/persona.js b/s4t-server-node/node_modules/autobahn/lib/auth/persona.js
deleted file mode 100644
index 5cdc66b..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/auth/persona.js
+++ /dev/null
@@ -1,52 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-var when = require('when');
-var when_fn = require("when/function");
-
-
-function auth(session, user, extra) {
-
- // Persona Issues:
- //
- // Chrome: https://github.com/mozilla/persona/issues/4083
- // IE11: https://groups.google.com/forum/#!topic/mozilla.dev.identity/keEkVpvfLA8
-
- var d = session.defer();
-
- navigator.id.watch({
- loggedInUser: user,
- onlogin: function (assertion) {
- // A user has logged in! Here you need to:
- // 1. Send the assertion to your backend for verification and to create a session.
- // 2. Update your UI.
- d.resolve(assertion);
- },
- onlogout: function() {
- // A user has logged out! Here you need to:
- // Tear down the user's session by redirecting the user or making a call to your backend.
- // Also, make sure loggedInUser will get set to null on the next page load.
- // (That's a literal JavaScript null. Not false, 0, or undefined. null.)
- session.leave("wamp.close.logout");
- }
- });
-
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
-}
-
-exports.auth = auth;
diff --git a/s4t-server-node/node_modules/autobahn/lib/autobahn.js b/s4t-server-node/node_modules/autobahn/lib/autobahn.js
deleted file mode 100644
index 4d04603..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/autobahn.js
+++ /dev/null
@@ -1,60 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-// Polyfills for <= IE9
-require('./polyfill.js');
-
-var pjson = require('../package.json');
-
-var when = require('when');
-//var fn = require("when/function");
-
-if ('AUTOBAHN_DEBUG' in global && AUTOBAHN_DEBUG) {
- // https://github.com/cujojs/when/blob/master/docs/api.md#whenmonitor
- require('when/monitor/console');
- if ('console' in global) {
- console.log("AutobahnJS debug enabled");
- }
-}
-
-var util = require('./util.js');
-var log = require('./log.js');
-var session = require('./session.js');
-var connection = require('./connection.js');
-var configure = require('./configure.js');
-
-var persona = require('./auth/persona.js');
-var cra = require('./auth/cra.js');
-
-exports.version = pjson.version;
-
-exports.transports = configure.transports;
-
-exports.Connection = connection.Connection;
-
-exports.Session = session.Session;
-exports.Invocation = session.Invocation;
-exports.Event = session.Event;
-exports.Result = session.Result;
-exports.Error = session.Error;
-exports.Subscription = session.Subscription;
-exports.Registration = session.Registration;
-exports.Publication = session.Publication;
-
-exports.auth_persona = persona.auth;
-exports.auth_cra = cra;
-
-exports.when = when;
-
-exports.util = util;
-exports.log = log;
diff --git a/s4t-server-node/node_modules/autobahn/lib/configure.js b/s4t-server-node/node_modules/autobahn/lib/configure.js
deleted file mode 100644
index a4e7b71..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/configure.js
+++ /dev/null
@@ -1,58 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-
-function Transports() {
- this._repository = {};
-}
-
-
-Transports.prototype.register = function (name, factory) {
- this._repository[name] = factory;
-};
-
-
-Transports.prototype.isRegistered = function (name) {
- return this._repository[name] ? true : false;
-};
-
-
-Transports.prototype.get = function (name) {
- if (this._repository[name] !== undefined) {
- return this._repository[name];
- } else {
- throw "no such transport: " + name;
- }
-}
-
-
-Transports.prototype.list = function() {
- var items = [];
- for (var name in this._repository) {
- items.push(name);
- }
- return items;
-};
-
-
-var _transports = new Transports();
-
-
-// register default transports
-var websocket = require('./transport/websocket.js');
-_transports.register("websocket", websocket.Factory);
-
-var longpoll = require('./transport/longpoll.js');
-_transports.register("longpoll", longpoll.Factory);
-
-exports.transports = _transports;
diff --git a/s4t-server-node/node_modules/autobahn/lib/connection.js b/s4t-server-node/node_modules/autobahn/lib/connection.js
deleted file mode 100644
index cdbfaff..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/connection.js
+++ /dev/null
@@ -1,485 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-var when = require('when');
-
-var session = require('./session.js');
-var util = require('./util.js');
-var log = require('./log.js');
-var autobahn = require('./autobahn.js');
-
-
-var Connection = function (options) {
-
- var self = this;
-
- self._options = options;
-
-
- // Deferred factory
- //
- if (options && options.use_es6_promises) {
-
- if ('Promise' in global) {
- // ES6-based deferred factory
- //
- self._defer = function () {
- var deferred = {};
-
- deferred.promise = new Promise(function (resolve, reject) {
- deferred.resolve = resolve;
- deferred.reject = reject;
- });
-
- return deferred;
- };
- } else {
-
- log.debug("Warning: ES6 promises requested, but not found! Falling back to whenjs.");
-
- // whenjs-based deferred factory
- //
- self._defer = when.defer;
- }
-
- } else if (options && options.use_deferred) {
-
- // use explicit deferred factory, e.g. jQuery.Deferred or Q.defer
- //
- self._defer = options.use_deferred;
-
- } else {
-
- // whenjs-based deferred factory
- //
- self._defer = when.defer;
- }
-
-
- // WAMP transport
- //
- // backward compatiblity
- if (!self._options.transports) {
- self._options.transports = [
- {
- type: 'websocket',
- url: self._options.url
- }
- ];
- }
- self._transport_factories = [];
- self._init_transport_factories();
-
-
- // WAMP session
- //
- self._session = null;
- self._session_close_reason = null;
- self._session_close_message = null;
-
- // automatic reconnection configuration
- //
-
- // enable automatic reconnect if host is unreachable
- if (self._options.retry_if_unreachable !== undefined) {
- self._retry_if_unreachable = self._options.retry_if_unreachable;
- } else {
- self._retry_if_unreachable = true;
- }
-
- // maximum number of reconnection attempts
- self._max_retries = self._options.max_retries || 15;
-
- // initial retry delay in seconds
- self._initial_retry_delay = self._options.initial_retry_delay || 1.5;
-
- // maximum seconds between reconnection attempts
- self._max_retry_delay = self._options.max_retry_delay || 300;
-
- // the growth factor applied to the retry delay on each retry cycle
- self._retry_delay_growth = self._options.retry_delay_growth || 1.5;
-
- // the SD of a Gaussian to jitter the delay on each retry cycle
- // as a fraction of the mean
- self._retry_delay_jitter = self._options.retry_delay_jitter || 0.1;
-
- // reconnection tracking
- //
-
- // total number of successful connections
- self._connect_successes = 0;
-
- // controls if we should try to reconnect
- self._retry = false;
-
- // current number of reconnect cycles we went through
- self._retry_count = 0;
-
- // the current retry delay
- self._retry_delay = self._initial_retry_delay;
-
- // flag indicating if we are currently in a reconnect cycle
- self._is_retrying = false;
-
- // when retrying, this is the timer object returned from window.setTimeout()
- self._retry_timer = null;
-};
-
-
-
-Connection.prototype._create_transport = function () {
- for (var i = 0; i < this._transport_factories.length; ++i) {
- var transport_factory = this._transport_factories[i];
- log.debug("trying to create WAMP transport of type: " + transport_factory.type);
- try {
- var transport = transport_factory.create();
- if (transport) {
- log.debug("using WAMP transport type: " + transport_factory.type);
- return transport;
- }
- } catch (e) {
- // ignore
- log.debug("could not create WAMP transport '" + transport_factory.type + "': " + e);
- }
- }
-
- // could not create any WAMP transport
- return null;
-};
-
-
-
-Connection.prototype._init_transport_factories = function () {
- // WAMP transport
- //
- var transports, transport_options, transport_factory, transport_factory_klass;
-
- util.assert(this._options.transports, "No transport.factory specified");
- transports = this._options.transports;
- //if(typeof transports === "object") {
- // this._options.transports = [transports];
- //}
- for(var i = 0; i < this._options.transports.length; ++i) {
- // cascading transports until we find one which works
- transport_options = this._options.transports[i];
-
- if (!transport_options.url) {
- // defaulting to options.url if none is provided
- transport_options.url = this._options.url;
- }
- if (!transport_options.protocols) {
- transport_options.protocols = this._options.protocols;
- }
- util.assert(transport_options.type, "No transport.type specified");
- util.assert(typeof transport_options.type === "string", "transport.type must be a string");
- try {
- transport_factory_klass = autobahn.transports.get(transport_options.type);
- if (transport_factory_klass) {
- transport_factory = new transport_factory_klass(transport_options);
- this._transport_factories.push(transport_factory);
- }
- } catch (exc) {
- console.error(exc);
- }
- }
-};
-
-
-Connection.prototype._autoreconnect_reset_timer = function () {
-
- var self = this;
-
- if (self._retry_timer) {
- clearTimeout(self._retry_timer);
- }
- self._retry_timer = null;
-}
-
-
-Connection.prototype._autoreconnect_reset = function () {
-
- var self = this;
-
- self._autoreconnect_reset_timer();
-
- self._retry_count = 0;
- self._retry_delay = self._initial_retry_delay;
- self._is_retrying = false;
-}
-
-
-Connection.prototype._autoreconnect_advance = function () {
-
- var self = this;
-
- // jitter retry delay
- if (self._retry_delay_jitter) {
- self._retry_delay = util.rand_normal(self._retry_delay, self._retry_delay * self._retry_delay_jitter);
- }
-
- // cap the retry delay
- if (self._retry_delay > self._max_retry_delay) {
- self._retry_delay = self._max_retry_delay;
- }
-
- // count number of retries
- self._retry_count += 1;
-
- var res;
- if (self._retry && self._retry_count <= self._max_retries) {
- res = {
- count: self._retry_count,
- delay: self._retry_delay,
- will_retry: true
- };
- } else {
- res = {
- count: null,
- delay: null,
- will_retry: false
- }
- }
-
- // retry delay growth for next retry cycle
- if (self._retry_delay_growth) {
- self._retry_delay = self._retry_delay * self._retry_delay_growth;
- }
-
- return res;
-}
-
-
-Connection.prototype.open = function () {
-
- var self = this;
-
- if (self._transport) {
- throw "connection already open (or opening)";
- }
-
- self._autoreconnect_reset();
- self._retry = true;
-
- function retry () {
-
- // create a WAMP transport
- self._transport = self._create_transport();
-
- if (!self._transport) {
- // failed to create a WAMP transport
- self._retry = false;
- if (self.onclose) {
- var details = {
- reason: null,
- message: null,
- retry_delay: null,
- retry_count: null,
- will_retry: false
- };
- self.onclose("unsupported", details);
- }
- return;
- }
-
- // create a new WAMP session using the WebSocket connection as transport
- self._session = new session.Session(self._transport, self._defer, self._options.onchallenge);
- self._session_close_reason = null;
- self._session_close_message = null;
-
- self._transport.onopen = function () {
-
- // reset auto-reconnect timer and tracking
- self._autoreconnect_reset();
-
- // log successful connections
- self._connect_successes += 1;
-
- // start WAMP session
- self._session.join(self._options.realm, self._options.authmethods, self._options.authid);
- };
-
- self._session.onjoin = function (details) {
- if (self.onopen) {
- try {
- self.onopen(self._session, details);
- } catch (e) {
- log.debug("Exception raised from app code while firing Connection.onopen()", e);
- }
- }
- };
-
- //
- // ... WAMP session is now attached to realm.
- //
-
- self._session.onleave = function (reason, details) {
- self._session_close_reason = reason;
- self._session_close_message = details.message || "";
- self._retry = false;
- self._transport.close(1000);
- };
-
- self._transport.onclose = function (evt) {
-
- // remove any pending reconnect timer
- self._autoreconnect_reset_timer();
-
- self._transport = null;
-
- var reason = null;
- if (self._connect_successes === 0) {
- reason = "unreachable";
- if (!self._retry_if_unreachable) {
- self._retry = false;
- }
-
- } else if (!evt.wasClean) {
- reason = "lost";
-
- } else {
- reason = "closed";
- }
-
- var next_retry = self._autoreconnect_advance();
-
- // fire app code handler
- //
- if (self.onclose) {
- var details = {
- reason: self._session_close_reason,
- message: self._session_close_message,
- retry_delay: next_retry.delay,
- retry_count: next_retry.count,
- will_retry: next_retry.will_retry
- };
- try {
- // Connection.onclose() allows to cancel any subsequent retry attempt
- var stop_retrying = self.onclose(reason, details);
- } catch (e) {
- log.debug("Exception raised from app code while firing Connection.onclose()", e);
- }
- }
-
- // reset session info
- //
- if (self._session) {
- self._session._id = null;
- self._session = null;
- self._session_close_reason = null;
- self._session_close_message = null;
- }
-
- // automatic reconnection
- //
- if (self._retry && !stop_retrying) {
-
- if (next_retry.will_retry) {
-
- self._is_retrying = true;
-
- log.debug("retrying in " + next_retry.delay + " s");
- self._retry_timer = setTimeout(retry, next_retry.delay * 1000);
-
- } else {
- log.debug("giving up trying to reconnect");
- }
- }
- }
- }
-
- retry();
-};
-
-
-Connection.prototype.close = function (reason, message) {
- var self = this;
-
- if (!self._transport && !self._is_retrying) {
- throw "connection already closed";
- }
-
- // the app wants to close .. don't retry
- self._retry = false;
-
- if (self._session && self._session.isOpen) {
- // if there is an open session, close that first.
- self._session.leave(reason, message);
- } else if (self._transport) {
- // no session active: just close the transport
- self._transport.close(1000);
- }
-};
-
-
-
-Object.defineProperty(Connection.prototype, "defer", {
- get: function () {
- return this._defer;
- }
-});
-
-
-
-Object.defineProperty(Connection.prototype, "session", {
- get: function () {
- return this._session;
- }
-});
-
-
-
-Object.defineProperty(Connection.prototype, "isOpen", {
- get: function () {
- if (this._session && this._session.isOpen) {
- return true;
- } else {
- return false;
- }
- }
-});
-
-
-
-Object.defineProperty(Connection.prototype, "isConnected", {
- get: function () {
- if (this._transport) {
- return true;
- } else {
- return false;
- }
- }
-});
-
-
-
-Object.defineProperty(Connection.prototype, "transport", {
- get: function () {
- if (this._transport) {
- return this._transport;
- } else {
- return {info: {type: 'none', url: null, protocol: null}};
- }
- }
-});
-
-
-
-Object.defineProperty(Connection.prototype, "isRetrying", {
- get: function () {
- return this._is_retrying;
- }
-});
-
-
-
-exports.Connection = Connection;
diff --git a/s4t-server-node/node_modules/autobahn/lib/log.js b/s4t-server-node/node_modules/autobahn/lib/log.js
deleted file mode 100644
index 6b5f0c1..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/log.js
+++ /dev/null
@@ -1,23 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-
-var debug = function () {};
-
-if ('AUTOBAHN_DEBUG' in global && AUTOBAHN_DEBUG && 'console' in global) {
- debug = function () {
- console.log.apply(console, arguments);
- }
-}
-
-exports.debug = debug;
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill.js b/s4t-server-node/node_modules/autobahn/lib/polyfill.js
deleted file mode 100644
index 5518760..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('./polyfill/object');
-require('./polyfill/array');
-require('./polyfill/string');
-require('./polyfill/function');
-require('./polyfill/console');
-require('./polyfill/typedarray');
-require('./polyfill/json');
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill/array.js b/s4t-server-node/node_modules/autobahn/lib/polyfill/array.js
deleted file mode 100644
index 7779bb8..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill/array.js
+++ /dev/null
@@ -1,124 +0,0 @@
-if ( 'function' !== typeof Array.prototype.reduce ) {
- Array.prototype.reduce = function( callback /*, initialValue*/ ) {
- 'use strict';
- var len, t, value, k;
- if ( null === this || 'undefined' === typeof this ) {
- throw new TypeError(
- 'Array.prototype.reduce called on null or undefined' );
- }
- if ( 'function' !== typeof callback ) {
- throw new TypeError( callback + ' is not a function' );
- }
- t = Object( this );
- len = t.length >>> 0;
- k = 0;
- if ( arguments.length >= 2 ) {
- value = arguments[1];
- } else {
- while ( k < len && ! k in t ) k++;
- if ( k >= len )
- throw new TypeError('Reduce of empty array with no initial value');
- value = t[ k++ ];
- }
- for ( ; k < len ; k++ ) {
- if ( k in t ) {
- value = callback( value, t[k], k, t );
- }
- }
- return value;
- };
-}
-
-// Add ECMA262-5 Array methods if not supported natively
-//
-if (!('indexOf' in Array.prototype)) {
- Array.prototype.indexOf= function(find, i /*opt*/) {
- if (i===undefined) i= 0;
- if (i<0) i+= this.length;
- if (i<0) i= 0;
- for (var n= this.length; ithis.length-1) i= this.length-1;
- for (i++; i-->0;) /* i++ because from-argument is sadly inclusive */
- if (i in this && this[i]===find)
- return i;
- return -1;
- };
-}
-if (!('forEach' in Array.prototype)) {
- Array.prototype.forEach= function(action, that /*opt*/) {
- for (var i= 0, n= this.length; i>> 0, k = len - 1, value;
- if ( arguments.length >= 2 ) {
- value = arguments[1];
- } else {
- while ( k >= 0 && ! k in t ) k--;
- if ( k < 0 )
- throw new TypeError('Reduce of empty array with no initial value');
- value = t[ k-- ];
- }
- for ( ; k >= 0 ; k-- ) {
- if ( k in t ) {
- value = callback( value, t[k], k, t );
- }
- }
- return value;
- };
-}
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill/console.js b/s4t-server-node/node_modules/autobahn/lib/polyfill/console.js
deleted file mode 100644
index c8a9e16..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill/console.js
+++ /dev/null
@@ -1,96 +0,0 @@
-
-(function(console) {
- /*********************************************************************************************
- * Make sure console exists because IE blows up if it's not open and you attempt to access it
- * Create some dummy functions if we need to, so we don't have to if/else everything
- *********************************************************************************************/
- console||(console = window.console = {
- // all this "a, b, c, d, e" garbage is to make the IDEs happy, since they can't do variable argument lists
- /**
- * @param a
- * @param [b]
- * @param [c]
- * @param [d]
- * @param [e]
- */
- log: function(a, b, c, d, e) {},
- /**
- * @param a
- * @param [b]
- * @param [c]
- * @param [d]
- * @param [e]
- */
- info: function(a, b, c, d, e) {},
- /**
- * @param a
- * @param [b]
- * @param [c]
- * @param [d]
- * @param [e]
- */
- warn: function(a, b, c, d, e) {},
- /**
- * @param a
- * @param [b]
- * @param [c]
- * @param [d]
- * @param [e]
- */
- error: function(a, b, c, d, e) {},
-
- assert: function(test, message) {}
- });
-
- // IE 9 won't allow us to call console.log.apply (WTF IE!) It also reports typeof(console.log) as 'object' (UNH!)
- // but together, those two errors can be useful in allowing us to fix stuff so it works right
- if( typeof(console.log) === 'object' ) {
- // Array.forEach doesn't work in IE 8 so don't try that :(
- console.log = Function.prototype.call.bind(console.log, console);
- console.info = Function.prototype.call.bind(console.info, console);
- console.warn = Function.prototype.call.bind(console.warn, console);
- console.error = Function.prototype.call.bind(console.error, console);
- console.debug = Function.prototype.call.bind(console.info, console);
- }
-
- /**
- * Support group and groupEnd functions
- */
- ('group' in console) ||
- (console.group = function(msg) {
- console.info("\n--- "+msg+" ---\n");
- });
- ('groupEnd' in console) ||
- (console.groupEnd = function() {
- console.log("\n");
- });
- ('assert' in console) ||
- (console.assert = function(test, message) {
- if (!test) {
- try {
- // attempt to preserve the stack
- throw new Error("assertion failed: " + message);
- } catch(error) {
- setTimeout(function(){
- throw error;
- }, 0);
- }
- }
- });
-
- /**
- * Support time and timeEnd functions
- */
- ('time' in console) ||
- (function() {
- var trackedTimes = {};
- console.time = function(msg) {
- trackedTimes[msg] = new Date().getTime();
- };
- console.timeEnd = function(msg) {
- var end = new Date().getTime(), time = (msg in trackedTimes)? end - trackedTimes[msg] : 0;
- console.info(msg+': '+time+'ms')
- };
- }());
-
-})(global.console);
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill/function.js b/s4t-server-node/node_modules/autobahn/lib/polyfill/function.js
deleted file mode 100644
index 8a7c6cf..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill/function.js
+++ /dev/null
@@ -1,9 +0,0 @@
-if (!Function.prototype.bind) {
- //credits: taken from bind_even_never in this discussion: https://prototype.lighthouseapp.com/projects/8886/tickets/215-optimize-bind-bindaseventlistener#ticket-215-9
- Function.prototype.bind = function(context) {
- var fn = this, args = Array.prototype.slice.call(arguments, 1);
- return function(){
- return fn.apply(context, Array.prototype.concat.apply(args, arguments));
- };
- };
-}
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill/json.js b/s4t-server-node/node_modules/autobahn/lib/polyfill/json.js
deleted file mode 100644
index 71b9d8a..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill/json.js
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- json2.js
- 2014-02-04
-
- Public Domain.
-
- NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
-
- See http://www.JSON.org/js.html
-
-
- This code should be minified before deployment.
- See http://javascript.crockford.com/jsmin.html
-
- USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
- NOT CONTROL.
-
-
- This file creates a global JSON object containing two methods: stringify
- and parse.
-
- JSON.stringify(value, replacer, space)
- value any JavaScript value, usually an object or array.
-
- replacer an optional parameter that determines how object
- values are stringified for objects. It can be a
- function or an array of strings.
-
- space an optional parameter that specifies the indentation
- of nested structures. If it is omitted, the text will
- be packed without extra whitespace. If it is a number,
- it will specify the number of spaces to indent at each
- level. If it is a string (such as '\t' or ' '),
- it contains the characters used to indent at each level.
-
- This method produces a JSON text from a JavaScript value.
-
- When an object value is found, if the object contains a toJSON
- method, its toJSON method will be called and the result will be
- stringified. A toJSON method does not serialize: it returns the
- value represented by the name/value pair that should be serialized,
- or undefined if nothing should be serialized. The toJSON method
- will be passed the key associated with the value, and this will be
- bound to the value
-
- For example, this would serialize Dates as ISO strings.
-
- Date.prototype.toJSON = function (key) {
- function f(n) {
- // Format integers to have at least two digits.
- return n < 10 ? '0' + n : n;
- }
-
- return this.getUTCFullYear() + '-' +
- f(this.getUTCMonth() + 1) + '-' +
- f(this.getUTCDate()) + 'T' +
- f(this.getUTCHours()) + ':' +
- f(this.getUTCMinutes()) + ':' +
- f(this.getUTCSeconds()) + 'Z';
- };
-
- You can provide an optional replacer method. It will be passed the
- key and value of each member, with this bound to the containing
- object. The value that is returned from your method will be
- serialized. If your method returns undefined, then the member will
- be excluded from the serialization.
-
- If the replacer parameter is an array of strings, then it will be
- used to select the members to be serialized. It filters the results
- such that only members with keys listed in the replacer array are
- stringified.
-
- Values that do not have JSON representations, such as undefined or
- functions, will not be serialized. Such values in objects will be
- dropped; in arrays they will be replaced with null. You can use
- a replacer function to replace those with JSON values.
- JSON.stringify(undefined) returns undefined.
-
- The optional space parameter produces a stringification of the
- value that is filled with line breaks and indentation to make it
- easier to read.
-
- If the space parameter is a non-empty string, then that string will
- be used for indentation. If the space parameter is a number, then
- the indentation will be that many spaces.
-
- Example:
-
- text = JSON.stringify(['e', {pluribus: 'unum'}]);
- // text is '["e",{"pluribus":"unum"}]'
-
-
- text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
- // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
-
- text = JSON.stringify([new Date()], function (key, value) {
- return this[key] instanceof Date ?
- 'Date(' + this[key] + ')' : value;
- });
- // text is '["Date(---current time---)"]'
-
-
- JSON.parse(text, reviver)
- This method parses a JSON text to produce an object or array.
- It can throw a SyntaxError exception.
-
- The optional reviver parameter is a function that can filter and
- transform the results. It receives each of the keys and values,
- and its return value is used instead of the original value.
- If it returns what it received, then the structure is not modified.
- If it returns undefined then the member is deleted.
-
- Example:
-
- // Parse the text. Values that look like ISO date strings will
- // be converted to Date objects.
-
- myData = JSON.parse(text, function (key, value) {
- var a;
- if (typeof value === 'string') {
- a =
-/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
- if (a) {
- return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
- +a[5], +a[6]));
- }
- }
- return value;
- });
-
- myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
- var d;
- if (typeof value === 'string' &&
- value.slice(0, 5) === 'Date(' &&
- value.slice(-1) === ')') {
- d = new Date(value.slice(5, -1));
- if (d) {
- return d;
- }
- }
- return value;
- });
-
-
- This is a reference implementation. You are free to copy, modify, or
- redistribute.
-*/
-
-/*jslint evil: true, regexp: true */
-
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
- call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
- getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
- lastIndex, length, parse, prototype, push, replace, slice, stringify,
- test, toJSON, toString, valueOf
-*/
-
-
-// Create a JSON object only if one does not already exist. We create the
-// methods in a closure to avoid creating global variables.
-
-if (typeof JSON !== 'object') {
- JSON = {};
-}
-
-(function () {
- 'use strict';
-
- function f(n) {
- // Format integers to have at least two digits.
- return n < 10 ? '0' + n : n;
- }
-
- if (typeof Date.prototype.toJSON !== 'function') {
-
- Date.prototype.toJSON = function () {
-
- return isFinite(this.valueOf())
- ? this.getUTCFullYear() + '-' +
- f(this.getUTCMonth() + 1) + '-' +
- f(this.getUTCDate()) + 'T' +
- f(this.getUTCHours()) + ':' +
- f(this.getUTCMinutes()) + ':' +
- f(this.getUTCSeconds()) + 'Z'
- : null;
- };
-
- String.prototype.toJSON =
- Number.prototype.toJSON =
- Boolean.prototype.toJSON = function () {
- return this.valueOf();
- };
- }
-
- var cx,
- escapable,
- gap,
- indent,
- meta,
- rep;
-
-
- function quote(string) {
-
-// If the string contains no control characters, no quote characters, and no
-// backslash characters, then we can safely slap some quotes around it.
-// Otherwise we must also replace the offending characters with safe escape
-// sequences.
-
- escapable.lastIndex = 0;
- return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
- var c = meta[a];
- return typeof c === 'string'
- ? c
- : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
- }) + '"' : '"' + string + '"';
- }
-
-
- function str(key, holder) {
-
-// Produce a string from holder[key].
-
- var i, // The loop counter.
- k, // The member key.
- v, // The member value.
- length,
- mind = gap,
- partial,
- value = holder[key];
-
-// If the value has a toJSON method, call it to obtain a replacement value.
-
- if (value && typeof value === 'object' &&
- typeof value.toJSON === 'function') {
- value = value.toJSON(key);
- }
-
-// If we were called with a replacer function, then call the replacer to
-// obtain a replacement value.
-
- if (typeof rep === 'function') {
- value = rep.call(holder, key, value);
- }
-
-// What happens next depends on the value's type.
-
- switch (typeof value) {
- case 'string':
- return quote(value);
-
- case 'number':
-
-// JSON numbers must be finite. Encode non-finite numbers as null.
-
- return isFinite(value) ? String(value) : 'null';
-
- case 'boolean':
- case 'null':
-
-// If the value is a boolean or null, convert it to a string. Note:
-// typeof null does not produce 'null'. The case is included here in
-// the remote chance that this gets fixed someday.
-
- return String(value);
-
-// If the type is 'object', we might be dealing with an object or an array or
-// null.
-
- case 'object':
-
-// Due to a specification blunder in ECMAScript, typeof null is 'object',
-// so watch out for that case.
-
- if (!value) {
- return 'null';
- }
-
-// Make an array to hold the partial results of stringifying this object value.
-
- gap += indent;
- partial = [];
-
-// Is the value an array?
-
- if (Object.prototype.toString.apply(value) === '[object Array]') {
-
-// The value is an array. Stringify every element. Use null as a placeholder
-// for non-JSON values.
-
- length = value.length;
- for (i = 0; i < length; i += 1) {
- partial[i] = str(i, value) || 'null';
- }
-
-// Join all of the elements together, separated with commas, and wrap them in
-// brackets.
-
- v = partial.length === 0
- ? '[]'
- : gap
- ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
- : '[' + partial.join(',') + ']';
- gap = mind;
- return v;
- }
-
-// If the replacer is an array, use it to select the members to be stringified.
-
- if (rep && typeof rep === 'object') {
- length = rep.length;
- for (i = 0; i < length; i += 1) {
- if (typeof rep[i] === 'string') {
- k = rep[i];
- v = str(k, value);
- if (v) {
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
- }
- }
- }
- } else {
-
-// Otherwise, iterate through all of the keys in the object.
-
- for (k in value) {
- if (Object.prototype.hasOwnProperty.call(value, k)) {
- v = str(k, value);
- if (v) {
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
- }
- }
- }
- }
-
-// Join all of the member texts together, separated with commas,
-// and wrap them in braces.
-
- v = partial.length === 0
- ? '{}'
- : gap
- ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
- : '{' + partial.join(',') + '}';
- gap = mind;
- return v;
- }
- }
-
-// If the JSON object does not yet have a stringify method, give it one.
-
- if (typeof JSON.stringify !== 'function') {
- escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
- meta = { // table of character substitutions
- '\b': '\\b',
- '\t': '\\t',
- '\n': '\\n',
- '\f': '\\f',
- '\r': '\\r',
- '"' : '\\"',
- '\\': '\\\\'
- };
- JSON.stringify = function (value, replacer, space) {
-
-// The stringify method takes a value and an optional replacer, and an optional
-// space parameter, and returns a JSON text. The replacer can be a function
-// that can replace values, or an array of strings that will select the keys.
-// A default replacer method can be provided. Use of the space parameter can
-// produce text that is more easily readable.
-
- var i;
- gap = '';
- indent = '';
-
-// If the space parameter is a number, make an indent string containing that
-// many spaces.
-
- if (typeof space === 'number') {
- for (i = 0; i < space; i += 1) {
- indent += ' ';
- }
-
-// If the space parameter is a string, it will be used as the indent string.
-
- } else if (typeof space === 'string') {
- indent = space;
- }
-
-// If there is a replacer, it must be a function or an array.
-// Otherwise, throw an error.
-
- rep = replacer;
- if (replacer && typeof replacer !== 'function' &&
- (typeof replacer !== 'object' ||
- typeof replacer.length !== 'number')) {
- throw new Error('JSON.stringify');
- }
-
-// Make a fake root object containing our value under the key of ''.
-// Return the result of stringifying the value.
-
- return str('', {'': value});
- };
- }
-
-
-// If the JSON object does not yet have a parse method, give it one.
-
- if (typeof JSON.parse !== 'function') {
- cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
- JSON.parse = function (text, reviver) {
-
-// The parse method takes a text and an optional reviver function, and returns
-// a JavaScript value if the text is a valid JSON text.
-
- var j;
-
- function walk(holder, key) {
-
-// The walk method is used to recursively walk the resulting structure so
-// that modifications can be made.
-
- var k, v, value = holder[key];
- if (value && typeof value === 'object') {
- for (k in value) {
- if (Object.prototype.hasOwnProperty.call(value, k)) {
- v = walk(value, k);
- if (v !== undefined) {
- value[k] = v;
- } else {
- delete value[k];
- }
- }
- }
- }
- return reviver.call(holder, key, value);
- }
-
-
-// Parsing happens in four stages. In the first stage, we replace certain
-// Unicode characters with escape sequences. JavaScript handles many characters
-// incorrectly, either silently deleting them, or treating them as line endings.
-
- text = String(text);
- cx.lastIndex = 0;
- if (cx.test(text)) {
- text = text.replace(cx, function (a) {
- return '\\u' +
- ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
- });
- }
-
-// In the second stage, we run the text against regular expressions that look
-// for non-JSON patterns. We are especially concerned with '()' and 'new'
-// because they can cause invocation, and '=' because it can cause mutation.
-// But just to be safe, we want to reject all unexpected forms.
-
-// We split the second stage into 4 regexp operations in order to work around
-// crippling inefficiencies in IE's and Safari's regexp engines. First we
-// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
-// replace all simple value tokens with ']' characters. Third, we delete all
-// open brackets that follow a colon or comma or that begin the text. Finally,
-// we look to see that the remaining characters are only whitespace or ']' or
-// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
-
- if (/^[\],:{}\s]*$/
- .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
- .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
- .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
-// In the third stage we use the eval function to compile the text into a
-// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
-// in JavaScript: it can begin a block or an object literal. We wrap the text
-// in parens to eliminate the ambiguity.
-
- j = eval('(' + text + ')');
-
-// In the optional fourth stage, we recursively walk the new structure, passing
-// each name/value pair to a reviver function for possible transformation.
-
- return typeof reviver === 'function'
- ? walk({'': j}, '')
- : j;
- }
-
-// If the text is not JSON parseable, then a SyntaxError is thrown.
-
- throw new SyntaxError('JSON.parse');
- };
- }
-}());
-
-exports.JSON = JSON;
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill/object.js b/s4t-server-node/node_modules/autobahn/lib/polyfill/object.js
deleted file mode 100644
index 0182eb9..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill/object.js
+++ /dev/null
@@ -1,54 +0,0 @@
-if (!Object.create) {
- Object.create = (function(){
- function F(){}
-
- return function(o){
- if (arguments.length != 1) {
- throw new Error('Object.create implementation only accepts one parameter.');
- }
- F.prototype = o;
- return new F()
- }
- })()
-}
-// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
-if (!Object.keys) {
- Object.keys = (function () {
- 'use strict';
- var hasOwnProperty = Object.prototype.hasOwnProperty,
- hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
- dontEnums = [
- 'toString',
- 'toLocaleString',
- 'valueOf',
- 'hasOwnProperty',
- 'isPrototypeOf',
- 'propertyIsEnumerable',
- 'constructor'
- ],
- dontEnumsLength = dontEnums.length;
-
- return function (obj) {
- if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
- throw new TypeError('Object.keys called on non-object');
- }
-
- var result = [], prop, i;
-
- for (prop in obj) {
- if (hasOwnProperty.call(obj, prop)) {
- result.push(prop);
- }
- }
-
- if (hasDontEnumBug) {
- for (i = 0; i < dontEnumsLength; i++) {
- if (hasOwnProperty.call(obj, dontEnums[i])) {
- result.push(dontEnums[i]);
- }
- }
- }
- return result;
- };
- }());
-}
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill/string.js b/s4t-server-node/node_modules/autobahn/lib/polyfill/string.js
deleted file mode 100644
index f19f467..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill/string.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// Add ECMA262-5 string trim if not supported natively
-//
-if (!('trim' in String.prototype)) {
- String.prototype.trim= function() {
- return this.replace(/^\s+/, '').replace(/\s+$/, '');
- };
-}
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/lib/polyfill/typedarray.js b/s4t-server-node/node_modules/autobahn/lib/polyfill/typedarray.js
deleted file mode 100644
index 83bd5c3..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/polyfill/typedarray.js
+++ /dev/null
@@ -1,1174 +0,0 @@
-/*
- Copyright (c) 2010, Linden Research, Inc.
- Copyright (c) 2014, Joshua Bell
-
- 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.
- $/LicenseInfo$
- */
-
-// Original can be found at:
-// https://bitbucket.org/lindenlab/llsd
-// Modifications by Joshua Bell inexorabletash@gmail.com
-// https://github.com/inexorabletash/polyfill
-
-// ES3/ES5 implementation of the Krhonos Typed Array Specification
-// Ref: http://www.khronos.org/registry/typedarray/specs/latest/
-// Date: 2011-02-01
-//
-// Variations:
-// * Allows typed_array.get/set() as alias for subscripts (typed_array[])
-// * Gradually migrating structure from Khronos spec to ES6 spec
-if (typeof global["Uint8Array"] === "undefined") {
- (function (global, win) {
- 'use strict';
-
- var undefined = (void 0); // Paranoia
-
- // Beyond this value, index getters/setters (i.e. array[0], array[1]) are so slow to
- // create, and consume so much memory, that the browser appears frozen.
- var MAX_ARRAY_LENGTH = 1e5;
-
- // Approximations of internal ECMAScript conversion functions
- function Type(v) {
- switch (typeof v) {
- case 'undefined':
- return 'undefined';
- case 'boolean':
- return 'boolean';
- case 'number':
- return 'number';
- case 'string':
- return 'string';
- default:
- return v === null ? 'null' : 'object';
- }
- }
-
- // Class returns internal [[Class]] property, used to avoid cross-frame instanceof issues:
- function Class(v) {
- return Object.prototype.toString.call(v).replace(/^\[object *|\]$/g, '');
- }
-
- function IsCallable(o) {
- return typeof o === 'function';
- }
-
- function ToObject(v) {
- if (v === null || v === undefined) throw TypeError();
- return Object(v);
- }
-
- function ToInt32(v) {
- return v >> 0;
- }
-
- function ToUint32(v) {
- return v >>> 0;
- }
-
- // Snapshot intrinsics
- var LN2 = Math.LN2,
- abs = Math.abs,
- floor = Math.floor,
- log = Math.log,
- max = Math.max,
- min = Math.min,
- pow = Math.pow,
- round = Math.round;
-
- // emulate ES5 getter/setter API using legacy APIs
- // http://blogs.msdn.com/b/ie/archive/2010/09/07/transitioning-existing-code-to-the-es5-getter-setter-apis.aspx
- // (second clause tests for Object.defineProperty() in IE<9 that only supports extending DOM prototypes, but
- // note that IE<9 does not support __defineGetter__ or __defineSetter__ so it just renders the method harmless)
-
- (function () {
- var orig = Object.defineProperty;
- var dom_only = !(function () {
- try {
- return Object.defineProperty({}, 'x', {});
- } catch (_) {
- return false;
- }
- }());
-
- if (!orig || dom_only) {
- Object.defineProperty = function (o, prop, desc) {
- // In IE8 try built-in implementation for defining properties on DOM prototypes.
- if (orig) {
- try {
- return orig(o, prop, desc);
- } catch (_) {
- }
- }
-
- if (o !== Object(o))
- throw TypeError('Object.defineProperty called on non-object');
- if (Object.prototype.__defineGetter__ && ('get' in desc))
- Object.prototype.__defineGetter__.call(o, prop, desc.get);
- if (Object.prototype.__defineSetter__ && ('set' in desc))
- Object.prototype.__defineSetter__.call(o, prop, desc.set);
- if ('value' in desc)
- o[prop] = desc.value;
- return o;
- };
- }
- }());
-
- // ES5: Make obj[index] an alias for obj._getter(index)/obj._setter(index, value)
- // for index in 0 ... obj.length
- function makeArrayAccessors(obj) {
- if (obj.length > MAX_ARRAY_LENGTH) throw RangeError('Array too large for polyfill');
-
- function makeArrayAccessor(index) {
- Object.defineProperty(obj, index, {
- 'get': function () {
- return obj._getter(index);
- },
- 'set': function (v) {
- obj._setter(index, v);
- },
- enumerable: true,
- configurable: false
- });
- }
-
- var i;
- for (i = 0; i < obj.length; i += 1) {
- makeArrayAccessor(i);
- }
- }
-
- // Internal conversion functions:
- // pack() - take a number (interpreted as Type), output a byte array
- // unpack() - take a byte array, output a Type-like number
-
- function as_signed(value, bits) {
- var s = 32 - bits;
- return (value << s) >> s;
- }
-
- function as_unsigned(value, bits) {
- var s = 32 - bits;
- return (value << s) >>> s;
- }
-
- function packI8(n) {
- return [n & 0xff];
- }
-
- function unpackI8(bytes) {
- return as_signed(bytes[0], 8);
- }
-
- function packU8(n) {
- return [n & 0xff];
- }
-
- function unpackU8(bytes) {
- return as_unsigned(bytes[0], 8);
- }
-
- function packU8Clamped(n) {
- n = round(Number(n));
- return [n < 0 ? 0 : n > 0xff ? 0xff : n & 0xff];
- }
-
- function packI16(n) {
- return [(n >> 8) & 0xff, n & 0xff];
- }
-
- function unpackI16(bytes) {
- return as_signed(bytes[0] << 8 | bytes[1], 16);
- }
-
- function packU16(n) {
- return [(n >> 8) & 0xff, n & 0xff];
- }
-
- function unpackU16(bytes) {
- return as_unsigned(bytes[0] << 8 | bytes[1], 16);
- }
-
- function packI32(n) {
- return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff];
- }
-
- function unpackI32(bytes) {
- return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32);
- }
-
- function packU32(n) {
- return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff];
- }
-
- function unpackU32(bytes) {
- return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32);
- }
-
- function packIEEE754(v, ebits, fbits) {
-
- var bias = (1 << (ebits - 1)) - 1,
- s, e, f, ln,
- i, bits, str, bytes;
-
- function roundToEven(n) {
- var w = floor(n), f = n - w;
- if (f < 0.5)
- return w;
- if (f > 0.5)
- return w + 1;
- return w % 2 ? w + 1 : w;
- }
-
- // Compute sign, exponent, fraction
- if (v !== v) {
- // NaN
- // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping
- e = (1 << ebits) - 1;
- f = pow(2, fbits - 1);
- s = 0;
- } else if (v === Infinity || v === -Infinity) {
- e = (1 << ebits) - 1;
- f = 0;
- s = (v < 0) ? 1 : 0;
- } else if (v === 0) {
- e = 0;
- f = 0;
- s = (1 / v === -Infinity) ? 1 : 0;
- } else {
- s = v < 0;
- v = abs(v);
-
- if (v >= pow(2, 1 - bias)) {
- e = min(floor(log(v) / LN2), 1023);
- f = roundToEven(v / pow(2, e) * pow(2, fbits));
- if (f / pow(2, fbits) >= 2) {
- e = e + 1;
- f = 1;
- }
- if (e > bias) {
- // Overflow
- e = (1 << ebits) - 1;
- f = 0;
- } else {
- // Normalized
- e = e + bias;
- f = f - pow(2, fbits);
- }
- } else {
- // Denormalized
- e = 0;
- f = roundToEven(v / pow(2, 1 - bias - fbits));
- }
- }
-
- // Pack sign, exponent, fraction
- bits = [];
- for (i = fbits; i; i -= 1) {
- bits.push(f % 2 ? 1 : 0);
- f = floor(f / 2);
- }
- for (i = ebits; i; i -= 1) {
- bits.push(e % 2 ? 1 : 0);
- e = floor(e / 2);
- }
- bits.push(s ? 1 : 0);
- bits.reverse();
- str = bits.join('');
-
- // Bits to bytes
- bytes = [];
- while (str.length) {
- bytes.push(parseInt(str.substring(0, 8), 2));
- str = str.substring(8);
- }
- return bytes;
- }
-
- function unpackIEEE754(bytes, ebits, fbits) {
- // Bytes to bits
- var bits = [], i, j, b, str,
- bias, s, e, f;
-
- for (i = bytes.length; i; i -= 1) {
- b = bytes[i - 1];
- for (j = 8; j; j -= 1) {
- bits.push(b % 2 ? 1 : 0);
- b = b >> 1;
- }
- }
- bits.reverse();
- str = bits.join('');
-
- // Unpack sign, exponent, fraction
- bias = (1 << (ebits - 1)) - 1;
- s = parseInt(str.substring(0, 1), 2) ? -1 : 1;
- e = parseInt(str.substring(1, 1 + ebits), 2);
- f = parseInt(str.substring(1 + ebits), 2);
-
- // Produce number
- if (e === (1 << ebits) - 1) {
- return f !== 0 ? NaN : s * Infinity;
- } else if (e > 0) {
- // Normalized
- return s * pow(2, e - bias) * (1 + f / pow(2, fbits));
- } else if (f !== 0) {
- // Denormalized
- return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));
- } else {
- return s < 0 ? -0 : 0;
- }
- }
-
- function unpackF64(b) {
- return unpackIEEE754(b, 11, 52);
- }
-
- function packF64(v) {
- return packIEEE754(v, 11, 52);
- }
-
- function unpackF32(b) {
- return unpackIEEE754(b, 8, 23);
- }
-
- function packF32(v) {
- return packIEEE754(v, 8, 23);
- }
-
- //
- // 3 The ArrayBuffer Type
- //
-
- (function () {
-
- function ArrayBuffer(length) {
- length = ToInt32(length);
- if (length < 0) throw RangeError('ArrayBuffer size is not a small enough positive integer.');
- Object.defineProperty(this, 'byteLength', {value: length});
- Object.defineProperty(this, '_bytes', {value: Array(length)});
-
- for (var i = 0; i < length; i += 1)
- this._bytes[i] = 0;
- }
-
- global.ArrayBuffer = global.ArrayBuffer || ArrayBuffer;
-
- //
- // 5 The Typed Array View Types
- //
-
- function $TypedArray$() {
-
- // %TypedArray% ( length )
- if (!arguments.length || typeof arguments[0] !== 'object') {
- return (function (length) {
- length = ToInt32(length);
- if (length < 0) throw RangeError('length is not a small enough positive integer.');
- Object.defineProperty(this, 'length', {value: length});
- Object.defineProperty(this, 'byteLength', {value: length * this.BYTES_PER_ELEMENT});
- Object.defineProperty(this, 'buffer', {value: new ArrayBuffer(this.byteLength)});
- Object.defineProperty(this, 'byteOffset', {value: 0});
-
- }).apply(this, arguments);
- }
-
- // %TypedArray% ( typedArray )
- if (arguments.length >= 1 &&
- Type(arguments[0]) === 'object' &&
- arguments[0] instanceof $TypedArray$) {
- return (function (typedArray) {
- if (this.constructor !== typedArray.constructor) throw TypeError();
-
- var byteLength = typedArray.length * this.BYTES_PER_ELEMENT;
- Object.defineProperty(this, 'buffer', {value: new ArrayBuffer(byteLength)});
- Object.defineProperty(this, 'byteLength', {value: byteLength});
- Object.defineProperty(this, 'byteOffset', {value: 0});
- Object.defineProperty(this, 'length', {value: typedArray.length});
-
- for (var i = 0; i < this.length; i += 1)
- this._setter(i, typedArray._getter(i));
-
- }).apply(this, arguments);
- }
-
- // %TypedArray% ( array )
- if (arguments.length >= 1 &&
- Type(arguments[0]) === 'object' && !(arguments[0] instanceof $TypedArray$) && !(arguments[0] instanceof ArrayBuffer || Class(arguments[0]) === 'ArrayBuffer')) {
- return (function (array) {
-
- var byteLength = array.length * this.BYTES_PER_ELEMENT;
- Object.defineProperty(this, 'buffer', {value: new ArrayBuffer(byteLength)});
- Object.defineProperty(this, 'byteLength', {value: byteLength});
- Object.defineProperty(this, 'byteOffset', {value: 0});
- Object.defineProperty(this, 'length', {value: array.length});
-
- for (var i = 0; i < this.length; i += 1) {
- var s = array[i];
- this._setter(i, Number(s));
- }
- }).apply(this, arguments);
- }
-
- // %TypedArray% ( buffer, byteOffset=0, length=undefined )
- if (arguments.length >= 1 &&
- Type(arguments[0]) === 'object' &&
- (arguments[0] instanceof ArrayBuffer || Class(arguments[0]) === 'ArrayBuffer')) {
- return (function (buffer, byteOffset, length) {
-
- byteOffset = ToUint32(byteOffset);
- if (byteOffset > buffer.byteLength)
- throw RangeError('byteOffset out of range');
-
- // The given byteOffset must be a multiple of the element
- // size of the specific type, otherwise an exception is raised.
- if (byteOffset % this.BYTES_PER_ELEMENT)
- throw RangeError('buffer length minus the byteOffset is not a multiple of the element size.');
-
- if (length === undefined) {
- var byteLength = buffer.byteLength - byteOffset;
- if (byteLength % this.BYTES_PER_ELEMENT)
- throw RangeError('length of buffer minus byteOffset not a multiple of the element size');
- length = byteLength / this.BYTES_PER_ELEMENT;
-
- } else {
- length = ToUint32(length);
- byteLength = length * this.BYTES_PER_ELEMENT;
- }
-
- if ((byteOffset + byteLength) > buffer.byteLength)
- throw RangeError('byteOffset and length reference an area beyond the end of the buffer');
-
- Object.defineProperty(this, 'buffer', {value: buffer});
- Object.defineProperty(this, 'byteLength', {value: byteLength});
- Object.defineProperty(this, 'byteOffset', {value: byteOffset});
- Object.defineProperty(this, 'length', {value: length});
-
- }).apply(this, arguments);
- }
-
- // %TypedArray% ( all other argument combinations )
- throw TypeError();
- }
-
- // Properties of the %TypedArray Instrinsic Object
-
- // %TypedArray%.from ( source , mapfn=undefined, thisArg=undefined )
- Object.defineProperty($TypedArray$, 'from', {value: function (iterable) {
- return new this(iterable);
- }});
-
- // %TypedArray%.of ( ...items )
- Object.defineProperty($TypedArray$, 'of', {value: function (/*...items*/) {
- return new this(arguments);
- }});
-
- // %TypedArray%.prototype
- var $TypedArrayPrototype$ = {};
- $TypedArray$.prototype = $TypedArrayPrototype$;
-
- // WebIDL: getter type (unsigned long index);
- Object.defineProperty($TypedArray$.prototype, '_getter', {value: function (index) {
- if (arguments.length < 1) throw SyntaxError('Not enough arguments');
-
- index = ToUint32(index);
- if (index >= this.length)
- return undefined;
-
- var bytes = [], i, o;
- for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT;
- i < this.BYTES_PER_ELEMENT;
- i += 1, o += 1) {
- bytes.push(this.buffer._bytes[o]);
- }
- return this._unpack(bytes);
- }});
-
- // NONSTANDARD: convenience alias for getter: type get(unsigned long index);
- Object.defineProperty($TypedArray$.prototype, 'get', {value: $TypedArray$.prototype._getter});
-
- // WebIDL: setter void (unsigned long index, type value);
- Object.defineProperty($TypedArray$.prototype, '_setter', {value: function (index, value) {
- if (arguments.length < 2) throw SyntaxError('Not enough arguments');
-
- index = ToUint32(index);
- if (index >= this.length)
- return;
-
- var bytes = this._pack(value), i, o;
- for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT;
- i < this.BYTES_PER_ELEMENT;
- i += 1, o += 1) {
- this.buffer._bytes[o] = bytes[i];
- }
- }});
-
- // get %TypedArray%.prototype.buffer
- // get %TypedArray%.prototype.byteLength
- // get %TypedArray%.prototype.byteOffset
- // -- applied directly to the object in the constructor
-
- // %TypedArray%.prototype.constructor
- Object.defineProperty($TypedArray$.prototype, 'constructor', {value: $TypedArray$});
-
- // %TypedArray%.prototype.copyWithin (target, start, end = this.length )
- Object.defineProperty($TypedArray$.prototype, 'copyWithin', {value: function (m_target, m_start) {
- var m_end = arguments[2];
-
- var m_o = ToObject(this);
- var lenVal = m_o.length;
- var m_len = ToUint32(lenVal);
- m_len = max(m_len, 0);
- var relativeTarget = ToInt32(m_target);
- var m_to;
- if (relativeTarget < 0)
- {
- m_to = max(m_len + relativeTarget, 0);
- }
- else
- {
- m_to = min(relativeTarget, m_len);
- }
- var relativeStart = ToInt32(m_start);
- var m_from;
- if (relativeStart < 0)
- {
- m_from = max(m_len + relativeStart, 0);
- }
- else
- {
- m_from = min(relativeStart, m_len);
- }
- var relativeEnd;
- if (m_end === undefined)
- {
- relativeEnd = m_len;
- }
- else
- {
- relativeEnd = ToInt32(m_end);
- }
- var m_final;
- if (relativeEnd < 0) {
- m_final = max(m_len + relativeEnd, 0);
- } else {
- m_final = min(relativeEnd, m_len);
- }
-
- var m_count = min(m_final - m_from, m_len - m_to);
- var direction;
- if (from < m_to && m_to < m_from + m_count) {
- direction = -1;
- m_from = m_from + m_count - 1;
- m_to = m_to + m_count - 1;
- } else {
- direction = 1;
- }
- while (count > 0) {
- m_o._setter(m_to, m_o._getter(m_from));
- m_from = m_from + direction;
- m_to = m_to + direction;
- m_count = m_count - 1;
- }
- return m_o;
- }});
-
- // %TypedArray%.prototype.entries ( )
- // -- defined in es6.js to shim browsers w/ native TypedArrays
-
- // %TypedArray%.prototype.every ( callbackfn, thisArg = undefined )
- Object.defineProperty($TypedArray$.prototype, 'every', {value: function (callbackfn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (!IsCallable(callbackfn)) throw TypeError();
- var thisArg = arguments[1];
- for (var i = 0; i < len; i++) {
- if (!callbackfn.call(thisArg, t._getter(i), i, t))
- return false;
- }
- return true;
- }});
-
- // %TypedArray%.prototype.fill (value, start = 0, end = this.length )
- Object.defineProperty($TypedArray$.prototype, 'fill', {value: function (value) {
- var m_start = arguments[1],
- m_end = arguments[2];
-
- var m_o = ToObject(this);
- var lenVal = m_o.length;
- var m_len = ToUint32(lenVal);
- m_len = max(m_len, 0);
- var relativeStart = ToInt32(m_start);
- var m_k;
- if (relativeStart < 0)
- {
- m_k = max((m_len + relativeStart), 0);
- }
- else
- {
- m_k = min(relativeStart, m_len);
- }
- var relativeEnd;
- if (m_end === undefined)
- {
- relativeEnd = m_len;
- }
- else
- {
- relativeEnd = ToInt32(m_end);
- }
- var m_final;
- if (relativeEnd < 0)
- {
- m_final = max((m_len + relativeEnd), 0);
- }
- else
- {
- m_final = min(relativeEnd, m_len);
- }
- while (m_k < m_final) {
- m_o._setter(m_k, value);
- m_k += 1;
- }
- return m_o;
- }});
-
- // %TypedArray%.prototype.filter ( callbackfn, thisArg = undefined )
- Object.defineProperty($TypedArray$.prototype, 'filter', {value: function (callbackfn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (!IsCallable(callbackfn)) throw TypeError();
- var res = [];
- var thisp = arguments[1];
- for (var i = 0; i < len; i++) {
- var val = t._getter(i); // in case fun mutates this
- if (callbackfn.call(thisp, val, i, t))
- res.push(val);
- }
- return new this.constructor(res);
- }});
-
- // %TypedArray%.prototype.find (predicate, thisArg = undefined)
- Object.defineProperty($TypedArray$.prototype, 'find', {value: function (predicate) {
- var o = ToObject(this);
- var lenValue = o.length;
- var len = ToUint32(lenValue);
- if (!IsCallable(predicate)) throw TypeError();
- var t = arguments.length > 1 ? arguments[1] : undefined;
- var k = 0;
- while (k < len) {
- var kValue = o._getter(k);
- var testResult = predicate.call(t, kValue, k, o);
- if (Boolean(testResult))
- return kValue;
- ++k;
- }
- return undefined;
- }});
-
- // %TypedArray%.prototype.findIndex ( predicate, thisArg = undefined )
- Object.defineProperty($TypedArray$.prototype, 'findIndex', {value: function (predicate) {
- var o = ToObject(this);
- var lenValue = o.length;
- var len = ToUint32(lenValue);
- if (!IsCallable(predicate)) throw TypeError();
- var t = arguments.length > 1 ? arguments[1] : undefined;
- var k = 0;
- while (k < len) {
- var kValue = o._getter(k);
- var testResult = predicate.call(t, kValue, k, o);
- if (Boolean(testResult))
- return k;
- ++k;
- }
- return -1;
- }});
-
- // %TypedArray%.prototype.forEach ( callbackfn, thisArg = undefined )
- Object.defineProperty($TypedArray$.prototype, 'forEach', {value: function (callbackfn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (!IsCallable(callbackfn)) throw TypeError();
- var thisp = arguments[1];
- for (var i = 0; i < len; i++)
- callbackfn.call(thisp, t._getter(i), i, t);
- }});
-
- // %TypedArray%.prototype.indexOf (searchElement, fromIndex = 0 )
- Object.defineProperty($TypedArray$.prototype, 'indexOf', {value: function (searchElement) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (len === 0) return -1;
- var no = 0;
- var na;
- if (arguments.length > 0) {
- na = Number(arguments[1]);
- if (na !== no) {
- no = 0;
- } else if (na !== 0 && na !== (1 / 0) && na !== -(1 / 0)) {
- no = (na > 0 || -1) * floor(abs(na));
- }
- }
- if (no >= len) return -1;
- var k = no >= 0 ? no : max(len - abs(no), 0);
- for (; k < len; k++) {
- if (t._getter(k) === searchElement) {
- return k;
- }
- }
- return -1;
- }});
-
- // %TypedArray%.prototype.join ( separator )
- Object.defineProperty($TypedArray$.prototype, 'join', {value: function (separator) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- var tmp = Array(len);
- for (var i = 0; i < len; ++i)
- tmp[i] = t._getter(i);
- return tmp.join(separator === undefined ? ',' : separator); // Hack for IE7
- }});
-
- // %TypedArray%.prototype.keys ( )
- // -- defined in es6.js to shim browsers w/ native TypedArrays
-
- // %TypedArray%.prototype.lastIndexOf ( searchElement, fromIndex = this.length-1 )
- Object.defineProperty($TypedArray$.prototype, 'lastIndexOf', {value: function (searchElement) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (len === 0) return -1;
- var n = len;
- if (arguments.length > 1) {
- n = Number(arguments[1]);
- if (n !== n) {
- n = 0;
- } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {
- n = (n > 0 || -1) * floor(abs(n));
- }
- }
- var k = n >= 0 ? min(n, len - 1) : len - abs(n);
- for (; k >= 0; k--) {
- if (t._getter(k) === searchElement)
- return k;
- }
- return -1;
- }});
-
- // get %TypedArray%.prototype.length
- // -- applied directly to the object in the constructor
-
- // %TypedArray%.prototype.map ( callbackfn, thisArg = undefined )
- Object.defineProperty($TypedArray$.prototype, 'map', {value: function (callbackfn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (!IsCallable(callbackfn)) throw TypeError();
- var res = [];
- res.length = len;
- var thisp = arguments[1];
- for (var i = 0; i < len; i++)
- res[i] = callbackfn.call(thisp, t._getter(i), i, t);
- return new this.constructor(res);
- }});
-
- // %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
- Object.defineProperty($TypedArray$.prototype, 'reduce', {value: function (callbackfn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (!IsCallable(callbackfn)) throw TypeError();
- // no value to return if no initial value and an empty array
- if (len === 0 && arguments.length === 1) throw TypeError();
- var k = 0;
- var accumulator;
- if (arguments.length >= 2) {
- accumulator = arguments[1];
- } else {
- accumulator = t._getter(k++);
- }
- while (k < len) {
- accumulator = callbackfn.call(undefined, accumulator, t._getter(k), k, t);
- k++;
- }
- return accumulator;
- }});
-
- // %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
- Object.defineProperty($TypedArray$.prototype, 'reduceRight', {value: function (callbackfn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (!IsCallable(callbackfn)) throw TypeError();
- // no value to return if no initial value, empty array
- if (len === 0 && arguments.length === 1) throw TypeError();
- var k = len - 1;
- var accumulator;
- if (arguments.length >= 2) {
- accumulator = arguments[1];
- } else {
- accumulator = t._getter(k--);
- }
- while (k >= 0) {
- accumulator = callbackfn.call(undefined, accumulator, t._getter(k), k, t);
- k--;
- }
- return accumulator;
- }});
-
- // %TypedArray%.prototype.reverse ( )
- Object.defineProperty($TypedArray$.prototype, 'reverse', {value: function () {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- var half = floor(len / 2);
- for (var i = 0, j = len - 1; i < half; ++i, --j) {
- var tmp = t._getter(i);
- t._setter(i, t._getter(j));
- t._setter(j, tmp);
- }
- return t;
- }});
-
- // %TypedArray%.prototype.set(array, offset = 0 )
- // %TypedArray%.prototype.set(typedArray, offset = 0 )
- // WebIDL: void set(TypedArray array, optional unsigned long offset);
- // WebIDL: void set(sequence array, optional unsigned long offset);
- Object.defineProperty($TypedArray$.prototype, 'set', {value: function (index, value) {
- if (arguments.length < 1) throw SyntaxError('Not enough arguments');
- var array, sequence, offset, len,
- i, s, d,
- byteOffset, byteLength, tmp;
-
- if (typeof arguments[0] === 'object' && arguments[0].constructor === this.constructor) {
- // void set(TypedArray array, optional unsigned long offset);
- array = arguments[0];
- offset = ToUint32(arguments[1]);
-
- if (offset + array.length > this.length) {
- throw RangeError('Offset plus length of array is out of range');
- }
-
- byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT;
- byteLength = array.length * this.BYTES_PER_ELEMENT;
-
- if (array.buffer === this.buffer) {
- tmp = [];
- for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) {
- tmp[i] = array.buffer._bytes[s];
- }
- for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) {
- this.buffer._bytes[d] = tmp[i];
- }
- } else {
- for (i = 0, s = array.byteOffset, d = byteOffset;
- i < byteLength; i += 1, s += 1, d += 1) {
- this.buffer._bytes[d] = array.buffer._bytes[s];
- }
- }
- } else if (typeof arguments[0] === 'object' && typeof arguments[0].length !== 'undefined') {
- // void set(sequence array, optional unsigned long offset);
- sequence = arguments[0];
- len = ToUint32(sequence.length);
- offset = ToUint32(arguments[1]);
-
- if (offset + len > this.length) {
- throw RangeError('Offset plus length of array is out of range');
- }
-
- for (i = 0; i < len; i += 1) {
- s = sequence[i];
- this._setter(offset + i, Number(s));
- }
- } else {
- throw TypeError('Unexpected argument type(s)');
- }
- }});
-
- // %TypedArray%.prototype.slice ( start, end )
- Object.defineProperty($TypedArray$.prototype, 'slice', {value: function (m_start, m_end) {
- var m_o = ToObject(this);
- var lenVal = m_o.length;
- var m_len = ToUint32(lenVal);
- var relativeStart = ToInt32(m_start);
- var m_k = (relativeStart < 0) ? max(m_len + relativeStart, 0) : min(relativeStart, m_len);
- var relativeEnd = (m_end === undefined) ? m_len : ToInt32(m_end);
- var m_final = (relativeEnd < 0) ? max(m_len + relativeEnd, 0) : min(relativeEnd, m_len);
- var m_count = m_final - m_k;
- var m_c = m_o.constructor;
- var m_a = new m_c(m_count);
- var m_n = 0;
- while (m_k < m_final) {
- var kValue = m_o._getter(m_k);
- m_a._setter(m_n, kValue);
- ++m_k;
- ++m_n;
- }
- return m_a;
- }});
-
- // %TypedArray%.prototype.some ( callbackfn, thisArg = undefined )
- Object.defineProperty($TypedArray$.prototype, 'some', {value: function (callbackfn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- if (!IsCallable(callbackfn)) throw TypeError();
- var thisp = arguments[1];
- for (var i = 0; i < len; i++) {
- if (callbackfn.call(thisp, t._getter(i), i, t)) {
- return true;
- }
- }
- return false;
- }});
-
- // %TypedArray%.prototype.sort ( comparefn )
- Object.defineProperty($TypedArray$.prototype, 'sort', {value: function (comparefn) {
- if (this === undefined || this === null) throw TypeError();
- var t = Object(this);
- var len = ToUint32(t.length);
- var tmp = Array(len);
- for (var i = 0; i < len; ++i)
- tmp[i] = t._getter(i);
- if (comparefn) tmp.sort(comparefn); else tmp.sort(); // Hack for IE8/9
- for (i = 0; i < len; ++i)
- t._setter(i, tmp[i]);
- return t;
- }});
-
- // %TypedArray%.prototype.subarray(begin = 0, end = this.length )
- // WebIDL: TypedArray subarray(long begin, optional long end);
- Object.defineProperty($TypedArray$.prototype, 'subarray', {value: function (start, end) {
- function clamp(v, min, max) {
- return v < min ? min : v > max ? max : v;
- }
-
- start = ToInt32(start);
- end = ToInt32(end);
-
- if (arguments.length < 1) {
- start = 0;
- }
- if (arguments.length < 2) {
- end = this.length;
- }
-
- if (start < 0) {
- start = this.length + start;
- }
- if (end < 0) {
- end = this.length + end;
- }
-
- start = clamp(start, 0, this.length);
- end = clamp(end, 0, this.length);
-
- var len = end - start;
- if (len < 0) {
- len = 0;
- }
-
- return new this.constructor(
- this.buffer, this.byteOffset + start * this.BYTES_PER_ELEMENT, len);
- }});
-
- // %TypedArray%.prototype.toLocaleString ( )
- // %TypedArray%.prototype.toString ( )
- // %TypedArray%.prototype.values ( )
- // %TypedArray%.prototype [ @@iterator ] ( )
- // get %TypedArray%.prototype [ @@toStringTag ]
- // -- defined in es6.js to shim browsers w/ native TypedArrays
-
- function makeTypedArray(elementSize, pack, unpack) {
- // Each TypedArray type requires a distinct constructor instance with
- // identical logic, which this produces.
- var TypedArray = function () {
- Object.defineProperty(this, 'constructor', {value: TypedArray});
- $TypedArray$.apply(this, arguments);
- makeArrayAccessors(this);
- };
- if ('__proto__' in TypedArray) {
- TypedArray.__proto__ = $TypedArray$;
- } else {
- TypedArray.from = $TypedArray$.from;
- TypedArray.of = $TypedArray$.of;
- }
-
- TypedArray.BYTES_PER_ELEMENT = elementSize;
-
- var TypedArrayPrototype = function () {
- };
- TypedArrayPrototype.prototype = $TypedArrayPrototype$;
-
- TypedArray.prototype = new TypedArrayPrototype();
-
- Object.defineProperty(TypedArray.prototype, 'BYTES_PER_ELEMENT', {value: elementSize});
- Object.defineProperty(TypedArray.prototype, '_pack', {value: pack});
- Object.defineProperty(TypedArray.prototype, '_unpack', {value: unpack});
-
- return TypedArray;
- }
-
- var Int8Array = makeTypedArray(1, packI8, unpackI8);
- var Uint8Array = makeTypedArray(1, packU8, unpackU8);
- var Uint8ClampedArray = makeTypedArray(1, packU8Clamped, unpackU8);
- var Int16Array = makeTypedArray(2, packI16, unpackI16);
- var Uint16Array = makeTypedArray(2, packU16, unpackU16);
- var Int32Array = makeTypedArray(4, packI32, unpackI32);
- var Uint32Array = makeTypedArray(4, packU32, unpackU32);
- var Float32Array = makeTypedArray(4, packF32, unpackF32);
- var Float64Array = makeTypedArray(8, packF64, unpackF64);
-
- global.Int8Array = win.Int8Array = global.Int8Array || Int8Array;
- global.Uint8Array = win.Uint8Array = global.Uint8Array || Uint8Array;
- global.Uint8ClampedArray = win.Uint8ClampedArray = global.Uint8ClampedArray || Uint8ClampedArray;
- global.Int16Array = win.Int16Array = global.Int16Array || Int16Array;
- global.Uint16Array = win.Uint16Array = global.Uint16Array || Uint16Array;
- global.Int32Array = win.Int32Array = global.Int32Array || Int32Array;
- global.Uint32Array = win.Uint32Array = global.Uint32Array || Uint32Array;
- global.Float32Array = win.Float32Array = global.Float32Array || Float32Array;
- global.Float64Array = win.Float64Array = global.Float64Array || Float64Array;
- }());
-
- //
- // 6 The DataView View Type
- //
-
- (function () {
- function r(array, index) {
- return IsCallable(array.get) ? array.get(index) : array[index];
- }
-
- var IS_BIG_ENDIAN = (function () {
- var u16array = new global.Uint16Array([0x1234]),
- u8array = new global.Uint8Array(u16array.buffer);
- return r(u8array, 0) === 0x12;
- }());
-
- // DataView(buffer, byteOffset=0, byteLength=undefined)
- // WebIDL: Constructor(ArrayBuffer buffer,
- // optional unsigned long byteOffset,
- // optional unsigned long byteLength)
- function DataView(buffer, byteOffset, byteLength) {
- if (!(buffer instanceof ArrayBuffer || Class(buffer) === 'ArrayBuffer')) throw TypeError();
-
- byteOffset = ToUint32(byteOffset);
- if (byteOffset > buffer.byteLength)
- throw RangeError('byteOffset out of range');
-
- if (byteLength === undefined)
- byteLength = buffer.byteLength - byteOffset;
- else
- byteLength = ToUint32(byteLength);
-
- if ((byteOffset + byteLength) > buffer.byteLength)
- throw RangeError('byteOffset and length reference an area beyond the end of the buffer');
-
- Object.defineProperty(this, 'buffer', {value: buffer});
- Object.defineProperty(this, 'byteLength', {value: byteLength});
- Object.defineProperty(this, 'byteOffset', {value: byteOffset});
- };
-
- // get DataView.prototype.buffer
- // get DataView.prototype.byteLength
- // get DataView.prototype.byteOffset
- // -- applied directly to instances by the constructor
-
- function makeGetter(arrayType) {
- return function GetViewValue(byteOffset, littleEndian) {
- byteOffset = ToUint32(byteOffset);
-
- if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength)
- throw RangeError('Array index out of range');
-
- byteOffset += this.byteOffset;
-
- var uint8Array = new global.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT),
- bytes = [];
- for (var i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1)
- bytes.push(r(uint8Array, i));
-
- if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN))
- bytes.reverse();
-
- return r(new arrayType(new global.Uint8Array(bytes).buffer), 0);
- };
- }
-
- Object.defineProperty(DataView.prototype, 'getUint8', {value: makeGetter(global.Uint8Array)});
- Object.defineProperty(DataView.prototype, 'getInt8', {value: makeGetter(global.Int8Array)});
- Object.defineProperty(DataView.prototype, 'getUint16', {value: makeGetter(global.Uint16Array)});
- Object.defineProperty(DataView.prototype, 'getInt16', {value: makeGetter(global.Int16Array)});
- Object.defineProperty(DataView.prototype, 'getUint32', {value: makeGetter(global.Uint32Array)});
- Object.defineProperty(DataView.prototype, 'getInt32', {value: makeGetter(global.Int32Array)});
- Object.defineProperty(DataView.prototype, 'getFloat32', {value: makeGetter(global.Float32Array)});
- Object.defineProperty(DataView.prototype, 'getFloat64', {value: makeGetter(global.Float64Array)});
-
- function makeSetter(arrayType) {
- return function SetViewValue(byteOffset, value, littleEndian) {
- byteOffset = ToUint32(byteOffset);
- if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength)
- throw RangeError('Array index out of range');
-
- // Get bytes
- var typeArray = new arrayType([value]),
- byteArray = new global.Uint8Array(typeArray.buffer),
- bytes = [], i, byteView;
-
- for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1)
- bytes.push(r(byteArray, i));
-
- // Flip if necessary
- if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN))
- bytes.reverse();
-
- // Write them
- byteView = new Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT);
- byteView.set(bytes);
- };
- }
-
- Object.defineProperty(DataView.prototype, 'setUint8', {value: makeSetter(global.Uint8Array)});
- Object.defineProperty(DataView.prototype, 'setInt8', {value: makeSetter(global.Int8Array)});
- Object.defineProperty(DataView.prototype, 'setUint16', {value: makeSetter(global.Uint16Array)});
- Object.defineProperty(DataView.prototype, 'setInt16', {value: makeSetter(global.Int16Array)});
- Object.defineProperty(DataView.prototype, 'setUint32', {value: makeSetter(global.Uint32Array)});
- Object.defineProperty(DataView.prototype, 'setInt32', {value: makeSetter(global.Int32Array)});
- Object.defineProperty(DataView.prototype, 'setFloat32', {value: makeSetter(global.Float32Array)});
- Object.defineProperty(DataView.prototype, 'setFloat64', {value: makeSetter(global.Float64Array)});
-
- global.DataView = global.DataView || DataView;
-
- }());
-
- }(exports, window)
- );
-}
-// workaround for crypto-js on IE11
-// http://code.google.com/p/crypto-js/issues/detail?id=81
-if ('window' in global) {
- if (!('Uint8ClampedArray' in window)) {
- window.Uint8ClampedArray = global.Uint8Array;
- }
-}
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/lib/session.js b/s4t-server-node/node_modules/autobahn/lib/session.js
deleted file mode 100644
index 59d19b5..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/session.js
+++ /dev/null
@@ -1,1372 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-// require('assert') would be nice .. but it does not
-// work with Google Closure after Browserify
-
-var when = require('when');
-var when_fn = require("when/function");
-
-var log = require('./log.js');
-var util = require('./util.js');
-
-// IE fallback (http://afuchs.tumblr.com/post/23550124774/date-now-in-ie8)
-Date.now = Date.now || function() { return +new Date; };
-
-
-// WAMP "Advanced Profile" support in AutobahnJS per role
-//
-WAMP_FEATURES = {
- caller: {
- features: {
- caller_identification: true,
- progressive_call_results: true
- }
- },
- callee: {
- features: {
- progressive_call_results: true
- }
- },
- publisher: {
- features: {
- subscriber_blackwhite_listing: true,
- publisher_exclusion: true,
- publisher_identification: true
- }
- },
- subscriber: {
- features: {
- publisher_identification: true
- }
- }
-};
-
-
-// generate a WAMP ID
-//
-function newid () {
- return Math.floor(Math.random() * 9007199254740992);
-}
-
-
-var Invocation = function (caller, progress) {
-
- var self = this;
-
- self.caller = caller;
- self.progress = progress;
-};
-
-
-var Event = function (publication, publisher) {
-
- var self = this;
-
- self.publication = publication;
- self.publisher = publisher;
-};
-
-
-var Result = function (args, kwargs) {
-
- var self = this;
-
- self.args = args || [];
- self.kwargs = kwargs || {};
-};
-
-
-var Error = function (error, args, kwargs) {
-
- var self = this;
-
- self.error = error;
- self.args = args || [];
- self.kwargs = kwargs || {};
-};
-
-
-var Subscription = function (topic, handler, options, session, id) {
-
- var self = this;
-
- self.topic = topic;
- self.handler = handler;
- self.options = options || {};
- self.session = session;
- self.id = id;
-
- self.active = true;
-};
-
-
-Subscription.prototype.unsubscribe = function () {
-
- var self = this;
- return self.session.unsubscribe(self);
-};
-
-
-
-var Registration = function (procedure, endpoint, options, session, id) {
-
- var self = this;
-
- self.procedure = procedure;
- self.endpoint = endpoint;
- self.options = options || {};
- self.session = session;
- self.id = id;
-
- self.active = true;
-};
-
-
-Registration.prototype.unregister = function () {
-
- var self = this;
- return self.session.unregister(self);
-};
-
-
-var Publication = function (id) {
-
- var self = this;
- self.id = id;
-};
-
-
-var MSG_TYPE = {
- HELLO: 1,
- WELCOME: 2,
- ABORT: 3,
- CHALLENGE: 4,
- AUTHENTICATE: 5,
- GOODBYE: 6,
- HEARTBEAT: 7,
- ERROR: 8,
- PUBLISH: 16,
- PUBLISHED: 17,
- SUBSCRIBE: 32,
- SUBSCRIBED: 33,
- UNSUBSCRIBE: 34,
- UNSUBSCRIBED: 35,
- EVENT: 36,
- CALL: 48,
- CANCEL: 49,
- RESULT: 50,
- REGISTER: 64,
- REGISTERED: 65,
- UNREGISTER: 66,
- UNREGISTERED: 67,
- INVOCATION: 68,
- INTERRUPT: 69,
- YIELD: 70
-};
-
-
-
-var Session = function (socket, defer, onchallenge) {
-
- var self = this;
-
- // the transport connection (WebSocket object)
- self._socket = socket;
-
- // the Deferred factory to use
- self._defer = defer;
-
- // the WAMP authentication challenge handler
- self._onchallenge = onchallenge;
-
- // the WAMP session ID
- self._id = null;
-
- // the WAMP realm joined
- self._realm = null;
-
- // the WAMP features in use
- self._features = null;
-
- // closing state
- self._goodbye_sent = false;
- self._transport_is_closing = false;
-
- // outstanding requests;
- self._publish_reqs = {};
- self._subscribe_reqs = {};
- self._unsubscribe_reqs = {};
- self._call_reqs = {};
- self._register_reqs = {};
- self._unregister_reqs = {};
-
- // subscriptions in place;
- self._subscriptions = {};
-
- // registrations in place;
- self._registrations = {};
-
- // incoming invocations;
- self._invocations = {};
-
- // prefix shortcuts for URIs
- self._prefixes = {};
-
-
-
- self._send_wamp = function (msg) {
- // forward WAMP message to be sent to WAMP transport
- self._socket.send(msg);
- };
-
-
- self._protocol_violation = function (reason) {
- log.debug("failing transport due to protocol violation: " + reason);
- self._socket.close(1002, "protocol violation: " + reason);
- };
-
- self._MESSAGE_MAP = {};
- self._MESSAGE_MAP[MSG_TYPE.ERROR] = {};
-
-
- self._process_SUBSCRIBED = function (msg) {
- //
- // process SUBSCRIBED reply to SUBSCRIBE
- //
- var request = msg[1];
- var subscription = msg[2];
-
- if (request in self._subscribe_reqs) {
-
- var r = self._subscribe_reqs[request];
-
- var d = r[0];
- var topic = r[1];
- var handler = r[2];
- var options = r[3];
-
- if (!(subscription in self._subscriptions)) {
- self._subscriptions[subscription] = [];
- }
- var sub = new Subscription(topic, handler, options, self, subscription);
- self._subscriptions[subscription].push(sub);
-
- d.resolve(sub);
-
- delete self._subscribe_reqs[request];
-
- } else {
- self._protocol_violation("SUBSCRIBED received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.SUBSCRIBED] = self._process_SUBSCRIBED;
-
-
- self._process_SUBSCRIBE_ERROR = function (msg) {
- //
- // process ERROR reply to SUBSCRIBE
- //
- var request = msg[2];
- if (request in self._subscribe_reqs) {
-
- var details = msg[3];
- var error = new Error(msg[4], msg[5], msg[6]);
-
- var r = self._subscribe_reqs[request];
-
- var d = r[0];
-
- d.reject(error);
-
- delete self._subscribe_reqs[request];
-
- } else {
- self._protocol_violation("SUBSCRIBE-ERROR received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.ERROR][MSG_TYPE.SUBSCRIBE] = self._process_SUBSCRIBE_ERROR;
-
-
- self._process_UNSUBSCRIBED = function (msg) {
- //
- // process UNSUBSCRIBED reply to UNSUBSCRIBE
- //
- var request = msg[1];
-
- if (request in self._unsubscribe_reqs) {
-
- var r = self._unsubscribe_reqs[request];
-
- var d = r[0];
- var subscription = r[1];
-
- if (subscription in self._subscriptions) {
- var subs = self._subscriptions[subscription];
- // the following should actually be NOP, since UNSUBSCRIBE was
- // only sent when subs got empty
- for (var i = 0; i < subs.length; ++i) {
- subs[i].active = false;
- }
- delete self._subscriptions[subscription];
- }
-
- d.resolve(true);
-
- delete self._unsubscribe_reqs[request];
-
- } else {
- self._protocol_violation("UNSUBSCRIBED received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.UNSUBSCRIBED] = self._process_UNSUBSCRIBED;
-
-
- self._process_UNSUBSCRIBE_ERROR = function (msg) {
- //
- // process ERROR reply to UNSUBSCRIBE
- //
- var request = msg[2];
- if (request in self._unsubscribe_reqs) {
-
- var details = msg[3];
- var error = new Error(msg[4], msg[5], msg[6]);
-
- var r = self._unsubscribe_reqs[request];
-
- var d = r[0];
- var subscription = r[1];
-
- d.reject(error);
-
- delete self._unsubscribe_reqs[request];
-
- } else {
- self._protocol_violation("UNSUBSCRIBE-ERROR received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.ERROR][MSG_TYPE.UNSUBSCRIBE] = self._process_UNSUBSCRIBE_ERROR;
-
-
- self._process_PUBLISHED = function (msg) {
- //
- // process PUBLISHED reply to PUBLISH
- //
- var request = msg[1];
- var publication = msg[2];
-
- if (request in self._publish_reqs) {
-
- var r = self._publish_reqs[request];
-
- var d = r[0];
- var options = r[1];
-
- var pub = new Publication(publication);
- d.resolve(pub);
-
- delete self._publish_reqs[request];
-
- } else {
- self._protocol_violation("PUBLISHED received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.PUBLISHED] = self._process_PUBLISHED;
-
-
- self._process_PUBLISH_ERROR = function (msg) {
- //
- // process ERROR reply to PUBLISH
- //
- var request = msg[2];
- if (request in self._publish_reqs) {
-
- var details = msg[3];
- var error = new Error(msg[4], msg[5], msg[6]);
-
- var r = self._publish_reqs[request];
-
- var d = r[0];
- var options = r[1];
-
- d.reject(error);
-
- delete self._publish_reqs[request];
-
- } else {
- self._protocol_violation("PUBLISH-ERROR received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.ERROR][MSG_TYPE.PUBLISH] = self._process_PUBLISH_ERROR;
-
-
- self._process_EVENT = function (msg) {
- //
- // process EVENT message
- //
- // [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentsKw|dict]
-
- var subscription = msg[1];
-
- if (subscription in self._subscriptions) {
-
- var publication = msg[2];
- var details = msg[3];
-
- var args = msg[4] || [];
- var kwargs = msg[5] || {};
-
- var ed = new Event(publication, details.publisher);
-
- var subs = self._subscriptions[subscription];
-
- for (var i = 0; i < subs.length; ++i) {
- try {
- subs[i].handler(args, kwargs, ed);
- } catch (e) {
- log.debug("Exception raised in event handler", e);
- }
- }
-
- } else {
- self._protocol_violation("EVENT received for non-subscribed subscription ID " + subscription);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.EVENT] = self._process_EVENT;
-
-
- self._process_REGISTERED = function (msg) {
- //
- // process REGISTERED reply to REGISTER
- //
- var request = msg[1];
- var registration = msg[2];
-
- if (request in self._register_reqs) {
-
- var r = self._register_reqs[request];
-
- var d = r[0];
- var procedure = r[1];
- var endpoint = r[2];
- var options = r[3];
-
- var reg = new Registration(procedure, endpoint, options, self, registration);
-
- self._registrations[registration] = reg;
-
- d.resolve(reg);
-
- delete self._register_reqs[request];
-
- } else {
- self._protocol_violation("REGISTERED received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.REGISTERED] = self._process_REGISTERED;
-
-
- self._process_REGISTER_ERROR = function (msg) {
- //
- // process ERROR reply to REGISTER
- //
- var request = msg[2];
- if (request in self._register_reqs) {
-
- var details = msg[3];
- var error = new Error(msg[4], msg[5], msg[6]);
-
- var r = self._register_reqs[request];
-
- var d = r[0];
-
- d.reject(error);
-
- delete self._register_reqs[request];
-
- } else {
- self._protocol_violation("REGISTER-ERROR received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.ERROR][MSG_TYPE.REGISTER] = self._process_REGISTER_ERROR;
-
-
- self._process_UNREGISTERED = function (msg) {
- //
- // process UNREGISTERED reply to UNREGISTER
- //
- var request = msg[1];
-
- if (request in self._unregister_reqs) {
-
- var r = self._unregister_reqs[request];
-
- var d = r[0];
- var registration = r[1];
-
- if (registration.id in self._registrations) {
- delete self._registrations[registration.id];
- }
-
- registration.active = false;
- d.resolve();
-
- delete self._unregister_reqs[request];
-
- } else {
- self._protocol_violation("UNREGISTERED received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.UNREGISTERED] = self._process_UNREGISTERED;
-
-
- self._process_UNREGISTER_ERROR = function (msg) {
- //
- // process ERROR reply to UNREGISTER
- //
- var request = msg[2];
- if (request in self._unregister_reqs) {
-
- var details = msg[3];
- var error = new Error(msg[4], msg[5], msg[6]);
-
- var r = self._unregister_reqs[request];
-
- var d = r[0];
- var registration = r[1];
-
- d.reject(error);
-
- delete self._unregister_reqs[request];
-
- } else {
- self._protocol_violation("UNREGISTER-ERROR received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.ERROR][MSG_TYPE.UNREGISTER] = self._process_UNREGISTER_ERROR;
-
-
- self._process_RESULT = function (msg) {
- //
- // process RESULT reply to CALL
- //
- var request = msg[1];
- if (request in self._call_reqs) {
-
- var details = msg[2];
-
- var args = msg[3] || [];
- var kwargs = msg[4] || {};
-
- // maybe wrap complex result:
- var result = null;
- if (args.length > 1 || Object.keys(kwargs).length > 0) {
- // wrap complex result is more than 1 positional result OR
- // non-empty keyword result
- result = new Result(args, kwargs);
- } else if (args.length > 0) {
- // single positional result
- result = args[0];
- }
-
- var r = self._call_reqs[request];
-
- var d = r[0];
- var options = r[1];
-
- if (details.progress) {
- if (options && options.receive_progress) {
- d.notify(result);
- }
- } else {
- d.resolve(result);
- delete self._call_reqs[request];
- }
- } else {
- self._protocol_violation("CALL-RESULT received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.RESULT] = self._process_RESULT;
-
-
- self._process_CALL_ERROR = function (msg) {
- //
- // process ERROR reply to CALL
- //
- var request = msg[2];
- if (request in self._call_reqs) {
-
- var details = msg[3];
- var error = new Error(msg[4], msg[5], msg[6]);
-
- var r = self._call_reqs[request];
-
- var d = r[0];
- var options = r[1];
-
- d.reject(error);
-
- delete self._call_reqs[request];
-
- } else {
- self._protocol_violation("CALL-ERROR received for non-pending request ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.ERROR][MSG_TYPE.CALL] = self._process_CALL_ERROR;
-
-
- self._process_INVOCATION = function (msg) {
- //
- // process INVOCATION message
- //
- // [INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list, CALL.ArgumentsKw|dict]
- //
- var request = msg[1];
- var registration = msg[2];
-
- var details = msg[3];
- // receive_progress
- // timeout
- // caller
-
- if (registration in self._registrations) {
-
- var endpoint = self._registrations[registration].endpoint;
-
- var args = msg[4] || [];
- var kwargs = msg[5] || {};
-
- // create progress function for invocation
- //
- var progress = null;
- if (details.receive_progress) {
-
- progress = function (args, kwargs) {
- var progress_msg = [MSG_TYPE.YIELD, request, {progress: true}];
-
- args = args || [];
- kwargs = kwargs || {};
-
- var kwargs_len = Object.keys(kwargs).length;
- if (args.length || kwargs_len) {
- progress_msg.push(args);
- if (kwargs_len) {
- progress_msg.push(kwargs);
- }
- }
- self._send_wamp(progress_msg);
- }
- };
-
- var cd = new Invocation(details.caller, progress);
-
- // We use the following whenjs call wrapper, which automatically
- // wraps a plain, non-promise value in a (immediately resolved) promise
- //
- // See: https://github.com/cujojs/when/blob/master/docs/api.md#fncall
- //
- when_fn.call(endpoint, args, kwargs, cd).then(
-
- function (res) {
- // construct YIELD message
- // FIXME: Options
- //
- var reply = [MSG_TYPE.YIELD, request, {}];
-
- if (res instanceof Result) {
- var kwargs_len = Object.keys(res.kwargs).length;
- if (res.args.length || kwargs_len) {
- reply.push(res.args);
- if (kwargs_len) {
- reply.push(res.kwargs);
- }
- }
- } else {
- reply.push([res]);
- }
-
- // send WAMP message
- //
- self._send_wamp(reply);
- },
-
- function (err) {
- // construct ERROR message
- // [ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri, Arguments|list, ArgumentsKw|dict]
-
- var reply = [MSG_TYPE.ERROR, MSG_TYPE.INVOCATION, request, {}];
-
- if (err instanceof Error) {
-
- reply.push(err.error);
-
- var kwargs_len = Object.keys(err.kwargs).length;
- if (err.args.length || kwargs_len) {
- reply.push(err.args);
- if (kwargs_len) {
- reply.push(err.kwargs);
- }
- }
- } else {
- reply.push('wamp.error.runtime_error');
- reply.push([err]);
- }
-
- // send WAMP message
- //
- self._send_wamp(reply);
- }
- );
-
- } else {
- self._protocol_violation("INVOCATION received for non-registered registration ID " + request);
- }
- };
- self._MESSAGE_MAP[MSG_TYPE.INVOCATION] = self._process_INVOCATION;
-
-
- // callback fired by WAMP transport on receiving a WAMP message
- //
- self._socket.onmessage = function (msg) {
-
- var msg_type = msg[0];
-
- // WAMP session not yet open
- //
- if (!self._id) {
-
- // the first message must be WELCOME, ABORT or CHALLENGE ..
- //
- if (msg_type === MSG_TYPE.WELCOME) {
-
- self._id = msg[1];
-
- // determine actual set of advanced features that can be used
- //
- var rf = msg[2];
- self._features = {};
-
- if (rf.roles.broker) {
- // "Basic Profile" is mandatory
- self._features.subscriber = {};
- self._features.publisher = {};
-
- // fill in features that both peers support
- if (rf.roles.broker.features) {
-
- for (var att in WAMP_FEATURES.publisher.features) {
- self._features.publisher[att] = WAMP_FEATURES.publisher.features[att] &&
- rf.roles.broker.features[att];
- }
-
- for (var att in WAMP_FEATURES.subscriber.features) {
- self._features.subscriber[att] = WAMP_FEATURES.subscriber.features[att] &&
- rf.roles.broker.features[att];
- }
- }
- }
-
- if (rf.roles.dealer) {
- // "Basic Profile" is mandatory
- self._features.caller = {};
- self._features.callee = {};
-
- // fill in features that both peers support
- if (rf.roles.dealer.features) {
-
- for (var att in WAMP_FEATURES.caller.features) {
- self._features.caller[att] = WAMP_FEATURES.caller.features[att] &&
- rf.roles.dealer.features[att];
- }
-
- for (var att in WAMP_FEATURES.callee.features) {
- self._features.callee[att] = WAMP_FEATURES.callee.features[att] &&
- rf.roles.dealer.features[att];
- }
- }
- }
-
- if (self.onjoin) {
- self.onjoin(msg[2]);
- }
-
- } else if (msg_type === MSG_TYPE.ABORT) {
-
- var details = msg[1];
- var reason = msg[2];
-
- if (self.onleave) {
- self.onleave(reason, details);
- }
-
- } else if (msg_type === MSG_TYPE.CHALLENGE) {
-
- if (self._onchallenge) {
-
- var method = msg[1];
- var extra = msg[2];
-
- when_fn.call(self._onchallenge, self, method, extra).then(
- function (signature) {
- var msg = [MSG_TYPE.AUTHENTICATE, signature, {}];
- self._send_wamp(msg);
- },
- function (err) {
- log.debug("onchallenge() raised:", err);
-
- var msg = [MSG_TYPE.ABORT, {message: "sorry, I cannot authenticate (onchallenge handler raised an exception)"}, "wamp.error.cannot_authenticate"];
- self._send_wamp(msg);
- self._socket.close(1000);
- }
- );
- } else {
- log.debug("received WAMP challenge, but no onchallenge() handler set");
-
- var msg = [MSG_TYPE.ABORT, {message: "sorry, I cannot authenticate (no onchallenge handler set)"}, "wamp.error.cannot_authenticate"];
- self._send_wamp(msg);
- self._socket.close(1000);
- }
-
- } else {
- self._protocol_violation("unexpected message type " + msg_type);
- }
-
- // WAMP session is open
- //
- } else {
-
- if (msg_type === MSG_TYPE.GOODBYE) {
-
- if (!self._goodbye_sent) {
-
- var reply = [MSG_TYPE.GOODBYE, {}, "wamp.error.goodbye_and_out"];
- self._send_wamp(reply);
- }
-
- self._id = null;
- self._realm = null;
- self._features = null;
-
- var details = msg[1];
- var reason = msg[2];
-
- if (self.onleave) {
- self.onleave(reason, details);
- }
-
- } else {
-
- if (msg_type === MSG_TYPE.ERROR) {
-
- var request_type = msg[1];
- if (request_type in self._MESSAGE_MAP[MSG_TYPE.ERROR]) {
-
- self._MESSAGE_MAP[msg_type][request_type](msg);
-
- } else {
-
- self._protocol_violation("unexpected ERROR message with request_type " + request_type);
- }
-
- } else {
-
- if (msg_type in self._MESSAGE_MAP) {
-
- self._MESSAGE_MAP[msg_type](msg);
-
- } else {
-
- self._protocol_violation("unexpected message type " + msg_type);
- }
- }
- }
- }
- };
-
- // session object constructed .. track creation time
- //
- if ('performance' in global && 'now' in performance) {
- self._created = performance.now();
- } else {
- self._created = Date.now();
- }
-};
-
-
-Object.defineProperty(Session.prototype, "defer", {
- get: function () {
- return this._defer;
- }
-});
-
-
-Object.defineProperty(Session.prototype, "id", {
- get: function () {
- return this._id;
- }
-});
-
-
-Object.defineProperty(Session.prototype, "realm", {
- get: function () {
- return this._realm;
- }
-});
-
-
-Object.defineProperty(Session.prototype, "isOpen", {
- get: function () {
- return this.id !== null;
- }
-});
-
-
-Object.defineProperty(Session.prototype, "features", {
- get: function () {
- return this._features;
- }
-});
-
-
-Object.defineProperty(Session.prototype, "subscriptions", {
- get: function () {
- var keys = Object.keys(this._subscriptions);
- var vals = [];
- for (var i = 0; i < keys.length; ++i) {
- vals.push(this._subscriptions[keys[i]]);
- }
- return vals;
- }
-});
-
-
-Object.defineProperty(Session.prototype, "registrations", {
- get: function () {
- var keys = Object.keys(this._registrations);
- var vals = [];
- for (var i = 0; i < keys.length; ++i) {
- vals.push(this._registrations[keys[i]]);
- }
- return vals;
- }
-});
-
-
-Session.prototype.log = function () {
- var self = this;
-
- if ('console' in global) {
-
- var header = null;
- if (self._id && self._created) {
-
- var now = null;
- if ('performance' in global && 'now' in performance) {
- now = performance.now() - self._created;
- } else {
- now = Date.now() - self._created;
- }
-
- header = "WAMP session " + self._id + " on '" + self._realm + "' at " + Math.round(now * 1000) / 1000 + " ms";
- } else {
- header = "WAMP session";
- }
-
- if ('group' in console) {
- console.group(header);
- for (var i = 0; i < arguments.length; i += 1) {
- console.log(arguments[i]);
- }
- console.groupEnd();
- } else {
- var items = [header + ": "];
- for (var i = 0; i < arguments.length; i += 1) {
- items.push(arguments[i]);
- }
- console.log.apply(console, items);
- }
- }
-};
-
-
-Session.prototype.join = function (realm, authmethods, authid) {
-
- util.assert(typeof realm === 'string', "Session.join: must be a string");
- util.assert(!authmethods || Array.isArray(authmethods), "Session.join: must be an array []");
- util.assert(!authid || typeof authid === 'string', "Session.join: must be a string");
-
- var self = this;
-
- if (self.isOpen) {
- throw "session already open";
- }
-
- self._goodbye_sent = false;
- self._realm = realm;
-
- var details = {};
- details.roles = WAMP_FEATURES;
-
- if (authmethods) {
- details.authmethods = authmethods;
- }
- if (authid) {
- details.authid = authid;
- }
-
- var msg = [MSG_TYPE.HELLO, realm, details];
- self._send_wamp(msg);
-};
-
-
-Session.prototype.leave = function (reason, message) {
-
- util.assert(!reason || typeof reason === 'string', "Session.leave: must be a string");
- util.assert(!message || typeof message === 'string', "Session.leave: must be a string");
-
- var self = this;
-
- if (!self.isOpen) {
- throw "session not open";
- }
-
- if (!reason) {
- reason = "wamp.close.normal";
- }
-
- var details = {};
- if (message) {
- details.message = message;
- }
-
- var msg = [MSG_TYPE.GOODBYE, details, reason];
- self._send_wamp(msg);
- self._goodbye_sent = true;
-};
-
-
-Session.prototype.call = function (procedure, args, kwargs, options) {
-
- util.assert(typeof procedure === 'string', "Session.call: must be a string");
- util.assert(!args || Array.isArray(args), "Session.call: must be an array []");
- util.assert(!kwargs || kwargs instanceof Object, "Session.call: must be an object {}");
- util.assert(!options || options instanceof Object, "Session.call: must be an object {}");
-
- var self = this;
-
- if (!self.isOpen) {
- throw "session not open";
- }
-
- // create and remember new CALL request
- //
- var request = newid();
- var d = self._defer();
- self._call_reqs[request] = [d, options];
-
- // construct CALL message
- //
- var msg = [MSG_TYPE.CALL, request, options || {}, self.resolve(procedure)];
- if (args) {
- msg.push(args);
- if (kwargs) {
- msg.push(kwargs);
- }
- }
-
- // send WAMP message
- //
- self._send_wamp(msg);
-
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
-};
-
-
-Session.prototype.publish = function (topic, args, kwargs, options) {
-
- util.assert(typeof topic === 'string', "Session.publish: must be a string");
- util.assert(!args || Array.isArray(args), "Session.publish: must be an array []");
- util.assert(!kwargs || kwargs instanceof Object, "Session.publish: must be an object {}");
- util.assert(!options || options instanceof Object, "Session.publish: must be an object {}");
-
- var self = this;
-
- if (!self.isOpen) {
- throw "session not open";
- }
-
- var ack = options && options.acknowledge;
- var d = null;
-
- // create and remember new PUBLISH request
- //
- var request = newid();
- if (ack) {
- d = self._defer();
- self._publish_reqs[request] = [d, options];
- }
-
- // construct PUBLISH message
- //
- var msg = [MSG_TYPE.PUBLISH, request, options || {}, self.resolve(topic)];
- if (args) {
- msg.push(args);
- if (kwargs) {
- msg.push(kwargs);
- }
- }
-
- // send WAMP message
- //
- self._send_wamp(msg);
-
- if (d) {
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
- }
-};
-
-
-Session.prototype.subscribe = function (topic, handler, options) {
-
- util.assert(typeof topic === 'string', "Session.subscribe: must be a string");
- util.assert(typeof handler === 'function', "Session.subscribe: must be a function");
- util.assert(!options || options instanceof Object, "Session.subscribe: must be an object {}");
-
- var self = this;
-
- if (!self.isOpen) {
- throw "session not open";
- }
-
- // create an remember new SUBSCRIBE request
- //
- var request = newid();
- var d = self._defer();
- self._subscribe_reqs[request] = [d, topic, handler, options];
-
- // construct SUBSCRIBE message
- //
- var msg = [MSG_TYPE.SUBSCRIBE, request];
- if (options) {
- msg.push(options);
- } else {
- msg.push({});
- }
- msg.push(self.resolve(topic));
-
- // send WAMP message
- //
- self._send_wamp(msg);
-
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
-};
-
-
-Session.prototype.register = function (procedure, endpoint, options) {
-
- util.assert(typeof procedure === 'string', "Session.register: must be a string");
- util.assert(typeof endpoint === 'function', "Session.register: must be a function");
- util.assert(!options || options instanceof Object, "Session.register: must be an object {}");
-
- var self = this;
-
- if (!self.isOpen) {
- throw "session not open";
- }
-
- // create an remember new REGISTER request
- //
- var request = newid();
- var d = self._defer();
- self._register_reqs[request] = [d, procedure, endpoint, options];
-
- // construct REGISTER message
- //
- var msg = [MSG_TYPE.REGISTER, request];
- if (options) {
- msg.push(options);
- } else {
- msg.push({});
- }
- msg.push(self.resolve(procedure));
-
- // send WAMP message
- //
- self._send_wamp(msg);
-
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
-};
-
-
-Session.prototype.unsubscribe = function (subscription) {
-
- util.assert(subscription instanceof Subscription, "Session.unsubscribe: must be an instance of class autobahn.Subscription");
-
- var self = this;
-
- if (!self.isOpen) {
- throw "session not open";
- }
-
- if (!subscription.active || !(subscription.id in self._subscriptions)) {
- throw "subscription not active";
- }
-
- var subs = self._subscriptions[subscription.id];
- var i = subs.indexOf(subscription);
-
- if (i === -1) {
- throw "subscription not active";
- }
-
- // remove handler subscription
- subs.splice(i, 1);
- subscription.active = false;
-
- var d = self._defer();
-
- if (subs.length) {
- // there are still handlers on the subscription ..
- d.resolve(false);
-
- } else {
-
- // no handlers left ..
-
- // create and remember new UNSUBSCRIBE request
- //
- var request = newid();
- self._unsubscribe_reqs[request] = [d, subscription.id];
-
- // construct UNSUBSCRIBE message
- //
- var msg = [MSG_TYPE.UNSUBSCRIBE, request, subscription.id];
-
- // send WAMP message
- //
- self._send_wamp(msg);
- }
-
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
-};
-
-
-Session.prototype.unregister = function (registration) {
-
- util.assert(registration instanceof Registration, "Session.unregister: must be an instance of class autobahn.Registration");
-
- var self = this;
-
- if (!self.isOpen) {
- throw "session not open";
- }
-
- if (!registration.active || !(registration.id in self._registrations)) {
- throw "registration not active";
- }
-
- // create and remember new UNREGISTER request
- //
- var request = newid();
- var d = self._defer();
- self._unregister_reqs[request] = [d, registration];
-
- // construct UNREGISTER message
- //
- var msg = [MSG_TYPE.UNREGISTER, request, registration.id];
-
- // send WAMP message
- //
- self._send_wamp(msg);
-
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
-};
-
-
-Session.prototype.prefix = function (prefix, uri) {
-
- util.assert(typeof prefix === 'string', "Session.prefix: must be a string");
- util.assert(!uri || typeof uri === 'string', "Session.prefix: must be a string or falsy");
-
- var self = this;
-
- if (uri) {
- self._prefixes[prefix] = uri;
- } else {
- if (prefix in self._prefixes) {
- delete self._prefixes[prefix];
- }
- }
-};
-
-
-Session.prototype.resolve = function (curie) {
-
- util.assert(typeof curie === 'string', "Session.resolve: must be a string");
-
- var self = this;
-
- // skip if not a CURIE
- var i = curie.indexOf(":");
- if (i >= 0) {
- var prefix = curie.substring(0, i);
- if (prefix in self._prefixes) {
- return self._prefixes[prefix] + '.' + curie.substring(i + 1);
- } else {
- throw "cannot resolve CURIE prefix '" + prefix + "'";
- }
- } else {
- return curie;
- }
-};
-
-
-exports.Session = Session;
-
-exports.Invocation = Invocation;
-exports.Event = Event;
-exports.Result = Result;
-exports.Error = Error;
-exports.Subscription = Subscription;
-exports.Registration = Registration;
-exports.Publication = Publication;
diff --git a/s4t-server-node/node_modules/autobahn/lib/transport/longpoll.js b/s4t-server-node/node_modules/autobahn/lib/transport/longpoll.js
deleted file mode 100644
index fb5b112..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/transport/longpoll.js
+++ /dev/null
@@ -1,204 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-var util = require('../util.js');
-var log = require('../log.js');
-
-var when = require('when');
-
-
-function Factory (options) {
- var self = this;
-
- util.assert(options.url !== undefined, "options.url missing");
- util.assert(typeof options.url === "string", "options.url must be a string");
-
- self._options = options;
-};
-
-
-Factory.prototype.type = "longpoll";
-
-
-Factory.prototype.create = function () {
-
- var self = this;
-
- log.debug("longpoll.Factory.create");
-
- // the WAMP transport we create
- var transport = {};
-
- // these will get defined further below
- transport.protocol = undefined;
- transport.send = undefined;
- transport.close = undefined;
-
- // these will get overridden by the WAMP session using this transport
- transport.onmessage = function () {};
- transport.onopen = function () {};
- transport.onclose = function () {};
-
- transport.info = {
- type: 'longpoll',
- url: null,
- protocol: 'wamp.2.json'
- };
-
- transport._run = function () {
-
- var session_info = null;
- var send_buffer = [];
- var is_closing = false;
-
- var txseq = 0;
- var rxseq = 0;
-
- var options = {'protocols': ['wamp.2.json']};
- var request_timeout = self._options.request_timeout || 2000;
-
- util.http_post(self._options.url + '/open', JSON.stringify(options), request_timeout).then(
-
- function (payload) {
-
- session_info = JSON.parse(payload);
- var base_url = self._options.url + '/' + session_info.transport;
-
- transport.info.url = base_url;
-
- log.debug("longpoll.Transport: open", session_info);
-
- transport.close = function (code, reason) {
-
- if (is_closing) {
- throw "transport is already closing";
- }
-
- is_closing = true;
-
- util.http_post(base_url + '/close', null, request_timeout).then(
-
- function () {
- log.debug("longpoll.Transport: transport closed");
- var details = {
- code: 1000,
- reason: "transport closed",
- wasClean: true
- }
- transport.onclose(details);
- },
-
- function (err) {
- log.debug("longpoll.Transport: could not close transport", err.code, err.text);
- }
- );
- }
-
- transport.send = function (msg) {
-
- if (is_closing) {
- throw "transport is closing or closed already";
- }
-
- txseq += 1;
-
- log.debug("longpoll.Transport: sending message ...", msg);
-
- var payload = JSON.stringify(msg);
-
- util.http_post(base_url + '/send', payload, request_timeout).then(
-
- function () {
- // ok, message sent
- log.debug("longpoll.Transport: message sent");
- },
-
- function (err) {
- log.debug("longpoll.Transport: could not send message", err.code, err.text);
-
- is_closing = true;
- var details = {
- code: 1001,
- reason: "transport send failure (HTTP/POST status " + err.code + " - '" + err.text + "')",
- wasClean: false
- }
- transport.onclose(details);
- }
- );
- };
-
- function receive() {
-
- rxseq += 1;
-
- log.debug("longpoll.Transport: polling for message ...");
-
- util.http_post(base_url + '/receive', null, request_timeout).then(
-
- function (payload) {
-
- if (payload) {
-
- var msg = JSON.parse(payload);
-
- log.debug("longpoll.Transport: message received", msg);
-
- transport.onmessage(msg);
- }
-
- if (!is_closing) {
- receive();
- }
- },
-
- function (err) {
- log.debug("longpoll.Transport: could not receive message", err.code, err.text);
-
- is_closing = true;
- var details = {
- code: 1001,
- reason: "transport receive failure (HTTP/POST status " + err.code + " - '" + err.text + "')",
- wasClean: false
- }
- transport.onclose(details);
- }
- );
- }
-
- receive();
-
- transport.onopen();
- },
-
- function (err) {
- log.debug("longpoll.Transport: could not open transport", err.code, err.text);
-
- is_closing = true;
- var details = {
- code: 1001,
- reason: "transport open failure (HTTP/POST status " + err.code + " - '" + err.text + "')",
- wasClean: false
- }
- transport.onclose(details);
- }
- );
- }
-
- transport._run();
-
- return transport;
-};
-
-
-
-exports.Factory = Factory;
diff --git a/s4t-server-node/node_modules/autobahn/lib/transport/websocket.js b/s4t-server-node/node_modules/autobahn/lib/transport/websocket.js
deleted file mode 100644
index 50531f4..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/transport/websocket.js
+++ /dev/null
@@ -1,201 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-
-var util = require('../util.js');
-var log = require('../log.js');
-
-
-function Factory (options) {
- var self = this;
-
- util.assert(options.url !== undefined, "options.url missing");
- util.assert(typeof options.url === "string", "options.url must be a string");
-
- if (!options.protocols) {
- options.protocols = ['wamp.2.json'];
- } else {
- util.assert(Array.isArray(options.protocols), "options.protocols must be an array");
- }
-
- self._options = options;
-}
-
-
-Factory.prototype.type = "websocket";
-
-
-Factory.prototype.create = function () {
-
- var self = this;
-
- // the WAMP transport we create
- var transport = {};
-
- // these will get defined further below
- transport.protocol = undefined;
- transport.send = undefined;
- transport.close = undefined;
-
- // these will get overridden by the WAMP session using this transport
- transport.onmessage = function () {};
- transport.onopen = function () {};
- transport.onclose = function () {};
-
- transport.info = {
- type: 'websocket',
- url: null,
- protocol: 'wamp.2.json'
- };
-
- //
- // running in browser
- //
- if ('window' in global) {
-
- (function () {
-
- var websocket;
-
- // Chrome, MSIE, newer Firefox
- if ("WebSocket" in window) {
-
- if (self._options.protocols) {
- websocket = new window.WebSocket(self._options.url, self._options.protocols);
- } else {
- websocket = new window.WebSocket(self._options.url);
- }
-
- // older versions of Firefox prefix the WebSocket object
- } else if ("MozWebSocket" in window) {
-
- if (self._options.protocols) {
- websocket = new window.MozWebSocket(self._options.url, self._options.protocols);
- } else {
- websocket = new window.MozWebSocket(self._options.url);
- }
- } else {
- throw "browser does not support WebSocket";
- }
-
- websocket.onmessage = function (evt) {
- log.debug("WebSocket transport receive", evt.data);
-
- var msg = JSON.parse(evt.data);
- transport.onmessage(msg);
- }
-
- websocket.onopen = function () {
- transport.info.url = self._options.url;
- transport.onopen();
- }
-
- websocket.onclose = function (evt) {
- var details = {
- code: evt.code,
- reason: evt.message,
- wasClean: evt.wasClean
- }
- transport.onclose(details);
- }
-
- // do NOT do the following, since that will make
- // transport.onclose() fire twice (browsers already fire
- // websocket.onclose() for errors also)
- //websocket.onerror = websocket.onclose;
-
- transport.send = function (msg) {
- var payload = JSON.stringify(msg);
- log.debug("WebSocket transport send", payload);
- websocket.send(payload);
- }
-
- transport.close = function (code, reason) {
- websocket.close(code, reason);
- };
-
- })();
-
- //
- // running on NodeJS
- //
- } else {
-
- (function () {
-
- var WebSocket = require('ws'); // https://github.com/einaros/ws
- var websocket;
-
- var protocols;
- if (self._options.protocols) {
- protocols = self._options.protocols;
- if (Array.isArray(protocols)) {
- protocols = protocols.join(',');
- }
- websocket = new WebSocket(self._options.url, {protocol: protocols});
- } else {
- websocket = new WebSocket(self._options.url);
- }
-
- transport.send = function (msg) {
- var payload = JSON.stringify(msg);
- websocket.send(payload, {binary: false});
- };
-
- transport.close = function (code, reason) {
- websocket.close();
- };
-
- websocket.on('open', function () {
- transport.onopen();
- });
-
- websocket.on('message', function (data, flags) {
- if (flags.binary) {
- // FIXME!
- } else {
- var msg = JSON.parse(data);
- transport.onmessage(msg);
- }
- });
-
- // FIXME: improve mapping to WS API for the following
- // https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Close_codes
- //
- websocket.on('close', function (code, message) {
- var details = {
- code: code,
- reason: message,
- wasClean: code === 1000
- }
- transport.onclose(details);
- });
-
- websocket.on('error', function (error) {
- var details = {
- code: 1006,
- reason: '',
- wasClean: false
- }
- transport.onclose(details);
- });
-
- })();
- }
-
- return transport;
-};
-
-
-
-exports.Factory = Factory;
diff --git a/s4t-server-node/node_modules/autobahn/lib/util.js b/s4t-server-node/node_modules/autobahn/lib/util.js
deleted file mode 100644
index 29c0599..0000000
--- a/s4t-server-node/node_modules/autobahn/lib/util.js
+++ /dev/null
@@ -1,127 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// AutobahnJS - http://autobahn.ws, http://wamp.ws
-//
-// A JavaScript library for WAMP ("The Web Application Messaging Protocol").
-//
-// Copyright (C) 2011-2014 Tavendo GmbH, http://tavendo.com
-//
-// Licensed under the MIT License.
-// http://www.opensource.org/licenses/mit-license.php
-//
-///////////////////////////////////////////////////////////////////////////////
-
-var log = require('./log.js');
-
-var when = require('when');
-
-
-
-var rand_normal = function (mean, sd) {
- // Derive a Gaussian from Uniform random variables
- // http://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform
- var x1, x2, rad;
-
- do {
- x1 = 2 * Math.random() - 1;
- x2 = 2 * Math.random() - 1;
- rad = x1 * x1 + x2 * x2;
- } while (rad >= 1 || rad == 0);
-
- var c = Math.sqrt(-2 * Math.log(rad) / rad);
-
- return (mean || 0) + (x1 * c) * (sd || 1);
-};
-
-
-
-var assert = function (cond, text) {
- if (cond) {
- return;
- }
- if (assert.useDebugger || ('AUTOBAHN_DEBUG' in global && AUTOBAHN_DEBUG)) {
- debugger;
- }
-
- throw new Error(text || "Assertion failed!");
-};
-
-
-
-// Helper to do HTTP/POST requests returning deferreds. This function is
-// supposed to work on IE8, IE9 and old Android WebKit browsers. We don't care
-// if it works with other browsers.
-//
-var http_post = function (url, data, timeout) {
-
- log.debug("new http_post request", url, data, timeout);
-
- var d = when.defer();
- var req = new XMLHttpRequest();
-
- req.onreadystatechange = function () {
-
- if (req.readyState === 4) {
-
- // Normalize IE's response to HTTP 204 when Win error 1223.
- // http://stackoverflow.com/a/10047236/884770
- //
- var status = (req.status === 1223) ? 204 : req.status;
-
- if (status === 200) {
-
- // response with content
- //
- d.resolve(req.responseText);
-
- } if (status === 204) {
-
- // empty response
- //
- d.resolve();
-
- } else {
-
- // anything else is a fail
- //
- var statusText = null;
- try {
- statusText = req.statusText;
- } catch (e) {
- // IE8 fucks up on this
- }
- d.reject({code: status, text: statusText});
- }
- }
- }
-
- req.open("POST", url, true);
- req.setRequestHeader("Content-type", "application/json; charset=utf-8");
-
- if (timeout > 0) {
- req.timeout = timeout; // request timeout in ms
-
- req.ontimeout = function () {
- d.reject({code: 501, text: "request timeout"});
- }
- }
-
- if (data) {
- req.send(data);
- } else {
- req.send();
- }
-
- if (d.promise.then) {
- // whenjs has the actual user promise in an attribute
- return d.promise;
- } else {
- return d;
- }
-};
-
-
-
-exports.rand_normal = rand_normal;
-exports.assert = assert;
-exports.http_post = http_post;
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/README.md b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/README.md
deleted file mode 100644
index e0c8423..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# crypto-js
-
-Modularized port of googlecode project crypto-js.
-
-## Node.js (Install)
-
-Requirements:
-* Node.js
-* npm (Node.js package manager)
-
-```bash
-npm install crypto-js
-```
-
-### Usage
-
-Modular include:
-```javascript
-var AES = require("crypto-js/aes");
-var SHA256 = require("crypto-js/sha256");
-...
-console.log(SHA256("Message"));
-```
-
-Including all libraries, for access to extra methods:
-```javascript
-var CryptoJS = require("crypto-js");
-console.log(CryptoJS.HmacSHA1("Message", "Key"));
-```
-
-## Client (browser)
-
-### Usage
-
-Modular include:
-```javascript
-require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) {
- console.log(SHA256("Message"));
-});
-```
-
-Including all libraries, for access to extra methods:
-```javascript
-require("crypto-js", function (CryptoJS) {
- console.log(CryptoJS.HmacSHA1("Message", "Key"));
-});
-```
-
-## API
-
-See: https://code.google.com/p/crypto-js
-
-## License
-
-[The MIT License (MIT)](http://opensource.org/licenses/MIT)
-
-Copyright (c) 2009-2013 Jeff Mott
-Copyright (c) 2013-2014 Evan Vosberg
-
-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.
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/aes.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/aes.js
deleted file mode 100644
index ff0d208..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/aes.js
+++ /dev/null
@@ -1,227 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var BlockCipher = C_lib.BlockCipher;
- var C_algo = C.algo;
-
- // Lookup tables
- var SBOX = [];
- var INV_SBOX = [];
- var SUB_MIX_0 = [];
- var SUB_MIX_1 = [];
- var SUB_MIX_2 = [];
- var SUB_MIX_3 = [];
- var INV_SUB_MIX_0 = [];
- var INV_SUB_MIX_1 = [];
- var INV_SUB_MIX_2 = [];
- var INV_SUB_MIX_3 = [];
-
- // Compute lookup tables
- (function () {
- // Compute double table
- var d = [];
- for (var i = 0; i < 256; i++) {
- if (i < 128) {
- d[i] = i << 1;
- } else {
- d[i] = (i << 1) ^ 0x11b;
- }
- }
-
- // Walk GF(2^8)
- var x = 0;
- var xi = 0;
- for (var i = 0; i < 256; i++) {
- // Compute sbox
- var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
- sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
- SBOX[x] = sx;
- INV_SBOX[sx] = x;
-
- // Compute multiplication
- var x2 = d[x];
- var x4 = d[x2];
- var x8 = d[x4];
-
- // Compute sub bytes, mix columns tables
- var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
- SUB_MIX_0[x] = (t << 24) | (t >>> 8);
- SUB_MIX_1[x] = (t << 16) | (t >>> 16);
- SUB_MIX_2[x] = (t << 8) | (t >>> 24);
- SUB_MIX_3[x] = t;
-
- // Compute inv sub bytes, inv mix columns tables
- var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
- INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
- INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
- INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);
- INV_SUB_MIX_3[sx] = t;
-
- // Compute next counter
- if (!x) {
- x = xi = 1;
- } else {
- x = x2 ^ d[d[d[x8 ^ x2]]];
- xi ^= d[d[xi]];
- }
- }
- }());
-
- // Precomputed Rcon lookup
- var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
-
- /**
- * AES block cipher algorithm.
- */
- var AES = C_algo.AES = BlockCipher.extend({
- _doReset: function () {
- // Shortcuts
- var key = this._key;
- var keyWords = key.words;
- var keySize = key.sigBytes / 4;
-
- // Compute number of rounds
- var nRounds = this._nRounds = keySize + 6
-
- // Compute number of key schedule rows
- var ksRows = (nRounds + 1) * 4;
-
- // Compute key schedule
- var keySchedule = this._keySchedule = [];
- for (var ksRow = 0; ksRow < ksRows; ksRow++) {
- if (ksRow < keySize) {
- keySchedule[ksRow] = keyWords[ksRow];
- } else {
- var t = keySchedule[ksRow - 1];
-
- if (!(ksRow % keySize)) {
- // Rot word
- t = (t << 8) | (t >>> 24);
-
- // Sub word
- t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
-
- // Mix Rcon
- t ^= RCON[(ksRow / keySize) | 0] << 24;
- } else if (keySize > 6 && ksRow % keySize == 4) {
- // Sub word
- t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
- }
-
- keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
- }
- }
-
- // Compute inv key schedule
- var invKeySchedule = this._invKeySchedule = [];
- for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
- var ksRow = ksRows - invKsRow;
-
- if (invKsRow % 4) {
- var t = keySchedule[ksRow];
- } else {
- var t = keySchedule[ksRow - 4];
- }
-
- if (invKsRow < 4 || ksRow <= 4) {
- invKeySchedule[invKsRow] = t;
- } else {
- invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
- INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];
- }
- }
- },
-
- encryptBlock: function (M, offset) {
- this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
- },
-
- decryptBlock: function (M, offset) {
- // Swap 2nd and 4th rows
- var t = M[offset + 1];
- M[offset + 1] = M[offset + 3];
- M[offset + 3] = t;
-
- this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
-
- // Inv swap 2nd and 4th rows
- var t = M[offset + 1];
- M[offset + 1] = M[offset + 3];
- M[offset + 3] = t;
- },
-
- _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {
- // Shortcut
- var nRounds = this._nRounds;
-
- // Get input, add round key
- var s0 = M[offset] ^ keySchedule[0];
- var s1 = M[offset + 1] ^ keySchedule[1];
- var s2 = M[offset + 2] ^ keySchedule[2];
- var s3 = M[offset + 3] ^ keySchedule[3];
-
- // Key schedule row counter
- var ksRow = 4;
-
- // Rounds
- for (var round = 1; round < nRounds; round++) {
- // Shift rows, sub bytes, mix columns, add round key
- var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];
- var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];
- var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];
- var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];
-
- // Update state
- s0 = t0;
- s1 = t1;
- s2 = t2;
- s3 = t3;
- }
-
- // Shift rows, sub bytes, add round key
- var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
- var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
- var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
- var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
-
- // Set output
- M[offset] = t0;
- M[offset + 1] = t1;
- M[offset + 2] = t2;
- M[offset + 3] = t3;
- },
-
- keySize: 256/32
- });
-
- /**
- * Shortcut functions to the cipher's object interface.
- *
- * @example
- *
- * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
- * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);
- */
- C.AES = BlockCipher._createHelper(AES);
- }());
-
-
- return CryptoJS.AES;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/cipher-core.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/cipher-core.js
deleted file mode 100644
index 4fad569..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/cipher-core.js
+++ /dev/null
@@ -1,875 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * Cipher core components.
- */
- CryptoJS.lib.Cipher || (function (undefined) {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var WordArray = C_lib.WordArray;
- var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
- var C_enc = C.enc;
- var Utf8 = C_enc.Utf8;
- var Base64 = C_enc.Base64;
- var C_algo = C.algo;
- var EvpKDF = C_algo.EvpKDF;
-
- /**
- * Abstract base cipher template.
- *
- * @property {number} keySize This cipher's key size. Default: 4 (128 bits)
- * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
- * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
- * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
- */
- var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
- /**
- * Configuration options.
- *
- * @property {WordArray} iv The IV to use for this operation.
- */
- cfg: Base.extend(),
-
- /**
- * Creates this cipher in encryption mode.
- *
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {Cipher} A cipher instance.
- *
- * @static
- *
- * @example
- *
- * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
- */
- createEncryptor: function (key, cfg) {
- return this.create(this._ENC_XFORM_MODE, key, cfg);
- },
-
- /**
- * Creates this cipher in decryption mode.
- *
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {Cipher} A cipher instance.
- *
- * @static
- *
- * @example
- *
- * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
- */
- createDecryptor: function (key, cfg) {
- return this.create(this._DEC_XFORM_MODE, key, cfg);
- },
-
- /**
- * Initializes a newly created cipher.
- *
- * @param {number} xformMode Either the encryption or decryption transormation mode constant.
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @example
- *
- * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
- */
- init: function (xformMode, key, cfg) {
- // Apply config defaults
- this.cfg = this.cfg.extend(cfg);
-
- // Store transform mode and key
- this._xformMode = xformMode;
- this._key = key;
-
- // Set initial values
- this.reset();
- },
-
- /**
- * Resets this cipher to its initial state.
- *
- * @example
- *
- * cipher.reset();
- */
- reset: function () {
- // Reset data buffer
- BufferedBlockAlgorithm.reset.call(this);
-
- // Perform concrete-cipher logic
- this._doReset();
- },
-
- /**
- * Adds data to be encrypted or decrypted.
- *
- * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
- *
- * @return {WordArray} The data after processing.
- *
- * @example
- *
- * var encrypted = cipher.process('data');
- * var encrypted = cipher.process(wordArray);
- */
- process: function (dataUpdate) {
- // Append
- this._append(dataUpdate);
-
- // Process available blocks
- return this._process();
- },
-
- /**
- * Finalizes the encryption or decryption process.
- * Note that the finalize operation is effectively a destructive, read-once operation.
- *
- * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
- *
- * @return {WordArray} The data after final processing.
- *
- * @example
- *
- * var encrypted = cipher.finalize();
- * var encrypted = cipher.finalize('data');
- * var encrypted = cipher.finalize(wordArray);
- */
- finalize: function (dataUpdate) {
- // Final data update
- if (dataUpdate) {
- this._append(dataUpdate);
- }
-
- // Perform concrete-cipher logic
- var finalProcessedData = this._doFinalize();
-
- return finalProcessedData;
- },
-
- keySize: 128/32,
-
- ivSize: 128/32,
-
- _ENC_XFORM_MODE: 1,
-
- _DEC_XFORM_MODE: 2,
-
- /**
- * Creates shortcut functions to a cipher's object interface.
- *
- * @param {Cipher} cipher The cipher to create a helper for.
- *
- * @return {Object} An object with encrypt and decrypt shortcut functions.
- *
- * @static
- *
- * @example
- *
- * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
- */
- _createHelper: (function () {
- function selectCipherStrategy(key) {
- if (typeof key == 'string') {
- return PasswordBasedCipher;
- } else {
- return SerializableCipher;
- }
- }
-
- return function (cipher) {
- return {
- encrypt: function (message, key, cfg) {
- return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
- },
-
- decrypt: function (ciphertext, key, cfg) {
- return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
- }
- };
- };
- }())
- });
-
- /**
- * Abstract base stream cipher template.
- *
- * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
- */
- var StreamCipher = C_lib.StreamCipher = Cipher.extend({
- _doFinalize: function () {
- // Process partial blocks
- var finalProcessedBlocks = this._process(!!'flush');
-
- return finalProcessedBlocks;
- },
-
- blockSize: 1
- });
-
- /**
- * Mode namespace.
- */
- var C_mode = C.mode = {};
-
- /**
- * Abstract base block cipher mode template.
- */
- var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
- /**
- * Creates this mode for encryption.
- *
- * @param {Cipher} cipher A block cipher instance.
- * @param {Array} iv The IV words.
- *
- * @static
- *
- * @example
- *
- * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
- */
- createEncryptor: function (cipher, iv) {
- return this.Encryptor.create(cipher, iv);
- },
-
- /**
- * Creates this mode for decryption.
- *
- * @param {Cipher} cipher A block cipher instance.
- * @param {Array} iv The IV words.
- *
- * @static
- *
- * @example
- *
- * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
- */
- createDecryptor: function (cipher, iv) {
- return this.Decryptor.create(cipher, iv);
- },
-
- /**
- * Initializes a newly created mode.
- *
- * @param {Cipher} cipher A block cipher instance.
- * @param {Array} iv The IV words.
- *
- * @example
- *
- * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
- */
- init: function (cipher, iv) {
- this._cipher = cipher;
- this._iv = iv;
- }
- });
-
- /**
- * Cipher Block Chaining mode.
- */
- var CBC = C_mode.CBC = (function () {
- /**
- * Abstract base CBC mode.
- */
- var CBC = BlockCipherMode.extend();
-
- /**
- * CBC encryptor.
- */
- CBC.Encryptor = CBC.extend({
- /**
- * Processes the data block at offset.
- *
- * @param {Array} words The data words to operate on.
- * @param {number} offset The offset where the block starts.
- *
- * @example
- *
- * mode.processBlock(data.words, offset);
- */
- processBlock: function (words, offset) {
- // Shortcuts
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
-
- // XOR and encrypt
- xorBlock.call(this, words, offset, blockSize);
- cipher.encryptBlock(words, offset);
-
- // Remember this block to use with next block
- this._prevBlock = words.slice(offset, offset + blockSize);
- }
- });
-
- /**
- * CBC decryptor.
- */
- CBC.Decryptor = CBC.extend({
- /**
- * Processes the data block at offset.
- *
- * @param {Array} words The data words to operate on.
- * @param {number} offset The offset where the block starts.
- *
- * @example
- *
- * mode.processBlock(data.words, offset);
- */
- processBlock: function (words, offset) {
- // Shortcuts
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
-
- // Remember this block to use with next block
- var thisBlock = words.slice(offset, offset + blockSize);
-
- // Decrypt and XOR
- cipher.decryptBlock(words, offset);
- xorBlock.call(this, words, offset, blockSize);
-
- // This block becomes the previous block
- this._prevBlock = thisBlock;
- }
- });
-
- function xorBlock(words, offset, blockSize) {
- // Shortcut
- var iv = this._iv;
-
- // Choose mixing block
- if (iv) {
- var block = iv;
-
- // Remove IV for subsequent blocks
- this._iv = undefined;
- } else {
- var block = this._prevBlock;
- }
-
- // XOR blocks
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= block[i];
- }
- }
-
- return CBC;
- }());
-
- /**
- * Padding namespace.
- */
- var C_pad = C.pad = {};
-
- /**
- * PKCS #5/7 padding strategy.
- */
- var Pkcs7 = C_pad.Pkcs7 = {
- /**
- * Pads data using the algorithm defined in PKCS #5/7.
- *
- * @param {WordArray} data The data to pad.
- * @param {number} blockSize The multiple that the data should be padded to.
- *
- * @static
- *
- * @example
- *
- * CryptoJS.pad.Pkcs7.pad(wordArray, 4);
- */
- pad: function (data, blockSize) {
- // Shortcut
- var blockSizeBytes = blockSize * 4;
-
- // Count padding bytes
- var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
-
- // Create padding word
- var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
-
- // Create padding
- var paddingWords = [];
- for (var i = 0; i < nPaddingBytes; i += 4) {
- paddingWords.push(paddingWord);
- }
- var padding = WordArray.create(paddingWords, nPaddingBytes);
-
- // Add padding
- data.concat(padding);
- },
-
- /**
- * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
- *
- * @param {WordArray} data The data to unpad.
- *
- * @static
- *
- * @example
- *
- * CryptoJS.pad.Pkcs7.unpad(wordArray);
- */
- unpad: function (data) {
- // Get number of padding bytes from last byte
- var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
-
- // Remove padding
- data.sigBytes -= nPaddingBytes;
- }
- };
-
- /**
- * Abstract base block cipher template.
- *
- * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
- */
- var BlockCipher = C_lib.BlockCipher = Cipher.extend({
- /**
- * Configuration options.
- *
- * @property {Mode} mode The block mode to use. Default: CBC
- * @property {Padding} padding The padding strategy to use. Default: Pkcs7
- */
- cfg: Cipher.cfg.extend({
- mode: CBC,
- padding: Pkcs7
- }),
-
- reset: function () {
- // Reset cipher
- Cipher.reset.call(this);
-
- // Shortcuts
- var cfg = this.cfg;
- var iv = cfg.iv;
- var mode = cfg.mode;
-
- // Reset block mode
- if (this._xformMode == this._ENC_XFORM_MODE) {
- var modeCreator = mode.createEncryptor;
- } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
- var modeCreator = mode.createDecryptor;
-
- // Keep at least one block in the buffer for unpadding
- this._minBufferSize = 1;
- }
- this._mode = modeCreator.call(mode, this, iv && iv.words);
- },
-
- _doProcessBlock: function (words, offset) {
- this._mode.processBlock(words, offset);
- },
-
- _doFinalize: function () {
- // Shortcut
- var padding = this.cfg.padding;
-
- // Finalize
- if (this._xformMode == this._ENC_XFORM_MODE) {
- // Pad data
- padding.pad(this._data, this.blockSize);
-
- // Process final blocks
- var finalProcessedBlocks = this._process(!!'flush');
- } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
- // Process final blocks
- var finalProcessedBlocks = this._process(!!'flush');
-
- // Unpad data
- padding.unpad(finalProcessedBlocks);
- }
-
- return finalProcessedBlocks;
- },
-
- blockSize: 128/32
- });
-
- /**
- * A collection of cipher parameters.
- *
- * @property {WordArray} ciphertext The raw ciphertext.
- * @property {WordArray} key The key to this ciphertext.
- * @property {WordArray} iv The IV used in the ciphering operation.
- * @property {WordArray} salt The salt used with a key derivation function.
- * @property {Cipher} algorithm The cipher algorithm.
- * @property {Mode} mode The block mode used in the ciphering operation.
- * @property {Padding} padding The padding scheme used in the ciphering operation.
- * @property {number} blockSize The block size of the cipher.
- * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
- */
- var CipherParams = C_lib.CipherParams = Base.extend({
- /**
- * Initializes a newly created cipher params object.
- *
- * @param {Object} cipherParams An object with any of the possible cipher parameters.
- *
- * @example
- *
- * var cipherParams = CryptoJS.lib.CipherParams.create({
- * ciphertext: ciphertextWordArray,
- * key: keyWordArray,
- * iv: ivWordArray,
- * salt: saltWordArray,
- * algorithm: CryptoJS.algo.AES,
- * mode: CryptoJS.mode.CBC,
- * padding: CryptoJS.pad.PKCS7,
- * blockSize: 4,
- * formatter: CryptoJS.format.OpenSSL
- * });
- */
- init: function (cipherParams) {
- this.mixIn(cipherParams);
- },
-
- /**
- * Converts this cipher params object to a string.
- *
- * @param {Format} formatter (Optional) The formatting strategy to use.
- *
- * @return {string} The stringified cipher params.
- *
- * @throws Error If neither the formatter nor the default formatter is set.
- *
- * @example
- *
- * var string = cipherParams + '';
- * var string = cipherParams.toString();
- * var string = cipherParams.toString(CryptoJS.format.OpenSSL);
- */
- toString: function (formatter) {
- return (formatter || this.formatter).stringify(this);
- }
- });
-
- /**
- * Format namespace.
- */
- var C_format = C.format = {};
-
- /**
- * OpenSSL formatting strategy.
- */
- var OpenSSLFormatter = C_format.OpenSSL = {
- /**
- * Converts a cipher params object to an OpenSSL-compatible string.
- *
- * @param {CipherParams} cipherParams The cipher params object.
- *
- * @return {string} The OpenSSL-compatible string.
- *
- * @static
- *
- * @example
- *
- * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
- */
- stringify: function (cipherParams) {
- // Shortcuts
- var ciphertext = cipherParams.ciphertext;
- var salt = cipherParams.salt;
-
- // Format
- if (salt) {
- var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);
- } else {
- var wordArray = ciphertext;
- }
-
- return wordArray.toString(Base64);
- },
-
- /**
- * Converts an OpenSSL-compatible string to a cipher params object.
- *
- * @param {string} openSSLStr The OpenSSL-compatible string.
- *
- * @return {CipherParams} The cipher params object.
- *
- * @static
- *
- * @example
- *
- * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
- */
- parse: function (openSSLStr) {
- // Parse base64
- var ciphertext = Base64.parse(openSSLStr);
-
- // Shortcut
- var ciphertextWords = ciphertext.words;
-
- // Test for salt
- if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
- // Extract salt
- var salt = WordArray.create(ciphertextWords.slice(2, 4));
-
- // Remove salt from ciphertext
- ciphertextWords.splice(0, 4);
- ciphertext.sigBytes -= 16;
- }
-
- return CipherParams.create({ ciphertext: ciphertext, salt: salt });
- }
- };
-
- /**
- * A cipher wrapper that returns ciphertext as a serializable cipher params object.
- */
- var SerializableCipher = C_lib.SerializableCipher = Base.extend({
- /**
- * Configuration options.
- *
- * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
- */
- cfg: Base.extend({
- format: OpenSSLFormatter
- }),
-
- /**
- * Encrypts a message.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {WordArray|string} message The message to encrypt.
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {CipherParams} A cipher params object.
- *
- * @static
- *
- * @example
- *
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
- */
- encrypt: function (cipher, message, key, cfg) {
- // Apply config defaults
- cfg = this.cfg.extend(cfg);
-
- // Encrypt
- var encryptor = cipher.createEncryptor(key, cfg);
- var ciphertext = encryptor.finalize(message);
-
- // Shortcut
- var cipherCfg = encryptor.cfg;
-
- // Create and return serializable cipher params
- return CipherParams.create({
- ciphertext: ciphertext,
- key: key,
- iv: cipherCfg.iv,
- algorithm: cipher,
- mode: cipherCfg.mode,
- padding: cipherCfg.padding,
- blockSize: cipher.blockSize,
- formatter: cfg.format
- });
- },
-
- /**
- * Decrypts serialized ciphertext.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {WordArray} The plaintext.
- *
- * @static
- *
- * @example
- *
- * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
- * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
- */
- decrypt: function (cipher, ciphertext, key, cfg) {
- // Apply config defaults
- cfg = this.cfg.extend(cfg);
-
- // Convert string to CipherParams
- ciphertext = this._parse(ciphertext, cfg.format);
-
- // Decrypt
- var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
-
- return plaintext;
- },
-
- /**
- * Converts serialized ciphertext to CipherParams,
- * else assumed CipherParams already and returns ciphertext unchanged.
- *
- * @param {CipherParams|string} ciphertext The ciphertext.
- * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
- *
- * @return {CipherParams} The unserialized ciphertext.
- *
- * @static
- *
- * @example
- *
- * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
- */
- _parse: function (ciphertext, format) {
- if (typeof ciphertext == 'string') {
- return format.parse(ciphertext, this);
- } else {
- return ciphertext;
- }
- }
- });
-
- /**
- * Key derivation function namespace.
- */
- var C_kdf = C.kdf = {};
-
- /**
- * OpenSSL key derivation function.
- */
- var OpenSSLKdf = C_kdf.OpenSSL = {
- /**
- * Derives a key and IV from a password.
- *
- * @param {string} password The password to derive from.
- * @param {number} keySize The size in words of the key to generate.
- * @param {number} ivSize The size in words of the IV to generate.
- * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
- *
- * @return {CipherParams} A cipher params object with the key, IV, and salt.
- *
- * @static
- *
- * @example
- *
- * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
- * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
- */
- execute: function (password, keySize, ivSize, salt) {
- // Generate random salt
- if (!salt) {
- salt = WordArray.random(64/8);
- }
-
- // Derive key and IV
- var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
-
- // Separate key and IV
- var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
- key.sigBytes = keySize * 4;
-
- // Return params
- return CipherParams.create({ key: key, iv: iv, salt: salt });
- }
- };
-
- /**
- * A serializable cipher wrapper that derives the key from a password,
- * and returns ciphertext as a serializable cipher params object.
- */
- var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
- /**
- * Configuration options.
- *
- * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
- */
- cfg: SerializableCipher.cfg.extend({
- kdf: OpenSSLKdf
- }),
-
- /**
- * Encrypts a message using a password.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {WordArray|string} message The message to encrypt.
- * @param {string} password The password.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {CipherParams} A cipher params object.
- *
- * @static
- *
- * @example
- *
- * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
- * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
- */
- encrypt: function (cipher, message, password, cfg) {
- // Apply config defaults
- cfg = this.cfg.extend(cfg);
-
- // Derive key and other params
- var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);
-
- // Add IV to config
- cfg.iv = derivedParams.iv;
-
- // Encrypt
- var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
-
- // Mix in derived params
- ciphertext.mixIn(derivedParams);
-
- return ciphertext;
- },
-
- /**
- * Decrypts serialized ciphertext using a password.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
- * @param {string} password The password.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {WordArray} The plaintext.
- *
- * @static
- *
- * @example
- *
- * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
- * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
- */
- decrypt: function (cipher, ciphertext, password, cfg) {
- // Apply config defaults
- cfg = this.cfg.extend(cfg);
-
- // Convert string to CipherParams
- ciphertext = this._parse(ciphertext, cfg.format);
-
- // Derive key and other params
- var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);
-
- // Add IV to config
- cfg.iv = derivedParams.iv;
-
- // Decrypt
- var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
-
- return plaintext;
- }
- });
- }());
-
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/core.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/core.js
deleted file mode 100644
index b39b0fd..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/core.js
+++ /dev/null
@@ -1,745 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory();
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define([], factory);
- }
- else {
- // Global (browser)
- root.CryptoJS = factory();
- }
-}(this, function () {
-
- /**
- * CryptoJS core components.
- */
- var CryptoJS = CryptoJS || (function (Math, undefined) {
- /**
- * CryptoJS namespace.
- */
- var C = {};
-
- /**
- * Library namespace.
- */
- var C_lib = C.lib = {};
-
- /**
- * Base object for prototypal inheritance.
- */
- var Base = C_lib.Base = (function () {
- function F() {}
-
- return {
- /**
- * Creates a new object that inherits from this object.
- *
- * @param {Object} overrides Properties to copy into the new object.
- *
- * @return {Object} The new object.
- *
- * @static
- *
- * @example
- *
- * var MyType = CryptoJS.lib.Base.extend({
- * field: 'value',
- *
- * method: function () {
- * }
- * });
- */
- extend: function (overrides) {
- // Spawn
- F.prototype = this;
- var subtype = new F();
-
- // Augment
- if (overrides) {
- subtype.mixIn(overrides);
- }
-
- // Create default initializer
- if (!subtype.hasOwnProperty('init')) {
- subtype.init = function () {
- subtype.$super.init.apply(this, arguments);
- };
- }
-
- // Initializer's prototype is the subtype object
- subtype.init.prototype = subtype;
-
- // Reference supertype
- subtype.$super = this;
-
- return subtype;
- },
-
- /**
- * Extends this object and runs the init method.
- * Arguments to create() will be passed to init().
- *
- * @return {Object} The new object.
- *
- * @static
- *
- * @example
- *
- * var instance = MyType.create();
- */
- create: function () {
- var instance = this.extend();
- instance.init.apply(instance, arguments);
-
- return instance;
- },
-
- /**
- * Initializes a newly created object.
- * Override this method to add some logic when your objects are created.
- *
- * @example
- *
- * var MyType = CryptoJS.lib.Base.extend({
- * init: function () {
- * // ...
- * }
- * });
- */
- init: function () {
- },
-
- /**
- * Copies properties into this object.
- *
- * @param {Object} properties The properties to mix in.
- *
- * @example
- *
- * MyType.mixIn({
- * field: 'value'
- * });
- */
- mixIn: function (properties) {
- for (var propertyName in properties) {
- if (properties.hasOwnProperty(propertyName)) {
- this[propertyName] = properties[propertyName];
- }
- }
-
- // IE won't copy toString using the loop above
- if (properties.hasOwnProperty('toString')) {
- this.toString = properties.toString;
- }
- },
-
- /**
- * Creates a copy of this object.
- *
- * @return {Object} The clone.
- *
- * @example
- *
- * var clone = instance.clone();
- */
- clone: function () {
- return this.init.prototype.extend(this);
- }
- };
- }());
-
- /**
- * An array of 32-bit words.
- *
- * @property {Array} words The array of 32-bit words.
- * @property {number} sigBytes The number of significant bytes in this word array.
- */
- var WordArray = C_lib.WordArray = Base.extend({
- /**
- * Initializes a newly created word array.
- *
- * @param {Array} words (Optional) An array of 32-bit words.
- * @param {number} sigBytes (Optional) The number of significant bytes in the words.
- *
- * @example
- *
- * var wordArray = CryptoJS.lib.WordArray.create();
- * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
- * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
- */
- init: function (words, sigBytes) {
- words = this.words = words || [];
-
- if (sigBytes != undefined) {
- this.sigBytes = sigBytes;
- } else {
- this.sigBytes = words.length * 4;
- }
- },
-
- /**
- * Converts this word array to a string.
- *
- * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
- *
- * @return {string} The stringified word array.
- *
- * @example
- *
- * var string = wordArray + '';
- * var string = wordArray.toString();
- * var string = wordArray.toString(CryptoJS.enc.Utf8);
- */
- toString: function (encoder) {
- return (encoder || Hex).stringify(this);
- },
-
- /**
- * Concatenates a word array to this word array.
- *
- * @param {WordArray} wordArray The word array to append.
- *
- * @return {WordArray} This word array.
- *
- * @example
- *
- * wordArray1.concat(wordArray2);
- */
- concat: function (wordArray) {
- // Shortcuts
- var thisWords = this.words;
- var thatWords = wordArray.words;
- var thisSigBytes = this.sigBytes;
- var thatSigBytes = wordArray.sigBytes;
-
- // Clamp excess bits
- this.clamp();
-
- // Concat
- if (thisSigBytes % 4) {
- // Copy one byte at a time
- for (var i = 0; i < thatSigBytes; i++) {
- var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
- thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
- }
- } else if (thatWords.length > 0xffff) {
- // Copy one word at a time
- for (var i = 0; i < thatSigBytes; i += 4) {
- thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];
- }
- } else {
- // Copy all words at once
- thisWords.push.apply(thisWords, thatWords);
- }
- this.sigBytes += thatSigBytes;
-
- // Chainable
- return this;
- },
-
- /**
- * Removes insignificant bits.
- *
- * @example
- *
- * wordArray.clamp();
- */
- clamp: function () {
- // Shortcuts
- var words = this.words;
- var sigBytes = this.sigBytes;
-
- // Clamp
- words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
- words.length = Math.ceil(sigBytes / 4);
- },
-
- /**
- * Creates a copy of this word array.
- *
- * @return {WordArray} The clone.
- *
- * @example
- *
- * var clone = wordArray.clone();
- */
- clone: function () {
- var clone = Base.clone.call(this);
- clone.words = this.words.slice(0);
-
- return clone;
- },
-
- /**
- * Creates a word array filled with random bytes.
- *
- * @param {number} nBytes The number of random bytes to generate.
- *
- * @return {WordArray} The random word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.lib.WordArray.random(16);
- */
- random: function (nBytes) {
- var words = [];
-
- var r = (function (m_w) {
- var m_w = m_w;
- var m_z = 0x3ade68b1;
- var mask = 0xffffffff;
-
- return function () {
- m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;
- m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;
- var result = ((m_z << 0x10) + m_w) & mask;
- result /= 0x100000000;
- result += 0.5;
- return result * (Math.random() > .5 ? 1 : -1);
- }
- });
-
- for (var i = 0, rcache; i < nBytes; i += 4) {
- var _r = r((rcache || Math.random()) * 0x100000000);
-
- rcache = _r() * 0x3ade67b7;
- words.push((_r() * 0x100000000) | 0);
- }
-
- return new WordArray.init(words, nBytes);
- }
- });
-
- /**
- * Encoder namespace.
- */
- var C_enc = C.enc = {};
-
- /**
- * Hex encoding strategy.
- */
- var Hex = C_enc.Hex = {
- /**
- * Converts a word array to a hex string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The hex string.
- *
- * @static
- *
- * @example
- *
- * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
- */
- stringify: function (wordArray) {
- // Shortcuts
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
-
- // Convert
- var hexChars = [];
- for (var i = 0; i < sigBytes; i++) {
- var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
- hexChars.push((bite >>> 4).toString(16));
- hexChars.push((bite & 0x0f).toString(16));
- }
-
- return hexChars.join('');
- },
-
- /**
- * Converts a hex string to a word array.
- *
- * @param {string} hexStr The hex string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Hex.parse(hexString);
- */
- parse: function (hexStr) {
- // Shortcut
- var hexStrLength = hexStr.length;
-
- // Convert
- var words = [];
- for (var i = 0; i < hexStrLength; i += 2) {
- words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
- }
-
- return new WordArray.init(words, hexStrLength / 2);
- }
- };
-
- /**
- * Latin1 encoding strategy.
- */
- var Latin1 = C_enc.Latin1 = {
- /**
- * Converts a word array to a Latin1 string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The Latin1 string.
- *
- * @static
- *
- * @example
- *
- * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
- */
- stringify: function (wordArray) {
- // Shortcuts
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
-
- // Convert
- var latin1Chars = [];
- for (var i = 0; i < sigBytes; i++) {
- var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
- latin1Chars.push(String.fromCharCode(bite));
- }
-
- return latin1Chars.join('');
- },
-
- /**
- * Converts a Latin1 string to a word array.
- *
- * @param {string} latin1Str The Latin1 string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
- */
- parse: function (latin1Str) {
- // Shortcut
- var latin1StrLength = latin1Str.length;
-
- // Convert
- var words = [];
- for (var i = 0; i < latin1StrLength; i++) {
- words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
- }
-
- return new WordArray.init(words, latin1StrLength);
- }
- };
-
- /**
- * UTF-8 encoding strategy.
- */
- var Utf8 = C_enc.Utf8 = {
- /**
- * Converts a word array to a UTF-8 string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The UTF-8 string.
- *
- * @static
- *
- * @example
- *
- * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
- */
- stringify: function (wordArray) {
- try {
- return decodeURIComponent(escape(Latin1.stringify(wordArray)));
- } catch (e) {
- throw new Error('Malformed UTF-8 data');
- }
- },
-
- /**
- * Converts a UTF-8 string to a word array.
- *
- * @param {string} utf8Str The UTF-8 string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
- */
- parse: function (utf8Str) {
- return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
- }
- };
-
- /**
- * Abstract buffered block algorithm template.
- *
- * The property blockSize must be implemented in a concrete subtype.
- *
- * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
- */
- var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
- /**
- * Resets this block algorithm's data buffer to its initial state.
- *
- * @example
- *
- * bufferedBlockAlgorithm.reset();
- */
- reset: function () {
- // Initial values
- this._data = new WordArray.init();
- this._nDataBytes = 0;
- },
-
- /**
- * Adds new data to this block algorithm's buffer.
- *
- * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
- *
- * @example
- *
- * bufferedBlockAlgorithm._append('data');
- * bufferedBlockAlgorithm._append(wordArray);
- */
- _append: function (data) {
- // Convert string to WordArray, else assume WordArray already
- if (typeof data == 'string') {
- data = Utf8.parse(data);
- }
-
- // Append
- this._data.concat(data);
- this._nDataBytes += data.sigBytes;
- },
-
- /**
- * Processes available data blocks.
- *
- * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
- *
- * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
- *
- * @return {WordArray} The processed data.
- *
- * @example
- *
- * var processedData = bufferedBlockAlgorithm._process();
- * var processedData = bufferedBlockAlgorithm._process(!!'flush');
- */
- _process: function (doFlush) {
- // Shortcuts
- var data = this._data;
- var dataWords = data.words;
- var dataSigBytes = data.sigBytes;
- var blockSize = this.blockSize;
- var blockSizeBytes = blockSize * 4;
-
- // Count blocks ready
- var nBlocksReady = dataSigBytes / blockSizeBytes;
- if (doFlush) {
- // Round up to include partial blocks
- nBlocksReady = Math.ceil(nBlocksReady);
- } else {
- // Round down to include only full blocks,
- // less the number of blocks that must remain in the buffer
- nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
- }
-
- // Count words ready
- var nWordsReady = nBlocksReady * blockSize;
-
- // Count bytes ready
- var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
-
- // Process blocks
- if (nWordsReady) {
- for (var offset = 0; offset < nWordsReady; offset += blockSize) {
- // Perform concrete-algorithm logic
- this._doProcessBlock(dataWords, offset);
- }
-
- // Remove processed words
- var processedWords = dataWords.splice(0, nWordsReady);
- data.sigBytes -= nBytesReady;
- }
-
- // Return processed words
- return new WordArray.init(processedWords, nBytesReady);
- },
-
- /**
- * Creates a copy of this object.
- *
- * @return {Object} The clone.
- *
- * @example
- *
- * var clone = bufferedBlockAlgorithm.clone();
- */
- clone: function () {
- var clone = Base.clone.call(this);
- clone._data = this._data.clone();
-
- return clone;
- },
-
- _minBufferSize: 0
- });
-
- /**
- * Abstract hasher template.
- *
- * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
- */
- var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
- /**
- * Configuration options.
- */
- cfg: Base.extend(),
-
- /**
- * Initializes a newly created hasher.
- *
- * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
- *
- * @example
- *
- * var hasher = CryptoJS.algo.SHA256.create();
- */
- init: function (cfg) {
- // Apply config defaults
- this.cfg = this.cfg.extend(cfg);
-
- // Set initial values
- this.reset();
- },
-
- /**
- * Resets this hasher to its initial state.
- *
- * @example
- *
- * hasher.reset();
- */
- reset: function () {
- // Reset data buffer
- BufferedBlockAlgorithm.reset.call(this);
-
- // Perform concrete-hasher logic
- this._doReset();
- },
-
- /**
- * Updates this hasher with a message.
- *
- * @param {WordArray|string} messageUpdate The message to append.
- *
- * @return {Hasher} This hasher.
- *
- * @example
- *
- * hasher.update('message');
- * hasher.update(wordArray);
- */
- update: function (messageUpdate) {
- // Append
- this._append(messageUpdate);
-
- // Update the hash
- this._process();
-
- // Chainable
- return this;
- },
-
- /**
- * Finalizes the hash computation.
- * Note that the finalize operation is effectively a destructive, read-once operation.
- *
- * @param {WordArray|string} messageUpdate (Optional) A final message update.
- *
- * @return {WordArray} The hash.
- *
- * @example
- *
- * var hash = hasher.finalize();
- * var hash = hasher.finalize('message');
- * var hash = hasher.finalize(wordArray);
- */
- finalize: function (messageUpdate) {
- // Final message update
- if (messageUpdate) {
- this._append(messageUpdate);
- }
-
- // Perform concrete-hasher logic
- var hash = this._doFinalize();
-
- return hash;
- },
-
- blockSize: 512/32,
-
- /**
- * Creates a shortcut function to a hasher's object interface.
- *
- * @param {Hasher} hasher The hasher to create a helper for.
- *
- * @return {Function} The shortcut function.
- *
- * @static
- *
- * @example
- *
- * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
- */
- _createHelper: function (hasher) {
- return function (message, cfg) {
- return new hasher.init(cfg).finalize(message);
- };
- },
-
- /**
- * Creates a shortcut function to the HMAC's object interface.
- *
- * @param {Hasher} hasher The hasher to use in this HMAC helper.
- *
- * @return {Function} The shortcut function.
- *
- * @static
- *
- * @example
- *
- * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
- */
- _createHmacHelper: function (hasher) {
- return function (message, key) {
- return new C_algo.HMAC.init(hasher, key).finalize(message);
- };
- }
- });
-
- /**
- * Algorithm namespace.
- */
- var C_algo = C.algo = {};
-
- return C;
- }(Math));
-
-
- return CryptoJS;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-base64.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-base64.js
deleted file mode 100644
index cb1b79c..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-base64.js
+++ /dev/null
@@ -1,123 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var C_enc = C.enc;
-
- /**
- * Base64 encoding strategy.
- */
- var Base64 = C_enc.Base64 = {
- /**
- * Converts a word array to a Base64 string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The Base64 string.
- *
- * @static
- *
- * @example
- *
- * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
- */
- stringify: function (wordArray) {
- // Shortcuts
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
- var map = this._map;
-
- // Clamp excess bits
- wordArray.clamp();
-
- // Convert
- var base64Chars = [];
- for (var i = 0; i < sigBytes; i += 3) {
- var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
- var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
- var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
-
- var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
-
- for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
- base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
- }
- }
-
- // Add padding
- var paddingChar = map.charAt(64);
- if (paddingChar) {
- while (base64Chars.length % 4) {
- base64Chars.push(paddingChar);
- }
- }
-
- return base64Chars.join('');
- },
-
- /**
- * Converts a Base64 string to a word array.
- *
- * @param {string} base64Str The Base64 string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Base64.parse(base64String);
- */
- parse: function (base64Str) {
- // Shortcuts
- var base64StrLength = base64Str.length;
- var map = this._map;
-
- // Ignore padding
- var paddingChar = map.charAt(64);
- if (paddingChar) {
- var paddingIndex = base64Str.indexOf(paddingChar);
- if (paddingIndex != -1) {
- base64StrLength = paddingIndex;
- }
- }
-
- // Convert
- var words = [];
- var nBytes = 0;
- for (var i = 0; i < base64StrLength; i++) {
- if (i % 4) {
- var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2);
- var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2);
- words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);
- nBytes++;
- }
- }
-
- return WordArray.create(words, nBytes);
- },
-
- _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
- };
- }());
-
-
- return CryptoJS.enc.Base64;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-hex.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-hex.js
deleted file mode 100644
index 88161ff..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-hex.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.enc.Hex;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-latin1.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-latin1.js
deleted file mode 100644
index ade56dc..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-latin1.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.enc.Latin1;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-utf16.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-utf16.js
deleted file mode 100644
index 7de6245..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-utf16.js
+++ /dev/null
@@ -1,149 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var C_enc = C.enc;
-
- /**
- * UTF-16 BE encoding strategy.
- */
- var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
- /**
- * Converts a word array to a UTF-16 BE string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The UTF-16 BE string.
- *
- * @static
- *
- * @example
- *
- * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
- */
- stringify: function (wordArray) {
- // Shortcuts
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
-
- // Convert
- var utf16Chars = [];
- for (var i = 0; i < sigBytes; i += 2) {
- var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
- utf16Chars.push(String.fromCharCode(codePoint));
- }
-
- return utf16Chars.join('');
- },
-
- /**
- * Converts a UTF-16 BE string to a word array.
- *
- * @param {string} utf16Str The UTF-16 BE string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
- */
- parse: function (utf16Str) {
- // Shortcut
- var utf16StrLength = utf16Str.length;
-
- // Convert
- var words = [];
- for (var i = 0; i < utf16StrLength; i++) {
- words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
- }
-
- return WordArray.create(words, utf16StrLength * 2);
- }
- };
-
- /**
- * UTF-16 LE encoding strategy.
- */
- C_enc.Utf16LE = {
- /**
- * Converts a word array to a UTF-16 LE string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The UTF-16 LE string.
- *
- * @static
- *
- * @example
- *
- * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
- */
- stringify: function (wordArray) {
- // Shortcuts
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
-
- // Convert
- var utf16Chars = [];
- for (var i = 0; i < sigBytes; i += 2) {
- var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
- utf16Chars.push(String.fromCharCode(codePoint));
- }
-
- return utf16Chars.join('');
- },
-
- /**
- * Converts a UTF-16 LE string to a word array.
- *
- * @param {string} utf16Str The UTF-16 LE string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
- */
- parse: function (utf16Str) {
- // Shortcut
- var utf16StrLength = utf16Str.length;
-
- // Convert
- var words = [];
- for (var i = 0; i < utf16StrLength; i++) {
- words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
- }
-
- return WordArray.create(words, utf16StrLength * 2);
- }
- };
-
- function swapEndian(word) {
- return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
- }
- }());
-
-
- return CryptoJS.enc.Utf16;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-utf8.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-utf8.js
deleted file mode 100644
index e7a251d..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/enc-utf8.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.enc.Utf8;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/evpkdf.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/evpkdf.js
deleted file mode 100644
index 3fe5c01..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/evpkdf.js
+++ /dev/null
@@ -1,132 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./sha1", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var WordArray = C_lib.WordArray;
- var C_algo = C.algo;
- var MD5 = C_algo.MD5;
-
- /**
- * This key derivation function is meant to conform with EVP_BytesToKey.
- * www.openssl.org/docs/crypto/EVP_BytesToKey.html
- */
- var EvpKDF = C_algo.EvpKDF = Base.extend({
- /**
- * Configuration options.
- *
- * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
- * @property {Hasher} hasher The hash algorithm to use. Default: MD5
- * @property {number} iterations The number of iterations to perform. Default: 1
- */
- cfg: Base.extend({
- keySize: 128/32,
- hasher: MD5,
- iterations: 1
- }),
-
- /**
- * Initializes a newly created key derivation function.
- *
- * @param {Object} cfg (Optional) The configuration options to use for the derivation.
- *
- * @example
- *
- * var kdf = CryptoJS.algo.EvpKDF.create();
- * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
- * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
- */
- init: function (cfg) {
- this.cfg = this.cfg.extend(cfg);
- },
-
- /**
- * Derives a key from a password.
- *
- * @param {WordArray|string} password The password.
- * @param {WordArray|string} salt A salt.
- *
- * @return {WordArray} The derived key.
- *
- * @example
- *
- * var key = kdf.compute(password, salt);
- */
- compute: function (password, salt) {
- // Shortcut
- var cfg = this.cfg;
-
- // Init hasher
- var hasher = cfg.hasher.create();
-
- // Initial values
- var derivedKey = WordArray.create();
-
- // Shortcuts
- var derivedKeyWords = derivedKey.words;
- var keySize = cfg.keySize;
- var iterations = cfg.iterations;
-
- // Generate key
- while (derivedKeyWords.length < keySize) {
- if (block) {
- hasher.update(block);
- }
- var block = hasher.update(password).finalize(salt);
- hasher.reset();
-
- // Iterations
- for (var i = 1; i < iterations; i++) {
- block = hasher.finalize(block);
- hasher.reset();
- }
-
- derivedKey.concat(block);
- }
- derivedKey.sigBytes = keySize * 4;
-
- return derivedKey;
- }
- });
-
- /**
- * Derives a key from a password.
- *
- * @param {WordArray|string} password The password.
- * @param {WordArray|string} salt A salt.
- * @param {Object} cfg (Optional) The configuration options to use for this computation.
- *
- * @return {WordArray} The derived key.
- *
- * @static
- *
- * @example
- *
- * var key = CryptoJS.EvpKDF(password, salt);
- * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
- * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
- */
- C.EvpKDF = function (password, salt, cfg) {
- return EvpKDF.create(cfg).compute(password, salt);
- };
- }());
-
-
- return CryptoJS.EvpKDF;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/format-hex.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/format-hex.js
deleted file mode 100644
index 2e9a861..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/format-hex.js
+++ /dev/null
@@ -1,66 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function (undefined) {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var CipherParams = C_lib.CipherParams;
- var C_enc = C.enc;
- var Hex = C_enc.Hex;
- var C_format = C.format;
-
- var HexFormatter = C_format.Hex = {
- /**
- * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
- *
- * @param {CipherParams} cipherParams The cipher params object.
- *
- * @return {string} The hexadecimally encoded string.
- *
- * @static
- *
- * @example
- *
- * var hexString = CryptoJS.format.Hex.stringify(cipherParams);
- */
- stringify: function (cipherParams) {
- return cipherParams.ciphertext.toString(Hex);
- },
-
- /**
- * Converts a hexadecimally encoded ciphertext string to a cipher params object.
- *
- * @param {string} input The hexadecimally encoded string.
- *
- * @return {CipherParams} The cipher params object.
- *
- * @static
- *
- * @example
- *
- * var cipherParams = CryptoJS.format.Hex.parse(hexString);
- */
- parse: function (input) {
- var ciphertext = Hex.parse(input);
- return CipherParams.create({ ciphertext: ciphertext });
- }
- };
- }());
-
-
- return CryptoJS.format.Hex;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/format-openssl.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/format-openssl.js
deleted file mode 100644
index 3373edc..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/format-openssl.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.format.OpenSSL;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-md5.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-md5.js
deleted file mode 100644
index ad7a90a..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-md5.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./md5"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./md5", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacMD5;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-ripemd160.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-ripemd160.js
deleted file mode 100644
index 73d55a7..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-ripemd160.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./ripemd160"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./ripemd160", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacRIPEMD160;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha1.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha1.js
deleted file mode 100644
index 0b570cb..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha1.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./sha1", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacSHA1;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha224.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha224.js
deleted file mode 100644
index 3778863..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha224.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./sha256"), require("./sha224"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./sha256", "./sha224", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacSHA224;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha256.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha256.js
deleted file mode 100644
index 33b0c9f..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha256.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./sha256", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacSHA256;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha3.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha3.js
deleted file mode 100644
index 1248804..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha3.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha3"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./x64-core", "./sha3", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacSHA3;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha384.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha384.js
deleted file mode 100644
index 0036e2b..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha384.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./sha384"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./x64-core", "./sha512", "./sha384", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacSHA384;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha512.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha512.js
deleted file mode 100644
index c1005b6..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac-sha512.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./x64-core", "./sha512", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.HmacSHA512;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac.js
deleted file mode 100644
index 8c09851..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/hmac.js
+++ /dev/null
@@ -1,143 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var C_enc = C.enc;
- var Utf8 = C_enc.Utf8;
- var C_algo = C.algo;
-
- /**
- * HMAC algorithm.
- */
- var HMAC = C_algo.HMAC = Base.extend({
- /**
- * Initializes a newly created HMAC.
- *
- * @param {Hasher} hasher The hash algorithm to use.
- * @param {WordArray|string} key The secret key.
- *
- * @example
- *
- * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
- */
- init: function (hasher, key) {
- // Init hasher
- hasher = this._hasher = new hasher.init();
-
- // Convert string to WordArray, else assume WordArray already
- if (typeof key == 'string') {
- key = Utf8.parse(key);
- }
-
- // Shortcuts
- var hasherBlockSize = hasher.blockSize;
- var hasherBlockSizeBytes = hasherBlockSize * 4;
-
- // Allow arbitrary length keys
- if (key.sigBytes > hasherBlockSizeBytes) {
- key = hasher.finalize(key);
- }
-
- // Clamp excess bits
- key.clamp();
-
- // Clone key for inner and outer pads
- var oKey = this._oKey = key.clone();
- var iKey = this._iKey = key.clone();
-
- // Shortcuts
- var oKeyWords = oKey.words;
- var iKeyWords = iKey.words;
-
- // XOR keys with pad constants
- for (var i = 0; i < hasherBlockSize; i++) {
- oKeyWords[i] ^= 0x5c5c5c5c;
- iKeyWords[i] ^= 0x36363636;
- }
- oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
-
- // Set initial values
- this.reset();
- },
-
- /**
- * Resets this HMAC to its initial state.
- *
- * @example
- *
- * hmacHasher.reset();
- */
- reset: function () {
- // Shortcut
- var hasher = this._hasher;
-
- // Reset
- hasher.reset();
- hasher.update(this._iKey);
- },
-
- /**
- * Updates this HMAC with a message.
- *
- * @param {WordArray|string} messageUpdate The message to append.
- *
- * @return {HMAC} This HMAC instance.
- *
- * @example
- *
- * hmacHasher.update('message');
- * hmacHasher.update(wordArray);
- */
- update: function (messageUpdate) {
- this._hasher.update(messageUpdate);
-
- // Chainable
- return this;
- },
-
- /**
- * Finalizes the HMAC computation.
- * Note that the finalize operation is effectively a destructive, read-once operation.
- *
- * @param {WordArray|string} messageUpdate (Optional) A final message update.
- *
- * @return {WordArray} The HMAC.
- *
- * @example
- *
- * var hmac = hmacHasher.finalize();
- * var hmac = hmacHasher.finalize('message');
- * var hmac = hmacHasher.finalize(wordArray);
- */
- finalize: function (messageUpdate) {
- // Shortcut
- var hasher = this._hasher;
-
- // Compute HMAC
- var innerHash = hasher.finalize(messageUpdate);
- hasher.reset();
- var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
-
- return hmac;
- }
- });
- }());
-
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/index.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/index.js
deleted file mode 100644
index cacf485..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/lib-typedarrays.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/lib-typedarrays.js
deleted file mode 100644
index b293b28..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/lib-typedarrays.js
+++ /dev/null
@@ -1,76 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Check if typed arrays are supported
- if (typeof ArrayBuffer != 'function') {
- return;
- }
-
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
-
- // Reference original init
- var superInit = WordArray.init;
-
- // Augment WordArray.init to handle typed arrays
- var subInit = WordArray.init = function (typedArray) {
- // Convert buffers to uint8
- if (typedArray instanceof ArrayBuffer) {
- typedArray = new Uint8Array(typedArray);
- }
-
- // Convert other array views to uint8
- if (
- typedArray instanceof Int8Array ||
- typedArray instanceof Uint8ClampedArray ||
- typedArray instanceof Int16Array ||
- typedArray instanceof Uint16Array ||
- typedArray instanceof Int32Array ||
- typedArray instanceof Uint32Array ||
- typedArray instanceof Float32Array ||
- typedArray instanceof Float64Array
- ) {
- typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
- }
-
- // Handle Uint8Array
- if (typedArray instanceof Uint8Array) {
- // Shortcut
- var typedArrayByteLength = typedArray.byteLength;
-
- // Extract bytes
- var words = [];
- for (var i = 0; i < typedArrayByteLength; i++) {
- words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
- }
-
- // Initialize this word array
- superInit.call(this, words, typedArrayByteLength);
- } else {
- // Else call normal init
- superInit.apply(this, arguments);
- }
- };
-
- subInit.prototype = WordArray;
- }());
-
-
- return CryptoJS.lib.WordArray;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/md5.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/md5.js
deleted file mode 100644
index 12b0fdd..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/md5.js
+++ /dev/null
@@ -1,268 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function (Math) {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
-
- // Constants table
- var T = [];
-
- // Compute constants
- (function () {
- for (var i = 0; i < 64; i++) {
- T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
- }
- }());
-
- /**
- * MD5 hash algorithm.
- */
- var MD5 = C_algo.MD5 = Hasher.extend({
- _doReset: function () {
- this._hash = new WordArray.init([
- 0x67452301, 0xefcdab89,
- 0x98badcfe, 0x10325476
- ]);
- },
-
- _doProcessBlock: function (M, offset) {
- // Swap endian
- for (var i = 0; i < 16; i++) {
- // Shortcuts
- var offset_i = offset + i;
- var M_offset_i = M[offset_i];
-
- M[offset_i] = (
- (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
- (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
- );
- }
-
- // Shortcuts
- var H = this._hash.words;
-
- var M_offset_0 = M[offset + 0];
- var M_offset_1 = M[offset + 1];
- var M_offset_2 = M[offset + 2];
- var M_offset_3 = M[offset + 3];
- var M_offset_4 = M[offset + 4];
- var M_offset_5 = M[offset + 5];
- var M_offset_6 = M[offset + 6];
- var M_offset_7 = M[offset + 7];
- var M_offset_8 = M[offset + 8];
- var M_offset_9 = M[offset + 9];
- var M_offset_10 = M[offset + 10];
- var M_offset_11 = M[offset + 11];
- var M_offset_12 = M[offset + 12];
- var M_offset_13 = M[offset + 13];
- var M_offset_14 = M[offset + 14];
- var M_offset_15 = M[offset + 15];
-
- // Working varialbes
- var a = H[0];
- var b = H[1];
- var c = H[2];
- var d = H[3];
-
- // Computation
- a = FF(a, b, c, d, M_offset_0, 7, T[0]);
- d = FF(d, a, b, c, M_offset_1, 12, T[1]);
- c = FF(c, d, a, b, M_offset_2, 17, T[2]);
- b = FF(b, c, d, a, M_offset_3, 22, T[3]);
- a = FF(a, b, c, d, M_offset_4, 7, T[4]);
- d = FF(d, a, b, c, M_offset_5, 12, T[5]);
- c = FF(c, d, a, b, M_offset_6, 17, T[6]);
- b = FF(b, c, d, a, M_offset_7, 22, T[7]);
- a = FF(a, b, c, d, M_offset_8, 7, T[8]);
- d = FF(d, a, b, c, M_offset_9, 12, T[9]);
- c = FF(c, d, a, b, M_offset_10, 17, T[10]);
- b = FF(b, c, d, a, M_offset_11, 22, T[11]);
- a = FF(a, b, c, d, M_offset_12, 7, T[12]);
- d = FF(d, a, b, c, M_offset_13, 12, T[13]);
- c = FF(c, d, a, b, M_offset_14, 17, T[14]);
- b = FF(b, c, d, a, M_offset_15, 22, T[15]);
-
- a = GG(a, b, c, d, M_offset_1, 5, T[16]);
- d = GG(d, a, b, c, M_offset_6, 9, T[17]);
- c = GG(c, d, a, b, M_offset_11, 14, T[18]);
- b = GG(b, c, d, a, M_offset_0, 20, T[19]);
- a = GG(a, b, c, d, M_offset_5, 5, T[20]);
- d = GG(d, a, b, c, M_offset_10, 9, T[21]);
- c = GG(c, d, a, b, M_offset_15, 14, T[22]);
- b = GG(b, c, d, a, M_offset_4, 20, T[23]);
- a = GG(a, b, c, d, M_offset_9, 5, T[24]);
- d = GG(d, a, b, c, M_offset_14, 9, T[25]);
- c = GG(c, d, a, b, M_offset_3, 14, T[26]);
- b = GG(b, c, d, a, M_offset_8, 20, T[27]);
- a = GG(a, b, c, d, M_offset_13, 5, T[28]);
- d = GG(d, a, b, c, M_offset_2, 9, T[29]);
- c = GG(c, d, a, b, M_offset_7, 14, T[30]);
- b = GG(b, c, d, a, M_offset_12, 20, T[31]);
-
- a = HH(a, b, c, d, M_offset_5, 4, T[32]);
- d = HH(d, a, b, c, M_offset_8, 11, T[33]);
- c = HH(c, d, a, b, M_offset_11, 16, T[34]);
- b = HH(b, c, d, a, M_offset_14, 23, T[35]);
- a = HH(a, b, c, d, M_offset_1, 4, T[36]);
- d = HH(d, a, b, c, M_offset_4, 11, T[37]);
- c = HH(c, d, a, b, M_offset_7, 16, T[38]);
- b = HH(b, c, d, a, M_offset_10, 23, T[39]);
- a = HH(a, b, c, d, M_offset_13, 4, T[40]);
- d = HH(d, a, b, c, M_offset_0, 11, T[41]);
- c = HH(c, d, a, b, M_offset_3, 16, T[42]);
- b = HH(b, c, d, a, M_offset_6, 23, T[43]);
- a = HH(a, b, c, d, M_offset_9, 4, T[44]);
- d = HH(d, a, b, c, M_offset_12, 11, T[45]);
- c = HH(c, d, a, b, M_offset_15, 16, T[46]);
- b = HH(b, c, d, a, M_offset_2, 23, T[47]);
-
- a = II(a, b, c, d, M_offset_0, 6, T[48]);
- d = II(d, a, b, c, M_offset_7, 10, T[49]);
- c = II(c, d, a, b, M_offset_14, 15, T[50]);
- b = II(b, c, d, a, M_offset_5, 21, T[51]);
- a = II(a, b, c, d, M_offset_12, 6, T[52]);
- d = II(d, a, b, c, M_offset_3, 10, T[53]);
- c = II(c, d, a, b, M_offset_10, 15, T[54]);
- b = II(b, c, d, a, M_offset_1, 21, T[55]);
- a = II(a, b, c, d, M_offset_8, 6, T[56]);
- d = II(d, a, b, c, M_offset_15, 10, T[57]);
- c = II(c, d, a, b, M_offset_6, 15, T[58]);
- b = II(b, c, d, a, M_offset_13, 21, T[59]);
- a = II(a, b, c, d, M_offset_4, 6, T[60]);
- d = II(d, a, b, c, M_offset_11, 10, T[61]);
- c = II(c, d, a, b, M_offset_2, 15, T[62]);
- b = II(b, c, d, a, M_offset_9, 21, T[63]);
-
- // Intermediate hash value
- H[0] = (H[0] + a) | 0;
- H[1] = (H[1] + b) | 0;
- H[2] = (H[2] + c) | 0;
- H[3] = (H[3] + d) | 0;
- },
-
- _doFinalize: function () {
- // Shortcuts
- var data = this._data;
- var dataWords = data.words;
-
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
-
- // Add padding
- dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
-
- var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
- var nBitsTotalL = nBitsTotal;
- dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
- (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
- (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)
- );
- dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
- (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
- (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)
- );
-
- data.sigBytes = (dataWords.length + 1) * 4;
-
- // Hash final blocks
- this._process();
-
- // Shortcuts
- var hash = this._hash;
- var H = hash.words;
-
- // Swap endian
- for (var i = 0; i < 4; i++) {
- // Shortcut
- var H_i = H[i];
-
- H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
- (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
- }
-
- // Return final computed hash
- return hash;
- },
-
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
-
- return clone;
- }
- });
-
- function FF(a, b, c, d, x, s, t) {
- var n = a + ((b & c) | (~b & d)) + x + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- }
-
- function GG(a, b, c, d, x, s, t) {
- var n = a + ((b & d) | (c & ~d)) + x + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- }
-
- function HH(a, b, c, d, x, s, t) {
- var n = a + (b ^ c ^ d) + x + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- }
-
- function II(a, b, c, d, x, s, t) {
- var n = a + (c ^ (b | ~d)) + x + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- }
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.MD5('message');
- * var hash = CryptoJS.MD5(wordArray);
- */
- C.MD5 = Hasher._createHelper(MD5);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacMD5(message, key);
- */
- C.HmacMD5 = Hasher._createHmacHelper(MD5);
- }(Math));
-
-
- return CryptoJS.MD5;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-cfb.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-cfb.js
deleted file mode 100644
index 86231f1..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-cfb.js
+++ /dev/null
@@ -1,78 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * Cipher Feedback block mode.
- */
- CryptoJS.mode.CFB = (function () {
- var CFB = CryptoJS.lib.BlockCipherMode.extend();
-
- CFB.Encryptor = CFB.extend({
- processBlock: function (words, offset) {
- // Shortcuts
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
-
- generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
-
- // Remember this block to use with next block
- this._prevBlock = words.slice(offset, offset + blockSize);
- }
- });
-
- CFB.Decryptor = CFB.extend({
- processBlock: function (words, offset) {
- // Shortcuts
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
-
- // Remember this block to use with next block
- var thisBlock = words.slice(offset, offset + blockSize);
-
- generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
-
- // This block becomes the previous block
- this._prevBlock = thisBlock;
- }
- });
-
- function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
- // Shortcut
- var iv = this._iv;
-
- // Generate keystream
- if (iv) {
- var keystream = iv.slice(0);
-
- // Remove IV for subsequent blocks
- this._iv = undefined;
- } else {
- var keystream = this._prevBlock;
- }
- cipher.encryptBlock(keystream, 0);
-
- // Encrypt
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
-
- return CFB;
- }());
-
-
- return CryptoJS.mode.CFB;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ctr-gladman.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ctr-gladman.js
deleted file mode 100644
index bbc5687..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ctr-gladman.js
+++ /dev/null
@@ -1,116 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /** @preserve
- * Counter block mode compatible with Dr Brian Gladman fileenc.c
- * derived from CryptoJS.mode.CTR
- * Jan Hruby jhruby.web@gmail.com
- */
- CryptoJS.mode.CTRGladman = (function () {
- var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
-
- function incWord(word)
- {
- if (((word >> 24) & 0xff) === 0xff) { //overflow
- var b1 = (word >> 16)&0xff;
- var b2 = (word >> 8)&0xff;
- var b3 = word & 0xff;
-
- if (b1 === 0xff) // overflow b1
- {
- b1 = 0;
- if (b2 === 0xff)
- {
- b2 = 0;
- if (b3 === 0xff)
- {
- b3 = 0;
- }
- else
- {
- ++b3;
- }
- }
- else
- {
- ++b2;
- }
- }
- else
- {
- ++b1;
- }
-
- word = 0;
- word += (b1 << 16);
- word += (b2 << 8);
- word += b3;
- }
- else
- {
- word += (0x01 << 24);
- }
- return word;
- }
-
- function incCounter(counter)
- {
- if ((counter[0] = incWord(counter[0])) === 0)
- {
- // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8
- counter[1] = incWord(counter[1]);
- }
- return counter;
- }
-
- var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
- processBlock: function (words, offset) {
- // Shortcuts
- var cipher = this._cipher
- var blockSize = cipher.blockSize;
- var iv = this._iv;
- var counter = this._counter;
-
- // Generate keystream
- if (iv) {
- counter = this._counter = iv.slice(0);
-
- // Remove IV for subsequent blocks
- this._iv = undefined;
- }
-
- incCounter(counter);
-
- var keystream = counter.slice(0);
- cipher.encryptBlock(keystream, 0);
-
- // Encrypt
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
- });
-
- CTRGladman.Decryptor = Encryptor;
-
- return CTRGladman;
- }());
-
-
-
-
- return CryptoJS.mode.CTRGladman;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ctr.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ctr.js
deleted file mode 100644
index c3d470a..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ctr.js
+++ /dev/null
@@ -1,58 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * Counter block mode.
- */
- CryptoJS.mode.CTR = (function () {
- var CTR = CryptoJS.lib.BlockCipherMode.extend();
-
- var Encryptor = CTR.Encryptor = CTR.extend({
- processBlock: function (words, offset) {
- // Shortcuts
- var cipher = this._cipher
- var blockSize = cipher.blockSize;
- var iv = this._iv;
- var counter = this._counter;
-
- // Generate keystream
- if (iv) {
- counter = this._counter = iv.slice(0);
-
- // Remove IV for subsequent blocks
- this._iv = undefined;
- }
- var keystream = counter.slice(0);
- cipher.encryptBlock(keystream, 0);
-
- // Increment counter
- counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
-
- // Encrypt
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
- });
-
- CTR.Decryptor = Encryptor;
-
- return CTR;
- }());
-
-
- return CryptoJS.mode.CTR;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ecb.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ecb.js
deleted file mode 100644
index ff06921..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ecb.js
+++ /dev/null
@@ -1,40 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * Electronic Codebook block mode.
- */
- CryptoJS.mode.ECB = (function () {
- var ECB = CryptoJS.lib.BlockCipherMode.extend();
-
- ECB.Encryptor = ECB.extend({
- processBlock: function (words, offset) {
- this._cipher.encryptBlock(words, offset);
- }
- });
-
- ECB.Decryptor = ECB.extend({
- processBlock: function (words, offset) {
- this._cipher.decryptBlock(words, offset);
- }
- });
-
- return ECB;
- }());
-
-
- return CryptoJS.mode.ECB;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ofb.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ofb.js
deleted file mode 100644
index c01314c..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/mode-ofb.js
+++ /dev/null
@@ -1,54 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * Output Feedback block mode.
- */
- CryptoJS.mode.OFB = (function () {
- var OFB = CryptoJS.lib.BlockCipherMode.extend();
-
- var Encryptor = OFB.Encryptor = OFB.extend({
- processBlock: function (words, offset) {
- // Shortcuts
- var cipher = this._cipher
- var blockSize = cipher.blockSize;
- var iv = this._iv;
- var keystream = this._keystream;
-
- // Generate keystream
- if (iv) {
- keystream = this._keystream = iv.slice(0);
-
- // Remove IV for subsequent blocks
- this._iv = undefined;
- }
- cipher.encryptBlock(keystream, 0);
-
- // Encrypt
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
- });
-
- OFB.Decryptor = Encryptor;
-
- return OFB;
- }());
-
-
- return CryptoJS.mode.OFB;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/package.json b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/package.json
deleted file mode 100644
index 165d943..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "crypto-js",
- "title": "crypto-js",
- "description": "Modularized port of googlecode project crypto-js.",
- "version": "3.1.2-5",
- "homepage": "http://github.com/evanvosberg/crypto-js",
- "author": {
- "name": "Evan Vosberg",
- "url": "http://github.com/evanvosberg"
- },
- "repository": {
- "type": "git",
- "url": "http://github.com/evanvosberg/crypto-js.git"
- },
- "bugs": {
- "url": "http://github.com/evanvosberg/crypto-js/issues"
- },
- "licenses": [
- {
- "type": "MIT",
- "url": "http://opensource.org/licenses/MIT"
- }
- ],
- "dependencies": {},
- "devDependencies": {
- "underscore": "~1.4.4",
- "handlebars": "~1.0.10",
- "uglify-js": "~2.2.5",
- "js-yaml": "~2.0.4",
- "fs.extra": "~1.2.0",
- "tar.gz": "~0.1.1",
- "fmd": "~0.0.1"
- },
- "keywords": [
- "Hash",
- "MD5",
- "SHA1",
- "SHA-1",
- "SHA256",
- "SHA-256",
- "RC4",
- "Rabbit",
- "AES",
- "DES",
- "PBKDF2",
- "HMAC",
- "OFB",
- "CFB",
- "CTR",
- "CBC",
- "Base64"
- ],
- "_id": "crypto-js@3.1.2-5",
- "dist": {
- "shasum": "8bda4cdadd27f36b1b8ee08989700195c9ab2a0a",
- "tarball": "http://registry.npmjs.org/crypto-js/-/crypto-js-3.1.2-5.tgz"
- },
- "_resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.2-5.tgz",
- "_from": "crypto-js@>=3.1.2-2",
- "scripts": {},
- "_npmVersion": "1.4.3",
- "_npmUser": {
- "name": "evanvosberg",
- "email": "evanvosberg@inext.me"
- },
- "maintainers": [
- {
- "name": "evanvosberg",
- "email": "evanvosberg@inext.me"
- }
- ],
- "directories": {},
- "_shasum": "8bda4cdadd27f36b1b8ee08989700195c9ab2a0a",
- "readme": "ERROR: No README data found!"
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-ansix923.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-ansix923.js
deleted file mode 100644
index f01f21e..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-ansix923.js
+++ /dev/null
@@ -1,49 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * ANSI X.923 padding strategy.
- */
- CryptoJS.pad.AnsiX923 = {
- pad: function (data, blockSize) {
- // Shortcuts
- var dataSigBytes = data.sigBytes;
- var blockSizeBytes = blockSize * 4;
-
- // Count padding bytes
- var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
-
- // Compute last byte position
- var lastBytePos = dataSigBytes + nPaddingBytes - 1;
-
- // Pad
- data.clamp();
- data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
- data.sigBytes += nPaddingBytes;
- },
-
- unpad: function (data) {
- // Get number of padding bytes from last byte
- var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
-
- // Remove padding
- data.sigBytes -= nPaddingBytes;
- }
- };
-
-
- return CryptoJS.pad.Ansix923;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-iso10126.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-iso10126.js
deleted file mode 100644
index 6e2aefd..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-iso10126.js
+++ /dev/null
@@ -1,44 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * ISO 10126 padding strategy.
- */
- CryptoJS.pad.Iso10126 = {
- pad: function (data, blockSize) {
- // Shortcut
- var blockSizeBytes = blockSize * 4;
-
- // Count padding bytes
- var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
-
- // Pad
- data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).
- concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
- },
-
- unpad: function (data) {
- // Get number of padding bytes from last byte
- var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
-
- // Remove padding
- data.sigBytes -= nPaddingBytes;
- }
- };
-
-
- return CryptoJS.pad.Iso10126;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-iso97971.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-iso97971.js
deleted file mode 100644
index 41049b4..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-iso97971.js
+++ /dev/null
@@ -1,40 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * ISO/IEC 9797-1 Padding Method 2.
- */
- CryptoJS.pad.Iso97971 = {
- pad: function (data, blockSize) {
- // Add 0x80 byte
- data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
-
- // Zero pad the rest
- CryptoJS.pad.ZeroPadding.pad(data, blockSize);
- },
-
- unpad: function (data) {
- // Remove zero padding
- CryptoJS.pad.ZeroPadding.unpad(data);
-
- // Remove one more byte -- the 0x80 byte
- data.sigBytes--;
- }
- };
-
-
- return CryptoJS.pad.Iso97971;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-nopadding.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-nopadding.js
deleted file mode 100644
index c7787c9..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-nopadding.js
+++ /dev/null
@@ -1,30 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * A noop padding strategy.
- */
- CryptoJS.pad.NoPadding = {
- pad: function () {
- },
-
- unpad: function () {
- }
- };
-
-
- return CryptoJS.pad.NoPadding;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-pkcs7.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-pkcs7.js
deleted file mode 100644
index 3555168..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-pkcs7.js
+++ /dev/null
@@ -1,18 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- return CryptoJS.pad.Pkcs7;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-zeropadding.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-zeropadding.js
deleted file mode 100644
index 0e8a859..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pad-zeropadding.js
+++ /dev/null
@@ -1,45 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /**
- * Zero padding strategy.
- */
- CryptoJS.pad.ZeroPadding = {
- pad: function (data, blockSize) {
- // Shortcut
- var blockSizeBytes = blockSize * 4;
-
- // Pad
- data.clamp();
- data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
- },
-
- unpad: function (data) {
- // Shortcut
- var dataWords = data.words;
-
- // Unpad
- var i = data.sigBytes - 1;
- while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
- i--;
- }
- data.sigBytes = i + 1;
- }
- };
-
-
- return CryptoJS.pad.ZeroPadding;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pbkdf2.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pbkdf2.js
deleted file mode 100644
index 1258251..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/pbkdf2.js
+++ /dev/null
@@ -1,145 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./sha1", "./hmac"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var WordArray = C_lib.WordArray;
- var C_algo = C.algo;
- var SHA1 = C_algo.SHA1;
- var HMAC = C_algo.HMAC;
-
- /**
- * Password-Based Key Derivation Function 2 algorithm.
- */
- var PBKDF2 = C_algo.PBKDF2 = Base.extend({
- /**
- * Configuration options.
- *
- * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
- * @property {Hasher} hasher The hasher to use. Default: SHA1
- * @property {number} iterations The number of iterations to perform. Default: 1
- */
- cfg: Base.extend({
- keySize: 128/32,
- hasher: SHA1,
- iterations: 1
- }),
-
- /**
- * Initializes a newly created key derivation function.
- *
- * @param {Object} cfg (Optional) The configuration options to use for the derivation.
- *
- * @example
- *
- * var kdf = CryptoJS.algo.PBKDF2.create();
- * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
- * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
- */
- init: function (cfg) {
- this.cfg = this.cfg.extend(cfg);
- },
-
- /**
- * Computes the Password-Based Key Derivation Function 2.
- *
- * @param {WordArray|string} password The password.
- * @param {WordArray|string} salt A salt.
- *
- * @return {WordArray} The derived key.
- *
- * @example
- *
- * var key = kdf.compute(password, salt);
- */
- compute: function (password, salt) {
- // Shortcut
- var cfg = this.cfg;
-
- // Init HMAC
- var hmac = HMAC.create(cfg.hasher, password);
-
- // Initial values
- var derivedKey = WordArray.create();
- var blockIndex = WordArray.create([0x00000001]);
-
- // Shortcuts
- var derivedKeyWords = derivedKey.words;
- var blockIndexWords = blockIndex.words;
- var keySize = cfg.keySize;
- var iterations = cfg.iterations;
-
- // Generate key
- while (derivedKeyWords.length < keySize) {
- var block = hmac.update(salt).finalize(blockIndex);
- hmac.reset();
-
- // Shortcuts
- var blockWords = block.words;
- var blockWordsLength = blockWords.length;
-
- // Iterations
- var intermediate = block;
- for (var i = 1; i < iterations; i++) {
- intermediate = hmac.finalize(intermediate);
- hmac.reset();
-
- // Shortcut
- var intermediateWords = intermediate.words;
-
- // XOR intermediate with block
- for (var j = 0; j < blockWordsLength; j++) {
- blockWords[j] ^= intermediateWords[j];
- }
- }
-
- derivedKey.concat(block);
- blockIndexWords[0]++;
- }
- derivedKey.sigBytes = keySize * 4;
-
- return derivedKey;
- }
- });
-
- /**
- * Computes the Password-Based Key Derivation Function 2.
- *
- * @param {WordArray|string} password The password.
- * @param {WordArray|string} salt A salt.
- * @param {Object} cfg (Optional) The configuration options to use for this computation.
- *
- * @return {WordArray} The derived key.
- *
- * @static
- *
- * @example
- *
- * var key = CryptoJS.PBKDF2(password, salt);
- * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
- * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
- */
- C.PBKDF2 = function (password, salt, cfg) {
- return PBKDF2.create(cfg).compute(password, salt);
- };
- }());
-
-
- return CryptoJS.PBKDF2;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rabbit-legacy.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rabbit-legacy.js
deleted file mode 100644
index e118b6b..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rabbit-legacy.js
+++ /dev/null
@@ -1,190 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var StreamCipher = C_lib.StreamCipher;
- var C_algo = C.algo;
-
- // Reusable objects
- var S = [];
- var C_ = [];
- var G = [];
-
- /**
- * Rabbit stream cipher algorithm.
- *
- * This is a legacy version that neglected to convert the key to little-endian.
- * This error doesn't affect the cipher's security,
- * but it does affect its compatibility with other implementations.
- */
- var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
- _doReset: function () {
- // Shortcuts
- var K = this._key.words;
- var iv = this.cfg.iv;
-
- // Generate initial state values
- var X = this._X = [
- K[0], (K[3] << 16) | (K[2] >>> 16),
- K[1], (K[0] << 16) | (K[3] >>> 16),
- K[2], (K[1] << 16) | (K[0] >>> 16),
- K[3], (K[2] << 16) | (K[1] >>> 16)
- ];
-
- // Generate initial counter values
- var C = this._C = [
- (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
- (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
- (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
- (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
- ];
-
- // Carry bit
- this._b = 0;
-
- // Iterate the system four times
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
-
- // Modify the counters
- for (var i = 0; i < 8; i++) {
- C[i] ^= X[(i + 4) & 7];
- }
-
- // IV setup
- if (iv) {
- // Shortcuts
- var IV = iv.words;
- var IV_0 = IV[0];
- var IV_1 = IV[1];
-
- // Generate four subvectors
- var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
- var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
- var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
- var i3 = (i2 << 16) | (i0 & 0x0000ffff);
-
- // Modify counter values
- C[0] ^= i0;
- C[1] ^= i1;
- C[2] ^= i2;
- C[3] ^= i3;
- C[4] ^= i0;
- C[5] ^= i1;
- C[6] ^= i2;
- C[7] ^= i3;
-
- // Iterate the system four times
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
- }
- },
-
- _doProcessBlock: function (M, offset) {
- // Shortcut
- var X = this._X;
-
- // Iterate the system
- nextState.call(this);
-
- // Generate four keystream words
- S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
- S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
- S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
- S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
-
- for (var i = 0; i < 4; i++) {
- // Swap endian
- S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
- (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
-
- // Encrypt
- M[offset + i] ^= S[i];
- }
- },
-
- blockSize: 128/32,
-
- ivSize: 64/32
- });
-
- function nextState() {
- // Shortcuts
- var X = this._X;
- var C = this._C;
-
- // Save old counter values
- for (var i = 0; i < 8; i++) {
- C_[i] = C[i];
- }
-
- // Calculate new counter values
- C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
- C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
- C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
- C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
- C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
- C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
- C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
- C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
- this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
-
- // Calculate the g-values
- for (var i = 0; i < 8; i++) {
- var gx = X[i] + C[i];
-
- // Construct high and low argument for squaring
- var ga = gx & 0xffff;
- var gb = gx >>> 16;
-
- // Calculate high and low result of squaring
- var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
- var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
-
- // High XOR low
- G[i] = gh ^ gl;
- }
-
- // Calculate new state values
- X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
- X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
- X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
- X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
- X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
- X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
- X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
- X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
- }
-
- /**
- * Shortcut functions to the cipher's object interface.
- *
- * @example
- *
- * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
- * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
- */
- C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
- }());
-
-
- return CryptoJS.RabbitLegacy;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rabbit.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rabbit.js
deleted file mode 100644
index 1b06833..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rabbit.js
+++ /dev/null
@@ -1,192 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var StreamCipher = C_lib.StreamCipher;
- var C_algo = C.algo;
-
- // Reusable objects
- var S = [];
- var C_ = [];
- var G = [];
-
- /**
- * Rabbit stream cipher algorithm
- */
- var Rabbit = C_algo.Rabbit = StreamCipher.extend({
- _doReset: function () {
- // Shortcuts
- var K = this._key.words;
- var iv = this.cfg.iv;
-
- // Swap endian
- for (var i = 0; i < 4; i++) {
- K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |
- (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);
- }
-
- // Generate initial state values
- var X = this._X = [
- K[0], (K[3] << 16) | (K[2] >>> 16),
- K[1], (K[0] << 16) | (K[3] >>> 16),
- K[2], (K[1] << 16) | (K[0] >>> 16),
- K[3], (K[2] << 16) | (K[1] >>> 16)
- ];
-
- // Generate initial counter values
- var C = this._C = [
- (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
- (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
- (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
- (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
- ];
-
- // Carry bit
- this._b = 0;
-
- // Iterate the system four times
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
-
- // Modify the counters
- for (var i = 0; i < 8; i++) {
- C[i] ^= X[(i + 4) & 7];
- }
-
- // IV setup
- if (iv) {
- // Shortcuts
- var IV = iv.words;
- var IV_0 = IV[0];
- var IV_1 = IV[1];
-
- // Generate four subvectors
- var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
- var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
- var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
- var i3 = (i2 << 16) | (i0 & 0x0000ffff);
-
- // Modify counter values
- C[0] ^= i0;
- C[1] ^= i1;
- C[2] ^= i2;
- C[3] ^= i3;
- C[4] ^= i0;
- C[5] ^= i1;
- C[6] ^= i2;
- C[7] ^= i3;
-
- // Iterate the system four times
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
- }
- },
-
- _doProcessBlock: function (M, offset) {
- // Shortcut
- var X = this._X;
-
- // Iterate the system
- nextState.call(this);
-
- // Generate four keystream words
- S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
- S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
- S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
- S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
-
- for (var i = 0; i < 4; i++) {
- // Swap endian
- S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
- (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
-
- // Encrypt
- M[offset + i] ^= S[i];
- }
- },
-
- blockSize: 128/32,
-
- ivSize: 64/32
- });
-
- function nextState() {
- // Shortcuts
- var X = this._X;
- var C = this._C;
-
- // Save old counter values
- for (var i = 0; i < 8; i++) {
- C_[i] = C[i];
- }
-
- // Calculate new counter values
- C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
- C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
- C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
- C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
- C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
- C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
- C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
- C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
- this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
-
- // Calculate the g-values
- for (var i = 0; i < 8; i++) {
- var gx = X[i] + C[i];
-
- // Construct high and low argument for squaring
- var ga = gx & 0xffff;
- var gb = gx >>> 16;
-
- // Calculate high and low result of squaring
- var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
- var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
-
- // High XOR low
- G[i] = gh ^ gl;
- }
-
- // Calculate new state values
- X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
- X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
- X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
- X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
- X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
- X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
- X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
- X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
- }
-
- /**
- * Shortcut functions to the cipher's object interface.
- *
- * @example
- *
- * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
- * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
- */
- C.Rabbit = StreamCipher._createHelper(Rabbit);
- }());
-
-
- return CryptoJS.Rabbit;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rc4.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rc4.js
deleted file mode 100644
index 0e4bdff..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/rc4.js
+++ /dev/null
@@ -1,139 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var StreamCipher = C_lib.StreamCipher;
- var C_algo = C.algo;
-
- /**
- * RC4 stream cipher algorithm.
- */
- var RC4 = C_algo.RC4 = StreamCipher.extend({
- _doReset: function () {
- // Shortcuts
- var key = this._key;
- var keyWords = key.words;
- var keySigBytes = key.sigBytes;
-
- // Init sbox
- var S = this._S = [];
- for (var i = 0; i < 256; i++) {
- S[i] = i;
- }
-
- // Key setup
- for (var i = 0, j = 0; i < 256; i++) {
- var keyByteIndex = i % keySigBytes;
- var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
-
- j = (j + S[i] + keyByte) % 256;
-
- // Swap
- var t = S[i];
- S[i] = S[j];
- S[j] = t;
- }
-
- // Counters
- this._i = this._j = 0;
- },
-
- _doProcessBlock: function (M, offset) {
- M[offset] ^= generateKeystreamWord.call(this);
- },
-
- keySize: 256/32,
-
- ivSize: 0
- });
-
- function generateKeystreamWord() {
- // Shortcuts
- var S = this._S;
- var i = this._i;
- var j = this._j;
-
- // Generate keystream word
- var keystreamWord = 0;
- for (var n = 0; n < 4; n++) {
- i = (i + 1) % 256;
- j = (j + S[i]) % 256;
-
- // Swap
- var t = S[i];
- S[i] = S[j];
- S[j] = t;
-
- keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
- }
-
- // Update counters
- this._i = i;
- this._j = j;
-
- return keystreamWord;
- }
-
- /**
- * Shortcut functions to the cipher's object interface.
- *
- * @example
- *
- * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
- * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
- */
- C.RC4 = StreamCipher._createHelper(RC4);
-
- /**
- * Modified RC4 stream cipher algorithm.
- */
- var RC4Drop = C_algo.RC4Drop = RC4.extend({
- /**
- * Configuration options.
- *
- * @property {number} drop The number of keystream words to drop. Default 192
- */
- cfg: RC4.cfg.extend({
- drop: 192
- }),
-
- _doReset: function () {
- RC4._doReset.call(this);
-
- // Drop
- for (var i = this.cfg.drop; i > 0; i--) {
- generateKeystreamWord.call(this);
- }
- }
- });
-
- /**
- * Shortcut functions to the cipher's object interface.
- *
- * @example
- *
- * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
- * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
- */
- C.RC4Drop = StreamCipher._createHelper(RC4Drop);
- }());
-
-
- return CryptoJS.RC4;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/ripemd160.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/ripemd160.js
deleted file mode 100644
index 24feb47..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/ripemd160.js
+++ /dev/null
@@ -1,267 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- /** @preserve
- (c) 2012 by Cédric Mesnil. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- (function (Math) {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
-
- // Constants table
- var _zl = WordArray.create([
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
- 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
- 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
- 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);
- var _zr = WordArray.create([
- 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
- 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
- 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
- 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
- 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);
- var _sl = WordArray.create([
- 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
- 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
- 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
- 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
- 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);
- var _sr = WordArray.create([
- 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
- 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
- 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
- 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
- 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);
-
- var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);
- var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);
-
- /**
- * RIPEMD160 hash algorithm.
- */
- var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
- _doReset: function () {
- this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);
- },
-
- _doProcessBlock: function (M, offset) {
-
- // Swap endian
- for (var i = 0; i < 16; i++) {
- // Shortcuts
- var offset_i = offset + i;
- var M_offset_i = M[offset_i];
-
- // Swap
- M[offset_i] = (
- (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
- (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
- );
- }
- // Shortcut
- var H = this._hash.words;
- var hl = _hl.words;
- var hr = _hr.words;
- var zl = _zl.words;
- var zr = _zr.words;
- var sl = _sl.words;
- var sr = _sr.words;
-
- // Working variables
- var al, bl, cl, dl, el;
- var ar, br, cr, dr, er;
-
- ar = al = H[0];
- br = bl = H[1];
- cr = cl = H[2];
- dr = dl = H[3];
- er = el = H[4];
- // Computation
- var t;
- for (var i = 0; i < 80; i += 1) {
- t = (al + M[offset+zl[i]])|0;
- if (i<16){
- t += f1(bl,cl,dl) + hl[0];
- } else if (i<32) {
- t += f2(bl,cl,dl) + hl[1];
- } else if (i<48) {
- t += f3(bl,cl,dl) + hl[2];
- } else if (i<64) {
- t += f4(bl,cl,dl) + hl[3];
- } else {// if (i<80) {
- t += f5(bl,cl,dl) + hl[4];
- }
- t = t|0;
- t = rotl(t,sl[i]);
- t = (t+el)|0;
- al = el;
- el = dl;
- dl = rotl(cl, 10);
- cl = bl;
- bl = t;
-
- t = (ar + M[offset+zr[i]])|0;
- if (i<16){
- t += f5(br,cr,dr) + hr[0];
- } else if (i<32) {
- t += f4(br,cr,dr) + hr[1];
- } else if (i<48) {
- t += f3(br,cr,dr) + hr[2];
- } else if (i<64) {
- t += f2(br,cr,dr) + hr[3];
- } else {// if (i<80) {
- t += f1(br,cr,dr) + hr[4];
- }
- t = t|0;
- t = rotl(t,sr[i]) ;
- t = (t+er)|0;
- ar = er;
- er = dr;
- dr = rotl(cr, 10);
- cr = br;
- br = t;
- }
- // Intermediate hash value
- t = (H[1] + cl + dr)|0;
- H[1] = (H[2] + dl + er)|0;
- H[2] = (H[3] + el + ar)|0;
- H[3] = (H[4] + al + br)|0;
- H[4] = (H[0] + bl + cr)|0;
- H[0] = t;
- },
-
- _doFinalize: function () {
- // Shortcuts
- var data = this._data;
- var dataWords = data.words;
-
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
-
- // Add padding
- dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
- dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
- (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
- (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
- );
- data.sigBytes = (dataWords.length + 1) * 4;
-
- // Hash final blocks
- this._process();
-
- // Shortcuts
- var hash = this._hash;
- var H = hash.words;
-
- // Swap endian
- for (var i = 0; i < 5; i++) {
- // Shortcut
- var H_i = H[i];
-
- // Swap
- H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
- (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
- }
-
- // Return final computed hash
- return hash;
- },
-
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
-
- return clone;
- }
- });
-
-
- function f1(x, y, z) {
- return ((x) ^ (y) ^ (z));
-
- }
-
- function f2(x, y, z) {
- return (((x)&(y)) | ((~x)&(z)));
- }
-
- function f3(x, y, z) {
- return (((x) | (~(y))) ^ (z));
- }
-
- function f4(x, y, z) {
- return (((x) & (z)) | ((y)&(~(z))));
- }
-
- function f5(x, y, z) {
- return ((x) ^ ((y) |(~(z))));
-
- }
-
- function rotl(x,n) {
- return (x<>>(32-n));
- }
-
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.RIPEMD160('message');
- * var hash = CryptoJS.RIPEMD160(wordArray);
- */
- C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacRIPEMD160(message, key);
- */
- C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
- }(Math));
-
-
- return CryptoJS.RIPEMD160;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha1.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha1.js
deleted file mode 100644
index 6691149..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha1.js
+++ /dev/null
@@ -1,150 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
-
- // Reusable object
- var W = [];
-
- /**
- * SHA-1 hash algorithm.
- */
- var SHA1 = C_algo.SHA1 = Hasher.extend({
- _doReset: function () {
- this._hash = new WordArray.init([
- 0x67452301, 0xefcdab89,
- 0x98badcfe, 0x10325476,
- 0xc3d2e1f0
- ]);
- },
-
- _doProcessBlock: function (M, offset) {
- // Shortcut
- var H = this._hash.words;
-
- // Working variables
- var a = H[0];
- var b = H[1];
- var c = H[2];
- var d = H[3];
- var e = H[4];
-
- // Computation
- for (var i = 0; i < 80; i++) {
- if (i < 16) {
- W[i] = M[offset + i] | 0;
- } else {
- var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
- W[i] = (n << 1) | (n >>> 31);
- }
-
- var t = ((a << 5) | (a >>> 27)) + e + W[i];
- if (i < 20) {
- t += ((b & c) | (~b & d)) + 0x5a827999;
- } else if (i < 40) {
- t += (b ^ c ^ d) + 0x6ed9eba1;
- } else if (i < 60) {
- t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
- } else /* if (i < 80) */ {
- t += (b ^ c ^ d) - 0x359d3e2a;
- }
-
- e = d;
- d = c;
- c = (b << 30) | (b >>> 2);
- b = a;
- a = t;
- }
-
- // Intermediate hash value
- H[0] = (H[0] + a) | 0;
- H[1] = (H[1] + b) | 0;
- H[2] = (H[2] + c) | 0;
- H[3] = (H[3] + d) | 0;
- H[4] = (H[4] + e) | 0;
- },
-
- _doFinalize: function () {
- // Shortcuts
- var data = this._data;
- var dataWords = data.words;
-
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
-
- // Add padding
- dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
- dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
- dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
- data.sigBytes = dataWords.length * 4;
-
- // Hash final blocks
- this._process();
-
- // Return final computed hash
- return this._hash;
- },
-
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
-
- return clone;
- }
- });
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.SHA1('message');
- * var hash = CryptoJS.SHA1(wordArray);
- */
- C.SHA1 = Hasher._createHelper(SHA1);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacSHA1(message, key);
- */
- C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
- }());
-
-
- return CryptoJS.SHA1;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha224.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha224.js
deleted file mode 100644
index d8ce988..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha224.js
+++ /dev/null
@@ -1,80 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./sha256"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./sha256"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var C_algo = C.algo;
- var SHA256 = C_algo.SHA256;
-
- /**
- * SHA-224 hash algorithm.
- */
- var SHA224 = C_algo.SHA224 = SHA256.extend({
- _doReset: function () {
- this._hash = new WordArray.init([
- 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
- 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
- ]);
- },
-
- _doFinalize: function () {
- var hash = SHA256._doFinalize.call(this);
-
- hash.sigBytes -= 4;
-
- return hash;
- }
- });
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.SHA224('message');
- * var hash = CryptoJS.SHA224(wordArray);
- */
- C.SHA224 = SHA256._createHelper(SHA224);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacSHA224(message, key);
- */
- C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
- }());
-
-
- return CryptoJS.SHA224;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha256.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha256.js
deleted file mode 100644
index de2d7fc..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha256.js
+++ /dev/null
@@ -1,199 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function (Math) {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
-
- // Initialization and round constants tables
- var H = [];
- var K = [];
-
- // Compute constants
- (function () {
- function isPrime(n) {
- var sqrtN = Math.sqrt(n);
- for (var factor = 2; factor <= sqrtN; factor++) {
- if (!(n % factor)) {
- return false;
- }
- }
-
- return true;
- }
-
- function getFractionalBits(n) {
- return ((n - (n | 0)) * 0x100000000) | 0;
- }
-
- var n = 2;
- var nPrime = 0;
- while (nPrime < 64) {
- if (isPrime(n)) {
- if (nPrime < 8) {
- H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
- }
- K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
-
- nPrime++;
- }
-
- n++;
- }
- }());
-
- // Reusable object
- var W = [];
-
- /**
- * SHA-256 hash algorithm.
- */
- var SHA256 = C_algo.SHA256 = Hasher.extend({
- _doReset: function () {
- this._hash = new WordArray.init(H.slice(0));
- },
-
- _doProcessBlock: function (M, offset) {
- // Shortcut
- var H = this._hash.words;
-
- // Working variables
- var a = H[0];
- var b = H[1];
- var c = H[2];
- var d = H[3];
- var e = H[4];
- var f = H[5];
- var g = H[6];
- var h = H[7];
-
- // Computation
- for (var i = 0; i < 64; i++) {
- if (i < 16) {
- W[i] = M[offset + i] | 0;
- } else {
- var gamma0x = W[i - 15];
- var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^
- ((gamma0x << 14) | (gamma0x >>> 18)) ^
- (gamma0x >>> 3);
-
- var gamma1x = W[i - 2];
- var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^
- ((gamma1x << 13) | (gamma1x >>> 19)) ^
- (gamma1x >>> 10);
-
- W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
- }
-
- var ch = (e & f) ^ (~e & g);
- var maj = (a & b) ^ (a & c) ^ (b & c);
-
- var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
- var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));
-
- var t1 = h + sigma1 + ch + K[i] + W[i];
- var t2 = sigma0 + maj;
-
- h = g;
- g = f;
- f = e;
- e = (d + t1) | 0;
- d = c;
- c = b;
- b = a;
- a = (t1 + t2) | 0;
- }
-
- // Intermediate hash value
- H[0] = (H[0] + a) | 0;
- H[1] = (H[1] + b) | 0;
- H[2] = (H[2] + c) | 0;
- H[3] = (H[3] + d) | 0;
- H[4] = (H[4] + e) | 0;
- H[5] = (H[5] + f) | 0;
- H[6] = (H[6] + g) | 0;
- H[7] = (H[7] + h) | 0;
- },
-
- _doFinalize: function () {
- // Shortcuts
- var data = this._data;
- var dataWords = data.words;
-
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
-
- // Add padding
- dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
- dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
- dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
- data.sigBytes = dataWords.length * 4;
-
- // Hash final blocks
- this._process();
-
- // Return final computed hash
- return this._hash;
- },
-
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
-
- return clone;
- }
- });
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.SHA256('message');
- * var hash = CryptoJS.SHA256(wordArray);
- */
- C.SHA256 = Hasher._createHelper(SHA256);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacSHA256(message, key);
- */
- C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
- }(Math));
-
-
- return CryptoJS.SHA256;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha3.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha3.js
deleted file mode 100644
index 4fb27fe..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha3.js
+++ /dev/null
@@ -1,323 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./x64-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./x64-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function (Math) {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_x64 = C.x64;
- var X64Word = C_x64.Word;
- var C_algo = C.algo;
-
- // Constants tables
- var RHO_OFFSETS = [];
- var PI_INDEXES = [];
- var ROUND_CONSTANTS = [];
-
- // Compute Constants
- (function () {
- // Compute rho offset constants
- var x = 1, y = 0;
- for (var t = 0; t < 24; t++) {
- RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
-
- var newX = y % 5;
- var newY = (2 * x + 3 * y) % 5;
- x = newX;
- y = newY;
- }
-
- // Compute pi index constants
- for (var x = 0; x < 5; x++) {
- for (var y = 0; y < 5; y++) {
- PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
- }
- }
-
- // Compute round constants
- var LFSR = 0x01;
- for (var i = 0; i < 24; i++) {
- var roundConstantMsw = 0;
- var roundConstantLsw = 0;
-
- for (var j = 0; j < 7; j++) {
- if (LFSR & 0x01) {
- var bitPosition = (1 << j) - 1;
- if (bitPosition < 32) {
- roundConstantLsw ^= 1 << bitPosition;
- } else /* if (bitPosition >= 32) */ {
- roundConstantMsw ^= 1 << (bitPosition - 32);
- }
- }
-
- // Compute next LFSR
- if (LFSR & 0x80) {
- // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
- LFSR = (LFSR << 1) ^ 0x71;
- } else {
- LFSR <<= 1;
- }
- }
-
- ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
- }
- }());
-
- // Reusable objects for temporary values
- var T = [];
- (function () {
- for (var i = 0; i < 25; i++) {
- T[i] = X64Word.create();
- }
- }());
-
- /**
- * SHA-3 hash algorithm.
- */
- var SHA3 = C_algo.SHA3 = Hasher.extend({
- /**
- * Configuration options.
- *
- * @property {number} outputLength
- * The desired number of bits in the output hash.
- * Only values permitted are: 224, 256, 384, 512.
- * Default: 512
- */
- cfg: Hasher.cfg.extend({
- outputLength: 512
- }),
-
- _doReset: function () {
- var state = this._state = []
- for (var i = 0; i < 25; i++) {
- state[i] = new X64Word.init();
- }
-
- this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
- },
-
- _doProcessBlock: function (M, offset) {
- // Shortcuts
- var state = this._state;
- var nBlockSizeLanes = this.blockSize / 2;
-
- // Absorb
- for (var i = 0; i < nBlockSizeLanes; i++) {
- // Shortcuts
- var M2i = M[offset + 2 * i];
- var M2i1 = M[offset + 2 * i + 1];
-
- // Swap endian
- M2i = (
- (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
- (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)
- );
- M2i1 = (
- (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
- (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)
- );
-
- // Absorb message into state
- var lane = state[i];
- lane.high ^= M2i1;
- lane.low ^= M2i;
- }
-
- // Rounds
- for (var round = 0; round < 24; round++) {
- // Theta
- for (var x = 0; x < 5; x++) {
- // Mix column lanes
- var tMsw = 0, tLsw = 0;
- for (var y = 0; y < 5; y++) {
- var lane = state[x + 5 * y];
- tMsw ^= lane.high;
- tLsw ^= lane.low;
- }
-
- // Temporary values
- var Tx = T[x];
- Tx.high = tMsw;
- Tx.low = tLsw;
- }
- for (var x = 0; x < 5; x++) {
- // Shortcuts
- var Tx4 = T[(x + 4) % 5];
- var Tx1 = T[(x + 1) % 5];
- var Tx1Msw = Tx1.high;
- var Tx1Lsw = Tx1.low;
-
- // Mix surrounding columns
- var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
- var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
- for (var y = 0; y < 5; y++) {
- var lane = state[x + 5 * y];
- lane.high ^= tMsw;
- lane.low ^= tLsw;
- }
- }
-
- // Rho Pi
- for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
- // Shortcuts
- var lane = state[laneIndex];
- var laneMsw = lane.high;
- var laneLsw = lane.low;
- var rhoOffset = RHO_OFFSETS[laneIndex];
-
- // Rotate lanes
- if (rhoOffset < 32) {
- var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
- var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
- } else /* if (rhoOffset >= 32) */ {
- var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
- var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
- }
-
- // Transpose lanes
- var TPiLane = T[PI_INDEXES[laneIndex]];
- TPiLane.high = tMsw;
- TPiLane.low = tLsw;
- }
-
- // Rho pi at x = y = 0
- var T0 = T[0];
- var state0 = state[0];
- T0.high = state0.high;
- T0.low = state0.low;
-
- // Chi
- for (var x = 0; x < 5; x++) {
- for (var y = 0; y < 5; y++) {
- // Shortcuts
- var laneIndex = x + 5 * y;
- var lane = state[laneIndex];
- var TLane = T[laneIndex];
- var Tx1Lane = T[((x + 1) % 5) + 5 * y];
- var Tx2Lane = T[((x + 2) % 5) + 5 * y];
-
- // Mix rows
- lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
- lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
- }
- }
-
- // Iota
- var lane = state[0];
- var roundConstant = ROUND_CONSTANTS[round];
- lane.high ^= roundConstant.high;
- lane.low ^= roundConstant.low;;
- }
- },
-
- _doFinalize: function () {
- // Shortcuts
- var data = this._data;
- var dataWords = data.words;
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
- var blockSizeBits = this.blockSize * 32;
-
- // Add padding
- dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
- dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
- data.sigBytes = dataWords.length * 4;
-
- // Hash final blocks
- this._process();
-
- // Shortcuts
- var state = this._state;
- var outputLengthBytes = this.cfg.outputLength / 8;
- var outputLengthLanes = outputLengthBytes / 8;
-
- // Squeeze
- var hashWords = [];
- for (var i = 0; i < outputLengthLanes; i++) {
- // Shortcuts
- var lane = state[i];
- var laneMsw = lane.high;
- var laneLsw = lane.low;
-
- // Swap endian
- laneMsw = (
- (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
- (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)
- );
- laneLsw = (
- (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
- (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)
- );
-
- // Squeeze state to retrieve hash
- hashWords.push(laneLsw);
- hashWords.push(laneMsw);
- }
-
- // Return final computed hash
- return new WordArray.init(hashWords, outputLengthBytes);
- },
-
- clone: function () {
- var clone = Hasher.clone.call(this);
-
- var state = clone._state = this._state.slice(0);
- for (var i = 0; i < 25; i++) {
- state[i] = state[i].clone();
- }
-
- return clone;
- }
- });
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.SHA3('message');
- * var hash = CryptoJS.SHA3(wordArray);
- */
- C.SHA3 = Hasher._createHelper(SHA3);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacSHA3(message, key);
- */
- C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
- }(Math));
-
-
- return CryptoJS.SHA3;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha384.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha384.js
deleted file mode 100644
index a0b95bf..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha384.js
+++ /dev/null
@@ -1,83 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./x64-core", "./sha512"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_x64 = C.x64;
- var X64Word = C_x64.Word;
- var X64WordArray = C_x64.WordArray;
- var C_algo = C.algo;
- var SHA512 = C_algo.SHA512;
-
- /**
- * SHA-384 hash algorithm.
- */
- var SHA384 = C_algo.SHA384 = SHA512.extend({
- _doReset: function () {
- this._hash = new X64WordArray.init([
- new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
- new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
- new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
- new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
- ]);
- },
-
- _doFinalize: function () {
- var hash = SHA512._doFinalize.call(this);
-
- hash.sigBytes -= 16;
-
- return hash;
- }
- });
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.SHA384('message');
- * var hash = CryptoJS.SHA384(wordArray);
- */
- C.SHA384 = SHA512._createHelper(SHA384);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacSHA384(message, key);
- */
- C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
- }());
-
-
- return CryptoJS.SHA384;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha512.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha512.js
deleted file mode 100644
index 3359315..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/sha512.js
+++ /dev/null
@@ -1,323 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./x64-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./x64-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var Hasher = C_lib.Hasher;
- var C_x64 = C.x64;
- var X64Word = C_x64.Word;
- var X64WordArray = C_x64.WordArray;
- var C_algo = C.algo;
-
- function X64Word_create() {
- return X64Word.create.apply(X64Word, arguments);
- }
-
- // Constants
- var K = [
- X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),
- X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),
- X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),
- X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),
- X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),
- X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),
- X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),
- X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),
- X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),
- X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),
- X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),
- X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),
- X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),
- X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),
- X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),
- X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),
- X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),
- X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),
- X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),
- X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),
- X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),
- X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),
- X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),
- X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),
- X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),
- X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),
- X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),
- X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),
- X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),
- X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),
- X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),
- X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),
- X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),
- X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),
- X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),
- X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),
- X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),
- X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),
- X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),
- X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)
- ];
-
- // Reusable objects
- var W = [];
- (function () {
- for (var i = 0; i < 80; i++) {
- W[i] = X64Word_create();
- }
- }());
-
- /**
- * SHA-512 hash algorithm.
- */
- var SHA512 = C_algo.SHA512 = Hasher.extend({
- _doReset: function () {
- this._hash = new X64WordArray.init([
- new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),
- new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),
- new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),
- new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)
- ]);
- },
-
- _doProcessBlock: function (M, offset) {
- // Shortcuts
- var H = this._hash.words;
-
- var H0 = H[0];
- var H1 = H[1];
- var H2 = H[2];
- var H3 = H[3];
- var H4 = H[4];
- var H5 = H[5];
- var H6 = H[6];
- var H7 = H[7];
-
- var H0h = H0.high;
- var H0l = H0.low;
- var H1h = H1.high;
- var H1l = H1.low;
- var H2h = H2.high;
- var H2l = H2.low;
- var H3h = H3.high;
- var H3l = H3.low;
- var H4h = H4.high;
- var H4l = H4.low;
- var H5h = H5.high;
- var H5l = H5.low;
- var H6h = H6.high;
- var H6l = H6.low;
- var H7h = H7.high;
- var H7l = H7.low;
-
- // Working variables
- var ah = H0h;
- var al = H0l;
- var bh = H1h;
- var bl = H1l;
- var ch = H2h;
- var cl = H2l;
- var dh = H3h;
- var dl = H3l;
- var eh = H4h;
- var el = H4l;
- var fh = H5h;
- var fl = H5l;
- var gh = H6h;
- var gl = H6l;
- var hh = H7h;
- var hl = H7l;
-
- // Rounds
- for (var i = 0; i < 80; i++) {
- // Shortcut
- var Wi = W[i];
-
- // Extend message
- if (i < 16) {
- var Wih = Wi.high = M[offset + i * 2] | 0;
- var Wil = Wi.low = M[offset + i * 2 + 1] | 0;
- } else {
- // Gamma0
- var gamma0x = W[i - 15];
- var gamma0xh = gamma0x.high;
- var gamma0xl = gamma0x.low;
- var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);
- var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));
-
- // Gamma1
- var gamma1x = W[i - 2];
- var gamma1xh = gamma1x.high;
- var gamma1xl = gamma1x.low;
- var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);
- var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));
-
- // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
- var Wi7 = W[i - 7];
- var Wi7h = Wi7.high;
- var Wi7l = Wi7.low;
-
- var Wi16 = W[i - 16];
- var Wi16h = Wi16.high;
- var Wi16l = Wi16.low;
-
- var Wil = gamma0l + Wi7l;
- var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);
- var Wil = Wil + gamma1l;
- var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);
- var Wil = Wil + Wi16l;
- var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);
-
- Wi.high = Wih;
- Wi.low = Wil;
- }
-
- var chh = (eh & fh) ^ (~eh & gh);
- var chl = (el & fl) ^ (~el & gl);
- var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
- var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
-
- var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
- var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
- var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
- var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
-
- // t1 = h + sigma1 + ch + K[i] + W[i]
- var Ki = K[i];
- var Kih = Ki.high;
- var Kil = Ki.low;
-
- var t1l = hl + sigma1l;
- var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
- var t1l = t1l + chl;
- var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
- var t1l = t1l + Kil;
- var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);
- var t1l = t1l + Wil;
- var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);
-
- // t2 = sigma0 + maj
- var t2l = sigma0l + majl;
- var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
-
- // Update working variables
- hh = gh;
- hl = gl;
- gh = fh;
- gl = fl;
- fh = eh;
- fl = el;
- el = (dl + t1l) | 0;
- eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
- dh = ch;
- dl = cl;
- ch = bh;
- cl = bl;
- bh = ah;
- bl = al;
- al = (t1l + t2l) | 0;
- ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
- }
-
- // Intermediate hash value
- H0l = H0.low = (H0l + al);
- H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));
- H1l = H1.low = (H1l + bl);
- H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));
- H2l = H2.low = (H2l + cl);
- H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));
- H3l = H3.low = (H3l + dl);
- H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));
- H4l = H4.low = (H4l + el);
- H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));
- H5l = H5.low = (H5l + fl);
- H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));
- H6l = H6.low = (H6l + gl);
- H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));
- H7l = H7.low = (H7l + hl);
- H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));
- },
-
- _doFinalize: function () {
- // Shortcuts
- var data = this._data;
- var dataWords = data.words;
-
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
-
- // Add padding
- dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
- dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);
- dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
- data.sigBytes = dataWords.length * 4;
-
- // Hash final blocks
- this._process();
-
- // Convert hash to 32-bit word array before returning
- var hash = this._hash.toX32();
-
- // Return final computed hash
- return hash;
- },
-
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
-
- return clone;
- },
-
- blockSize: 1024/32
- });
-
- /**
- * Shortcut function to the hasher's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- *
- * @return {WordArray} The hash.
- *
- * @static
- *
- * @example
- *
- * var hash = CryptoJS.SHA512('message');
- * var hash = CryptoJS.SHA512(wordArray);
- */
- C.SHA512 = Hasher._createHelper(SHA512);
-
- /**
- * Shortcut function to the HMAC's object interface.
- *
- * @param {WordArray|string} message The message to hash.
- * @param {WordArray|string} key The secret key.
- *
- * @return {WordArray} The HMAC.
- *
- * @static
- *
- * @example
- *
- * var hmac = CryptoJS.HmacSHA512(message, key);
- */
- C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
- }());
-
-
- return CryptoJS.SHA512;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/tripledes.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/tripledes.js
deleted file mode 100644
index c7becf3..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/tripledes.js
+++ /dev/null
@@ -1,770 +0,0 @@
-;(function (root, factory, undef) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function () {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var BlockCipher = C_lib.BlockCipher;
- var C_algo = C.algo;
-
- // Permuted Choice 1 constants
- var PC1 = [
- 57, 49, 41, 33, 25, 17, 9, 1,
- 58, 50, 42, 34, 26, 18, 10, 2,
- 59, 51, 43, 35, 27, 19, 11, 3,
- 60, 52, 44, 36, 63, 55, 47, 39,
- 31, 23, 15, 7, 62, 54, 46, 38,
- 30, 22, 14, 6, 61, 53, 45, 37,
- 29, 21, 13, 5, 28, 20, 12, 4
- ];
-
- // Permuted Choice 2 constants
- var PC2 = [
- 14, 17, 11, 24, 1, 5,
- 3, 28, 15, 6, 21, 10,
- 23, 19, 12, 4, 26, 8,
- 16, 7, 27, 20, 13, 2,
- 41, 52, 31, 37, 47, 55,
- 30, 40, 51, 45, 33, 48,
- 44, 49, 39, 56, 34, 53,
- 46, 42, 50, 36, 29, 32
- ];
-
- // Cumulative bit shift constants
- var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
-
- // SBOXes and round permutation constants
- var SBOX_P = [
- {
- 0x0: 0x808200,
- 0x10000000: 0x8000,
- 0x20000000: 0x808002,
- 0x30000000: 0x2,
- 0x40000000: 0x200,
- 0x50000000: 0x808202,
- 0x60000000: 0x800202,
- 0x70000000: 0x800000,
- 0x80000000: 0x202,
- 0x90000000: 0x800200,
- 0xa0000000: 0x8200,
- 0xb0000000: 0x808000,
- 0xc0000000: 0x8002,
- 0xd0000000: 0x800002,
- 0xe0000000: 0x0,
- 0xf0000000: 0x8202,
- 0x8000000: 0x0,
- 0x18000000: 0x808202,
- 0x28000000: 0x8202,
- 0x38000000: 0x8000,
- 0x48000000: 0x808200,
- 0x58000000: 0x200,
- 0x68000000: 0x808002,
- 0x78000000: 0x2,
- 0x88000000: 0x800200,
- 0x98000000: 0x8200,
- 0xa8000000: 0x808000,
- 0xb8000000: 0x800202,
- 0xc8000000: 0x800002,
- 0xd8000000: 0x8002,
- 0xe8000000: 0x202,
- 0xf8000000: 0x800000,
- 0x1: 0x8000,
- 0x10000001: 0x2,
- 0x20000001: 0x808200,
- 0x30000001: 0x800000,
- 0x40000001: 0x808002,
- 0x50000001: 0x8200,
- 0x60000001: 0x200,
- 0x70000001: 0x800202,
- 0x80000001: 0x808202,
- 0x90000001: 0x808000,
- 0xa0000001: 0x800002,
- 0xb0000001: 0x8202,
- 0xc0000001: 0x202,
- 0xd0000001: 0x800200,
- 0xe0000001: 0x8002,
- 0xf0000001: 0x0,
- 0x8000001: 0x808202,
- 0x18000001: 0x808000,
- 0x28000001: 0x800000,
- 0x38000001: 0x200,
- 0x48000001: 0x8000,
- 0x58000001: 0x800002,
- 0x68000001: 0x2,
- 0x78000001: 0x8202,
- 0x88000001: 0x8002,
- 0x98000001: 0x800202,
- 0xa8000001: 0x202,
- 0xb8000001: 0x808200,
- 0xc8000001: 0x800200,
- 0xd8000001: 0x0,
- 0xe8000001: 0x8200,
- 0xf8000001: 0x808002
- },
- {
- 0x0: 0x40084010,
- 0x1000000: 0x4000,
- 0x2000000: 0x80000,
- 0x3000000: 0x40080010,
- 0x4000000: 0x40000010,
- 0x5000000: 0x40084000,
- 0x6000000: 0x40004000,
- 0x7000000: 0x10,
- 0x8000000: 0x84000,
- 0x9000000: 0x40004010,
- 0xa000000: 0x40000000,
- 0xb000000: 0x84010,
- 0xc000000: 0x80010,
- 0xd000000: 0x0,
- 0xe000000: 0x4010,
- 0xf000000: 0x40080000,
- 0x800000: 0x40004000,
- 0x1800000: 0x84010,
- 0x2800000: 0x10,
- 0x3800000: 0x40004010,
- 0x4800000: 0x40084010,
- 0x5800000: 0x40000000,
- 0x6800000: 0x80000,
- 0x7800000: 0x40080010,
- 0x8800000: 0x80010,
- 0x9800000: 0x0,
- 0xa800000: 0x4000,
- 0xb800000: 0x40080000,
- 0xc800000: 0x40000010,
- 0xd800000: 0x84000,
- 0xe800000: 0x40084000,
- 0xf800000: 0x4010,
- 0x10000000: 0x0,
- 0x11000000: 0x40080010,
- 0x12000000: 0x40004010,
- 0x13000000: 0x40084000,
- 0x14000000: 0x40080000,
- 0x15000000: 0x10,
- 0x16000000: 0x84010,
- 0x17000000: 0x4000,
- 0x18000000: 0x4010,
- 0x19000000: 0x80000,
- 0x1a000000: 0x80010,
- 0x1b000000: 0x40000010,
- 0x1c000000: 0x84000,
- 0x1d000000: 0x40004000,
- 0x1e000000: 0x40000000,
- 0x1f000000: 0x40084010,
- 0x10800000: 0x84010,
- 0x11800000: 0x80000,
- 0x12800000: 0x40080000,
- 0x13800000: 0x4000,
- 0x14800000: 0x40004000,
- 0x15800000: 0x40084010,
- 0x16800000: 0x10,
- 0x17800000: 0x40000000,
- 0x18800000: 0x40084000,
- 0x19800000: 0x40000010,
- 0x1a800000: 0x40004010,
- 0x1b800000: 0x80010,
- 0x1c800000: 0x0,
- 0x1d800000: 0x4010,
- 0x1e800000: 0x40080010,
- 0x1f800000: 0x84000
- },
- {
- 0x0: 0x104,
- 0x100000: 0x0,
- 0x200000: 0x4000100,
- 0x300000: 0x10104,
- 0x400000: 0x10004,
- 0x500000: 0x4000004,
- 0x600000: 0x4010104,
- 0x700000: 0x4010000,
- 0x800000: 0x4000000,
- 0x900000: 0x4010100,
- 0xa00000: 0x10100,
- 0xb00000: 0x4010004,
- 0xc00000: 0x4000104,
- 0xd00000: 0x10000,
- 0xe00000: 0x4,
- 0xf00000: 0x100,
- 0x80000: 0x4010100,
- 0x180000: 0x4010004,
- 0x280000: 0x0,
- 0x380000: 0x4000100,
- 0x480000: 0x4000004,
- 0x580000: 0x10000,
- 0x680000: 0x10004,
- 0x780000: 0x104,
- 0x880000: 0x4,
- 0x980000: 0x100,
- 0xa80000: 0x4010000,
- 0xb80000: 0x10104,
- 0xc80000: 0x10100,
- 0xd80000: 0x4000104,
- 0xe80000: 0x4010104,
- 0xf80000: 0x4000000,
- 0x1000000: 0x4010100,
- 0x1100000: 0x10004,
- 0x1200000: 0x10000,
- 0x1300000: 0x4000100,
- 0x1400000: 0x100,
- 0x1500000: 0x4010104,
- 0x1600000: 0x4000004,
- 0x1700000: 0x0,
- 0x1800000: 0x4000104,
- 0x1900000: 0x4000000,
- 0x1a00000: 0x4,
- 0x1b00000: 0x10100,
- 0x1c00000: 0x4010000,
- 0x1d00000: 0x104,
- 0x1e00000: 0x10104,
- 0x1f00000: 0x4010004,
- 0x1080000: 0x4000000,
- 0x1180000: 0x104,
- 0x1280000: 0x4010100,
- 0x1380000: 0x0,
- 0x1480000: 0x10004,
- 0x1580000: 0x4000100,
- 0x1680000: 0x100,
- 0x1780000: 0x4010004,
- 0x1880000: 0x10000,
- 0x1980000: 0x4010104,
- 0x1a80000: 0x10104,
- 0x1b80000: 0x4000004,
- 0x1c80000: 0x4000104,
- 0x1d80000: 0x4010000,
- 0x1e80000: 0x4,
- 0x1f80000: 0x10100
- },
- {
- 0x0: 0x80401000,
- 0x10000: 0x80001040,
- 0x20000: 0x401040,
- 0x30000: 0x80400000,
- 0x40000: 0x0,
- 0x50000: 0x401000,
- 0x60000: 0x80000040,
- 0x70000: 0x400040,
- 0x80000: 0x80000000,
- 0x90000: 0x400000,
- 0xa0000: 0x40,
- 0xb0000: 0x80001000,
- 0xc0000: 0x80400040,
- 0xd0000: 0x1040,
- 0xe0000: 0x1000,
- 0xf0000: 0x80401040,
- 0x8000: 0x80001040,
- 0x18000: 0x40,
- 0x28000: 0x80400040,
- 0x38000: 0x80001000,
- 0x48000: 0x401000,
- 0x58000: 0x80401040,
- 0x68000: 0x0,
- 0x78000: 0x80400000,
- 0x88000: 0x1000,
- 0x98000: 0x80401000,
- 0xa8000: 0x400000,
- 0xb8000: 0x1040,
- 0xc8000: 0x80000000,
- 0xd8000: 0x400040,
- 0xe8000: 0x401040,
- 0xf8000: 0x80000040,
- 0x100000: 0x400040,
- 0x110000: 0x401000,
- 0x120000: 0x80000040,
- 0x130000: 0x0,
- 0x140000: 0x1040,
- 0x150000: 0x80400040,
- 0x160000: 0x80401000,
- 0x170000: 0x80001040,
- 0x180000: 0x80401040,
- 0x190000: 0x80000000,
- 0x1a0000: 0x80400000,
- 0x1b0000: 0x401040,
- 0x1c0000: 0x80001000,
- 0x1d0000: 0x400000,
- 0x1e0000: 0x40,
- 0x1f0000: 0x1000,
- 0x108000: 0x80400000,
- 0x118000: 0x80401040,
- 0x128000: 0x0,
- 0x138000: 0x401000,
- 0x148000: 0x400040,
- 0x158000: 0x80000000,
- 0x168000: 0x80001040,
- 0x178000: 0x40,
- 0x188000: 0x80000040,
- 0x198000: 0x1000,
- 0x1a8000: 0x80001000,
- 0x1b8000: 0x80400040,
- 0x1c8000: 0x1040,
- 0x1d8000: 0x80401000,
- 0x1e8000: 0x400000,
- 0x1f8000: 0x401040
- },
- {
- 0x0: 0x80,
- 0x1000: 0x1040000,
- 0x2000: 0x40000,
- 0x3000: 0x20000000,
- 0x4000: 0x20040080,
- 0x5000: 0x1000080,
- 0x6000: 0x21000080,
- 0x7000: 0x40080,
- 0x8000: 0x1000000,
- 0x9000: 0x20040000,
- 0xa000: 0x20000080,
- 0xb000: 0x21040080,
- 0xc000: 0x21040000,
- 0xd000: 0x0,
- 0xe000: 0x1040080,
- 0xf000: 0x21000000,
- 0x800: 0x1040080,
- 0x1800: 0x21000080,
- 0x2800: 0x80,
- 0x3800: 0x1040000,
- 0x4800: 0x40000,
- 0x5800: 0x20040080,
- 0x6800: 0x21040000,
- 0x7800: 0x20000000,
- 0x8800: 0x20040000,
- 0x9800: 0x0,
- 0xa800: 0x21040080,
- 0xb800: 0x1000080,
- 0xc800: 0x20000080,
- 0xd800: 0x21000000,
- 0xe800: 0x1000000,
- 0xf800: 0x40080,
- 0x10000: 0x40000,
- 0x11000: 0x80,
- 0x12000: 0x20000000,
- 0x13000: 0x21000080,
- 0x14000: 0x1000080,
- 0x15000: 0x21040000,
- 0x16000: 0x20040080,
- 0x17000: 0x1000000,
- 0x18000: 0x21040080,
- 0x19000: 0x21000000,
- 0x1a000: 0x1040000,
- 0x1b000: 0x20040000,
- 0x1c000: 0x40080,
- 0x1d000: 0x20000080,
- 0x1e000: 0x0,
- 0x1f000: 0x1040080,
- 0x10800: 0x21000080,
- 0x11800: 0x1000000,
- 0x12800: 0x1040000,
- 0x13800: 0x20040080,
- 0x14800: 0x20000000,
- 0x15800: 0x1040080,
- 0x16800: 0x80,
- 0x17800: 0x21040000,
- 0x18800: 0x40080,
- 0x19800: 0x21040080,
- 0x1a800: 0x0,
- 0x1b800: 0x21000000,
- 0x1c800: 0x1000080,
- 0x1d800: 0x40000,
- 0x1e800: 0x20040000,
- 0x1f800: 0x20000080
- },
- {
- 0x0: 0x10000008,
- 0x100: 0x2000,
- 0x200: 0x10200000,
- 0x300: 0x10202008,
- 0x400: 0x10002000,
- 0x500: 0x200000,
- 0x600: 0x200008,
- 0x700: 0x10000000,
- 0x800: 0x0,
- 0x900: 0x10002008,
- 0xa00: 0x202000,
- 0xb00: 0x8,
- 0xc00: 0x10200008,
- 0xd00: 0x202008,
- 0xe00: 0x2008,
- 0xf00: 0x10202000,
- 0x80: 0x10200000,
- 0x180: 0x10202008,
- 0x280: 0x8,
- 0x380: 0x200000,
- 0x480: 0x202008,
- 0x580: 0x10000008,
- 0x680: 0x10002000,
- 0x780: 0x2008,
- 0x880: 0x200008,
- 0x980: 0x2000,
- 0xa80: 0x10002008,
- 0xb80: 0x10200008,
- 0xc80: 0x0,
- 0xd80: 0x10202000,
- 0xe80: 0x202000,
- 0xf80: 0x10000000,
- 0x1000: 0x10002000,
- 0x1100: 0x10200008,
- 0x1200: 0x10202008,
- 0x1300: 0x2008,
- 0x1400: 0x200000,
- 0x1500: 0x10000000,
- 0x1600: 0x10000008,
- 0x1700: 0x202000,
- 0x1800: 0x202008,
- 0x1900: 0x0,
- 0x1a00: 0x8,
- 0x1b00: 0x10200000,
- 0x1c00: 0x2000,
- 0x1d00: 0x10002008,
- 0x1e00: 0x10202000,
- 0x1f00: 0x200008,
- 0x1080: 0x8,
- 0x1180: 0x202000,
- 0x1280: 0x200000,
- 0x1380: 0x10000008,
- 0x1480: 0x10002000,
- 0x1580: 0x2008,
- 0x1680: 0x10202008,
- 0x1780: 0x10200000,
- 0x1880: 0x10202000,
- 0x1980: 0x10200008,
- 0x1a80: 0x2000,
- 0x1b80: 0x202008,
- 0x1c80: 0x200008,
- 0x1d80: 0x0,
- 0x1e80: 0x10000000,
- 0x1f80: 0x10002008
- },
- {
- 0x0: 0x100000,
- 0x10: 0x2000401,
- 0x20: 0x400,
- 0x30: 0x100401,
- 0x40: 0x2100401,
- 0x50: 0x0,
- 0x60: 0x1,
- 0x70: 0x2100001,
- 0x80: 0x2000400,
- 0x90: 0x100001,
- 0xa0: 0x2000001,
- 0xb0: 0x2100400,
- 0xc0: 0x2100000,
- 0xd0: 0x401,
- 0xe0: 0x100400,
- 0xf0: 0x2000000,
- 0x8: 0x2100001,
- 0x18: 0x0,
- 0x28: 0x2000401,
- 0x38: 0x2100400,
- 0x48: 0x100000,
- 0x58: 0x2000001,
- 0x68: 0x2000000,
- 0x78: 0x401,
- 0x88: 0x100401,
- 0x98: 0x2000400,
- 0xa8: 0x2100000,
- 0xb8: 0x100001,
- 0xc8: 0x400,
- 0xd8: 0x2100401,
- 0xe8: 0x1,
- 0xf8: 0x100400,
- 0x100: 0x2000000,
- 0x110: 0x100000,
- 0x120: 0x2000401,
- 0x130: 0x2100001,
- 0x140: 0x100001,
- 0x150: 0x2000400,
- 0x160: 0x2100400,
- 0x170: 0x100401,
- 0x180: 0x401,
- 0x190: 0x2100401,
- 0x1a0: 0x100400,
- 0x1b0: 0x1,
- 0x1c0: 0x0,
- 0x1d0: 0x2100000,
- 0x1e0: 0x2000001,
- 0x1f0: 0x400,
- 0x108: 0x100400,
- 0x118: 0x2000401,
- 0x128: 0x2100001,
- 0x138: 0x1,
- 0x148: 0x2000000,
- 0x158: 0x100000,
- 0x168: 0x401,
- 0x178: 0x2100400,
- 0x188: 0x2000001,
- 0x198: 0x2100000,
- 0x1a8: 0x0,
- 0x1b8: 0x2100401,
- 0x1c8: 0x100401,
- 0x1d8: 0x400,
- 0x1e8: 0x2000400,
- 0x1f8: 0x100001
- },
- {
- 0x0: 0x8000820,
- 0x1: 0x20000,
- 0x2: 0x8000000,
- 0x3: 0x20,
- 0x4: 0x20020,
- 0x5: 0x8020820,
- 0x6: 0x8020800,
- 0x7: 0x800,
- 0x8: 0x8020000,
- 0x9: 0x8000800,
- 0xa: 0x20800,
- 0xb: 0x8020020,
- 0xc: 0x820,
- 0xd: 0x0,
- 0xe: 0x8000020,
- 0xf: 0x20820,
- 0x80000000: 0x800,
- 0x80000001: 0x8020820,
- 0x80000002: 0x8000820,
- 0x80000003: 0x8000000,
- 0x80000004: 0x8020000,
- 0x80000005: 0x20800,
- 0x80000006: 0x20820,
- 0x80000007: 0x20,
- 0x80000008: 0x8000020,
- 0x80000009: 0x820,
- 0x8000000a: 0x20020,
- 0x8000000b: 0x8020800,
- 0x8000000c: 0x0,
- 0x8000000d: 0x8020020,
- 0x8000000e: 0x8000800,
- 0x8000000f: 0x20000,
- 0x10: 0x20820,
- 0x11: 0x8020800,
- 0x12: 0x20,
- 0x13: 0x800,
- 0x14: 0x8000800,
- 0x15: 0x8000020,
- 0x16: 0x8020020,
- 0x17: 0x20000,
- 0x18: 0x0,
- 0x19: 0x20020,
- 0x1a: 0x8020000,
- 0x1b: 0x8000820,
- 0x1c: 0x8020820,
- 0x1d: 0x20800,
- 0x1e: 0x820,
- 0x1f: 0x8000000,
- 0x80000010: 0x20000,
- 0x80000011: 0x800,
- 0x80000012: 0x8020020,
- 0x80000013: 0x20820,
- 0x80000014: 0x20,
- 0x80000015: 0x8020000,
- 0x80000016: 0x8000000,
- 0x80000017: 0x8000820,
- 0x80000018: 0x8020820,
- 0x80000019: 0x8000020,
- 0x8000001a: 0x8000800,
- 0x8000001b: 0x0,
- 0x8000001c: 0x20800,
- 0x8000001d: 0x820,
- 0x8000001e: 0x20020,
- 0x8000001f: 0x8020800
- }
- ];
-
- // Masks that select the SBOX input
- var SBOX_MASK = [
- 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,
- 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f
- ];
-
- /**
- * DES block cipher algorithm.
- */
- var DES = C_algo.DES = BlockCipher.extend({
- _doReset: function () {
- // Shortcuts
- var key = this._key;
- var keyWords = key.words;
-
- // Select 56 bits according to PC1
- var keyBits = [];
- for (var i = 0; i < 56; i++) {
- var keyBitPos = PC1[i] - 1;
- keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;
- }
-
- // Assemble 16 subkeys
- var subKeys = this._subKeys = [];
- for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
- // Create subkey
- var subKey = subKeys[nSubKey] = [];
-
- // Shortcut
- var bitShift = BIT_SHIFTS[nSubKey];
-
- // Select 48 bits according to PC2
- for (var i = 0; i < 24; i++) {
- // Select from the left 28 key bits
- subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);
-
- // Select from the right 28 key bits
- subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);
- }
-
- // Since each subkey is applied to an expanded 32-bit input,
- // the subkey can be broken into 8 values scaled to 32-bits,
- // which allows the key to be used without expansion
- subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
- for (var i = 1; i < 7; i++) {
- subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
- }
- subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
- }
-
- // Compute inverse subkeys
- var invSubKeys = this._invSubKeys = [];
- for (var i = 0; i < 16; i++) {
- invSubKeys[i] = subKeys[15 - i];
- }
- },
-
- encryptBlock: function (M, offset) {
- this._doCryptBlock(M, offset, this._subKeys);
- },
-
- decryptBlock: function (M, offset) {
- this._doCryptBlock(M, offset, this._invSubKeys);
- },
-
- _doCryptBlock: function (M, offset, subKeys) {
- // Get input
- this._lBlock = M[offset];
- this._rBlock = M[offset + 1];
-
- // Initial permutation
- exchangeLR.call(this, 4, 0x0f0f0f0f);
- exchangeLR.call(this, 16, 0x0000ffff);
- exchangeRL.call(this, 2, 0x33333333);
- exchangeRL.call(this, 8, 0x00ff00ff);
- exchangeLR.call(this, 1, 0x55555555);
-
- // Rounds
- for (var round = 0; round < 16; round++) {
- // Shortcuts
- var subKey = subKeys[round];
- var lBlock = this._lBlock;
- var rBlock = this._rBlock;
-
- // Feistel function
- var f = 0;
- for (var i = 0; i < 8; i++) {
- f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
- }
- this._lBlock = rBlock;
- this._rBlock = lBlock ^ f;
- }
-
- // Undo swap from last round
- var t = this._lBlock;
- this._lBlock = this._rBlock;
- this._rBlock = t;
-
- // Final permutation
- exchangeLR.call(this, 1, 0x55555555);
- exchangeRL.call(this, 8, 0x00ff00ff);
- exchangeRL.call(this, 2, 0x33333333);
- exchangeLR.call(this, 16, 0x0000ffff);
- exchangeLR.call(this, 4, 0x0f0f0f0f);
-
- // Set output
- M[offset] = this._lBlock;
- M[offset + 1] = this._rBlock;
- },
-
- keySize: 64/32,
-
- ivSize: 64/32,
-
- blockSize: 64/32
- });
-
- // Swap bits across the left and right words
- function exchangeLR(offset, mask) {
- var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
- this._rBlock ^= t;
- this._lBlock ^= t << offset;
- }
-
- function exchangeRL(offset, mask) {
- var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
- this._lBlock ^= t;
- this._rBlock ^= t << offset;
- }
-
- /**
- * Shortcut functions to the cipher's object interface.
- *
- * @example
- *
- * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
- * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);
- */
- C.DES = BlockCipher._createHelper(DES);
-
- /**
- * Triple-DES block cipher algorithm.
- */
- var TripleDES = C_algo.TripleDES = BlockCipher.extend({
- _doReset: function () {
- // Shortcuts
- var key = this._key;
- var keyWords = key.words;
-
- // Create DES instances
- this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2)));
- this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4)));
- this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6)));
- },
-
- encryptBlock: function (M, offset) {
- this._des1.encryptBlock(M, offset);
- this._des2.decryptBlock(M, offset);
- this._des3.encryptBlock(M, offset);
- },
-
- decryptBlock: function (M, offset) {
- this._des3.decryptBlock(M, offset);
- this._des2.encryptBlock(M, offset);
- this._des1.decryptBlock(M, offset);
- },
-
- keySize: 192/32,
-
- ivSize: 64/32,
-
- blockSize: 64/32
- });
-
- /**
- * Shortcut functions to the cipher's object interface.
- *
- * @example
- *
- * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
- * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
- */
- C.TripleDES = BlockCipher._createHelper(TripleDES);
- }());
-
-
- return CryptoJS.TripleDES;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/x64-core.js b/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/x64-core.js
deleted file mode 100644
index 57dcc14..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/crypto-js/x64-core.js
+++ /dev/null
@@ -1,304 +0,0 @@
-;(function (root, factory) {
- if (typeof exports === "object") {
- // CommonJS
- module.exports = exports = factory(require("./core"));
- }
- else if (typeof define === "function" && define.amd) {
- // AMD
- define(["./core"], factory);
- }
- else {
- // Global (browser)
- factory(root.CryptoJS);
- }
-}(this, function (CryptoJS) {
-
- (function (undefined) {
- // Shortcuts
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var X32WordArray = C_lib.WordArray;
-
- /**
- * x64 namespace.
- */
- var C_x64 = C.x64 = {};
-
- /**
- * A 64-bit word.
- */
- var X64Word = C_x64.Word = Base.extend({
- /**
- * Initializes a newly created 64-bit word.
- *
- * @param {number} high The high 32 bits.
- * @param {number} low The low 32 bits.
- *
- * @example
- *
- * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
- */
- init: function (high, low) {
- this.high = high;
- this.low = low;
- }
-
- /**
- * Bitwise NOTs this word.
- *
- * @return {X64Word} A new x64-Word object after negating.
- *
- * @example
- *
- * var negated = x64Word.not();
- */
- // not: function () {
- // var high = ~this.high;
- // var low = ~this.low;
-
- // return X64Word.create(high, low);
- // },
-
- /**
- * Bitwise ANDs this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to AND with this word.
- *
- * @return {X64Word} A new x64-Word object after ANDing.
- *
- * @example
- *
- * var anded = x64Word.and(anotherX64Word);
- */
- // and: function (word) {
- // var high = this.high & word.high;
- // var low = this.low & word.low;
-
- // return X64Word.create(high, low);
- // },
-
- /**
- * Bitwise ORs this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to OR with this word.
- *
- * @return {X64Word} A new x64-Word object after ORing.
- *
- * @example
- *
- * var ored = x64Word.or(anotherX64Word);
- */
- // or: function (word) {
- // var high = this.high | word.high;
- // var low = this.low | word.low;
-
- // return X64Word.create(high, low);
- // },
-
- /**
- * Bitwise XORs this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to XOR with this word.
- *
- * @return {X64Word} A new x64-Word object after XORing.
- *
- * @example
- *
- * var xored = x64Word.xor(anotherX64Word);
- */
- // xor: function (word) {
- // var high = this.high ^ word.high;
- // var low = this.low ^ word.low;
-
- // return X64Word.create(high, low);
- // },
-
- /**
- * Shifts this word n bits to the left.
- *
- * @param {number} n The number of bits to shift.
- *
- * @return {X64Word} A new x64-Word object after shifting.
- *
- * @example
- *
- * var shifted = x64Word.shiftL(25);
- */
- // shiftL: function (n) {
- // if (n < 32) {
- // var high = (this.high << n) | (this.low >>> (32 - n));
- // var low = this.low << n;
- // } else {
- // var high = this.low << (n - 32);
- // var low = 0;
- // }
-
- // return X64Word.create(high, low);
- // },
-
- /**
- * Shifts this word n bits to the right.
- *
- * @param {number} n The number of bits to shift.
- *
- * @return {X64Word} A new x64-Word object after shifting.
- *
- * @example
- *
- * var shifted = x64Word.shiftR(7);
- */
- // shiftR: function (n) {
- // if (n < 32) {
- // var low = (this.low >>> n) | (this.high << (32 - n));
- // var high = this.high >>> n;
- // } else {
- // var low = this.high >>> (n - 32);
- // var high = 0;
- // }
-
- // return X64Word.create(high, low);
- // },
-
- /**
- * Rotates this word n bits to the left.
- *
- * @param {number} n The number of bits to rotate.
- *
- * @return {X64Word} A new x64-Word object after rotating.
- *
- * @example
- *
- * var rotated = x64Word.rotL(25);
- */
- // rotL: function (n) {
- // return this.shiftL(n).or(this.shiftR(64 - n));
- // },
-
- /**
- * Rotates this word n bits to the right.
- *
- * @param {number} n The number of bits to rotate.
- *
- * @return {X64Word} A new x64-Word object after rotating.
- *
- * @example
- *
- * var rotated = x64Word.rotR(7);
- */
- // rotR: function (n) {
- // return this.shiftR(n).or(this.shiftL(64 - n));
- // },
-
- /**
- * Adds this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to add with this word.
- *
- * @return {X64Word} A new x64-Word object after adding.
- *
- * @example
- *
- * var added = x64Word.add(anotherX64Word);
- */
- // add: function (word) {
- // var low = (this.low + word.low) | 0;
- // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
- // var high = (this.high + word.high + carry) | 0;
-
- // return X64Word.create(high, low);
- // }
- });
-
- /**
- * An array of 64-bit words.
- *
- * @property {Array} words The array of CryptoJS.x64.Word objects.
- * @property {number} sigBytes The number of significant bytes in this word array.
- */
- var X64WordArray = C_x64.WordArray = Base.extend({
- /**
- * Initializes a newly created word array.
- *
- * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
- * @param {number} sigBytes (Optional) The number of significant bytes in the words.
- *
- * @example
- *
- * var wordArray = CryptoJS.x64.WordArray.create();
- *
- * var wordArray = CryptoJS.x64.WordArray.create([
- * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
- * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
- * ]);
- *
- * var wordArray = CryptoJS.x64.WordArray.create([
- * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
- * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
- * ], 10);
- */
- init: function (words, sigBytes) {
- words = this.words = words || [];
-
- if (sigBytes != undefined) {
- this.sigBytes = sigBytes;
- } else {
- this.sigBytes = words.length * 8;
- }
- },
-
- /**
- * Converts this 64-bit word array to a 32-bit word array.
- *
- * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
- *
- * @example
- *
- * var x32WordArray = x64WordArray.toX32();
- */
- toX32: function () {
- // Shortcuts
- var x64Words = this.words;
- var x64WordsLength = x64Words.length;
-
- // Convert
- var x32Words = [];
- for (var i = 0; i < x64WordsLength; i++) {
- var x64Word = x64Words[i];
- x32Words.push(x64Word.high);
- x32Words.push(x64Word.low);
- }
-
- return X32WordArray.create(x32Words, this.sigBytes);
- },
-
- /**
- * Creates a copy of this word array.
- *
- * @return {X64WordArray} The clone.
- *
- * @example
- *
- * var clone = x64WordArray.clone();
- */
- clone: function () {
- var clone = Base.clone.call(this);
-
- // Clone "words" array
- var words = clone.words = this.words.slice(0);
-
- // Clone each X64Word object
- var wordsLength = words.length;
- for (var i = 0; i < wordsLength; i++) {
- words[i] = words[i].clone();
- }
-
- return clone;
- }
- });
- }());
-
-
- return CryptoJS;
-
-}));
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/LICENSE.txt b/s4t-server-node/node_modules/autobahn/node_modules/when/LICENSE.txt
deleted file mode 100644
index 09a1063..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/LICENSE.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Open Source Initiative OSI - The MIT License
-
-http://www.opensource.org/licenses/mit-license.php
-
-Copyright (c) 2011 Brian Cavalier
-
-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.
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/README.md b/s4t-server-node/node_modules/autobahn/node_modules/when/README.md
deleted file mode 100644
index 6183602..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/README.md
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-[![Build Status](https://travis-ci.org/cujojs/when.svg?branch=master)](https://travis-ci.org/cujojs/when)
-
-when.js
-=======
-
-When.js is a rock solid, battle-tested [Promises/A+](http://promises-aplus.github.com/promises-spec) and `when()` implementation, including a complete [ES6 Promise shim](docs/es6-promise-shim.md). It's a powerful combination of small size, high performance, debuggability, and rich features:
-
-* Resolve arrays and hashes of promises, as well as infinite promise sequences
-* Execute tasks in parallel or sequentially
-* Transform Node-style and other callback-based APIs into promise-based APIs
-
-When.js is one of the many stand-alone components of [cujoJS](http://cujojs.com), the JavaScript Architectural Toolkit.
-
-Check it out:
-
-- [What's new](CHANGES.md)
-- [API docs](docs/api.md#api)
-- Read more about how [promises simplify async programming](http://know.cujojs.com/tutorials/async/simplifying-async-with-promises)
-
-Installation
-------------
-
-#### AMD
-
-Availble as `when` through [bower](http://bower.io), or just clone the repo and load `when.js` from the root.
-
-```
-bower install --save when
-```
-
-#### CommonJS/Node
-
-```
-npm install --save when
-```
-
-[More help & other environments »](docs/installation.md)
-
-Usage
------
-
-Promises can be used to help manage complex and/or nested callback flows in a simple manner. To get a better handle on how promise flows look and how they can be helpful, there are a couple examples below (using commonjs).
-
-This first example will print `"hello world!!!!"` if all went well, or `"drat!"` if there was a problem. It also uses [rest](https://github.com/cujojs/rest) to make an ajax request to a (fictional) external service.
-
-```js
-var rest = require('rest');
-
-fetchRemoteGreeting()
- .then(addExclamation)
- .catch(handleError)
- .done(function(greeting) {
- console.log(greeting);
- });
-
-function fetchRemoteGreeting() {
- // returns a when.js promise for 'hello world'
- return rest('http://example.com/greeting');
-}
-
-function addExclamation(greeting) {
- return greeting + '!!!!'
-}
-
-function handleError(e) {
- return 'drat!';
-}
-```
-
-The second example shows off the power that comes with when's promise logic. Here, we get an array of numbers from a remote source and reduce them. The example will print `150` if all went well, and if there was a problem will print a full stack trace.
-
-```js
-var when = require('when');
-var rest = require('rest');
-
-when.reduce(when.map(getRemoteNumberList(), times10), sum)
- .done(function(result) {
- console.log(result);
- });
-
-function getRemoteNumberList() {
- // Get a remote array [1, 2, 3, 4, 5]
- return rest('http://example.com/numbers').then(JSON.parse);
-}
-
-function sum(x, y) { return x + y; }
-function times10(x) {return x * 10; }
-```
-
-License
--------
-
-Licensed under MIT. [Full license here »](LICENSE.txt)
-
-Contributing
-------------
-
-Please see the [contributing guide](CONTRIBUTING.md) for more information on running tests, opening issues, and contributing code to the project.
-
-References
-----------
-
-Much of this code was inspired by the async innards of [wire.js](https://github.com/cujojs/wire), and has been influenced by the great work in [Q](https://github.com/kriskowal/q), [Dojo's Deferred](https://github.com/dojo/dojo), and [uber.js](https://github.com/phiggins42/uber.js).
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/callbacks.js b/s4t-server-node/node_modules/autobahn/node_modules/when/callbacks.js
deleted file mode 100644
index 00e414b..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/callbacks.js
+++ /dev/null
@@ -1,262 +0,0 @@
-/** @license MIT License (c) copyright 2013-2014 original author or authors */
-
-/**
- * Collection of helper functions for interacting with 'traditional',
- * callback-taking functions using a promise interface.
- *
- * @author Renato Zannon
- * @contributor Brian Cavalier
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var _liftAll = require('./lib/liftAll');
- var slice = Array.prototype.slice;
-
- var makeApply = require('./lib/apply');
- var _apply = makeApply(Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- promisify: promisify
- };
-
- /**
- * Takes a `traditional` callback-taking function and returns a promise for its
- * result, accepting an optional array of arguments (that might be values or
- * promises). It assumes that the function takes its callback and errback as
- * the last two arguments. The resolution of the promise depends on whether the
- * function will call its callback or its errback.
- *
- * @example
- * var domIsLoaded = callbacks.apply($);
- * domIsLoaded.then(function() {
- * doMyDomStuff();
- * });
- *
- * @example
- * function existingAjaxyFunction(url, callback, errback) {
- * // Complex logic you'd rather not change
- * }
- *
- * var promise = callbacks.apply(existingAjaxyFunction, ["/movies.json"]);
- *
- * promise.then(function(movies) {
- * // Work with movies
- * }, function(reason) {
- * // Handle error
- * });
- *
- * @param {function} asyncFunction function to be called
- * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function apply(asyncFunction, extraAsyncArgs) {
- return _apply(asyncFunction, this, extraAsyncArgs || []);
- }
-
- /**
- * Apply helper that allows specifying thisArg
- * @private
- */
- function dispatch(f, thisArg, args, h) {
- args.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));
- tryCatchResolve(f, thisArg, args, h);
- }
-
- function tryCatchResolve(f, thisArg, args, resolver) {
- try {
- f.apply(thisArg, args);
- } catch(e) {
- resolver.reject(e);
- }
- }
-
- /**
- * Works as `callbacks.apply` does, with the difference that the arguments to
- * the function are passed individually, instead of as an array.
- *
- * @example
- * function sumInFiveSeconds(a, b, callback) {
- * setTimeout(function() {
- * callback(a + b);
- * }, 5000);
- * }
- *
- * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);
- *
- * // Logs '15' 5 seconds later
- * sumPromise.then(console.log);
- *
- * @param {function} asyncFunction function to be called
- * @param {...*} args arguments that will be forwarded to the function
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function call(asyncFunction/*, arg1, arg2...*/) {
- return _apply(asyncFunction, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a 'traditional' callback/errback-taking function and returns a function
- * that returns a promise instead. The resolution/rejection of the promise
- * depends on whether the original function will call its callback or its
- * errback.
- *
- * If additional arguments are passed to the `lift` call, they will be prepended
- * on the calls to the original function, much like `Function.prototype.bind`.
- *
- * The resulting function is also "promise-aware", in the sense that, if given
- * promises as arguments, it will wait for their resolution before executing.
- *
- * @example
- * function traditionalAjax(method, url, callback, errback) {
- * var xhr = new XMLHttpRequest();
- * xhr.open(method, url);
- *
- * xhr.onload = callback;
- * xhr.onerror = errback;
- *
- * xhr.send();
- * }
- *
- * var promiseAjax = callbacks.lift(traditionalAjax);
- * promiseAjax("GET", "/movies.json").then(console.log, console.error);
- *
- * var promiseAjaxGet = callbacks.lift(traditionalAjax, "GET");
- * promiseAjaxGet("/movies.json").then(console.log, console.error);
- *
- * @param {Function} f traditional async function to be decorated
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f/*, args...*/) {
- var args = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * `promisify` is a version of `lift` that allows fine-grained control over the
- * arguments that passed to the underlying function. It is intended to handle
- * functions that don't follow the common callback and errback positions.
- *
- * The control is done by passing an object whose 'callback' and/or 'errback'
- * keys, whose values are the corresponding 0-based indexes of the arguments on
- * the function. Negative values are interpreted as being relative to the end
- * of the arguments array.
- *
- * If arguments are given on the call to the 'promisified' function, they are
- * intermingled with the callback and errback. If a promise is given among them,
- * the execution of the function will only occur after its resolution.
- *
- * @example
- * var delay = callbacks.promisify(setTimeout, {
- * callback: 0
- * });
- *
- * delay(100).then(function() {
- * console.log("This happens 100ms afterwards");
- * });
- *
- * @example
- * function callbackAsLast(errback, followsStandards, callback) {
- * if(followsStandards) {
- * callback("well done!");
- * } else {
- * errback("some programmers just want to watch the world burn");
- * }
- * }
- *
- * var promisified = callbacks.promisify(callbackAsLast, {
- * callback: -1,
- * errback: 0,
- * });
- *
- * promisified(true).then(console.log, console.error);
- * promisified(false).then(console.log, console.error);
- *
- * @param {Function} asyncFunction traditional function to be decorated
- * @param {object} positions
- * @param {number} [positions.callback] index at which asyncFunction expects to
- * receive a success callback
- * @param {number} [positions.errback] index at which asyncFunction expects to
- * receive an error callback
- * @returns {function} promisified function that accepts
- *
- * @deprecated
- */
- function promisify(asyncFunction, positions) {
-
- return function() {
- var thisArg = this;
- return Promise.all(arguments).then(function(args) {
- var p = Promise._defer();
-
- var callbackPos, errbackPos;
-
- if(typeof positions.callback === 'number') {
- callbackPos = normalizePosition(args, positions.callback);
- }
-
- if(typeof positions.errback === 'number') {
- errbackPos = normalizePosition(args, positions.errback);
- }
-
- if(errbackPos < callbackPos) {
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- } else {
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- }
-
- asyncFunction.apply(thisArg, args);
-
- return p;
- });
- };
- }
-
- function normalizePosition(args, pos) {
- return pos < 0 ? (args.length + pos + 2) : pos;
- }
-
- function insertCallback(args, pos, callback, thisArg) {
- if(typeof pos === 'number') {
- args.splice(pos, 0, alwaysUnary(callback, thisArg));
- }
- }
-
- function alwaysUnary(fn, thisArg) {
- return function() {
- if (arguments.length > 1) {
- fn.call(thisArg, slice.call(arguments));
- } else {
- fn.apply(thisArg, arguments);
- }
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/cancelable.js b/s4t-server-node/node_modules/autobahn/node_modules/when/cancelable.js
deleted file mode 100644
index 7a4d08f..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/cancelable.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-/**
- * cancelable.js
- * @deprecated
- *
- * Decorator that makes a deferred "cancelable". It adds a cancel() method that
- * will call a special cancel handler function and then reject the deferred. The
- * cancel handler can be used to do resource cleanup, or anything else that should
- * be done before any other rejection handlers are executed.
- *
- * Usage:
- *
- * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);
- *
- * @author brian@hovercraftstudios.com
- */
-
-(function(define) {
-define(function() {
-
- /**
- * Makes deferred cancelable, adding a cancel() method.
- * @deprecated
- *
- * @param deferred {Deferred} the {@link Deferred} to make cancelable
- * @param canceler {Function} cancel handler function to execute when this deferred
- * is canceled. This is guaranteed to run before all other rejection handlers.
- * The canceler will NOT be executed if the deferred is rejected in the standard
- * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,
- * i.e. deferred.cancel()
- *
- * @returns deferred, with an added cancel() method.
- */
- return function(deferred, canceler) {
- // Add a cancel method to the deferred to reject the delegate
- // with the special canceled indicator.
- deferred.cancel = function() {
- try {
- deferred.reject(canceler(deferred));
- } catch(e) {
- deferred.reject(e);
- }
-
- return deferred.promise;
- };
-
- return deferred;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/delay.js b/s4t-server-node/node_modules/autobahn/node_modules/when/delay.js
deleted file mode 100644
index 20d77bf..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/delay.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * delay.js
- *
- * Helper that returns a promise that resolves after a delay.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(value).delay(ms)
- */
- return function delay(msec, value) {
- return when(value).delay(msec);
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/es6-shim/Promise.browserify-es6.js b/s4t-server-node/node_modules/autobahn/node_modules/when/es6-shim/Promise.browserify-es6.js
deleted file mode 100644
index 751208f..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/es6-shim/Promise.browserify-es6.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/**
- * ES6 global Promise shim
- */
-var unhandledRejections = require('../lib/decorators/unhandledRejection');
-var PromiseConstructor = unhandledRejections(require('../lib/Promise'));
-
-module.exports = typeof global != 'undefined' ? (global.Promise = PromiseConstructor)
- : typeof self != 'undefined' ? (self.Promise = PromiseConstructor)
- : PromiseConstructor;
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/es6-shim/Promise.js b/s4t-server-node/node_modules/autobahn/node_modules/when/es6-shim/Promise.js
deleted file mode 100644
index 0c33e81..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/es6-shim/Promise.js
+++ /dev/null
@@ -1,1225 +0,0 @@
-!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.Promise=e():"undefined"!=typeof global?global.Promise=e():"undefined"!=typeof self&&(self.Promise=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) {
- reported.splice(i, 1);
- logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));
- }
- }
-
- function enqueue(f, x) {
- tasks.push(f, x);
- if(running === null) {
- running = setTimer(flush, 0);
- }
- }
-
- function flush() {
- running = null;
- while(tasks.length > 0) {
- tasks.shift()(tasks.shift());
- }
- }
-
- return Promise;
- };
-
- function throwit(e) {
- throw e;
- }
-
- function noop() {}
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../env":5,"../format":6}],5:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
-(function(define) { 'use strict';
-define(function(require) {
- /*jshint maxcomplexity:6*/
-
- // Sniff "best" async scheduling option
- // Prefer process.nextTick or MutationObserver, then check for
- // setTimeout, and finally vertx, since its the only env that doesn't
- // have setTimeout
-
- var MutationObs;
- var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
-
- // Default env
- var setTimer = function(f, ms) { return setTimeout(f, ms); };
- var clearTimer = function(t) { return clearTimeout(t); };
- var asap = function (f) { return capturedSetTimeout(f, 0); };
-
- // Detect specific env
- if (isNode()) { // Node
- asap = function (f) { return process.nextTick(f); };
-
- } else if (MutationObs = hasMutationObserver()) { // Modern browser
- asap = initMutationObserver(MutationObs);
-
- } else if (!capturedSetTimeout) { // vert.x
- var vertxRequire = require;
- var vertx = vertxRequire('vertx');
- setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
- clearTimer = vertx.cancelTimer;
- asap = vertx.runOnLoop || vertx.runOnContext;
- }
-
- return {
- setTimer: setTimer,
- clearTimer: clearTimer,
- asap: asap
- };
-
- function isNode () {
- return typeof process !== 'undefined' && process !== null &&
- typeof process.nextTick === 'function';
- }
-
- function hasMutationObserver () {
- return (typeof MutationObserver === 'function' && MutationObserver) ||
- (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver);
- }
-
- function initMutationObserver(MutationObserver) {
- var scheduled;
- var node = document.createTextNode('');
- var o = new MutationObserver(run);
- o.observe(node, { characterData: true });
-
- function run() {
- var f = scheduled;
- scheduled = void 0;
- f();
- }
-
- var i = 0;
- return function (f) {
- scheduled = f;
- node.data = (i ^= 1);
- };
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{}],6:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- formatError: formatError,
- formatObject: formatObject,
- tryStringify: tryStringify
- };
-
- /**
- * Format an error into a string. If e is an Error and has a stack property,
- * it's returned. Otherwise, e is formatted using formatObject, with a
- * warning added about e not being a proper Error.
- * @param {*} e
- * @returns {String} formatted string, suitable for output to developers
- */
- function formatError(e) {
- var s = typeof e === 'object' && e !== null && e.stack ? e.stack : formatObject(e);
- return e instanceof Error ? s : s + ' (WARNING: non-Error used)';
- }
-
- /**
- * Format an object, detecting "plain" objects and running them through
- * JSON.stringify if possible.
- * @param {Object} o
- * @returns {string}
- */
- function formatObject(o) {
- var s = String(o);
- if(s === '[object Object]' && typeof JSON !== 'undefined') {
- s = tryStringify(o, s);
- }
- return s;
- }
-
- /**
- * Try to return the result of JSON.stringify(x). If that fails, return
- * defaultValue
- * @param {*} x
- * @param {*} defaultValue
- * @returns {String|*} JSON.stringify(x) or defaultValue
- */
- function tryStringify(x, defaultValue) {
- try {
- return JSON.stringify(x);
- } catch(e) {
- return defaultValue;
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],7:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function makePromise(environment) {
-
- var tasks = environment.scheduler;
-
- var objectCreate = Object.create ||
- function(proto) {
- function Child() {}
- Child.prototype = proto;
- return new Child();
- };
-
- /**
- * Create a promise whose fate is determined by resolver
- * @constructor
- * @returns {Promise} promise
- * @name Promise
- */
- function Promise(resolver, handler) {
- this._handler = resolver === Handler ? handler : init(resolver);
- }
-
- /**
- * Run the supplied resolver
- * @param resolver
- * @returns {Pending}
- */
- function init(resolver) {
- var handler = new Pending();
-
- try {
- resolver(promiseResolve, promiseReject, promiseNotify);
- } catch (e) {
- promiseReject(e);
- }
-
- return handler;
-
- /**
- * Transition from pre-resolution state to post-resolution state, notifying
- * all listeners of the ultimate fulfillment or rejection
- * @param {*} x resolution value
- */
- function promiseResolve (x) {
- handler.resolve(x);
- }
- /**
- * Reject this promise with reason, which will be used verbatim
- * @param {Error|*} reason rejection reason, strongly suggested
- * to be an Error type
- */
- function promiseReject (reason) {
- handler.reject(reason);
- }
-
- /**
- * @deprecated
- * Issue a progress event, notifying all progress listeners
- * @param {*} x progress event payload to pass to all listeners
- */
- function promiseNotify (x) {
- handler.notify(x);
- }
- }
-
- // Creation
-
- Promise.resolve = resolve;
- Promise.reject = reject;
- Promise.never = never;
-
- Promise._defer = defer;
- Promise._handler = getHandler;
-
- /**
- * Returns a trusted promise. If x is already a trusted promise, it is
- * returned, otherwise returns a new trusted Promise which follows x.
- * @param {*} x
- * @return {Promise} promise
- */
- function resolve(x) {
- return isPromise(x) ? x
- : new Promise(Handler, new Async(getHandler(x)));
- }
-
- /**
- * Return a reject promise with x as its reason (x is used verbatim)
- * @param {*} x
- * @returns {Promise} rejected promise
- */
- function reject(x) {
- return new Promise(Handler, new Async(new Rejected(x)));
- }
-
- /**
- * Return a promise that remains pending forever
- * @returns {Promise} forever-pending promise.
- */
- function never() {
- return foreverPendingPromise; // Should be frozen
- }
-
- /**
- * Creates an internal {promise, resolver} pair
- * @private
- * @returns {Promise}
- */
- function defer() {
- return new Promise(Handler, new Pending());
- }
-
- // Transformation and flow control
-
- /**
- * Transform this promise's fulfillment value, returning a new Promise
- * for the transformed result. If the promise cannot be fulfilled, onRejected
- * is called with the reason. onProgress *may* be called with updates toward
- * this promise's fulfillment.
- * @param {function=} onFulfilled fulfillment handler
- * @param {function=} onRejected rejection handler
- * @param {function=} onProgress @deprecated progress handler
- * @return {Promise} new promise
- */
- Promise.prototype.then = function(onFulfilled, onRejected, onProgress) {
- var parent = this._handler;
- var state = parent.join().state();
-
- if ((typeof onFulfilled !== 'function' && state > 0) ||
- (typeof onRejected !== 'function' && state < 0)) {
- // Short circuit: value will not change, simply share handler
- return new this.constructor(Handler, parent);
- }
-
- var p = this._beget();
- var child = p._handler;
-
- parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);
-
- return p;
- };
-
- /**
- * If this promise cannot be fulfilled due to an error, call onRejected to
- * handle the error. Shortcut for .then(undefined, onRejected)
- * @param {function?} onRejected
- * @return {Promise}
- */
- Promise.prototype['catch'] = function(onRejected) {
- return this.then(void 0, onRejected);
- };
-
- /**
- * Creates a new, pending promise of the same type as this promise
- * @private
- * @returns {Promise}
- */
- Promise.prototype._beget = function() {
- return begetFrom(this._handler, this.constructor);
- };
-
- function begetFrom(parent, Promise) {
- var child = new Pending(parent.receiver, parent.join().context);
- return new Promise(Handler, child);
- }
-
- // Array combinators
-
- Promise.all = all;
- Promise.race = race;
- Promise._traverse = traverse;
-
- /**
- * Return a promise that will fulfill when all promises in the
- * input array have fulfilled, or will reject when one of the
- * promises rejects.
- * @param {array} promises array of promises
- * @returns {Promise} promise for array of fulfillment values
- */
- function all(promises) {
- return traverseWith(snd, null, promises);
- }
-
- /**
- * Array> -> Promise>
- * @private
- * @param {function} f function to apply to each promise's value
- * @param {Array} promises array of promises
- * @returns {Promise} promise for transformed values
- */
- function traverse(f, promises) {
- return traverseWith(tryCatch2, f, promises);
- }
-
- function traverseWith(tryMap, f, promises) {
- var handler = typeof f === 'function' ? mapAt : settleAt;
-
- var resolver = new Pending();
- var pending = promises.length >>> 0;
- var results = new Array(pending);
-
- for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {
- x = promises[i];
-
- if (x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- traverseAt(promises, handler, i, x, resolver);
- }
-
- if(pending === 0) {
- resolver.become(new Fulfilled(results));
- }
-
- return new Promise(Handler, resolver);
-
- function mapAt(i, x, resolver) {
- if(!resolver.resolved) {
- traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);
- }
- }
-
- function settleAt(i, x, resolver) {
- results[i] = x;
- if(--pending === 0) {
- resolver.become(new Fulfilled(results));
- }
- }
- }
-
- function traverseAt(promises, handler, i, x, resolver) {
- if (maybeThenable(x)) {
- var h = getHandlerMaybeThenable(x);
- var s = h.state();
-
- if (s === 0) {
- h.fold(handler, i, void 0, resolver);
- } else if (s > 0) {
- handler(i, h.value, resolver);
- } else {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- }
- } else {
- handler(i, x, resolver);
- }
- }
-
- Promise._visitRemaining = visitRemaining;
- function visitRemaining(promises, start, handler) {
- for(var i=start; i 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * Composes multiple functions by piping their return values. It is
- * transparent to whether the functions return 'regular' values or promises:
- * the piped argument is always a resolved value. If one of the functions
- * throws or returns a rejected promise, the composed promise will be also
- * rejected.
- *
- * The arguments (or promises to arguments) given to the returned function (if
- * any), are passed directly to the first function on the 'pipeline'.
- * @param {Function} f the function to which the arguments will be passed
- * @param {...Function} [funcs] functions that will be composed, in order
- * @returns {Function} a promise-returning composition of the functions
- */
- function compose(f /*, funcs... */) {
- var funcs = slice.call(arguments, 1);
-
- return function() {
- var thisArg = this;
- var args = slice.call(arguments);
- var firstPromise = attempt.apply(thisArg, [f].concat(args));
-
- return when.reduce(funcs, function(arg, func) {
- return func.call(thisArg, arg);
- }, firstPromise);
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/generator.js b/s4t-server-node/node_modules/autobahn/node_modules/when/generator.js
deleted file mode 100644
index e0381f0..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/generator.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var slice = Array.prototype.slice;
- var Promise = when.Promise;
- var reject = Promise.reject;
-
- /**
- * Lift a generator to create a function that can suspend and
- * resume using the `yield` keyword to await promises.
- * @param {function} generator
- * @return {function}
- */
- function lift(generator) {
- return function() {
- return run(generator, this, arguments);
- };
- }
-
- /**
- * Immediately call a generator as a promise-aware coroutine
- * that can suspend and resume using the `yield` keyword to
- * await promises. Additional arguments after the first will
- * be passed through to the generator.
- * @param {function} generator
- * @returns {Promise} promise for the ultimate value returned
- * from the generator.
- */
- function call(generator /*x, y, z...*/) {
- /*jshint validthis:true*/
- return run(generator, this, slice.call(arguments, 1));
- }
-
- /**
- * Immediately apply a generator, with the supplied args array,
- * as a promise-aware coroutine that can suspend and resume
- * using the `yield` keyword to await promises.
- * @param {function} generator
- * @param {Array} args arguments with which to initialize the generator
- * @returns {Promise} promise for the ultimate value returned
- * from the generator.
- */
- function apply(generator, args) {
- /*jshint validthis:true*/
- return run(generator, this, args || []);
- }
-
- /**
- * Helper to initiate the provided generator as a coroutine
- * @returns {*}
- */
- function run(generator, thisArg, args) {
- return runNext(void 0, generator.apply(thisArg, args));
- }
-
- function runNext(x, iterator) {
- try {
- return handle(iterator.next(x), iterator);
- } catch(e) {
- return reject(e);
- }
- }
-
- function next(x) {
- /*jshint validthis:true*/
- return runNext(x, this);
- }
-
- function error(e) {
- /*jshint validthis:true*/
- try {
- return handle(this.throw(e), this);
- } catch(e) {
- return reject(e);
- }
- }
-
- function handle(result, iterator) {
- if(result.done) {
- return result.value;
- }
-
- var h = Promise._handler(result.value);
- if(h.state() > 0) {
- return runNext(h.value, iterator);
- }
-
- var p = Promise._defer();
- h.chain(p._handler, iterator, next, error);
- return p;
- }
-
- return {
- lift: lift,
- call: call,
- apply: apply
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/guard.js b/s4t-server-node/node_modules/autobahn/node_modules/when/guard.js
deleted file mode 100644
index 38924ca..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/guard.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Generalized promise concurrency guard
- * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)
- *
- * @author Brian Cavalier
- * @author John Hann
- * @contributor Sakari Jokinen
- */
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var slice = Array.prototype.slice;
-
- guard.n = n;
-
- return guard;
-
- /**
- * Creates a guarded version of f that can only be entered when the supplied
- * condition allows.
- * @param {function} condition represents a critical section that may only
- * be entered when allowed by the condition
- * @param {function} f function to guard
- * @returns {function} guarded version of f
- */
- function guard(condition, f) {
- return function() {
- var args = slice.call(arguments);
-
- return when(condition()).withThis(this).then(function(exit) {
- return when(f.apply(this, args))['finally'](exit);
- });
- };
- }
-
- /**
- * Creates a condition that allows only n simultaneous executions
- * of a guarded function
- * @param {number} allowed number of allowed simultaneous executions
- * @returns {function} condition function which returns a promise that
- * fulfills when the critical section may be entered. The fulfillment
- * value is a function ("notifyExit") that must be called when the critical
- * section has been exited.
- */
- function n(allowed) {
- var count = 0;
- var waiting = [];
-
- return function enter() {
- return when.promise(function(resolve) {
- if(count < allowed) {
- resolve(exit);
- } else {
- waiting.push(resolve);
- }
- count += 1;
- });
- };
-
- function exit() {
- count = Math.max(count - 1, 0);
- if(waiting.length > 0) {
- waiting.shift()(exit);
- }
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/keys.js b/s4t-server-node/node_modules/autobahn/node_modules/when/keys.js
deleted file mode 100644
index 9bca604..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/keys.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Licensed under the MIT License at:
- * http://www.opensource.org/licenses/mit-license.php
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-(function(define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var toPromise = when.resolve;
-
- return {
- all: when.lift(all),
- map: map
- };
-
- /**
- * Resolve all the key-value pairs in the supplied object or promise
- * for an object.
- * @param {Promise|object} object or promise for object whose key-value pairs
- * will be resolved
- * @returns {Promise} promise for an object with the fully resolved key-value pairs
- */
- function all(object) {
- var p = Promise._defer();
- var resolver = Promise._handler(p);
-
- var results = {};
- var keys = Object.keys(object);
- var pending = keys.length;
-
- for(var i=0, k; i>>0;
-
- var pending = l;
- var errors = [];
-
- for (var h, x, i = 0; i < l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- h = Promise._handler(x);
- if(h.state() > 0) {
- resolver.become(h);
- Promise._visitRemaining(promises, i, h);
- break;
- } else {
- h.visit(resolver, handleFulfill, handleReject);
- }
- }
-
- if(pending === 0) {
- resolver.reject(new RangeError('any(): array must not be empty'));
- }
-
- return p;
-
- function handleFulfill(x) {
- /*jshint validthis:true*/
- errors = null;
- this.resolve(x); // this === resolver
- }
-
- function handleReject(e) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- errors.push(e);
- if(--pending === 0) {
- this.reject(errors);
- }
- }
- }
-
- /**
- * N-winner competitive race
- * Return a promise that will fulfill when n input promises have
- * fulfilled, or will reject when it becomes impossible for n
- * input promises to fulfill (ie when promises.length - n + 1
- * have rejected)
- * @param {array} promises
- * @param {number} n
- * @returns {Promise} promise for the earliest n fulfillment values
- *
- * @deprecated
- */
- function some(promises, n) {
- /*jshint maxcomplexity:7*/
- var p = Promise._defer();
- var resolver = p._handler;
-
- var results = [];
- var errors = [];
-
- var l = promises.length>>>0;
- var nFulfill = 0;
- var nReject;
- var x, i; // reused in both for() loops
-
- // First pass: count actual array items
- for(i=0; i nFulfill) {
- resolver.reject(new RangeError('some(): array must contain at least '
- + n + ' item(s), but had ' + nFulfill));
- } else if(nFulfill === 0) {
- resolver.resolve(results);
- }
-
- // Second pass: observe each array item, make progress toward goals
- for(i=0; i 2 ? ar.call(promises, liftCombine(f), arguments[2])
- : ar.call(promises, liftCombine(f));
- }
-
- /**
- * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but
- * input may contain promises and/or values, and reduceFunc
- * may return either a value or a promise, *and* initialValue may
- * be a promise for the starting value.
- * @param {Array|Promise} promises array or promise for an array of anything,
- * may contain a mix of promises and values.
- * @param {function(accumulated:*, x:*, index:Number):*} f reduce function
- * @returns {Promise} that will resolve to the final reduced value
- */
- function reduceRight(promises, f /*, initialValue */) {
- return arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])
- : arr.call(promises, liftCombine(f));
- }
-
- function liftCombine(f) {
- return function(z, x, i) {
- return applyFold(f, void 0, [z,x,i]);
- };
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/flow.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/flow.js
deleted file mode 100644
index 635e4f4..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/flow.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function flow(Promise) {
-
- var resolve = Promise.resolve;
- var reject = Promise.reject;
- var origCatch = Promise.prototype['catch'];
-
- /**
- * Handle the ultimate fulfillment value or rejection reason, and assume
- * responsibility for all errors. If an error propagates out of result
- * or handleFatalError, it will be rethrown to the host, resulting in a
- * loud stack track on most platforms and a crash on some.
- * @param {function?} onResult
- * @param {function?} onError
- * @returns {undefined}
- */
- Promise.prototype.done = function(onResult, onError) {
- this._handler.visit(this._handler.receiver, onResult, onError);
- };
-
- /**
- * Add Error-type and predicate matching to catch. Examples:
- * promise.catch(TypeError, handleTypeError)
- * .catch(predicate, handleMatchedErrors)
- * .catch(handleRemainingErrors)
- * @param onRejected
- * @returns {*}
- */
- Promise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {
- if (arguments.length < 2) {
- return origCatch.call(this, onRejected);
- }
-
- if(typeof onRejected !== 'function') {
- return this.ensure(rejectInvalidPredicate);
- }
-
- return origCatch.call(this, createCatchFilter(arguments[1], onRejected));
- };
-
- /**
- * Wraps the provided catch handler, so that it will only be called
- * if the predicate evaluates truthy
- * @param {?function} handler
- * @param {function} predicate
- * @returns {function} conditional catch handler
- */
- function createCatchFilter(handler, predicate) {
- return function(e) {
- return evaluatePredicate(e, predicate)
- ? handler.call(this, e)
- : reject(e);
- };
- }
-
- /**
- * Ensures that onFulfilledOrRejected will be called regardless of whether
- * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT
- * receive the promises' value or reason. Any returned value will be disregarded.
- * onFulfilledOrRejected may throw or return a rejected promise to signal
- * an additional error.
- * @param {function} handler handler to be called regardless of
- * fulfillment or rejection
- * @returns {Promise}
- */
- Promise.prototype['finally'] = Promise.prototype.ensure = function(handler) {
- if(typeof handler !== 'function') {
- return this;
- }
-
- return this.then(function(x) {
- return runSideEffect(handler, this, identity, x);
- }, function(e) {
- return runSideEffect(handler, this, reject, e);
- });
- };
-
- function runSideEffect (handler, thisArg, propagate, value) {
- var result = handler.call(thisArg);
- return maybeThenable(result)
- ? propagateValue(result, propagate, value)
- : propagate(value);
- }
-
- function propagateValue (result, propagate, x) {
- return resolve(result).then(function () {
- return propagate(x);
- });
- }
-
- /**
- * Recover from a failure by returning a defaultValue. If defaultValue
- * is a promise, it's fulfillment value will be used. If defaultValue is
- * a promise that rejects, the returned promise will reject with the
- * same reason.
- * @param {*} defaultValue
- * @returns {Promise} new promise
- */
- Promise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {
- return this.then(void 0, function() {
- return defaultValue;
- });
- };
-
- /**
- * Shortcut for .then(function() { return value; })
- * @param {*} value
- * @return {Promise} a promise that:
- * - is fulfilled if value is not a promise, or
- * - if value is a promise, will fulfill with its value, or reject
- * with its reason.
- */
- Promise.prototype['yield'] = function(value) {
- return this.then(function() {
- return value;
- });
- };
-
- /**
- * Runs a side effect when this promise fulfills, without changing the
- * fulfillment value.
- * @param {function} onFulfilledSideEffect
- * @returns {Promise}
- */
- Promise.prototype.tap = function(onFulfilledSideEffect) {
- return this.then(onFulfilledSideEffect)['yield'](this);
- };
-
- return Promise;
- };
-
- function rejectInvalidPredicate() {
- throw new TypeError('catch predicate must be a function');
- }
-
- function evaluatePredicate(e, predicate) {
- return isError(predicate) ? e instanceof predicate : predicate(e);
- }
-
- function isError(predicate) {
- return predicate === Error
- || (predicate != null && predicate.prototype instanceof Error);
- }
-
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function identity(x) {
- return x;
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/fold.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/fold.js
deleted file mode 100644
index c7f027a..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/fold.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-/** @author Jeff Escalante */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function fold(Promise) {
-
- Promise.prototype.fold = function(f, z) {
- var promise = this._beget();
-
- this._handler.fold(function(z, x, to) {
- Promise._handler(z).fold(function(x, z, to) {
- to.resolve(f.call(this, z, x));
- }, x, this, to);
- }, z, promise._handler.receiver, promise._handler);
-
- return promise;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/inspect.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/inspect.js
deleted file mode 100644
index 95b8715..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/inspect.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var inspect = require('../state').inspect;
-
- return function inspection(Promise) {
-
- Promise.prototype.inspect = function() {
- return inspect(Promise._handler(this));
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/iterate.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/iterate.js
deleted file mode 100644
index 3ea70b3..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/iterate.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function generate(Promise) {
-
- var resolve = Promise.resolve;
-
- Promise.iterate = iterate;
- Promise.unfold = unfold;
-
- return Promise;
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.iterate
- * Generate a (potentially infinite) stream of promised values:
- * x, f(x), f(f(x)), etc. until condition(x) returns true
- * @param {function} f function to generate a new x from the previous x
- * @param {function} condition function that, given the current x, returns
- * truthy when the iterate should stop
- * @param {function} handler function to handle the value produced by f
- * @param {*|Promise} x starting value, may be a promise
- * @return {Promise} the result of the last call to f before
- * condition returns true
- */
- function iterate(f, condition, handler, x) {
- return unfold(function(x) {
- return [x, f(x)];
- }, condition, handler, x);
- }
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.unfold
- * Generate a (potentially infinite) stream of promised values
- * by applying handler(generator(seed)) iteratively until
- * condition(seed) returns true.
- * @param {function} unspool function that generates a [value, newSeed]
- * given a seed.
- * @param {function} condition function that, given the current seed, returns
- * truthy when the unfold should stop
- * @param {function} handler function to handle the value produced by unspool
- * @param x {*|Promise} starting value, may be a promise
- * @return {Promise} the result of the last value produced by unspool before
- * condition returns true
- */
- function unfold(unspool, condition, handler, x) {
- return resolve(x).then(function(seed) {
- return resolve(condition(seed)).then(function(done) {
- return done ? seed : resolve(unspool(seed)).spread(next);
- });
- });
-
- function next(item, newSeed) {
- return resolve(handler(item)).then(function() {
- return unfold(unspool, condition, handler, newSeed);
- });
- }
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/progress.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/progress.js
deleted file mode 100644
index d45e3d0..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/progress.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function progress(Promise) {
-
- /**
- * @deprecated
- * Register a progress handler for this promise
- * @param {function} onProgress
- * @returns {Promise}
- */
- Promise.prototype.progress = function(onProgress) {
- return this.then(void 0, void 0, onProgress);
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/timed.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/timed.js
deleted file mode 100644
index cd82ed4..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/timed.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var env = require('../env');
- var TimeoutError = require('../TimeoutError');
-
- function setTimeout(f, ms, x, y) {
- return env.setTimer(function() {
- f(x, y, ms);
- }, ms);
- }
-
- return function timed(Promise) {
- /**
- * Return a new promise whose fulfillment value is revealed only
- * after ms milliseconds
- * @param {number} ms milliseconds
- * @returns {Promise}
- */
- Promise.prototype.delay = function(ms) {
- var p = this._beget();
- this._handler.fold(handleDelay, ms, void 0, p._handler);
- return p;
- };
-
- function handleDelay(ms, x, h) {
- setTimeout(resolveDelay, ms, x, h);
- }
-
- function resolveDelay(x, h) {
- h.resolve(x);
- }
-
- /**
- * Return a new promise that rejects after ms milliseconds unless
- * this promise fulfills earlier, in which case the returned promise
- * fulfills with the same value.
- * @param {number} ms milliseconds
- * @param {Error|*=} reason optional rejection reason to use, defaults
- * to a TimeoutError if not provided
- * @returns {Promise}
- */
- Promise.prototype.timeout = function(ms, reason) {
- var p = this._beget();
- var h = p._handler;
-
- var t = setTimeout(onTimeout, ms, reason, p._handler);
-
- this._handler.visit(h,
- function onFulfill(x) {
- env.clearTimer(t);
- this.resolve(x); // this = h
- },
- function onReject(x) {
- env.clearTimer(t);
- this.reject(x); // this = h
- },
- h.notify);
-
- return p;
- };
-
- function onTimeout(reason, h, ms) {
- var e = typeof reason === 'undefined'
- ? new TimeoutError('timed out after ' + ms + 'ms')
- : reason;
- h.reject(e);
- }
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/unhandledRejection.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/unhandledRejection.js
deleted file mode 100644
index 72f7e20..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/unhandledRejection.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var setTimer = require('../env').setTimer;
- var format = require('../format');
-
- return function unhandledRejection(Promise) {
- var logError = noop;
- var logInfo = noop;
- var localConsole;
-
- if(typeof console !== 'undefined') {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- localConsole = console;
- logError = typeof localConsole.error !== 'undefined'
- ? function (e) { localConsole.error(e); }
- : function (e) { localConsole.log(e); };
-
- logInfo = typeof localConsole.info !== 'undefined'
- ? function (e) { localConsole.info(e); }
- : function (e) { localConsole.log(e); };
- }
-
- Promise.onPotentiallyUnhandledRejection = function(rejection) {
- enqueue(report, rejection);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- enqueue(unreport, rejection);
- };
-
- Promise.onFatalRejection = function(rejection) {
- enqueue(throwit, rejection.value);
- };
-
- var tasks = [];
- var reported = [];
- var running = null;
-
- function report(r) {
- if(!r.handled) {
- reported.push(r);
- logError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));
- }
- }
-
- function unreport(r) {
- var i = reported.indexOf(r);
- if(i >= 0) {
- reported.splice(i, 1);
- logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));
- }
- }
-
- function enqueue(f, x) {
- tasks.push(f, x);
- if(running === null) {
- running = setTimer(flush, 0);
- }
- }
-
- function flush() {
- running = null;
- while(tasks.length > 0) {
- tasks.shift()(tasks.shift());
- }
- }
-
- return Promise;
- };
-
- function throwit(e) {
- throw e;
- }
-
- function noop() {}
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/with.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/with.js
deleted file mode 100644
index a0f05f0..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/decorators/with.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function addWith(Promise) {
- /**
- * Returns a promise whose handlers will be called with `this` set to
- * the supplied receiver. Subsequent promises derived from the
- * returned promise will also have their handlers called with receiver
- * as `this`. Calling `with` with undefined or no arguments will return
- * a promise whose handlers will again be called in the usual Promises/A+
- * way (no `this`) thus safely undoing any previous `with` in the
- * promise chain.
- *
- * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+
- * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)
- *
- * @param {object} receiver `this` value for all handlers attached to
- * the returned promise.
- * @returns {Promise}
- */
- Promise.prototype['with'] = Promise.prototype.withThis = function(receiver) {
- var p = this._beget();
- var child = p._handler;
- child.receiver = receiver;
- this._handler.chain(child, receiver);
- return p;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/env.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/env.js
deleted file mode 100644
index 088ff1e..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/env.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
-(function(define) { 'use strict';
-define(function(require) {
- /*jshint maxcomplexity:6*/
-
- // Sniff "best" async scheduling option
- // Prefer process.nextTick or MutationObserver, then check for
- // setTimeout, and finally vertx, since its the only env that doesn't
- // have setTimeout
-
- var MutationObs;
- var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
-
- // Default env
- var setTimer = function(f, ms) { return setTimeout(f, ms); };
- var clearTimer = function(t) { return clearTimeout(t); };
- var asap = function (f) { return capturedSetTimeout(f, 0); };
-
- // Detect specific env
- if (isNode()) { // Node
- asap = function (f) { return process.nextTick(f); };
-
- } else if (MutationObs = hasMutationObserver()) { // Modern browser
- asap = initMutationObserver(MutationObs);
-
- } else if (!capturedSetTimeout) { // vert.x
- var vertxRequire = require;
- var vertx = vertxRequire('vertx');
- setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
- clearTimer = vertx.cancelTimer;
- asap = vertx.runOnLoop || vertx.runOnContext;
- }
-
- return {
- setTimer: setTimer,
- clearTimer: clearTimer,
- asap: asap
- };
-
- function isNode () {
- return typeof process !== 'undefined' && process !== null &&
- typeof process.nextTick === 'function';
- }
-
- function hasMutationObserver () {
- return (typeof MutationObserver === 'function' && MutationObserver) ||
- (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver);
- }
-
- function initMutationObserver(MutationObserver) {
- var scheduled;
- var node = document.createTextNode('');
- var o = new MutationObserver(run);
- o.observe(node, { characterData: true });
-
- function run() {
- var f = scheduled;
- scheduled = void 0;
- f();
- }
-
- var i = 0;
- return function (f) {
- scheduled = f;
- node.data = (i ^= 1);
- };
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/format.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/format.js
deleted file mode 100644
index 6f93cd4..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/format.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- formatError: formatError,
- formatObject: formatObject,
- tryStringify: tryStringify
- };
-
- /**
- * Format an error into a string. If e is an Error and has a stack property,
- * it's returned. Otherwise, e is formatted using formatObject, with a
- * warning added about e not being a proper Error.
- * @param {*} e
- * @returns {String} formatted string, suitable for output to developers
- */
- function formatError(e) {
- var s = typeof e === 'object' && e !== null && e.stack ? e.stack : formatObject(e);
- return e instanceof Error ? s : s + ' (WARNING: non-Error used)';
- }
-
- /**
- * Format an object, detecting "plain" objects and running them through
- * JSON.stringify if possible.
- * @param {Object} o
- * @returns {string}
- */
- function formatObject(o) {
- var s = String(o);
- if(s === '[object Object]' && typeof JSON !== 'undefined') {
- s = tryStringify(o, s);
- }
- return s;
- }
-
- /**
- * Try to return the result of JSON.stringify(x). If that fails, return
- * defaultValue
- * @param {*} x
- * @param {*} defaultValue
- * @returns {String|*} JSON.stringify(x) or defaultValue
- */
- function tryStringify(x, defaultValue) {
- try {
- return JSON.stringify(x);
- } catch(e) {
- return defaultValue;
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/liftAll.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/liftAll.js
deleted file mode 100644
index af4dd4f..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/liftAll.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function liftAll(liftOne, combine, dst, src) {
- if(typeof combine === 'undefined') {
- combine = defaultCombine;
- }
-
- return Object.keys(src).reduce(function(dst, key) {
- var f = src[key];
- return typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;
- }, typeof dst === 'undefined' ? defaultDst(src) : dst);
- };
-
- function defaultCombine(o, f, k) {
- o[k] = f;
- return o;
- }
-
- function defaultDst(src) {
- return typeof src === 'function' ? src.bind() : Object.create(src);
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/makePromise.js b/s4t-server-node/node_modules/autobahn/node_modules/when/lib/makePromise.js
deleted file mode 100644
index 56a09f8..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/lib/makePromise.js
+++ /dev/null
@@ -1,883 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function makePromise(environment) {
-
- var tasks = environment.scheduler;
-
- var objectCreate = Object.create ||
- function(proto) {
- function Child() {}
- Child.prototype = proto;
- return new Child();
- };
-
- /**
- * Create a promise whose fate is determined by resolver
- * @constructor
- * @returns {Promise} promise
- * @name Promise
- */
- function Promise(resolver, handler) {
- this._handler = resolver === Handler ? handler : init(resolver);
- }
-
- /**
- * Run the supplied resolver
- * @param resolver
- * @returns {Pending}
- */
- function init(resolver) {
- var handler = new Pending();
-
- try {
- resolver(promiseResolve, promiseReject, promiseNotify);
- } catch (e) {
- promiseReject(e);
- }
-
- return handler;
-
- /**
- * Transition from pre-resolution state to post-resolution state, notifying
- * all listeners of the ultimate fulfillment or rejection
- * @param {*} x resolution value
- */
- function promiseResolve (x) {
- handler.resolve(x);
- }
- /**
- * Reject this promise with reason, which will be used verbatim
- * @param {Error|*} reason rejection reason, strongly suggested
- * to be an Error type
- */
- function promiseReject (reason) {
- handler.reject(reason);
- }
-
- /**
- * @deprecated
- * Issue a progress event, notifying all progress listeners
- * @param {*} x progress event payload to pass to all listeners
- */
- function promiseNotify (x) {
- handler.notify(x);
- }
- }
-
- // Creation
-
- Promise.resolve = resolve;
- Promise.reject = reject;
- Promise.never = never;
-
- Promise._defer = defer;
- Promise._handler = getHandler;
-
- /**
- * Returns a trusted promise. If x is already a trusted promise, it is
- * returned, otherwise returns a new trusted Promise which follows x.
- * @param {*} x
- * @return {Promise} promise
- */
- function resolve(x) {
- return isPromise(x) ? x
- : new Promise(Handler, new Async(getHandler(x)));
- }
-
- /**
- * Return a reject promise with x as its reason (x is used verbatim)
- * @param {*} x
- * @returns {Promise} rejected promise
- */
- function reject(x) {
- return new Promise(Handler, new Async(new Rejected(x)));
- }
-
- /**
- * Return a promise that remains pending forever
- * @returns {Promise} forever-pending promise.
- */
- function never() {
- return foreverPendingPromise; // Should be frozen
- }
-
- /**
- * Creates an internal {promise, resolver} pair
- * @private
- * @returns {Promise}
- */
- function defer() {
- return new Promise(Handler, new Pending());
- }
-
- // Transformation and flow control
-
- /**
- * Transform this promise's fulfillment value, returning a new Promise
- * for the transformed result. If the promise cannot be fulfilled, onRejected
- * is called with the reason. onProgress *may* be called with updates toward
- * this promise's fulfillment.
- * @param {function=} onFulfilled fulfillment handler
- * @param {function=} onRejected rejection handler
- * @param {function=} onProgress @deprecated progress handler
- * @return {Promise} new promise
- */
- Promise.prototype.then = function(onFulfilled, onRejected, onProgress) {
- var parent = this._handler;
- var state = parent.join().state();
-
- if ((typeof onFulfilled !== 'function' && state > 0) ||
- (typeof onRejected !== 'function' && state < 0)) {
- // Short circuit: value will not change, simply share handler
- return new this.constructor(Handler, parent);
- }
-
- var p = this._beget();
- var child = p._handler;
-
- parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);
-
- return p;
- };
-
- /**
- * If this promise cannot be fulfilled due to an error, call onRejected to
- * handle the error. Shortcut for .then(undefined, onRejected)
- * @param {function?} onRejected
- * @return {Promise}
- */
- Promise.prototype['catch'] = function(onRejected) {
- return this.then(void 0, onRejected);
- };
-
- /**
- * Creates a new, pending promise of the same type as this promise
- * @private
- * @returns {Promise}
- */
- Promise.prototype._beget = function() {
- return begetFrom(this._handler, this.constructor);
- };
-
- function begetFrom(parent, Promise) {
- var child = new Pending(parent.receiver, parent.join().context);
- return new Promise(Handler, child);
- }
-
- // Array combinators
-
- Promise.all = all;
- Promise.race = race;
- Promise._traverse = traverse;
-
- /**
- * Return a promise that will fulfill when all promises in the
- * input array have fulfilled, or will reject when one of the
- * promises rejects.
- * @param {array} promises array of promises
- * @returns {Promise} promise for array of fulfillment values
- */
- function all(promises) {
- return traverseWith(snd, null, promises);
- }
-
- /**
- * Array> -> Promise>
- * @private
- * @param {function} f function to apply to each promise's value
- * @param {Array} promises array of promises
- * @returns {Promise} promise for transformed values
- */
- function traverse(f, promises) {
- return traverseWith(tryCatch2, f, promises);
- }
-
- function traverseWith(tryMap, f, promises) {
- var handler = typeof f === 'function' ? mapAt : settleAt;
-
- var resolver = new Pending();
- var pending = promises.length >>> 0;
- var results = new Array(pending);
-
- for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {
- x = promises[i];
-
- if (x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- traverseAt(promises, handler, i, x, resolver);
- }
-
- if(pending === 0) {
- resolver.become(new Fulfilled(results));
- }
-
- return new Promise(Handler, resolver);
-
- function mapAt(i, x, resolver) {
- if(!resolver.resolved) {
- traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);
- }
- }
-
- function settleAt(i, x, resolver) {
- results[i] = x;
- if(--pending === 0) {
- resolver.become(new Fulfilled(results));
- }
- }
- }
-
- function traverseAt(promises, handler, i, x, resolver) {
- if (maybeThenable(x)) {
- var h = getHandlerMaybeThenable(x);
- var s = h.state();
-
- if (s === 0) {
- h.fold(handler, i, void 0, resolver);
- } else if (s > 0) {
- handler(i, h.value, resolver);
- } else {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- }
- } else {
- handler(i, x, resolver);
- }
- }
-
- Promise._visitRemaining = visitRemaining;
- function visitRemaining(promises, start, handler) {
- for(var i=start; i 0 ? toFulfilledState(handler.value)
- : toRejectedState(handler.value);
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor.js b/s4t-server-node/node_modules/autobahn/node_modules/when/monitor.js
deleted file mode 100644
index 8979088..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var PromiseMonitor = require('./monitor/PromiseMonitor');
- var ConsoleReporter = require('./monitor/ConsoleReporter');
-
- var promiseMonitor = new PromiseMonitor(new ConsoleReporter());
-
- return function(Promise) {
- return promiseMonitor.monitor(Promise);
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/ConsoleReporter.js b/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/ConsoleReporter.js
deleted file mode 100644
index 79e56ed..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/ConsoleReporter.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var error = require('./error');
- var unhandledRejectionsMsg = '[promises] Unhandled rejections: ';
- var allHandledMsg = '[promises] All previously unhandled rejections have now been handled';
-
- function ConsoleReporter() {
- this._previouslyReported = false;
- }
-
- ConsoleReporter.prototype = initDefaultLogging();
-
- ConsoleReporter.prototype.log = function(traces) {
- if(traces.length === 0) {
- if(this._previouslyReported) {
- this._previouslyReported = false;
- this.msg(allHandledMsg);
- }
- return;
- }
-
- this._previouslyReported = true;
- this.groupStart(unhandledRejectionsMsg + traces.length);
- try {
- this._log(traces);
- } finally {
- this.groupEnd();
- }
- };
-
- ConsoleReporter.prototype._log = function(traces) {
- for(var i=0; i= 0; --i) {
- t = this._traces[i];
- if(t.handler === handler) {
- break;
- }
- }
-
- if(i >= 0) {
- t.extraContext = extraContext;
- } else {
- this._traces.push({
- handler: handler,
- extraContext: extraContext
- });
- }
-
- this.logTraces();
- };
-
- PromiseMonitor.prototype.removeTrace = function(/*handler*/) {
- this.logTraces();
- };
-
- PromiseMonitor.prototype.fatal = function(handler, extraContext) {
- var err = new Error();
- err.stack = this._createLongTrace(handler.value, handler.context, extraContext).join('\n');
- setTimer(function() {
- throw err;
- }, 0);
- };
-
- PromiseMonitor.prototype.logTraces = function() {
- if(!this._traceTask) {
- this._traceTask = setTimer(this._doLogTraces, this.logDelay);
- }
- };
-
- PromiseMonitor.prototype._logTraces = function() {
- this._traceTask = void 0;
- this._traces = this._traces.filter(filterHandled);
- this._reporter.log(this.formatTraces(this._traces));
- };
-
-
- PromiseMonitor.prototype.formatTraces = function(traces) {
- return traces.map(function(t) {
- return this._createLongTrace(t.handler.value, t.handler.context, t.extraContext);
- }, this);
- };
-
- PromiseMonitor.prototype._createLongTrace = function(e, context, extraContext) {
- var trace = error.parse(e) || [String(e) + ' (WARNING: non-Error used)'];
- trace = filterFrames(this.stackFilter, trace, 0);
- this._appendContext(trace, context);
- this._appendContext(trace, extraContext);
- return this.filterDuplicateFrames ? this._removeDuplicates(trace) : trace;
- };
-
- PromiseMonitor.prototype._removeDuplicates = function(trace) {
- var seen = {};
- var sep = this.stackJumpSeparator;
- var count = 0;
- return trace.reduceRight(function(deduped, line, i) {
- if(i === 0) {
- deduped.unshift(line);
- } else if(line === sep) {
- if(count > 0) {
- deduped.unshift(line);
- count = 0;
- }
- } else if(!seen[line]) {
- seen[line] = true;
- deduped.unshift(line);
- ++count;
- }
- return deduped;
- }, []);
- };
-
- PromiseMonitor.prototype._appendContext = function(trace, context) {
- trace.push.apply(trace, this._createTrace(context));
- };
-
- PromiseMonitor.prototype._createTrace = function(traceChain) {
- var trace = [];
- var stack;
-
- while(traceChain) {
- stack = error.parse(traceChain);
-
- if (stack) {
- stack = filterFrames(this.stackFilter, stack);
- appendStack(trace, stack, this.stackJumpSeparator);
- }
-
- traceChain = traceChain.parent;
- }
-
- return trace;
- };
-
- function appendStack(trace, stack, separator) {
- if (stack.length > 1) {
- stack[0] = separator;
- trace.push.apply(trace, stack);
- }
- }
-
- function filterFrames(stackFilter, stack) {
- return stack.filter(function(frame) {
- return !stackFilter.test(frame);
- });
- }
-
- function filterHandled(t) {
- return !t.handler.handled;
- }
-
- return PromiseMonitor;
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/README.md b/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/README.md
deleted file mode 100644
index 57acff9..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Promise monitoring and debugging
-
-This dir contains experimental new promise monitoring and debugging utilities for when.js. See [the docs](../docs/api.md#debugging-promises).
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/console.js b/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/console.js
deleted file mode 100644
index 931caa6..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/console.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var monitor = require('../monitor');
- var Promise = require('../when').Promise;
-
- return monitor(Promise);
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/error.js b/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/error.js
deleted file mode 100644
index 63825e2..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/monitor/error.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- var parse, captureStack, format;
-
- if(Error.captureStackTrace) {
- // Use Error.captureStackTrace if available
- parse = function(e) {
- return e && e.stack && e.stack.split('\n');
- };
-
- format = formatAsString;
- captureStack = Error.captureStackTrace;
-
- } else {
- // Otherwise, do minimal feature detection to determine
- // how to capture and format reasonable stacks.
- parse = function(e) {
- var stack = e && e.stack && e.stack.split('\n');
- if(stack && e.message) {
- stack.unshift(e.message);
- }
- return stack;
- };
-
- (function() {
- var e = new Error();
- if(typeof e.stack !== 'string') {
- format = formatAsString;
- captureStack = captureSpiderMonkeyStack;
- } else {
- format = formatAsErrorWithStack;
- captureStack = useStackDirectly;
- }
- }());
- }
-
- function captureSpiderMonkeyStack(host) {
- try {
- throw new Error();
- } catch(err) {
- host.stack = err.stack;
- }
- }
-
- function useStackDirectly(host) {
- host.stack = new Error().stack;
- }
-
- function formatAsString(longTrace) {
- return join(longTrace);
- }
-
- function formatAsErrorWithStack(longTrace) {
- var e = new Error();
- e.stack = formatAsString(longTrace);
- return e;
- }
-
- // About 5-10x faster than String.prototype.join o_O
- function join(a) {
- var sep = false;
- var s = '';
- for(var i=0; i< a.length; ++i) {
- if(sep) {
- s += '\n' + a[i];
- } else {
- s+= a[i];
- sep = true;
- }
- }
- return s;
- }
-
- return {
- parse: parse,
- format: format,
- captureStack: captureStack
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/node.js b/s4t-server-node/node_modules/autobahn/node_modules/when/node.js
deleted file mode 100644
index 61d9453..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/node.js
+++ /dev/null
@@ -1,282 +0,0 @@
-/** @license MIT License (c) copyright 2013 original author or authors */
-
-/**
- * Collection of helpers for interfacing with node-style asynchronous functions
- * using promises.
- *
- * @author Brian Cavalier
- * @contributor Renato Zannon
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var _liftAll = require('./lib/liftAll');
- var setTimer = require('./lib/env').setTimer;
- var slice = Array.prototype.slice;
-
- var _apply = require('./lib/apply')(when.Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- createCallback: createCallback,
- bindCallback: bindCallback,
- liftCallback: liftCallback
- };
-
- /**
- * Takes a node-style async function and calls it immediately (with an optional
- * array of arguments or promises for arguments). It returns a promise whose
- * resolution depends on whether the async functions calls its callback with the
- * conventional error argument or not.
- *
- * With this it becomes possible to leverage existing APIs while still reaping
- * the benefits of promises.
- *
- * @example
- * function onlySmallNumbers(n, callback) {
- * if(n < 10) {
- * callback(null, n + 10);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * var nodefn = require("when/node/function");
- *
- * // Logs '15'
- * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {Array} [args] array of arguments to func
- * @returns {Promise} promise for the value func passes to its callback
- */
- function apply(f, args) {
- return _apply(f, this, args || []);
- }
-
- function dispatch(f, thisArg, args, h) {
- var cb = createCallback(h);
- try {
- switch(args.length) {
- case 2: f.call(thisArg, args[0], args[1], cb); break;
- case 1: f.call(thisArg, args[0], cb); break;
- case 0: f.call(thisArg, cb); break;
- default:
- args.push(cb);
- f.apply(thisArg, args);
- }
- } catch(e) {
- h.reject(e);
- }
- }
-
- /**
- * Has the same behavior that {@link apply} has, with the difference that the
- * arguments to the function are provided individually, while {@link apply} accepts
- * a single array.
- *
- * @example
- * function sumSmallNumbers(x, y, callback) {
- * var result = x + y;
- * if(result < 10) {
- * callback(null, result);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * // Logs '5'
- * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {...*} [args] arguments that will be forwarded to the function
- * @returns {Promise} promise for the value func passes to its callback
- */
- function call(f /*, args... */) {
- return _apply(f, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a node-style function and returns new function that wraps the
- * original and, instead of taking a callback, returns a promise. Also, it
- * knows how to handle promises given as arguments, waiting for their
- * resolution before executing.
- *
- * Upon execution, the orginal function is executed as well. If it passes
- * a truthy value as the first argument to the callback, it will be
- * interpreted as an error condition, and the promise will be rejected
- * with it. Otherwise, the call is considered a resolution, and the promise
- * is resolved with the callback's second argument.
- *
- * @example
- * var fs = require("fs"), nodefn = require("when/node/function");
- *
- * var promiseRead = nodefn.lift(fs.readFile);
- *
- * // The promise is resolved with the contents of the file if everything
- * // goes ok
- * promiseRead('exists.txt').then(console.log, console.error);
- *
- * // And will be rejected if something doesn't work out
- * // (e.g. the files does not exist)
- * promiseRead('doesnt_exist.txt').then(console.log, console.error);
- *
- *
- * @param {Function} f node-style function to be lifted
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f /*, args... */) {
- var args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- // TODO: Simplify once partialing has been removed
- var l = args1.length;
- var al = arguments.length;
- var args = new Array(al + l);
- var i;
- for(i=0; i 2) {
- resolver.resolve(slice.call(arguments, 1));
- } else {
- resolver.resolve(value);
- }
- };
- }
-
- /**
- * Attaches a node-style callback to a promise, ensuring the callback is
- * called for either fulfillment or rejection. Returns a promise with the same
- * state as the passed-in promise.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * bindCallback(deferred.promise, callback);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Promise} promise The promise to be attached to.
- * @param {Function} callback The node-style callback to attach.
- * @returns {Promise} A promise with the same state as the passed-in promise.
- */
- function bindCallback(promise, callback) {
- promise = when(promise);
-
- if (callback) {
- promise.then(success, wrapped);
- }
-
- return promise;
-
- function success(value) {
- wrapped(null, value);
- }
-
- function wrapped(err, value) {
- setTimer(function () {
- callback(err, value);
- }, 0);
- }
- }
-
- /**
- * Takes a node-style callback and returns new function that accepts a
- * promise, calling the original callback when the promise is either
- * fulfilled or rejected with the appropriate arguments.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * var wrapped = liftCallback(callback);
- *
- * // `wrapped` can now be passed around at will
- * wrapped(deferred.promise);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Function} callback The node-style callback to wrap.
- * @returns {Function} The lifted, promise-accepting function.
- */
- function liftCallback(callback) {
- return function(promise) {
- return bindCallback(promise, callback);
- };
- }
-});
-
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/node/function.js b/s4t-server-node/node_modules/autobahn/node_modules/when/node/function.js
deleted file mode 100644
index 6736f1a..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/node/function.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @license MIT License (c) copyright 2013 original author or authors */
-
-/**
- * @author Brian Cavalier
- */
-(function(define) { 'use strict';
-define(function(require) {
-
- // DEPRECATED: Use when/node instead
- return require('../node');
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/package.json b/s4t-server-node/node_modules/autobahn/node_modules/when/package.json
deleted file mode 100644
index 36e1169..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "name": "when",
- "version": "3.6.4",
- "description": "A lightweight Promises/A+ and when() implementation, plus other async goodies.",
- "keywords": [
- "cujo",
- "Promises/A+",
- "promises-aplus",
- "promise",
- "promises",
- "deferred",
- "deferreds",
- "when",
- "async",
- "asynchronous",
- "ender"
- ],
- "homepage": "http://cujojs.com",
- "licenses": [
- {
- "type": "MIT",
- "url": "http://www.opensource.org/licenses/mit-license.php"
- }
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/cujojs/when"
- },
- "bugs": {
- "url": "https://github.com/cujojs/when/issues"
- },
- "maintainers": [
- {
- "name": "cujojs",
- "email": "info@cujojs.com"
- }
- ],
- "contributors": [
- {
- "name": "Brian Cavalier",
- "url": "http://hovercraftstudios.com"
- },
- {
- "name": "John Hann",
- "url": "http://unscriptable.com"
- },
- {
- "name": "Scott Andrews"
- }
- ],
- "devDependencies": {
- "promises-aplus-tests": "~2",
- "benchmark": "~1",
- "microtime": "~0",
- "browserify": "~2",
- "buster": "~0.7",
- "jshint": "~2",
- "rest": "1.1.x",
- "optimist": "~0.6",
- "sauce-connect-launcher": "~0.4",
- "wd": "~0.2",
- "json5": "~0.2",
- "poly": "git://github.com/cujojs/poly#0.6.0"
- },
- "main": "when",
- "ender": {
- "files": [
- "*.js",
- "lib/*.js",
- "node/*.js",
- "unfold/*.js",
- "monitor/*.js"
- ]
- },
- "browser": {
- "vertx": false
- },
- "directories": {
- "test": "test"
- },
- "scripts": {
- "test": "jshint . && buster-test -e node && promises-aplus-tests test/promises-aplus-adapter.js",
- "build-browser-test": "browserify ./node_modules/poly/es5.js -o test/browser/es5.js && browserify ./test/*-test.js ./test/**/*-test.js -o test/browser/tests.js -x buster ",
- "browser-test": "npm run build-browser-test && buster-static -e browser -p 8080",
- "ci": "npm test && node test/sauce.js",
- "tunnel": "node test/sauce.js -m",
- "start": "buster-static -e browser",
- "benchmark": "node benchmark/promise && node benchmark/map",
- "browserify-es6": "browserify -s Promise es6-shim/Promise.browserify-es6.js --no-detect-globals -o es6-shim/Promise.js",
- "browserify": "browserify -s when build/when.browserify.js --no-detect-globals -o build/when.js",
- "browserify-debug": "browserify -s when build/when.browserify-debug.js --no-detect-globals -o build/when.js"
- },
- "gitHead": "dd90ad3b83a10a518f9c77ed5a35e8a0022eae35",
- "_id": "when@3.6.4",
- "_shasum": "473b517ec159e2b85005497a13983f095412e34e",
- "_from": "when@>=2.8.0",
- "_npmVersion": "2.0.0",
- "_npmUser": {
- "name": "cujojs",
- "email": "info@cujojs.com"
- },
- "dist": {
- "shasum": "473b517ec159e2b85005497a13983f095412e34e",
- "tarball": "http://registry.npmjs.org/when/-/when-3.6.4.tgz"
- },
- "_resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/parallel.js b/s4t-server-node/node_modules/autobahn/node_modules/when/parallel.js
deleted file mode 100644
index 6616a82..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/parallel.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * parallel.js
- *
- * Run a set of task functions in parallel. All tasks will
- * receive the same args
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in parallel
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for array containing the
- * result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function parallel(tasks /*, args... */) {
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.map(tasks, function(task) {
- return task.apply(void 0, args);
- });
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/pipeline.js b/s4t-server-node/node_modules/autobahn/node_modules/when/pipeline.js
deleted file mode 100644
index e5c0bd3..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/pipeline.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * pipeline.js
- *
- * Run a set of task functions in sequence, passing the result
- * of the previous as an argument to the next. Like a shell
- * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in a pipeline where the next
- * tasks receives the result of the previous. The first task
- * will receive the initialArgs as its argument list.
- * @param tasks {Array|Promise} array or promise for array of task functions
- * @param [initialArgs...] {*} arguments to be passed to the first task
- * @return {Promise} promise for return value of the final task
- */
- return function pipeline(tasks /* initialArgs... */) {
- // Self-optimizing function to run first task with multiple
- // args using apply, but subsequence tasks via direct invocation
- var runTask = function(args, task) {
- runTask = function(arg, task) {
- return task(arg);
- };
-
- return task.apply(null, args);
- };
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(arg, task) {
- return runTask(arg, task);
- }, args);
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/poll.js b/s4t-server-node/node_modules/autobahn/node_modules/when/poll.js
deleted file mode 100644
index 006b16f..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/poll.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/** @license MIT License (c) copyright 2012-2013 original author or authors */
-
-/**
- * poll.js
- *
- * Helper that polls until cancelled or for a condition to become true.
- *
- * @author Scott Andrews
- */
-
-(function (define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var attempt = when['try'];
- var cancelable = require('./cancelable');
-
- /**
- * Periodically execute the work function on the msec delay. The result of
- * the work may be verified by watching for a condition to become true. The
- * returned deferred is cancellable if the polling needs to be cancelled
- * externally before reaching a resolved state.
- *
- * The next vote is scheduled after the results of the current vote are
- * verified and rejected.
- *
- * Polling may be terminated by the verifier returning a truthy value,
- * invoking cancel() on the returned promise, or the work function returning
- * a rejected promise.
- *
- * Usage:
- *
- * var count = 0;
- * function doSomething() { return count++ }
- *
- * // poll until cancelled
- * var p = poll(doSomething, 1000);
- * ...
- * p.cancel();
- *
- * // poll until condition is met
- * poll(doSomething, 1000, function(result) { return result > 10 })
- * .then(function(result) { assert result == 10 });
- *
- * // delay first vote
- * poll(doSomething, 1000, anyFunc, true);
- *
- * @param work {Function} function that is executed after every timeout
- * @param interval {number|Function} timeout in milliseconds
- * @param [verifier] {Function} function to evaluate the result of the vote.
- * May return a {Promise} or a {Boolean}. Rejecting the promise or a
- * falsey value will schedule the next vote.
- * @param [delayInitialWork] {boolean} if truthy, the first vote is scheduled
- * instead of immediate
- *
- * @returns {Promise}
- */
- return function poll(work, interval, verifier, delayInitialWork) {
- var deferred, canceled, reject;
-
- canceled = false;
- deferred = cancelable(when.defer(), function () { canceled = true; });
- reject = deferred.reject;
-
- verifier = verifier || function () { return false; };
-
- if (typeof interval !== 'function') {
- interval = (function (interval) {
- return function () { return when().delay(interval); };
- })(interval);
- }
-
- function certify(result) {
- deferred.resolve(result);
- }
-
- function schedule(result) {
- attempt(interval).then(vote, reject);
- if (result !== void 0) {
- deferred.notify(result);
- }
- }
-
- function vote() {
- if (canceled) { return; }
- when(work(),
- function (result) {
- when(verifier(result),
- function (verification) {
- return verification ? certify(result) : schedule(result);
- },
- function () { schedule(result); }
- );
- },
- reject
- );
- }
-
- if (delayInitialWork) {
- schedule();
- } else {
- // if work() is blocking, vote will also block
- vote();
- }
-
- // make the promise cancelable
- deferred.promise = Object.create(deferred.promise);
- deferred.promise.cancel = deferred.cancel;
-
- return deferred.promise;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/sequence.js b/s4t-server-node/node_modules/autobahn/node_modules/when/sequence.js
deleted file mode 100644
index 5f0bc4f..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/sequence.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * sequence.js
- *
- * Run a set of task functions in sequence. All tasks will
- * receive the same args.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in sequence with no overlap
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for an array containing
- * the result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function sequence(tasks /*, args... */) {
- var results = [];
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(results, task) {
- return when(task.apply(void 0, args), addResult);
- }, results);
- });
-
- function addResult(result) {
- results.push(result);
- return results;
- }
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/timeout.js b/s4t-server-node/node_modules/autobahn/node_modules/when/timeout.js
deleted file mode 100644
index ed4aeb9..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/timeout.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * timeout.js
- *
- * Helper that returns a promise that rejects after a specified timeout,
- * if not explicitly resolved or rejected before that.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(trigger).timeout(ms)
- */
- return function timeout(msec, trigger) {
- return when(trigger).timeout(msec);
- };
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/unfold.js b/s4t-server-node/node_modules/autobahn/node_modules/when/unfold.js
deleted file mode 100644
index 807bcfc..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/unfold.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-/**
- * unfold
- * @author: brian@hovercraftstudios.com
- */
-(function(define) {
-define(function(require) {
-
- /**
- * @deprecated Use when.unfold
- */
- return require('./when').unfold;
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); } );
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/unfold/list.js b/s4t-server-node/node_modules/autobahn/node_modules/when/unfold/list.js
deleted file mode 100644
index 529c2c9..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/unfold/list.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-(function(define) {
-define(function(require) {
-
- var unfold = require('../when').unfold;
-
- /**
- * @deprecated
- * Given a seed and generator, produces an Array. Effectively the
- * dual (opposite) of when.reduce()
- * @param {function} generator function that generates a value (or promise
- * for a value) to be placed in the resulting array
- * @param {function} condition given a seed, must return truthy if the unfold
- * should continue, or falsey if it should terminate
- * @param {*|Promise} seed any value or promise
- * @return {Promise} resulting array
- */
- return function list(generator, condition, seed) {
- var result = [];
-
- return unfold(generator, condition, append, seed)['yield'](result);
-
- function append(value, newSeed) {
- result.push(value);
- return newSeed;
- }
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/when/when.js b/s4t-server-node/node_modules/autobahn/node_modules/when/when.js
deleted file mode 100644
index bc1c894..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/when/when.js
+++ /dev/null
@@ -1,229 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-
-/**
- * Promises/A+ and when() implementation
- * when is part of the cujoJS family of libraries (http://cujojs.com/)
- * @author Brian Cavalier
- * @author John Hann
- * @version 3.6.4
- */
-(function(define) { 'use strict';
-define(function (require) {
-
- var timed = require('./lib/decorators/timed');
- var array = require('./lib/decorators/array');
- var flow = require('./lib/decorators/flow');
- var fold = require('./lib/decorators/fold');
- var inspect = require('./lib/decorators/inspect');
- var generate = require('./lib/decorators/iterate');
- var progress = require('./lib/decorators/progress');
- var withThis = require('./lib/decorators/with');
- var unhandledRejection = require('./lib/decorators/unhandledRejection');
- var TimeoutError = require('./lib/TimeoutError');
-
- var Promise = [array, flow, fold, generate, progress,
- inspect, withThis, timed, unhandledRejection]
- .reduce(function(Promise, feature) {
- return feature(Promise);
- }, require('./lib/Promise'));
-
- var apply = require('./lib/apply')(Promise);
-
- // Public API
-
- when.promise = promise; // Create a pending promise
- when.resolve = Promise.resolve; // Create a resolved promise
- when.reject = Promise.reject; // Create a rejected promise
-
- when.lift = lift; // lift a function to return promises
- when['try'] = attempt; // call a function and return a promise
- when.attempt = attempt; // alias for when.try
-
- when.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
- when.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
-
- when.join = join; // Join 2 or more promises
-
- when.all = all; // Resolve a list of promises
- when.settle = settle; // Settle a list of promises
-
- when.any = lift(Promise.any); // One-winner race
- when.some = lift(Promise.some); // Multi-winner race
- when.race = lift(Promise.race); // First-to-settle race
-
- when.map = map; // Array.map() for promises
- when.filter = filter; // Array.filter() for promises
- when.reduce = lift(Promise.reduce); // Array.reduce() for promises
- when.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises
-
- when.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable
-
- when.Promise = Promise; // Promise constructor
- when.defer = defer; // Create a {promise, resolve, reject} tuple
-
- // Error types
-
- when.TimeoutError = TimeoutError;
-
- /**
- * Get a trusted promise for x, or by transforming x with onFulfilled
- *
- * @param {*} x
- * @param {function?} onFulfilled callback to be called when x is
- * successfully fulfilled. If promiseOrValue is an immediate value, callback
- * will be invoked immediately.
- * @param {function?} onRejected callback to be called when x is
- * rejected.
- * @param {function?} onProgress callback to be called when progress updates
- * are issued for x. @deprecated
- * @returns {Promise} a new promise that will fulfill with the return
- * value of callback or errback or the completion value of promiseOrValue if
- * callback and/or errback is not supplied.
- */
- function when(x, onFulfilled, onRejected, onProgress) {
- var p = Promise.resolve(x);
- if (arguments.length < 2) {
- return p;
- }
-
- return p.then(onFulfilled, onRejected, onProgress);
- }
-
- /**
- * Creates a new promise whose fate is determined by resolver.
- * @param {function} resolver function(resolve, reject, notify)
- * @returns {Promise} promise whose fate is determine by resolver
- */
- function promise(resolver) {
- return new Promise(resolver);
- }
-
- /**
- * Lift the supplied function, creating a version of f that returns
- * promises, and accepts promises as arguments.
- * @param {function} f
- * @returns {Function} version of f that returns promises
- */
- function lift(f) {
- return function() {
- for(var i=0, l=arguments.length, a=new Array(l); i> $(depfile)
-# Add extra rules as in (2).
-# We remove slashes and replace spaces with new lines;
-# remove blank lines;
-# delete the first line and append a colon to the remaining lines.
-sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\
- grep -v '^$$' |\
- sed -e 1d -e 's|$$|:|' \
- >> $(depfile)
-rm $(depfile).raw
-endef
-
-# Command definitions:
-# - cmd_foo is the actual command to run;
-# - quiet_cmd_foo is the brief-output summary of the command.
-
-quiet_cmd_cc = CC($(TOOLSET)) $@
-cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $<
-
-quiet_cmd_cxx = CXX($(TOOLSET)) $@
-cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $<
-
-quiet_cmd_touch = TOUCH $@
-cmd_touch = touch $@
-
-quiet_cmd_copy = COPY $@
-# send stderr to /dev/null to ignore messages when linking directories.
-cmd_copy = rm -rf "$@" && cp -af "$<" "$@"
-
-quiet_cmd_alink = AR($(TOOLSET)) $@
-cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^)
-
-quiet_cmd_alink_thin = AR($(TOOLSET)) $@
-cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
-
-# Due to circular dependencies between libraries :(, we wrap the
-# special "figure out circular dependencies" flags around the entire
-# input list during linking.
-quiet_cmd_link = LINK($(TOOLSET)) $@
-cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS)
-
-# We support two kinds of shared objects (.so):
-# 1) shared_library, which is just bundling together many dependent libraries
-# into a link line.
-# 2) loadable_module, which is generating a module intended for dlopen().
-#
-# They differ only slightly:
-# In the former case, we want to package all dependent code into the .so.
-# In the latter case, we want to package just the API exposed by the
-# outermost module.
-# This means shared_library uses --whole-archive, while loadable_module doesn't.
-# (Note that --whole-archive is incompatible with the --start-group used in
-# normal linking.)
-
-# Other shared-object link notes:
-# - Set SONAME to the library filename so our binaries don't reference
-# the local, absolute paths used on the link command-line.
-quiet_cmd_solink = SOLINK($(TOOLSET)) $@
-cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS)
-
-quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@
-cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS)
-
-
-# Define an escape_quotes function to escape single quotes.
-# This allows us to handle quotes properly as long as we always use
-# use single quotes and escape_quotes.
-escape_quotes = $(subst ','\'',$(1))
-# This comment is here just to include a ' to unconfuse syntax highlighting.
-# Define an escape_vars function to escape '$' variable syntax.
-# This allows us to read/write command lines with shell variables (e.g.
-# $LD_LIBRARY_PATH), without triggering make substitution.
-escape_vars = $(subst $$,$$$$,$(1))
-# Helper that expands to a shell command to echo a string exactly as it is in
-# make. This uses printf instead of echo because printf's behaviour with respect
-# to escape sequences is more portable than echo's across different shells
-# (e.g., dash, bash).
-exact_echo = printf '%s\n' '$(call escape_quotes,$(1))'
-
-# Helper to compare the command we're about to run against the command
-# we logged the last time we ran the command. Produces an empty
-# string (false) when the commands match.
-# Tricky point: Make has no string-equality test function.
-# The kernel uses the following, but it seems like it would have false
-# positives, where one string reordered its arguments.
-# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \
-# $(filter-out $(cmd_$@), $(cmd_$(1))))
-# We instead substitute each for the empty string into the other, and
-# say they're equal if both substitutions produce the empty string.
-# .d files contain ? instead of spaces, take that into account.
-command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\
- $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1))))
-
-# Helper that is non-empty when a prerequisite changes.
-# Normally make does this implicitly, but we force rules to always run
-# so we can check their command lines.
-# $? -- new prerequisites
-# $| -- order-only dependencies
-prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?))
-
-# Helper that executes all postbuilds until one fails.
-define do_postbuilds
- @E=0;\
- for p in $(POSTBUILDS); do\
- eval $$p;\
- E=$$?;\
- if [ $$E -ne 0 ]; then\
- break;\
- fi;\
- done;\
- if [ $$E -ne 0 ]; then\
- rm -rf "$@";\
- exit $$E;\
- fi
-endef
-
-# do_cmd: run a command via the above cmd_foo names, if necessary.
-# Should always run for a given target to handle command-line changes.
-# Second argument, if non-zero, makes it do asm/C/C++ dependency munging.
-# Third argument, if non-zero, makes it do POSTBUILDS processing.
-# Note: We intentionally do NOT call dirx for depfile, since it contains ? for
-# spaces already and dirx strips the ? characters.
-define do_cmd
-$(if $(or $(command_changed),$(prereq_changed)),
- @$(call exact_echo, $($(quiet)cmd_$(1)))
- @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))"
- $(if $(findstring flock,$(word 1,$(cmd_$1))),
- @$(cmd_$(1))
- @echo " $(quiet_cmd_$(1)): Finished",
- @$(cmd_$(1))
- )
- @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile)
- @$(if $(2),$(fixup_dep))
- $(if $(and $(3), $(POSTBUILDS)),
- $(call do_postbuilds)
- )
-)
-endef
-
-# Declare the "all" target first so it is the default,
-# even though we don't have the deps yet.
-.PHONY: all
-all:
-
-# make looks for ways to re-generate included makefiles, but in our case, we
-# don't have a direct way. Explicitly telling make that it has nothing to do
-# for them makes it go faster.
-%.d: ;
-
-# Use FORCE_DO_CMD to force a target to run. Should be coupled with
-# do_cmd.
-.PHONY: FORCE_DO_CMD
-FORCE_DO_CMD:
-
-TOOLSET := target
-# Suffix rules, putting all outputs into $(obj).
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-
-# Try building from generated source, too.
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-
-$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD
- @$(call do_cmd,cc,1)
-
-
-ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
- $(findstring $(join ^,$(prefix)),\
- $(join ^,bufferutil.target.mk)))),)
- include bufferutil.target.mk
-endif
-ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
- $(findstring $(join ^,$(prefix)),\
- $(join ^,validation.target.mk)))),)
- include validation.target.mk
-endif
-
-quiet_cmd_regen_makefile = ACTION Regenerating $@
-cmd_regen_makefile = cd $(srcdir); /usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "--toplevel-dir=." -I/mnt/Data-Partition/Develop/crossbar.io/s4t/node_modules/autobahn/node_modules/ws/build/config.gypi -I/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/home/andrea/.node-gyp/0.10.35/common.gypi "--depth=." "-Goutput_dir=." "--generator-output=build" "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/home/andrea/.node-gyp/0.10.35" "-Dmodule_root_dir=/mnt/Data-Partition/Develop/crossbar.io/s4t/node_modules/autobahn/node_modules/ws" binding.gyp
-Makefile: $(srcdir)/../../../../../../../../../usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi $(srcdir)/build/config.gypi $(srcdir)/binding.gyp $(srcdir)/../../../../../../../../../home/andrea/.node-gyp/0.10.35/common.gypi
- $(call do_cmd,regen_makefile)
-
-# "all" is a concatenation of the "all" targets from all the included
-# sub-makefiles. This is just here to clarify.
-all:
-
-# Add in dependency-tracking rules. $(all_deps) is the list of every single
-# target in our tree. Only consider the ones with .d (dependency) info:
-d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d))
-ifneq ($(d_files),)
- include $(d_files)
-endif
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/bufferutil.node.d b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/bufferutil.node.d
deleted file mode 100644
index 03982be..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/bufferutil.node.d
+++ /dev/null
@@ -1 +0,0 @@
-cmd_Release/bufferutil.node := rm -rf "Release/bufferutil.node" && cp -af "Release/obj.target/bufferutil.node" "Release/bufferutil.node"
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil.node.d b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil.node.d
deleted file mode 100644
index 64d1dc1..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil.node.d
+++ /dev/null
@@ -1 +0,0 @@
-cmd_Release/obj.target/bufferutil.node := flock ./Release/linker.lock g++ -shared -pthread -rdynamic -m32 -Wl,-soname=bufferutil.node -o Release/obj.target/bufferutil.node -Wl,--start-group Release/obj.target/bufferutil/src/bufferutil.o -Wl,--end-group
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil/src/bufferutil.o.d b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil/src/bufferutil.o.d
deleted file mode 100644
index 35513d9..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil/src/bufferutil.o.d
+++ /dev/null
@@ -1,29 +0,0 @@
-cmd_Release/obj.target/bufferutil/src/bufferutil.o := g++ '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/home/andrea/.node-gyp/0.10.35/src -I/home/andrea/.node-gyp/0.10.35/deps/uv/include -I/home/andrea/.node-gyp/0.10.35/deps/v8/include -I../node_modules/nan -Wall -Wextra -Wno-unused-parameter -pthread -m32 -O2 -fno-strict-aliasing -fno-tree-vrp -fno-omit-frame-pointer -fno-rtti -fno-exceptions -MMD -MF ./Release/.deps/Release/obj.target/bufferutil/src/bufferutil.o.d.raw -c -o Release/obj.target/bufferutil/src/bufferutil.o ../src/bufferutil.cc
-Release/obj.target/bufferutil/src/bufferutil.o: ../src/bufferutil.cc \
- /home/andrea/.node-gyp/0.10.35/deps/v8/include/v8.h \
- /home/andrea/.node-gyp/0.10.35/deps/v8/include/v8stdint.h \
- /home/andrea/.node-gyp/0.10.35/src/node.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-unix.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/ngx-queue.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-linux.h \
- /home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h \
- /home/andrea/.node-gyp/0.10.35/src/node.h \
- /home/andrea/.node-gyp/0.10.35/src/node_buffer.h \
- /home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h \
- ../node_modules/nan/nan.h \
- /home/andrea/.node-gyp/0.10.35/src/node_version.h
-../src/bufferutil.cc:
-/home/andrea/.node-gyp/0.10.35/deps/v8/include/v8.h:
-/home/andrea/.node-gyp/0.10.35/deps/v8/include/v8stdint.h:
-/home/andrea/.node-gyp/0.10.35/src/node.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-unix.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/ngx-queue.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-linux.h:
-/home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h:
-/home/andrea/.node-gyp/0.10.35/src/node.h:
-/home/andrea/.node-gyp/0.10.35/src/node_buffer.h:
-/home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h:
-../node_modules/nan/nan.h:
-/home/andrea/.node-gyp/0.10.35/src/node_version.h:
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/validation.node.d b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/validation.node.d
deleted file mode 100644
index 97d7984..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/validation.node.d
+++ /dev/null
@@ -1 +0,0 @@
-cmd_Release/obj.target/validation.node := flock ./Release/linker.lock g++ -shared -pthread -rdynamic -m32 -Wl,-soname=validation.node -o Release/obj.target/validation.node -Wl,--start-group Release/obj.target/validation/src/validation.o -Wl,--end-group
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/validation/src/validation.o.d b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/validation/src/validation.o.d
deleted file mode 100644
index a507a1f..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/obj.target/validation/src/validation.o.d
+++ /dev/null
@@ -1,29 +0,0 @@
-cmd_Release/obj.target/validation/src/validation.o := g++ '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/home/andrea/.node-gyp/0.10.35/src -I/home/andrea/.node-gyp/0.10.35/deps/uv/include -I/home/andrea/.node-gyp/0.10.35/deps/v8/include -I../node_modules/nan -Wall -Wextra -Wno-unused-parameter -pthread -m32 -O2 -fno-strict-aliasing -fno-tree-vrp -fno-omit-frame-pointer -fno-rtti -fno-exceptions -MMD -MF ./Release/.deps/Release/obj.target/validation/src/validation.o.d.raw -c -o Release/obj.target/validation/src/validation.o ../src/validation.cc
-Release/obj.target/validation/src/validation.o: ../src/validation.cc \
- /home/andrea/.node-gyp/0.10.35/deps/v8/include/v8.h \
- /home/andrea/.node-gyp/0.10.35/deps/v8/include/v8stdint.h \
- /home/andrea/.node-gyp/0.10.35/src/node.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-unix.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/ngx-queue.h \
- /home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-linux.h \
- /home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h \
- /home/andrea/.node-gyp/0.10.35/src/node.h \
- /home/andrea/.node-gyp/0.10.35/src/node_buffer.h \
- /home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h \
- ../node_modules/nan/nan.h \
- /home/andrea/.node-gyp/0.10.35/src/node_version.h
-../src/validation.cc:
-/home/andrea/.node-gyp/0.10.35/deps/v8/include/v8.h:
-/home/andrea/.node-gyp/0.10.35/deps/v8/include/v8stdint.h:
-/home/andrea/.node-gyp/0.10.35/src/node.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-unix.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/ngx-queue.h:
-/home/andrea/.node-gyp/0.10.35/deps/uv/include/uv-private/uv-linux.h:
-/home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h:
-/home/andrea/.node-gyp/0.10.35/src/node.h:
-/home/andrea/.node-gyp/0.10.35/src/node_buffer.h:
-/home/andrea/.node-gyp/0.10.35/src/node_object_wrap.h:
-../node_modules/nan/nan.h:
-/home/andrea/.node-gyp/0.10.35/src/node_version.h:
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/validation.node.d b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/validation.node.d
deleted file mode 100644
index 6b32ade..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/.deps/Release/validation.node.d
+++ /dev/null
@@ -1 +0,0 @@
-cmd_Release/validation.node := rm -rf "Release/validation.node" && cp -af "Release/obj.target/validation.node" "Release/validation.node"
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/bufferutil.node b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/bufferutil.node
deleted file mode 100755
index 03c43f0..0000000
Binary files a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/bufferutil.node and /dev/null differ
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/linker.lock b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/linker.lock
deleted file mode 100644
index e69de29..0000000
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/bufferutil.node b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/bufferutil.node
deleted file mode 100755
index 03c43f0..0000000
Binary files a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/bufferutil.node and /dev/null differ
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/bufferutil/src/bufferutil.o b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/bufferutil/src/bufferutil.o
deleted file mode 100644
index f7fc45a..0000000
Binary files a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/bufferutil/src/bufferutil.o and /dev/null differ
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/validation.node b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/validation.node
deleted file mode 100755
index 2c97bfb..0000000
Binary files a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/validation.node and /dev/null differ
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/validation/src/validation.o b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/validation/src/validation.o
deleted file mode 100644
index bf92948..0000000
Binary files a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/obj.target/validation/src/validation.o and /dev/null differ
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/validation.node b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/validation.node
deleted file mode 100755
index 2c97bfb..0000000
Binary files a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/Release/validation.node and /dev/null differ
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/binding.Makefile b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/binding.Makefile
deleted file mode 100644
index 3c498cd..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/binding.Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is generated by gyp; do not edit.
-
-export builddir_name ?= ./build/.
-.PHONY: all
-all:
- $(MAKE) bufferutil validation
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/bufferutil.target.mk b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/bufferutil.target.mk
deleted file mode 100644
index 4f4a430..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/bufferutil.target.mk
+++ /dev/null
@@ -1,131 +0,0 @@
-# This file is generated by gyp; do not edit.
-
-TOOLSET := target
-TARGET := bufferutil
-DEFS_Debug := \
- '-D_LARGEFILE_SOURCE' \
- '-D_FILE_OFFSET_BITS=64' \
- '-DBUILDING_NODE_EXTENSION' \
- '-DDEBUG' \
- '-D_DEBUG'
-
-# Flags passed to all source files.
-CFLAGS_Debug := \
- -Wall \
- -Wextra \
- -Wno-unused-parameter \
- -pthread \
- -m32 \
- -O3 \
- -g \
- -O0
-
-# Flags passed to only C files.
-CFLAGS_C_Debug :=
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Debug := \
- -fno-rtti \
- -fno-exceptions
-
-INCS_Debug := \
- -I/home/andrea/.node-gyp/0.10.35/src \
- -I/home/andrea/.node-gyp/0.10.35/deps/uv/include \
- -I/home/andrea/.node-gyp/0.10.35/deps/v8/include \
- -I$(srcdir)/node_modules/nan
-
-DEFS_Release := \
- '-D_LARGEFILE_SOURCE' \
- '-D_FILE_OFFSET_BITS=64' \
- '-DBUILDING_NODE_EXTENSION'
-
-# Flags passed to all source files.
-CFLAGS_Release := \
- -Wall \
- -Wextra \
- -Wno-unused-parameter \
- -pthread \
- -m32 \
- -O2 \
- -fno-strict-aliasing \
- -fno-tree-vrp \
- -fno-omit-frame-pointer
-
-# Flags passed to only C files.
-CFLAGS_C_Release :=
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Release := \
- -fno-rtti \
- -fno-exceptions
-
-INCS_Release := \
- -I/home/andrea/.node-gyp/0.10.35/src \
- -I/home/andrea/.node-gyp/0.10.35/deps/uv/include \
- -I/home/andrea/.node-gyp/0.10.35/deps/v8/include \
- -I$(srcdir)/node_modules/nan
-
-OBJS := \
- $(obj).target/$(TARGET)/src/bufferutil.o
-
-# Add to the list of files we specially track dependencies for.
-all_deps += $(OBJS)
-
-# CFLAGS et al overrides must be target-local.
-# See "Target-specific Variable Values" in the GNU Make manual.
-$(OBJS): TOOLSET := $(TOOLSET)
-$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE))
-$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE))
-
-# Suffix rules, putting all outputs into $(obj).
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-# Try building from generated source, too.
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-# End of this set of suffix rules
-### Rules for final target.
-LDFLAGS_Debug := \
- -pthread \
- -rdynamic \
- -m32
-
-LDFLAGS_Release := \
- -pthread \
- -rdynamic \
- -m32
-
-LIBS :=
-
-$(obj).target/bufferutil.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
-$(obj).target/bufferutil.node: LIBS := $(LIBS)
-$(obj).target/bufferutil.node: TOOLSET := $(TOOLSET)
-$(obj).target/bufferutil.node: $(OBJS) FORCE_DO_CMD
- $(call do_cmd,solink_module)
-
-all_deps += $(obj).target/bufferutil.node
-# Add target alias
-.PHONY: bufferutil
-bufferutil: $(builddir)/bufferutil.node
-
-# Copy this to the executable output path.
-$(builddir)/bufferutil.node: TOOLSET := $(TOOLSET)
-$(builddir)/bufferutil.node: $(obj).target/bufferutil.node FORCE_DO_CMD
- $(call do_cmd,copy)
-
-all_deps += $(builddir)/bufferutil.node
-# Short alias for building this executable.
-.PHONY: bufferutil.node
-bufferutil.node: $(obj).target/bufferutil.node $(builddir)/bufferutil.node
-
-# Add executable to "all" target.
-.PHONY: all
-all: $(builddir)/bufferutil.node
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/config.gypi b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/config.gypi
deleted file mode 100644
index 951eec3..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/config.gypi
+++ /dev/null
@@ -1,123 +0,0 @@
-# Do not edit. File was generated by node-gyp's "configure" step
-{
- "target_defaults": {
- "cflags": [],
- "default_configuration": "Release",
- "defines": [],
- "include_dirs": [],
- "libraries": []
- },
- "variables": {
- "clang": 0,
- "gcc_version": 48,
- "host_arch": "ia32",
- "node_install_npm": "true",
- "node_prefix": "",
- "node_shared_cares": "false",
- "node_shared_http_parser": "false",
- "node_shared_libuv": "false",
- "node_shared_openssl": "false",
- "node_shared_v8": "false",
- "node_shared_zlib": "false",
- "node_tag": "",
- "node_unsafe_optimizations": 0,
- "node_use_dtrace": "false",
- "node_use_etw": "false",
- "node_use_openssl": "true",
- "node_use_perfctr": "false",
- "node_use_systemtap": "false",
- "openssl_no_asm": 0,
- "python": "/usr/bin/python",
- "target_arch": "ia32",
- "v8_enable_gdbjit": 0,
- "v8_no_strict_aliasing": 1,
- "v8_use_snapshot": "true",
- "want_separate_host_toolset": 0,
- "nodedir": "/home/andrea/.node-gyp/0.10.35",
- "copy_dev_lib": "true",
- "standalone_static_library": 1,
- "cache_lock_stale": "60000",
- "sign_git_tag": "",
- "user_agent": "npm/2.2.0 node/v0.10.35 linux ia32",
- "always_auth": "",
- "bin_links": "true",
- "key": "",
- "description": "true",
- "fetch_retries": "2",
- "heading": "npm",
- "init_version": "1.0.0",
- "user": "",
- "force": "",
- "cache_min": "10",
- "init_license": "ISC",
- "editor": "vi",
- "rollback": "true",
- "cache_max": "Infinity",
- "userconfig": "/home/andrea/.npmrc",
- "init_author_name": "",
- "engine_strict": "",
- "init_author_url": "",
- "tmp": "/tmp",
- "depth": "Infinity",
- "save_dev": "",
- "usage": "",
- "cafile": "",
- "https_proxy": "",
- "onload_script": "",
- "rebuild_bundle": "true",
- "save_bundle": "",
- "shell": "/bin/bash",
- "prefix": "/usr/local",
- "browser": "",
- "cache_lock_wait": "10000",
- "registry": "https://registry.npmjs.org/",
- "save_optional": "",
- "scope": "",
- "searchopts": "",
- "versions": "",
- "cache": "/home/andrea/.npm",
- "ignore_scripts": "",
- "searchsort": "name",
- "version": "",
- "local_address": "",
- "viewer": "man",
- "color": "true",
- "fetch_retry_mintimeout": "10000",
- "umask": "2",
- "fetch_retry_maxtimeout": "60000",
- "message": "%s",
- "ca": "",
- "cert": "",
- "global": "",
- "link": "",
- "save": "",
- "unicode": "true",
- "long": "",
- "production": "",
- "unsafe_perm": "true",
- "node_version": "0.10.35",
- "tag": "latest",
- "git_tag_version": "true",
- "shrinkwrap": "true",
- "fetch_retry_factor": "10",
- "npat": "",
- "proprietary_attribs": "true",
- "save_exact": "",
- "strict_ssl": "true",
- "dev": "",
- "globalconfig": "/usr/local/etc/npmrc",
- "init_module": "/home/andrea/.npm-init.js",
- "parseable": "",
- "globalignorefile": "/usr/local/etc/npmignore",
- "cache_lock_retries": "10",
- "save_prefix": "^",
- "init_author_email": "",
- "group": "1000",
- "searchexclude": "",
- "git": "git",
- "optional": "true",
- "email": "alotronto@unime.it",
- "json": "",
- "spin": "true"
- }
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/validation.target.mk b/s4t-server-node/node_modules/autobahn/node_modules/ws/build/validation.target.mk
deleted file mode 100644
index 36fe7c4..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/build/validation.target.mk
+++ /dev/null
@@ -1,131 +0,0 @@
-# This file is generated by gyp; do not edit.
-
-TOOLSET := target
-TARGET := validation
-DEFS_Debug := \
- '-D_LARGEFILE_SOURCE' \
- '-D_FILE_OFFSET_BITS=64' \
- '-DBUILDING_NODE_EXTENSION' \
- '-DDEBUG' \
- '-D_DEBUG'
-
-# Flags passed to all source files.
-CFLAGS_Debug := \
- -Wall \
- -Wextra \
- -Wno-unused-parameter \
- -pthread \
- -m32 \
- -O3 \
- -g \
- -O0
-
-# Flags passed to only C files.
-CFLAGS_C_Debug :=
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Debug := \
- -fno-rtti \
- -fno-exceptions
-
-INCS_Debug := \
- -I/home/andrea/.node-gyp/0.10.35/src \
- -I/home/andrea/.node-gyp/0.10.35/deps/uv/include \
- -I/home/andrea/.node-gyp/0.10.35/deps/v8/include \
- -I$(srcdir)/node_modules/nan
-
-DEFS_Release := \
- '-D_LARGEFILE_SOURCE' \
- '-D_FILE_OFFSET_BITS=64' \
- '-DBUILDING_NODE_EXTENSION'
-
-# Flags passed to all source files.
-CFLAGS_Release := \
- -Wall \
- -Wextra \
- -Wno-unused-parameter \
- -pthread \
- -m32 \
- -O2 \
- -fno-strict-aliasing \
- -fno-tree-vrp \
- -fno-omit-frame-pointer
-
-# Flags passed to only C files.
-CFLAGS_C_Release :=
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Release := \
- -fno-rtti \
- -fno-exceptions
-
-INCS_Release := \
- -I/home/andrea/.node-gyp/0.10.35/src \
- -I/home/andrea/.node-gyp/0.10.35/deps/uv/include \
- -I/home/andrea/.node-gyp/0.10.35/deps/v8/include \
- -I$(srcdir)/node_modules/nan
-
-OBJS := \
- $(obj).target/$(TARGET)/src/validation.o
-
-# Add to the list of files we specially track dependencies for.
-all_deps += $(OBJS)
-
-# CFLAGS et al overrides must be target-local.
-# See "Target-specific Variable Values" in the GNU Make manual.
-$(OBJS): TOOLSET := $(TOOLSET)
-$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE))
-$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE))
-
-# Suffix rules, putting all outputs into $(obj).
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-# Try building from generated source, too.
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.cc FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-# End of this set of suffix rules
-### Rules for final target.
-LDFLAGS_Debug := \
- -pthread \
- -rdynamic \
- -m32
-
-LDFLAGS_Release := \
- -pthread \
- -rdynamic \
- -m32
-
-LIBS :=
-
-$(obj).target/validation.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
-$(obj).target/validation.node: LIBS := $(LIBS)
-$(obj).target/validation.node: TOOLSET := $(TOOLSET)
-$(obj).target/validation.node: $(OBJS) FORCE_DO_CMD
- $(call do_cmd,solink_module)
-
-all_deps += $(obj).target/validation.node
-# Add target alias
-.PHONY: validation
-validation: $(builddir)/validation.node
-
-# Copy this to the executable output path.
-$(builddir)/validation.node: TOOLSET := $(TOOLSET)
-$(builddir)/validation.node: $(obj).target/validation.node FORCE_DO_CMD
- $(call do_cmd,copy)
-
-all_deps += $(builddir)/validation.node
-# Short alias for building this executable.
-.PHONY: validation.node
-validation.node: $(obj).target/validation.node $(builddir)/validation.node
-
-# Add executable to "all" target.
-.PHONY: all
-all: $(builddir)/validation.node
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/builderror.log b/s4t-server-node/node_modules/autobahn/node_modules/ws/builderror.log
deleted file mode 100644
index 9761831..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/builderror.log
+++ /dev/null
@@ -1,14 +0,0 @@
-../src/bufferutil.cc: In static member function ‘static void BufferUtil::Initialize(v8::Handle)’:
-../src/bufferutil.cc:32:17: warning: ‘v8::Local NanSymbol(const char*, int)’ is deprecated (declared at ../node_modules/nan/nan.h:1048) [-Wdeprecated-declarations]
- target->Set(NanSymbol("BufferUtil"), t->GetFunction());
- ^
-../src/bufferutil.cc:32:39: warning: ‘v8::Local NanSymbol(const char*, int)’ is deprecated (declared at ../node_modules/nan/nan.h:1048) [-Wdeprecated-declarations]
- target->Set(NanSymbol("BufferUtil"), t->GetFunction());
- ^
-../src/validation.cc: In static member function ‘static void Validation::Initialize(v8::Handle)’:
-../src/validation.cc:112:17: warning: ‘v8::Local NanSymbol(const char*, int)’ is deprecated (declared at ../node_modules/nan/nan.h:1048) [-Wdeprecated-declarations]
- target->Set(NanSymbol("Validation"), t->GetFunction());
- ^
-../src/validation.cc:112:39: warning: ‘v8::Local NanSymbol(const char*, int)’ is deprecated (declared at ../node_modules/nan/nan.h:1048) [-Wdeprecated-declarations]
- target->Set(NanSymbol("Validation"), t->GetFunction());
- ^
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/index.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/index.js
deleted file mode 100644
index a7e8644..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var WS = module.exports = require('./lib/WebSocket');
-
-WS.Server = require('./lib/WebSocketServer');
-WS.Sender = require('./lib/Sender');
-WS.Receiver = require('./lib/Receiver');
-
-/**
- * Create a new WebSocket server.
- *
- * @param {Object} options Server options
- * @param {Function} fn Optional connection listener.
- * @returns {WS.Server}
- * @api public
- */
-WS.createServer = function createServer(options, fn) {
- var server = new WS.Server(options);
-
- if (typeof fn === 'function') {
- server.on('connection', fn);
- }
-
- return server;
-};
-
-/**
- * Create a new WebSocket connection.
- *
- * @param {String} address The URL/address we need to connect to.
- * @param {Function} fn Open listener.
- * @returns {WS}
- * @api public
- */
-WS.connect = WS.createConnection = function connect(address, fn) {
- var client = new WS(address);
-
- if (typeof fn === 'function') {
- client.on('open', fn);
- }
-
- return client;
-};
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferPool.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferPool.js
deleted file mode 100644
index faf8637..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferPool.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var util = require('util');
-
-function BufferPool(initialSize, growStrategy, shrinkStrategy) {
- if (typeof initialSize === 'function') {
- shrinkStrategy = growStrategy;
- growStrategy = initialSize;
- initialSize = 0;
- }
- else if (typeof initialSize === 'undefined') {
- initialSize = 0;
- }
- this._growStrategy = (growStrategy || function(db, size) {
- return db.used + size;
- }).bind(null, this);
- this._shrinkStrategy = (shrinkStrategy || function(db) {
- return initialSize;
- }).bind(null, this);
- this._buffer = initialSize ? new Buffer(initialSize) : null;
- this._offset = 0;
- this._used = 0;
- this._changeFactor = 0;
- this.__defineGetter__('size', function(){
- return this._buffer == null ? 0 : this._buffer.length;
- });
- this.__defineGetter__('used', function(){
- return this._used;
- });
-}
-
-BufferPool.prototype.get = function(length) {
- if (this._buffer == null || this._offset + length > this._buffer.length) {
- var newBuf = new Buffer(this._growStrategy(length));
- this._buffer = newBuf;
- this._offset = 0;
- }
- this._used += length;
- var buf = this._buffer.slice(this._offset, this._offset + length);
- this._offset += length;
- return buf;
-}
-
-BufferPool.prototype.reset = function(forceNewBuffer) {
- var len = this._shrinkStrategy();
- if (len < this.size) this._changeFactor -= 1;
- if (forceNewBuffer || this._changeFactor < -2) {
- this._changeFactor = 0;
- this._buffer = len ? new Buffer(len) : null;
- }
- this._offset = 0;
- this._used = 0;
-}
-
-module.exports = BufferPool;
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferUtil.fallback.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferUtil.fallback.js
deleted file mode 100644
index 508542c..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferUtil.fallback.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-module.exports.BufferUtil = {
- merge: function(mergedBuffer, buffers) {
- var offset = 0;
- for (var i = 0, l = buffers.length; i < l; ++i) {
- var buf = buffers[i];
- buf.copy(mergedBuffer, offset);
- offset += buf.length;
- }
- },
- mask: function(source, mask, output, offset, length) {
- var maskNum = mask.readUInt32LE(0, true);
- var i = 0;
- for (; i < length - 3; i += 4) {
- var num = maskNum ^ source.readUInt32LE(i, true);
- if (num < 0) num = 4294967296 + num;
- output.writeUInt32LE(num, offset + i, true);
- }
- switch (length % 4) {
- case 3: output[offset + i + 2] = source[i + 2] ^ mask[2];
- case 2: output[offset + i + 1] = source[i + 1] ^ mask[1];
- case 1: output[offset + i] = source[i] ^ mask[0];
- case 0:;
- }
- },
- unmask: function(data, mask) {
- var maskNum = mask.readUInt32LE(0, true);
- var length = data.length;
- var i = 0;
- for (; i < length - 3; i += 4) {
- var num = maskNum ^ data.readUInt32LE(i, true);
- if (num < 0) num = 4294967296 + num;
- data.writeUInt32LE(num, i, true);
- }
- switch (length % 4) {
- case 3: data[i + 2] = data[i + 2] ^ mask[2];
- case 2: data[i + 1] = data[i + 1] ^ mask[1];
- case 1: data[i] = data[i] ^ mask[0];
- case 0:;
- }
- }
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferUtil.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferUtil.js
deleted file mode 100644
index 15d35b9..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/BufferUtil.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-try {
- module.exports = require('../build/Release/bufferutil');
-} catch (e) { try {
- module.exports = require('../build/default/bufferutil');
-} catch (e) { try {
- module.exports = require('./BufferUtil.fallback');
-} catch (e) {
- console.error('bufferutil.node seems to not have been built. Run npm install.');
- throw e;
-}}}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/ErrorCodes.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/ErrorCodes.js
deleted file mode 100644
index 55ebd52..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/ErrorCodes.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-module.exports = {
- isValidErrorCode: function(code) {
- return (code >= 1000 && code <= 1011 && code != 1004 && code != 1005 && code != 1006) ||
- (code >= 3000 && code <= 4999);
- },
- 1000: 'normal',
- 1001: 'going away',
- 1002: 'protocol error',
- 1003: 'unsupported data',
- 1004: 'reserved',
- 1005: 'reserved for extensions',
- 1006: 'reserved for extensions',
- 1007: 'inconsistent or invalid data',
- 1008: 'policy violation',
- 1009: 'message too big',
- 1010: 'extension handshake missing',
- 1011: 'an unexpected condition prevented the request from being fulfilled',
-};
\ No newline at end of file
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Extensions.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Extensions.js
deleted file mode 100644
index a465ace..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Extensions.js
+++ /dev/null
@@ -1,70 +0,0 @@
-
-var util = require('util');
-
-/**
- * Module exports.
- */
-
-exports.parse = parse;
-exports.format = format;
-
-/**
- * Parse extensions header value
- */
-
-function parse(value) {
- value = value || '';
-
- var extensions = {};
-
- value.split(',').forEach(function(v) {
- var params = v.split(';');
- var token = params.shift().trim();
- var paramsList = extensions[token] = extensions[token] || [];
- var parsedParams = {};
-
- params.forEach(function(param) {
- var parts = param.trim().split('=');
- var key = parts[0];
- var value = parts[1];
- if (typeof value === 'undefined') {
- value = true;
- } else {
- // unquote value
- if (value[0] === '"') {
- value = value.slice(1);
- }
- if (value[value.length - 1] === '"') {
- value = value.slice(0, value.length - 1);
- }
- }
- (parsedParams[key] = parsedParams[key] || []).push(value);
- });
-
- paramsList.push(parsedParams);
- });
-
- return extensions;
-}
-
-/**
- * Format extensions header value
- */
-
-function format(value) {
- return Object.keys(value).map(function(token) {
- var paramsList = value[token];
- if (!util.isArray(paramsList)) {
- paramsList = [paramsList];
- }
- return paramsList.map(function(params) {
- return [token].concat(Object.keys(params).map(function(k) {
- var p = params[k];
- if (!util.isArray(p)) p = [p];
- return p.map(function(v) {
- return v === true ? k : k + '=' + v;
- }).join('; ');
- })).join('; ');
- }).join(', ');
- }).join(', ');
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/PerMessageDeflate.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/PerMessageDeflate.js
deleted file mode 100644
index f735977..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/PerMessageDeflate.js
+++ /dev/null
@@ -1,289 +0,0 @@
-
-var zlib = require('zlib');
-
-var AVAILABLE_WINDOW_BITS = [8, 9, 10, 11, 12, 13, 14, 15];
-var DEFAULT_WINDOW_BITS = 15;
-var DEFAULT_MEM_LEVEL = 8;
-
-PerMessageDeflate.extensionName = 'permessage-deflate';
-
-/**
- * Per-message Compression Extensions implementation
- */
-
-function PerMessageDeflate(options, isServer) {
- this._options = options || {};
- this._isServer = !!isServer;
- this._inflate = null;
- this._deflate = null;
- this.params = null;
-}
-
-/**
- * Create extension parameters offer
- *
- * @api public
- */
-
-PerMessageDeflate.prototype.offer = function() {
- var params = {};
- if (this._options.serverNoContextTakeover) {
- params.server_no_context_takeover = true;
- }
- if (this._options.clientNoContextTakeover) {
- params.client_no_context_takeover = true;
- }
- if (this._options.serverMaxWindowBits) {
- params.server_max_window_bits = this._options.serverMaxWindowBits;
- }
- if (this._options.clientMaxWindowBits) {
- params.client_max_window_bits = this._options.clientMaxWindowBits;
- } else if (this._options.clientMaxWindowBits == null) {
- params.client_max_window_bits = true;
- }
- return params;
-};
-
-/**
- * Accept extension offer
- *
- * @api public
- */
-
-PerMessageDeflate.prototype.accept = function(paramsList) {
- paramsList = this.normalizeParams(paramsList);
-
- var params;
- if (this._isServer) {
- params = this.acceptAsServer(paramsList);
- } else {
- params = this.acceptAsClient(paramsList);
- }
-
- this.params = params;
- return params;
-};
-
-/**
- * Accept extension offer from client
- *
- * @api private
- */
-
-PerMessageDeflate.prototype.acceptAsServer = function(paramsList) {
- var accepted = {};
- var result = paramsList.some(function(params) {
- accepted = {};
- if (this._options.serverNoContextTakeover === false && params.server_no_context_takeover) {
- return;
- }
- if (this._options.serverMaxWindowBits === false && params.server_max_window_bits) {
- return;
- }
- if (typeof this._options.serverMaxWindowBits === 'number' &&
- typeof params.server_max_window_bits === 'number' &&
- this._options.serverMaxWindowBits > params.server_max_window_bits) {
- return;
- }
- if (typeof this._options.clientMaxWindowBits === 'number' && !params.client_max_window_bits) {
- return;
- }
-
- if (this._options.serverNoContextTakeover || params.server_no_context_takeover) {
- accepted.server_no_context_takeover = true;
- }
- if (this._options.clientNoContextTakeover) {
- accepted.client_no_context_takeover = true;
- }
- if (this._options.clientNoContextTakeover !== false && params.client_no_context_takeover) {
- accepted.client_no_context_takeover = true;
- }
- if (typeof this._options.serverMaxWindowBits === 'number') {
- accepted.server_max_window_bits = this._options.serverMaxWindowBits;
- } else if (typeof params.server_max_window_bits === 'number') {
- accepted.server_max_window_bits = params.server_max_window_bits;
- }
- if (typeof this._options.clientMaxWindowBits === 'number') {
- accepted.client_max_window_bits = this._options.clientMaxWindowBits;
- } else if (this._options.clientMaxWindowBits !== false && typeof params.client_max_window_bits === 'number') {
- accepted.client_max_window_bits = params.client_max_window_bits;
- }
- return true;
- }, this);
-
- if (!result) {
- throw new Error('Doesn\'t support the offered configuration');
- }
-
- return accepted;
-};
-
-/**
- * Accept extension response from server
- *
- * @api privaye
- */
-
-PerMessageDeflate.prototype.acceptAsClient = function(paramsList) {
- var params = paramsList[0];
- if (this._options.clientNoContextTakeover != null) {
- if (this._options.clientNoContextTakeover === false && params.client_no_context_takeover) {
- throw new Error('Invalid value for "client_no_context_takeover"');
- }
- }
- if (this._options.clientMaxWindowBits != null) {
- if (this._options.clientMaxWindowBits === false && params.client_max_window_bits) {
- throw new Error('Invalid value for "client_max_window_bits"');
- }
- if (typeof this._options.clientMaxWindowBits === 'number' &&
- (!params.client_max_window_bits || params.client_max_window_bits > this._options.clientMaxWindowBits)) {
- throw new Error('Invalid value for "client_max_window_bits"');
- }
- }
- return params;
-};
-
-/**
- * Normalize extensions parameters
- *
- * @api private
- */
-
-PerMessageDeflate.prototype.normalizeParams = function(paramsList) {
- return paramsList.map(function(params) {
- Object.keys(params).forEach(function(key) {
- var value = params[key];
- if (value.length > 1) {
- throw new Error('Multiple extension parameters for ' + key);
- }
-
- value = value[0];
-
- switch (key) {
- case 'server_no_context_takeover':
- case 'client_no_context_takeover':
- if (value !== true) {
- throw new Error('invalid extension parameter value for ' + key + ' (' + value + ')');
- }
- params[key] = true;
- break;
- case 'server_max_window_bits':
- case 'client_max_window_bits':
- if (typeof value === 'string') {
- value = parseInt(value, 10);
- if (!~AVAILABLE_WINDOW_BITS.indexOf(value)) {
- throw new Error('invalid extension parameter value for ' + key + ' (' + value + ')');
- }
- }
- if (!this._isServer && value === true) {
- throw new Error('Missing extension parameter value for ' + key);
- }
- params[key] = value;
- break;
- default:
- throw new Error('Not defined extension parameter (' + key + ')');
- }
- }, this);
- return params;
- }, this);
-};
-
-/**
- * Decompress message
- *
- * @api public
- */
-
-PerMessageDeflate.prototype.decompress = function (data, fin, callback) {
- var endpoint = this._isServer ? 'client' : 'server';
-
- if (!this._inflate) {
- var maxWindowBits = this.params[endpoint + '_max_window_bits'];
- this._inflate = zlib.createInflateRaw({
- windowBits: 'number' === typeof maxWindowBits ? maxWindowBits : DEFAULT_WINDOW_BITS
- });
- }
-
- var self = this;
- var buffers = [];
-
- this._inflate.on('error', onError).on('data', onData);
- this._inflate.write(data);
- if (fin) {
- this._inflate.write(new Buffer([0x00, 0x00, 0xff, 0xff]));
- }
- this._inflate.flush(function() {
- cleanup();
- callback(null, Buffer.concat(buffers));
- });
-
- function onError(err) {
- cleanup();
- callback(err);
- }
-
- function onData(data) {
- buffers.push(data);
- }
-
- function cleanup() {
- self._inflate.removeListener('error', onError);
- self._inflate.removeListener('data', onData);
- if (fin && self.params[endpoint + '_no_context_takeover']) {
- self._inflate = null;
- }
- }
-};
-
-/**
- * Compress message
- *
- * @api public
- */
-
-PerMessageDeflate.prototype.compress = function (data, fin, callback) {
- var endpoint = this._isServer ? 'server' : 'client';
-
- if (!this._deflate) {
- var maxWindowBits = this.params[endpoint + '_max_window_bits'];
- this._deflate = zlib.createDeflateRaw({
- flush: zlib.Z_SYNC_FLUSH,
- windowBits: 'number' === typeof maxWindowBits ? maxWindowBits : DEFAULT_WINDOW_BITS,
- memLevel: this._options.memLevel || DEFAULT_MEM_LEVEL
- });
- }
-
- var self = this;
- var buffers = [];
-
- this._deflate.on('error', onError).on('data', onData);
- this._deflate.write(data);
- this._deflate.flush(function() {
- cleanup();
- var data = Buffer.concat(buffers);
- if (fin) {
- data = data.slice(0, data.length - 4);
- }
- callback(null, data);
- });
-
- function onError(err) {
- cleanup();
- callback(err);
- }
-
- function onData(data) {
- buffers.push(data);
- }
-
- function cleanup() {
- self._deflate.removeListener('error', onError);
- self._deflate.removeListener('data', onData);
- if (fin && self.params[endpoint + '_no_context_takeover']) {
- self._deflate = null;
- }
- }
-};
-
-module.exports = PerMessageDeflate;
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Receiver.hixie.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Receiver.hixie.js
deleted file mode 100644
index a8e41c4..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Receiver.hixie.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var util = require('util');
-
-/**
- * State constants
- */
-
-var EMPTY = 0
- , BODY = 1;
-var BINARYLENGTH = 2
- , BINARYBODY = 3;
-
-/**
- * Hixie Receiver implementation
- */
-
-function Receiver () {
- this.state = EMPTY;
- this.buffers = [];
- this.messageEnd = -1;
- this.spanLength = 0;
- this.dead = false;
-
- this.onerror = function() {};
- this.ontext = function() {};
- this.onbinary = function() {};
- this.onclose = function() {};
- this.onping = function() {};
- this.onpong = function() {};
-}
-
-module.exports = Receiver;
-
-/**
- * Add new data to the parser.
- *
- * @api public
- */
-
-Receiver.prototype.add = function(data) {
- var self = this;
- function doAdd() {
- if (self.state === EMPTY) {
- if (data.length == 2 && data[0] == 0xFF && data[1] == 0x00) {
- self.reset();
- self.onclose();
- return;
- }
- if (data[0] === 0x80) {
- self.messageEnd = 0;
- self.state = BINARYLENGTH;
- data = data.slice(1);
- } else {
-
- if (data[0] !== 0x00) {
- self.error('payload must start with 0x00 byte', true);
- return;
- }
- data = data.slice(1);
- self.state = BODY;
-
- }
- }
- if (self.state === BINARYLENGTH) {
- var i = 0;
- while ((i < data.length) && (data[i] & 0x80)) {
- self.messageEnd = 128 * self.messageEnd + (data[i] & 0x7f);
- ++i;
- }
- if (i < data.length) {
- self.messageEnd = 128 * self.messageEnd + (data[i] & 0x7f);
- self.state = BINARYBODY;
- ++i;
- }
- if (i > 0)
- data = data.slice(i);
- }
- if (self.state === BINARYBODY) {
- var dataleft = self.messageEnd - self.spanLength;
- if (data.length >= dataleft) {
- // consume the whole buffer to finish the frame
- self.buffers.push(data);
- self.spanLength += dataleft;
- self.messageEnd = dataleft;
- return self.parse();
- }
- // frame's not done even if we consume it all
- self.buffers.push(data);
- self.spanLength += data.length;
- return;
- }
- self.buffers.push(data);
- if ((self.messageEnd = bufferIndex(data, 0xFF)) != -1) {
- self.spanLength += self.messageEnd;
- return self.parse();
- }
- else self.spanLength += data.length;
- }
- while(data) data = doAdd();
-};
-
-/**
- * Releases all resources used by the receiver.
- *
- * @api public
- */
-
-Receiver.prototype.cleanup = function() {
- this.dead = true;
- this.state = EMPTY;
- this.buffers = [];
-};
-
-/**
- * Process buffered data.
- *
- * @api public
- */
-
-Receiver.prototype.parse = function() {
- var output = new Buffer(this.spanLength);
- var outputIndex = 0;
- for (var bi = 0, bl = this.buffers.length; bi < bl - 1; ++bi) {
- var buffer = this.buffers[bi];
- buffer.copy(output, outputIndex);
- outputIndex += buffer.length;
- }
- var lastBuffer = this.buffers[this.buffers.length - 1];
- if (this.messageEnd > 0) lastBuffer.copy(output, outputIndex, 0, this.messageEnd);
- if (this.state !== BODY) --this.messageEnd;
- var tail = null;
- if (this.messageEnd < lastBuffer.length - 1) {
- tail = lastBuffer.slice(this.messageEnd + 1);
- }
- this.reset();
- this.ontext(output.toString('utf8'));
- return tail;
-};
-
-/**
- * Handles an error
- *
- * @api private
- */
-
-Receiver.prototype.error = function (reason, terminate) {
- this.reset();
- this.onerror(reason, terminate);
- return this;
-};
-
-/**
- * Reset parser state
- *
- * @api private
- */
-
-Receiver.prototype.reset = function (reason) {
- if (this.dead) return;
- this.state = EMPTY;
- this.buffers = [];
- this.messageEnd = -1;
- this.spanLength = 0;
-};
-
-/**
- * Internal api
- */
-
-function bufferIndex(buffer, byte) {
- for (var i = 0, l = buffer.length; i < l; ++i) {
- if (buffer[i] === byte) return i;
- }
- return -1;
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Receiver.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Receiver.js
deleted file mode 100644
index 1ae1c4e..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Receiver.js
+++ /dev/null
@@ -1,698 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var util = require('util')
- , Validation = require('./Validation').Validation
- , ErrorCodes = require('./ErrorCodes')
- , BufferPool = require('./BufferPool')
- , bufferUtil = require('./BufferUtil').BufferUtil
- , PerMessageDeflate = require('./PerMessageDeflate');
-
-/**
- * HyBi Receiver implementation
- */
-
-function Receiver (extensions) {
- // memory pool for fragmented messages
- var fragmentedPoolPrevUsed = -1;
- this.fragmentedBufferPool = new BufferPool(1024, function(db, length) {
- return db.used + length;
- }, function(db) {
- return fragmentedPoolPrevUsed = fragmentedPoolPrevUsed >= 0 ?
- (fragmentedPoolPrevUsed + db.used) / 2 :
- db.used;
- });
-
- // memory pool for unfragmented messages
- var unfragmentedPoolPrevUsed = -1;
- this.unfragmentedBufferPool = new BufferPool(1024, function(db, length) {
- return db.used + length;
- }, function(db) {
- return unfragmentedPoolPrevUsed = unfragmentedPoolPrevUsed >= 0 ?
- (unfragmentedPoolPrevUsed + db.used) / 2 :
- db.used;
- });
-
- this.extensions = extensions || {};
- this.state = {
- activeFragmentedOperation: null,
- lastFragment: false,
- masked: false,
- opcode: 0,
- fragmentedOperation: false
- };
- this.overflow = [];
- this.headerBuffer = new Buffer(10);
- this.expectOffset = 0;
- this.expectBuffer = null;
- this.expectHandler = null;
- this.currentMessage = [];
- this.messageHandlers = [];
- this.expectHeader(2, this.processPacket);
- this.dead = false;
- this.processing = false;
-
- this.onerror = function() {};
- this.ontext = function() {};
- this.onbinary = function() {};
- this.onclose = function() {};
- this.onping = function() {};
- this.onpong = function() {};
-}
-
-module.exports = Receiver;
-
-/**
- * Add new data to the parser.
- *
- * @api public
- */
-
-Receiver.prototype.add = function(data) {
- var dataLength = data.length;
- if (dataLength == 0) return;
- if (this.expectBuffer == null) {
- this.overflow.push(data);
- return;
- }
- var toRead = Math.min(dataLength, this.expectBuffer.length - this.expectOffset);
- fastCopy(toRead, data, this.expectBuffer, this.expectOffset);
- this.expectOffset += toRead;
- if (toRead < dataLength) {
- this.overflow.push(data.slice(toRead));
- }
- while (this.expectBuffer && this.expectOffset == this.expectBuffer.length) {
- var bufferForHandler = this.expectBuffer;
- this.expectBuffer = null;
- this.expectOffset = 0;
- this.expectHandler.call(this, bufferForHandler);
- }
-};
-
-/**
- * Releases all resources used by the receiver.
- *
- * @api public
- */
-
-Receiver.prototype.cleanup = function() {
- this.dead = true;
- this.overflow = null;
- this.headerBuffer = null;
- this.expectBuffer = null;
- this.expectHandler = null;
- this.unfragmentedBufferPool = null;
- this.fragmentedBufferPool = null;
- this.state = null;
- this.currentMessage = null;
- this.onerror = null;
- this.ontext = null;
- this.onbinary = null;
- this.onclose = null;
- this.onping = null;
- this.onpong = null;
-};
-
-/**
- * Waits for a certain amount of header bytes to be available, then fires a callback.
- *
- * @api private
- */
-
-Receiver.prototype.expectHeader = function(length, handler) {
- if (length == 0) {
- handler(null);
- return;
- }
- this.expectBuffer = this.headerBuffer.slice(this.expectOffset, this.expectOffset + length);
- this.expectHandler = handler;
- var toRead = length;
- while (toRead > 0 && this.overflow.length > 0) {
- var fromOverflow = this.overflow.pop();
- if (toRead < fromOverflow.length) this.overflow.push(fromOverflow.slice(toRead));
- var read = Math.min(fromOverflow.length, toRead);
- fastCopy(read, fromOverflow, this.expectBuffer, this.expectOffset);
- this.expectOffset += read;
- toRead -= read;
- }
-};
-
-/**
- * Waits for a certain amount of data bytes to be available, then fires a callback.
- *
- * @api private
- */
-
-Receiver.prototype.expectData = function(length, handler) {
- if (length == 0) {
- handler(null);
- return;
- }
- this.expectBuffer = this.allocateFromPool(length, this.state.fragmentedOperation);
- this.expectHandler = handler;
- var toRead = length;
- while (toRead > 0 && this.overflow.length > 0) {
- var fromOverflow = this.overflow.pop();
- if (toRead < fromOverflow.length) this.overflow.push(fromOverflow.slice(toRead));
- var read = Math.min(fromOverflow.length, toRead);
- fastCopy(read, fromOverflow, this.expectBuffer, this.expectOffset);
- this.expectOffset += read;
- toRead -= read;
- }
-};
-
-/**
- * Allocates memory from the buffer pool.
- *
- * @api private
- */
-
-Receiver.prototype.allocateFromPool = function(length, isFragmented) {
- return (isFragmented ? this.fragmentedBufferPool : this.unfragmentedBufferPool).get(length);
-};
-
-/**
- * Start processing a new packet.
- *
- * @api private
- */
-
-Receiver.prototype.processPacket = function (data) {
- if (this.extensions[PerMessageDeflate.extensionName]) {
- if ((data[0] & 0x30) != 0) {
- this.error('reserved fields (2, 3) must be empty', 1002);
- return;
- }
- } else {
- if ((data[0] & 0x70) != 0) {
- this.error('reserved fields must be empty', 1002);
- return;
- }
- }
- this.state.lastFragment = (data[0] & 0x80) == 0x80;
- this.state.masked = (data[1] & 0x80) == 0x80;
- var compressed = (data[0] & 0x40) == 0x40;
- var opcode = data[0] & 0xf;
- if (opcode === 0) {
- if (compressed) {
- this.error('continuation frame cannot have the Per-message Compressed bits', 1002);
- return;
- }
- // continuation frame
- this.state.fragmentedOperation = true;
- this.state.opcode = this.state.activeFragmentedOperation;
- if (!(this.state.opcode == 1 || this.state.opcode == 2)) {
- this.error('continuation frame cannot follow current opcode', 1002);
- return;
- }
- }
- else {
- if (opcode < 3 && this.state.activeFragmentedOperation != null) {
- this.error('data frames after the initial data frame must have opcode 0', 1002);
- return;
- }
- if (opcode >= 8 && compressed) {
- this.error('control frames cannot have the Per-message Compressed bits', 1002);
- return;
- }
- this.state.compressed = compressed;
- this.state.opcode = opcode;
- if (this.state.lastFragment === false) {
- this.state.fragmentedOperation = true;
- this.state.activeFragmentedOperation = opcode;
- }
- else this.state.fragmentedOperation = false;
- }
- var handler = opcodes[this.state.opcode];
- if (typeof handler == 'undefined') this.error('no handler for opcode ' + this.state.opcode, 1002);
- else {
- handler.start.call(this, data);
- }
-};
-
-/**
- * Endprocessing a packet.
- *
- * @api private
- */
-
-Receiver.prototype.endPacket = function() {
- if (!this.state.fragmentedOperation) this.unfragmentedBufferPool.reset(true);
- else if (this.state.lastFragment) this.fragmentedBufferPool.reset(false);
- this.expectOffset = 0;
- this.expectBuffer = null;
- this.expectHandler = null;
- if (this.state.lastFragment && this.state.opcode === this.state.activeFragmentedOperation) {
- // end current fragmented operation
- this.state.activeFragmentedOperation = null;
- }
- this.state.lastFragment = false;
- this.state.opcode = this.state.activeFragmentedOperation != null ? this.state.activeFragmentedOperation : 0;
- this.state.masked = false;
- this.expectHeader(2, this.processPacket);
-};
-
-/**
- * Reset the parser state.
- *
- * @api private
- */
-
-Receiver.prototype.reset = function() {
- if (this.dead) return;
- this.state = {
- activeFragmentedOperation: null,
- lastFragment: false,
- masked: false,
- opcode: 0,
- fragmentedOperation: false
- };
- this.fragmentedBufferPool.reset(true);
- this.unfragmentedBufferPool.reset(true);
- this.expectOffset = 0;
- this.expectBuffer = null;
- this.expectHandler = null;
- this.overflow = [];
- this.currentMessage = [];
- this.messageHandlers = [];
-};
-
-/**
- * Unmask received data.
- *
- * @api private
- */
-
-Receiver.prototype.unmask = function (mask, buf, binary) {
- if (mask != null && buf != null) bufferUtil.unmask(buf, mask);
- if (binary) return buf;
- return buf != null ? buf.toString('utf8') : '';
-};
-
-/**
- * Concatenates a list of buffers.
- *
- * @api private
- */
-
-Receiver.prototype.concatBuffers = function(buffers) {
- var length = 0;
- for (var i = 0, l = buffers.length; i < l; ++i) length += buffers[i].length;
- var mergedBuffer = new Buffer(length);
- bufferUtil.merge(mergedBuffer, buffers);
- return mergedBuffer;
-};
-
-/**
- * Handles an error
- *
- * @api private
- */
-
-Receiver.prototype.error = function (reason, protocolErrorCode) {
- this.reset();
- this.onerror(reason, protocolErrorCode);
- return this;
-};
-
-/**
- * Execute message handler buffers
- *
- * @api private
- */
-
-Receiver.prototype.flush = function() {
- if (this.processing || this.dead) return;
-
- var handler = this.messageHandlers.shift();
- if (!handler) return;
-
- this.processing = true;
- var self = this;
-
- handler(function() {
- self.processing = false;
- self.flush();
- });
-};
-
-/**
- * Apply extensions to message
- *
- * @api private
- */
-
-Receiver.prototype.applyExtensions = function(messageBuffer, fin, compressed, callback) {
- var self = this;
- if (compressed) {
- this.extensions[PerMessageDeflate.extensionName].decompress(messageBuffer, fin, function(err, buffer) {
- if (self.dead) return;
- if (err) {
- callback(new Error('invalid compressed data'));
- return;
- }
- callback(null, buffer);
- });
- } else {
- callback(null, messageBuffer);
- }
-};
-
-/**
- * Buffer utilities
- */
-
-function readUInt16BE(start) {
- return (this[start]<<8) +
- this[start+1];
-}
-
-function readUInt32BE(start) {
- return (this[start]<<24) +
- (this[start+1]<<16) +
- (this[start+2]<<8) +
- this[start+3];
-}
-
-function fastCopy(length, srcBuffer, dstBuffer, dstOffset) {
- switch (length) {
- default: srcBuffer.copy(dstBuffer, dstOffset, 0, length); break;
- case 16: dstBuffer[dstOffset+15] = srcBuffer[15];
- case 15: dstBuffer[dstOffset+14] = srcBuffer[14];
- case 14: dstBuffer[dstOffset+13] = srcBuffer[13];
- case 13: dstBuffer[dstOffset+12] = srcBuffer[12];
- case 12: dstBuffer[dstOffset+11] = srcBuffer[11];
- case 11: dstBuffer[dstOffset+10] = srcBuffer[10];
- case 10: dstBuffer[dstOffset+9] = srcBuffer[9];
- case 9: dstBuffer[dstOffset+8] = srcBuffer[8];
- case 8: dstBuffer[dstOffset+7] = srcBuffer[7];
- case 7: dstBuffer[dstOffset+6] = srcBuffer[6];
- case 6: dstBuffer[dstOffset+5] = srcBuffer[5];
- case 5: dstBuffer[dstOffset+4] = srcBuffer[4];
- case 4: dstBuffer[dstOffset+3] = srcBuffer[3];
- case 3: dstBuffer[dstOffset+2] = srcBuffer[2];
- case 2: dstBuffer[dstOffset+1] = srcBuffer[1];
- case 1: dstBuffer[dstOffset] = srcBuffer[0];
- }
-}
-
-function clone(obj) {
- var cloned = {};
- for (var k in obj) {
- if (obj.hasOwnProperty(k)) {
- cloned[k] = obj[k];
- }
- }
- return cloned;
-}
-
-/**
- * Opcode handlers
- */
-
-var opcodes = {
- // text
- '1': {
- start: function(data) {
- var self = this;
- // decode length
- var firstLength = data[1] & 0x7f;
- if (firstLength < 126) {
- opcodes['1'].getData.call(self, firstLength);
- }
- else if (firstLength == 126) {
- self.expectHeader(2, function(data) {
- opcodes['1'].getData.call(self, readUInt16BE.call(data, 0));
- });
- }
- else if (firstLength == 127) {
- self.expectHeader(8, function(data) {
- if (readUInt32BE.call(data, 0) != 0) {
- self.error('packets with length spanning more than 32 bit is currently not supported', 1008);
- return;
- }
- opcodes['1'].getData.call(self, readUInt32BE.call(data, 4));
- });
- }
- },
- getData: function(length) {
- var self = this;
- if (self.state.masked) {
- self.expectHeader(4, function(data) {
- var mask = data;
- self.expectData(length, function(data) {
- opcodes['1'].finish.call(self, mask, data);
- });
- });
- }
- else {
- self.expectData(length, function(data) {
- opcodes['1'].finish.call(self, null, data);
- });
- }
- },
- finish: function(mask, data) {
- var self = this;
- var packet = this.unmask(mask, data, true) || new Buffer(0);
- var state = clone(this.state);
- this.messageHandlers.push(function(callback) {
- self.applyExtensions(packet, state.lastFragment, state.compressed, function(err, buffer) {
- if (err) return self.error(err.message, 1007);
- if (buffer != null) self.currentMessage.push(buffer);
-
- if (state.lastFragment) {
- var messageBuffer = self.concatBuffers(self.currentMessage);
- self.currentMessage = [];
- if (!Validation.isValidUTF8(messageBuffer)) {
- self.error('invalid utf8 sequence', 1007);
- return;
- }
- self.ontext(messageBuffer.toString('utf8'), {masked: state.masked, buffer: messageBuffer});
- }
- callback();
- });
- });
- this.flush();
- this.endPacket();
- }
- },
- // binary
- '2': {
- start: function(data) {
- var self = this;
- // decode length
- var firstLength = data[1] & 0x7f;
- if (firstLength < 126) {
- opcodes['2'].getData.call(self, firstLength);
- }
- else if (firstLength == 126) {
- self.expectHeader(2, function(data) {
- opcodes['2'].getData.call(self, readUInt16BE.call(data, 0));
- });
- }
- else if (firstLength == 127) {
- self.expectHeader(8, function(data) {
- if (readUInt32BE.call(data, 0) != 0) {
- self.error('packets with length spanning more than 32 bit is currently not supported', 1008);
- return;
- }
- opcodes['2'].getData.call(self, readUInt32BE.call(data, 4, true));
- });
- }
- },
- getData: function(length) {
- var self = this;
- if (self.state.masked) {
- self.expectHeader(4, function(data) {
- var mask = data;
- self.expectData(length, function(data) {
- opcodes['2'].finish.call(self, mask, data);
- });
- });
- }
- else {
- self.expectData(length, function(data) {
- opcodes['2'].finish.call(self, null, data);
- });
- }
- },
- finish: function(mask, data) {
- var self = this;
- var packet = this.unmask(mask, data, true) || new Buffer(0);
- var state = clone(this.state);
- this.messageHandlers.push(function(callback) {
- self.applyExtensions(packet, state.lastFragment, state.compressed, function(err, buffer) {
- if (err) return self.error(err.message, 1007);
- if (buffer != null) self.currentMessage.push(buffer);
- if (state.lastFragment) {
- var messageBuffer = self.concatBuffers(self.currentMessage);
- self.currentMessage = [];
- self.onbinary(messageBuffer, {masked: state.masked, buffer: messageBuffer});
- }
- callback();
- });
- });
- this.flush();
- this.endPacket();
- }
- },
- // close
- '8': {
- start: function(data) {
- var self = this;
- if (self.state.lastFragment == false) {
- self.error('fragmented close is not supported', 1002);
- return;
- }
-
- // decode length
- var firstLength = data[1] & 0x7f;
- if (firstLength < 126) {
- opcodes['8'].getData.call(self, firstLength);
- }
- else {
- self.error('control frames cannot have more than 125 bytes of data', 1002);
- }
- },
- getData: function(length) {
- var self = this;
- if (self.state.masked) {
- self.expectHeader(4, function(data) {
- var mask = data;
- self.expectData(length, function(data) {
- opcodes['8'].finish.call(self, mask, data);
- });
- });
- }
- else {
- self.expectData(length, function(data) {
- opcodes['8'].finish.call(self, null, data);
- });
- }
- },
- finish: function(mask, data) {
- var self = this;
- data = self.unmask(mask, data, true);
-
- var state = clone(this.state);
- this.messageHandlers.push(function() {
- if (data && data.length == 1) {
- self.error('close packets with data must be at least two bytes long', 1002);
- return;
- }
- var code = data && data.length > 1 ? readUInt16BE.call(data, 0) : 1000;
- if (!ErrorCodes.isValidErrorCode(code)) {
- self.error('invalid error code', 1002);
- return;
- }
- var message = '';
- if (data && data.length > 2) {
- var messageBuffer = data.slice(2);
- if (!Validation.isValidUTF8(messageBuffer)) {
- self.error('invalid utf8 sequence', 1007);
- return;
- }
- message = messageBuffer.toString('utf8');
- }
- self.onclose(code, message, {masked: state.masked});
- self.reset();
- });
- this.flush();
- },
- },
- // ping
- '9': {
- start: function(data) {
- var self = this;
- if (self.state.lastFragment == false) {
- self.error('fragmented ping is not supported', 1002);
- return;
- }
-
- // decode length
- var firstLength = data[1] & 0x7f;
- if (firstLength < 126) {
- opcodes['9'].getData.call(self, firstLength);
- }
- else {
- self.error('control frames cannot have more than 125 bytes of data', 1002);
- }
- },
- getData: function(length) {
- var self = this;
- if (self.state.masked) {
- self.expectHeader(4, function(data) {
- var mask = data;
- self.expectData(length, function(data) {
- opcodes['9'].finish.call(self, mask, data);
- });
- });
- }
- else {
- self.expectData(length, function(data) {
- opcodes['9'].finish.call(self, null, data);
- });
- }
- },
- finish: function(mask, data) {
- var self = this;
- data = this.unmask(mask, data, true);
- var state = clone(this.state);
- this.messageHandlers.push(function(callback) {
- self.onping(data, {masked: state.masked, binary: true});
- callback();
- });
- this.flush();
- this.endPacket();
- }
- },
- // pong
- '10': {
- start: function(data) {
- var self = this;
- if (self.state.lastFragment == false) {
- self.error('fragmented pong is not supported', 1002);
- return;
- }
-
- // decode length
- var firstLength = data[1] & 0x7f;
- if (firstLength < 126) {
- opcodes['10'].getData.call(self, firstLength);
- }
- else {
- self.error('control frames cannot have more than 125 bytes of data', 1002);
- }
- },
- getData: function(length) {
- var self = this;
- if (this.state.masked) {
- this.expectHeader(4, function(data) {
- var mask = data;
- self.expectData(length, function(data) {
- opcodes['10'].finish.call(self, mask, data);
- });
- });
- }
- else {
- this.expectData(length, function(data) {
- opcodes['10'].finish.call(self, null, data);
- });
- }
- },
- finish: function(mask, data) {
- var self = this;
- data = self.unmask(mask, data, true);
- var state = clone(this.state);
- this.messageHandlers.push(function(callback) {
- self.onpong(data, {masked: state.masked, binary: true});
- callback();
- });
- this.flush();
- this.endPacket();
- }
- }
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Sender.hixie.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Sender.hixie.js
deleted file mode 100644
index fd2fd25..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Sender.hixie.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var events = require('events')
- , util = require('util')
- , EventEmitter = events.EventEmitter;
-
-/**
- * Hixie Sender implementation
- */
-
-function Sender(socket) {
- events.EventEmitter.call(this);
-
- this.socket = socket;
- this.continuationFrame = false;
- this.isClosed = false;
-}
-
-module.exports = Sender;
-
-/**
- * Inherits from EventEmitter.
- */
-
-util.inherits(Sender, events.EventEmitter);
-
-/**
- * Frames and writes data.
- *
- * @api public
- */
-
-Sender.prototype.send = function(data, options, cb) {
- if (this.isClosed) return;
-
- var isString = typeof data == 'string'
- , length = isString ? Buffer.byteLength(data) : data.length
- , lengthbytes = (length > 127) ? 2 : 1 // assume less than 2**14 bytes
- , writeStartMarker = this.continuationFrame == false
- , writeEndMarker = !options || !(typeof options.fin != 'undefined' && !options.fin)
- , buffer = new Buffer((writeStartMarker ? ((options && options.binary) ? (1 + lengthbytes) : 1) : 0) + length + ((writeEndMarker && !(options && options.binary)) ? 1 : 0))
- , offset = writeStartMarker ? 1 : 0;
-
- if (writeStartMarker) {
- if (options && options.binary) {
- buffer.write('\x80', 'binary');
- // assume length less than 2**14 bytes
- if (lengthbytes > 1)
- buffer.write(String.fromCharCode(128+length/128), offset++, 'binary');
- buffer.write(String.fromCharCode(length&0x7f), offset++, 'binary');
- } else
- buffer.write('\x00', 'binary');
- }
-
- if (isString) buffer.write(data, offset, 'utf8');
- else data.copy(buffer, offset, 0);
-
- if (writeEndMarker) {
- if (options && options.binary) {
- // sending binary, not writing end marker
- } else
- buffer.write('\xff', offset + length, 'binary');
- this.continuationFrame = false;
- }
- else this.continuationFrame = true;
-
- try {
- this.socket.write(buffer, 'binary', cb);
- } catch (e) {
- this.error(e.toString());
- }
-};
-
-/**
- * Sends a close instruction to the remote party.
- *
- * @api public
- */
-
-Sender.prototype.close = function(code, data, mask, cb) {
- if (this.isClosed) return;
- this.isClosed = true;
- try {
- if (this.continuationFrame) this.socket.write(new Buffer([0xff], 'binary'));
- this.socket.write(new Buffer([0xff, 0x00]), 'binary', cb);
- } catch (e) {
- this.error(e.toString());
- }
-};
-
-/**
- * Sends a ping message to the remote party. Not available for hixie.
- *
- * @api public
- */
-
-Sender.prototype.ping = function(data, options) {};
-
-/**
- * Sends a pong message to the remote party. Not available for hixie.
- *
- * @api public
- */
-
-Sender.prototype.pong = function(data, options) {};
-
-/**
- * Handles an error
- *
- * @api private
- */
-
-Sender.prototype.error = function (reason) {
- this.emit('error', reason);
- return this;
-};
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Sender.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Sender.js
deleted file mode 100644
index f346748..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Sender.js
+++ /dev/null
@@ -1,309 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var events = require('events')
- , util = require('util')
- , EventEmitter = events.EventEmitter
- , ErrorCodes = require('./ErrorCodes')
- , bufferUtil = require('./BufferUtil').BufferUtil
- , PerMessageDeflate = require('./PerMessageDeflate');
-
-/**
- * HyBi Sender implementation
- */
-
-function Sender(socket, extensions) {
- events.EventEmitter.call(this);
-
- this._socket = socket;
- this.extensions = extensions || {};
- this.firstFragment = true;
- this.compress = false;
- this.messageHandlers = [];
- this.processing = false;
-}
-
-/**
- * Inherits from EventEmitter.
- */
-
-util.inherits(Sender, events.EventEmitter);
-
-/**
- * Sends a close instruction to the remote party.
- *
- * @api public
- */
-
-Sender.prototype.close = function(code, data, mask, cb) {
- if (typeof code !== 'undefined') {
- if (typeof code !== 'number' ||
- !ErrorCodes.isValidErrorCode(code)) throw new Error('first argument must be a valid error code number');
- }
- code = code || 1000;
- var dataBuffer = new Buffer(2 + (data ? Buffer.byteLength(data) : 0));
- writeUInt16BE.call(dataBuffer, code, 0);
- if (dataBuffer.length > 2) dataBuffer.write(data, 2);
-
- var self = this;
- this.messageHandlers.push(function(callback) {
- self.frameAndSend(0x8, dataBuffer, true, mask);
- callback();
- if (typeof cb == 'function') cb();
- });
- this.flush();
-};
-
-/**
- * Sends a ping message to the remote party.
- *
- * @api public
- */
-
-Sender.prototype.ping = function(data, options) {
- var mask = options && options.mask;
- var self = this;
- this.messageHandlers.push(function(callback) {
- self.frameAndSend(0x9, data || '', true, mask);
- callback();
- });
- this.flush();
-};
-
-/**
- * Sends a pong message to the remote party.
- *
- * @api public
- */
-
-Sender.prototype.pong = function(data, options) {
- var mask = options && options.mask;
- var self = this;
- this.messageHandlers.push(function(callback) {
- self.frameAndSend(0xa, data || '', true, mask);
- callback();
- });
- this.flush();
-};
-
-/**
- * Sends text or binary data to the remote party.
- *
- * @api public
- */
-
-Sender.prototype.send = function(data, options, cb) {
- var finalFragment = options && options.fin === false ? false : true;
- var mask = options && options.mask;
- var compress = options && options.compress;
- var opcode = options && options.binary ? 2 : 1;
- if (this.firstFragment === false) {
- opcode = 0;
- compress = false;
- } else {
- this.firstFragment = false;
- this.compress = compress;
- }
- if (finalFragment) this.firstFragment = true
-
- var compressFragment = this.compress;
-
- var self = this;
- this.messageHandlers.push(function(callback) {
- self.applyExtensions(data, finalFragment, compressFragment, function(err, data) {
- if (err) {
- if (typeof cb == 'function') cb(err);
- else self.emit('error', err);
- return;
- }
- self.frameAndSend(opcode, data, finalFragment, mask, compress, cb);
- callback();
- });
- });
- this.flush();
-};
-
-/**
- * Frames and sends a piece of data according to the HyBi WebSocket protocol.
- *
- * @api private
- */
-
-Sender.prototype.frameAndSend = function(opcode, data, finalFragment, maskData, compressed, cb) {
- var canModifyData = false;
-
- if (!data) {
- try {
- this._socket.write(new Buffer([opcode | (finalFragment ? 0x80 : 0), 0 | (maskData ? 0x80 : 0)].concat(maskData ? [0, 0, 0, 0] : [])), 'binary', cb);
- }
- catch (e) {
- if (typeof cb == 'function') cb(e);
- else this.emit('error', e);
- }
- return;
- }
-
- if (!Buffer.isBuffer(data)) {
- canModifyData = true;
- if (data && (typeof data.byteLength !== 'undefined' || typeof data.buffer !== 'undefined')) {
- data = getArrayBuffer(data);
- } else {
- data = new Buffer(data);
- }
- }
-
- var dataLength = data.length
- , dataOffset = maskData ? 6 : 2
- , secondByte = dataLength;
-
- if (dataLength >= 65536) {
- dataOffset += 8;
- secondByte = 127;
- }
- else if (dataLength > 125) {
- dataOffset += 2;
- secondByte = 126;
- }
-
- var mergeBuffers = dataLength < 32768 || (maskData && !canModifyData);
- var totalLength = mergeBuffers ? dataLength + dataOffset : dataOffset;
- var outputBuffer = new Buffer(totalLength);
- outputBuffer[0] = finalFragment ? opcode | 0x80 : opcode;
- if (compressed) outputBuffer[0] |= 0x40;
-
- switch (secondByte) {
- case 126:
- writeUInt16BE.call(outputBuffer, dataLength, 2);
- break;
- case 127:
- writeUInt32BE.call(outputBuffer, 0, 2);
- writeUInt32BE.call(outputBuffer, dataLength, 6);
- }
-
- if (maskData) {
- outputBuffer[1] = secondByte | 0x80;
- var mask = this._randomMask || (this._randomMask = getRandomMask());
- outputBuffer[dataOffset - 4] = mask[0];
- outputBuffer[dataOffset - 3] = mask[1];
- outputBuffer[dataOffset - 2] = mask[2];
- outputBuffer[dataOffset - 1] = mask[3];
- if (mergeBuffers) {
- bufferUtil.mask(data, mask, outputBuffer, dataOffset, dataLength);
- try {
- this._socket.write(outputBuffer, 'binary', cb);
- }
- catch (e) {
- if (typeof cb == 'function') cb(e);
- else this.emit('error', e);
- }
- }
- else {
- bufferUtil.mask(data, mask, data, 0, dataLength);
- try {
- this._socket.write(outputBuffer, 'binary');
- this._socket.write(data, 'binary', cb);
- }
- catch (e) {
- if (typeof cb == 'function') cb(e);
- else this.emit('error', e);
- }
- }
- }
- else {
- outputBuffer[1] = secondByte;
- if (mergeBuffers) {
- data.copy(outputBuffer, dataOffset);
- try {
- this._socket.write(outputBuffer, 'binary', cb);
- }
- catch (e) {
- if (typeof cb == 'function') cb(e);
- else this.emit('error', e);
- }
- }
- else {
- try {
- this._socket.write(outputBuffer, 'binary');
- this._socket.write(data, 'binary', cb);
- }
- catch (e) {
- if (typeof cb == 'function') cb(e);
- else this.emit('error', e);
- }
- }
- }
-};
-
-/**
- * Execute message handler buffers
- *
- * @api private
- */
-
-Sender.prototype.flush = function() {
- if (this.processing) return;
-
- var handler = this.messageHandlers.shift();
- if (!handler) return;
-
- this.processing = true;
-
- var self = this;
-
- handler(function() {
- self.processing = false;
- self.flush();
- });
-};
-
-/**
- * Apply extensions to message
- *
- * @api private
- */
-
-Sender.prototype.applyExtensions = function(data, fin, compress, callback) {
- if (compress && data) {
- this.extensions[PerMessageDeflate.extensionName].compress(data, fin, callback);
- } else {
- callback(null, data);
- }
-};
-
-module.exports = Sender;
-
-function writeUInt16BE(value, offset) {
- this[offset] = (value & 0xff00)>>8;
- this[offset+1] = value & 0xff;
-}
-
-function writeUInt32BE(value, offset) {
- this[offset] = (value & 0xff000000)>>24;
- this[offset+1] = (value & 0xff0000)>>16;
- this[offset+2] = (value & 0xff00)>>8;
- this[offset+3] = value & 0xff;
-}
-
-function getArrayBuffer(data) {
- // data is either an ArrayBuffer or ArrayBufferView.
- var array = new Uint8Array(data.buffer || data)
- , l = data.byteLength || data.length
- , o = data.byteOffset || 0
- , buffer = new Buffer(l);
- for (var i = 0; i < l; ++i) {
- buffer[i] = array[o+i];
- }
- return buffer;
-}
-
-function getRandomMask() {
- return new Buffer([
- ~~(Math.random() * 255),
- ~~(Math.random() * 255),
- ~~(Math.random() * 255),
- ~~(Math.random() * 255)
- ]);
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Validation.fallback.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Validation.fallback.js
deleted file mode 100644
index 2c7c4fd..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Validation.fallback.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-module.exports.Validation = {
- isValidUTF8: function(buffer) {
- return true;
- }
-};
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Validation.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Validation.js
deleted file mode 100644
index 0f3109a..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/Validation.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-try {
- module.exports = require('../build/Release/validation');
-} catch (e) { try {
- module.exports = require('../build/default/validation');
-} catch (e) { try {
- module.exports = require('./Validation.fallback');
-} catch (e) {
- console.error('validation.node seems to not have been built. Run npm install.');
- throw e;
-}}}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/WebSocket.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/WebSocket.js
deleted file mode 100644
index bc3f84a..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/WebSocket.js
+++ /dev/null
@@ -1,937 +0,0 @@
-'use strict';
-
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var url = require('url')
- , util = require('util')
- , http = require('http')
- , https = require('https')
- , crypto = require('crypto')
- , stream = require('stream')
- , Ultron = require('ultron')
- , Options = require('options')
- , Sender = require('./Sender')
- , Receiver = require('./Receiver')
- , SenderHixie = require('./Sender.hixie')
- , ReceiverHixie = require('./Receiver.hixie')
- , Extensions = require('./Extensions')
- , PerMessageDeflate = require('./PerMessageDeflate')
- , EventEmitter = require('events').EventEmitter;
-
-/**
- * Constants
- */
-
-// Default protocol version
-
-var protocolVersion = 13;
-
-// Close timeout
-
-var closeTimeout = 30 * 1000; // Allow 30 seconds to terminate the connection cleanly
-
-/**
- * WebSocket implementation
- *
- * @constructor
- * @param {String} address Connection address.
- * @param {String|Array} protocols WebSocket protocols.
- * @param {Object} options Additional connection options.
- * @api public
- */
-function WebSocket(address, protocols, options) {
- EventEmitter.call(this);
-
- if (protocols && !Array.isArray(protocols) && 'object' === typeof protocols) {
- // accept the "options" Object as the 2nd argument
- options = protocols;
- protocols = null;
- }
-
- if ('string' === typeof protocols) {
- protocols = [ protocols ];
- }
-
- if (!Array.isArray(protocols)) {
- protocols = [];
- }
-
- this._socket = null;
- this._ultron = null;
- this._closeReceived = false;
- this.bytesReceived = 0;
- this.readyState = null;
- this.supports = {};
- this.extensions = {};
-
- if (Array.isArray(address)) {
- initAsServerClient.apply(this, address.concat(options));
- } else {
- initAsClient.apply(this, [address, protocols, options]);
- }
-}
-
-/**
- * Inherits from EventEmitter.
- */
-util.inherits(WebSocket, EventEmitter);
-
-/**
- * Ready States
- */
-["CONNECTING", "OPEN", "CLOSING", "CLOSED"].forEach(function each(state, index) {
- WebSocket.prototype[state] = WebSocket[state] = index;
-});
-
-/**
- * Gracefully closes the connection, after sending a description message to the server
- *
- * @param {Object} data to be sent to the server
- * @api public
- */
-WebSocket.prototype.close = function close(code, data) {
- if (this.readyState === WebSocket.CLOSED) return;
-
- if (this.readyState === WebSocket.CONNECTING) {
- this.readyState = WebSocket.CLOSED;
- return;
- }
-
- if (this.readyState === WebSocket.CLOSING) {
- if (this._closeReceived && this._isServer) {
- this.terminate();
- }
- return;
- }
-
- var self = this;
- try {
- this.readyState = WebSocket.CLOSING;
- this._closeCode = code;
- this._closeMessage = data;
- var mask = !this._isServer;
- this._sender.close(code, data, mask, function(err) {
- if (err) self.emit('error', err);
-
- if (self._closeReceived && self._isServer) {
- self.terminate();
- } else {
- // ensure that the connection is cleaned up even when no response of closing handshake.
- clearTimeout(self._closeTimer);
- self._closeTimer = setTimeout(cleanupWebsocketResources.bind(self, true), closeTimeout);
- }
- });
- } catch (e) {
- this.emit('error', e);
- }
-};
-
-/**
- * Pause the client stream
- *
- * @api public
- */
-WebSocket.prototype.pause = function pauser() {
- if (this.readyState !== WebSocket.OPEN) throw new Error('not opened');
-
- return this._socket.pause();
-};
-
-/**
- * Sends a ping
- *
- * @param {Object} data to be sent to the server
- * @param {Object} Members - mask: boolean, binary: boolean
- * @param {boolean} dontFailWhenClosed indicates whether or not to throw if the connection isnt open
- * @api public
- */
-WebSocket.prototype.ping = function ping(data, options, dontFailWhenClosed) {
- if (this.readyState !== WebSocket.OPEN) {
- if (dontFailWhenClosed === true) return;
- throw new Error('not opened');
- }
-
- options = options || {};
-
- if (typeof options.mask === 'undefined') options.mask = !this._isServer;
-
- this._sender.ping(data, options);
-};
-
-/**
- * Sends a pong
- *
- * @param {Object} data to be sent to the server
- * @param {Object} Members - mask: boolean, binary: boolean
- * @param {boolean} dontFailWhenClosed indicates whether or not to throw if the connection isnt open
- * @api public
- */
-WebSocket.prototype.pong = function(data, options, dontFailWhenClosed) {
- if (this.readyState !== WebSocket.OPEN) {
- if (dontFailWhenClosed === true) return;
- throw new Error('not opened');
- }
-
- options = options || {};
-
- if (typeof options.mask === 'undefined') options.mask = !this._isServer;
-
- this._sender.pong(data, options);
-};
-
-/**
- * Resume the client stream
- *
- * @api public
- */
-WebSocket.prototype.resume = function resume() {
- if (this.readyState !== WebSocket.OPEN) throw new Error('not opened');
-
- return this._socket.resume();
-};
-
-/**
- * Sends a piece of data
- *
- * @param {Object} data to be sent to the server
- * @param {Object} Members - mask: boolean, binary: boolean, compress: boolean
- * @param {function} Optional callback which is executed after the send completes
- * @api public
- */
-
-WebSocket.prototype.send = function send(data, options, cb) {
- if (typeof options === 'function') {
- cb = options;
- options = {};
- }
-
- if (this.readyState !== WebSocket.OPEN) {
- if (typeof cb === 'function') cb(new Error('not opened'));
- else throw new Error('not opened');
- return;
- }
-
- if (!data) data = '';
- if (this._queue) {
- var self = this;
- this._queue.push(function() { self.send(data, options, cb); });
- return;
- }
-
- options = options || {};
- options.fin = true;
-
- if (typeof options.binary === 'undefined') {
- options.binary = (data instanceof ArrayBuffer || data instanceof Buffer ||
- data instanceof Uint8Array ||
- data instanceof Uint16Array ||
- data instanceof Uint32Array ||
- data instanceof Int8Array ||
- data instanceof Int16Array ||
- data instanceof Int32Array ||
- data instanceof Float32Array ||
- data instanceof Float64Array);
- }
-
- if (typeof options.mask === 'undefined') options.mask = !this._isServer;
- if (typeof options.compress === 'undefined') options.compress = true;
- if (!this.extensions[PerMessageDeflate.extensionName]) {
- options.compress = false;
- }
-
- var readable = typeof stream.Readable === 'function'
- ? stream.Readable
- : stream.Stream;
-
- if (data instanceof readable) {
- startQueue(this);
- var self = this;
-
- sendStream(this, data, options, function send(error) {
- process.nextTick(function tock() {
- executeQueueSends(self);
- });
-
- if (typeof cb === 'function') cb(error);
- });
- } else {
- this._sender.send(data, options, cb);
- }
-};
-
-/**
- * Streams data through calls to a user supplied function
- *
- * @param {Object} Members - mask: boolean, binary: boolean, compress: boolean
- * @param {function} 'function (error, send)' which is executed on successive ticks of which send is 'function (data, final)'.
- * @api public
- */
-WebSocket.prototype.stream = function stream(options, cb) {
- if (typeof options === 'function') {
- cb = options;
- options = {};
- }
-
- var self = this;
-
- if (typeof cb !== 'function') throw new Error('callback must be provided');
-
- if (this.readyState !== WebSocket.OPEN) {
- if (typeof cb === 'function') cb(new Error('not opened'));
- else throw new Error('not opened');
- return;
- }
-
- if (this._queue) {
- this._queue.push(function () { self.stream(options, cb); });
- return;
- }
-
- options = options || {};
-
- if (typeof options.mask === 'undefined') options.mask = !this._isServer;
- if (typeof options.compress === 'undefined') options.compress = true;
- if (!this.extensions[PerMessageDeflate.extensionName]) {
- options.compress = false;
- }
-
- startQueue(this);
-
- function send(data, final) {
- try {
- if (self.readyState !== WebSocket.OPEN) throw new Error('not opened');
- options.fin = final === true;
- self._sender.send(data, options);
- if (!final) process.nextTick(cb.bind(null, null, send));
- else executeQueueSends(self);
- } catch (e) {
- if (typeof cb === 'function') cb(e);
- else {
- delete self._queue;
- self.emit('error', e);
- }
- }
- }
-
- process.nextTick(cb.bind(null, null, send));
-};
-
-/**
- * Immediately shuts down the connection
- *
- * @api public
- */
-WebSocket.prototype.terminate = function terminate() {
- if (this.readyState === WebSocket.CLOSED) return;
-
- if (this._socket) {
- this.readyState = WebSocket.CLOSING;
-
- // End the connection
- try { this._socket.end(); }
- catch (e) {
- // Socket error during end() call, so just destroy it right now
- cleanupWebsocketResources.call(this, true);
- return;
- }
-
- // Add a timeout to ensure that the connection is completely
- // cleaned up within 30 seconds, even if the clean close procedure
- // fails for whatever reason
- // First cleanup any pre-existing timeout from an earlier "terminate" call,
- // if one exists. Otherwise terminate calls in quick succession will leak timeouts
- // and hold the program open for `closeTimout` time.
- if (this._closeTimer) { clearTimeout(this._closeTimer); }
- this._closeTimer = setTimeout(cleanupWebsocketResources.bind(this, true), closeTimeout);
- } else if (this.readyState === WebSocket.CONNECTING) {
- cleanupWebsocketResources.call(this, true);
- }
-};
-
-/**
- * Expose bufferedAmount
- *
- * @api public
- */
-Object.defineProperty(WebSocket.prototype, 'bufferedAmount', {
- get: function get() {
- var amount = 0;
- if (this._socket) {
- amount = this._socket.bufferSize || 0;
- }
- return amount;
- }
-});
-
-/**
- * Emulates the W3C Browser based WebSocket interface using function members.
- *
- * @see http://dev.w3.org/html5/websockets/#the-websocket-interface
- * @api public
- */
-['open', 'error', 'close', 'message'].forEach(function(method) {
- Object.defineProperty(WebSocket.prototype, 'on' + method, {
- /**
- * Returns the current listener
- *
- * @returns {Mixed} the set function or undefined
- * @api public
- */
- get: function get() {
- var listener = this.listeners(method)[0];
- return listener ? (listener._listener ? listener._listener : listener) : undefined;
- },
-
- /**
- * Start listening for events
- *
- * @param {Function} listener the listener
- * @returns {Mixed} the set function or undefined
- * @api public
- */
- set: function set(listener) {
- this.removeAllListeners(method);
- this.addEventListener(method, listener);
- }
- });
-});
-
-/**
- * Emulates the W3C Browser based WebSocket interface using addEventListener.
- *
- * @see https://developer.mozilla.org/en/DOM/element.addEventListener
- * @see http://dev.w3.org/html5/websockets/#the-websocket-interface
- * @api public
- */
-WebSocket.prototype.addEventListener = function(method, listener) {
- var target = this;
-
- function onMessage (data, flags) {
- listener.call(target, new MessageEvent(data, flags.binary ? 'Binary' : 'Text', target));
- }
-
- function onClose (code, message) {
- listener.call(target, new CloseEvent(code, message, target));
- }
-
- function onError (event) {
- event.target = target;
- listener.call(target, event);
- }
-
- function onOpen () {
- listener.call(target, new OpenEvent(target));
- }
-
- if (typeof listener === 'function') {
- if (method === 'message') {
- // store a reference so we can return the original function from the
- // addEventListener hook
- onMessage._listener = listener;
- this.on(method, onMessage);
- } else if (method === 'close') {
- // store a reference so we can return the original function from the
- // addEventListener hook
- onClose._listener = listener;
- this.on(method, onClose);
- } else if (method === 'error') {
- // store a reference so we can return the original function from the
- // addEventListener hook
- onError._listener = listener;
- this.on(method, onError);
- } else if (method === 'open') {
- // store a reference so we can return the original function from the
- // addEventListener hook
- onOpen._listener = listener;
- this.on(method, onOpen);
- } else {
- this.on(method, listener);
- }
- }
-};
-
-module.exports = WebSocket;
-
-/**
- * W3C MessageEvent
- *
- * @see http://www.w3.org/TR/html5/comms.html
- * @constructor
- * @api private
- */
-function MessageEvent(dataArg, typeArg, target) {
- this.data = dataArg;
- this.type = typeArg;
- this.target = target;
-}
-
-/**
- * W3C CloseEvent
- *
- * @see http://www.w3.org/TR/html5/comms.html
- * @constructor
- * @api private
- */
-function CloseEvent(code, reason, target) {
- this.wasClean = (typeof code === 'undefined' || code === 1000);
- this.code = code;
- this.reason = reason;
- this.target = target;
-}
-
-/**
- * W3C OpenEvent
- *
- * @see http://www.w3.org/TR/html5/comms.html
- * @constructor
- * @api private
- */
-function OpenEvent(target) {
- this.target = target;
-}
-
-/**
- * Entirely private apis,
- * which may or may not be bound to a sepcific WebSocket instance.
- */
-function initAsServerClient(req, socket, upgradeHead, options) {
- options = new Options({
- protocolVersion: protocolVersion,
- protocol: null,
- extensions: {}
- }).merge(options);
-
- // expose state properties
- this.protocol = options.value.protocol;
- this.protocolVersion = options.value.protocolVersion;
- this.extensions = options.value.extensions;
- this.supports.binary = (this.protocolVersion !== 'hixie-76');
- this.upgradeReq = req;
- this.readyState = WebSocket.CONNECTING;
- this._isServer = true;
-
- // establish connection
- if (options.value.protocolVersion === 'hixie-76') {
- establishConnection.call(this, ReceiverHixie, SenderHixie, socket, upgradeHead);
- } else {
- establishConnection.call(this, Receiver, Sender, socket, upgradeHead);
- }
-}
-
-function initAsClient(address, protocols, options) {
- options = new Options({
- origin: null,
- protocolVersion: protocolVersion,
- host: null,
- headers: null,
- protocol: protocols.join(','),
- agent: null,
-
- // ssl-related options
- pfx: null,
- key: null,
- passphrase: null,
- cert: null,
- ca: null,
- ciphers: null,
- rejectUnauthorized: null,
- perMessageDeflate: true
- }).merge(options);
-
- if (options.value.protocolVersion !== 8 && options.value.protocolVersion !== 13) {
- throw new Error('unsupported protocol version');
- }
-
- // verify URL and establish http class
- var serverUrl = url.parse(address);
- var isUnixSocket = serverUrl.protocol === 'ws+unix:';
- if (!serverUrl.host && !isUnixSocket) throw new Error('invalid url');
- var isSecure = serverUrl.protocol === 'wss:' || serverUrl.protocol === 'https:';
- var httpObj = isSecure ? https : http;
- var port = serverUrl.port || (isSecure ? 443 : 80);
- var auth = serverUrl.auth;
-
- // prepare extensions
- var extensionsOffer = {};
- var perMessageDeflate;
- if (options.value.perMessageDeflate) {
- perMessageDeflate = new PerMessageDeflate(typeof options.value.perMessageDeflate !== true ? options.value.perMessageDeflate : {}, false);
- extensionsOffer[PerMessageDeflate.extensionName] = perMessageDeflate.offer();
- }
-
- // expose state properties
- this._isServer = false;
- this.url = address;
- this.protocolVersion = options.value.protocolVersion;
- this.supports.binary = (this.protocolVersion !== 'hixie-76');
-
- // begin handshake
- var key = new Buffer(options.value.protocolVersion + '-' + Date.now()).toString('base64');
- var shasum = crypto.createHash('sha1');
- shasum.update(key + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11');
- var expectedServerKey = shasum.digest('base64');
-
- var agent = options.value.agent;
-
- var headerHost = serverUrl.hostname;
- // Append port number to Host and Origin header, only if specified in the url
- // and non-default
- if (serverUrl.port) {
- if ((isSecure && (port !== 443)) || (!isSecure && (port !== 80))){
- headerHost = headerHost + ':' + port;
- }
- }
-
- var requestOptions = {
- port: port,
- host: serverUrl.hostname,
- headers: {
- 'Connection': 'Upgrade',
- 'Upgrade': 'websocket',
- 'Host': headerHost,
- 'Origin': headerHost,
- 'Sec-WebSocket-Version': options.value.protocolVersion,
- 'Sec-WebSocket-Key': key
- }
- };
-
- // If we have basic auth.
- if (auth) {
- requestOptions.headers.Authorization = 'Basic ' + new Buffer(auth).toString('base64');
- }
-
- if (options.value.protocol) {
- requestOptions.headers['Sec-WebSocket-Protocol'] = options.value.protocol;
- }
-
- if (options.value.host) {
- requestOptions.headers.Host = options.value.host;
- }
-
- if (options.value.headers) {
- for (var header in options.value.headers) {
- if (options.value.headers.hasOwnProperty(header)) {
- requestOptions.headers[header] = options.value.headers[header];
- }
- }
- }
-
- if (Object.keys(extensionsOffer).length) {
- requestOptions.headers['Sec-WebSocket-Extensions'] = Extensions.format(extensionsOffer);
- }
-
- if (options.isDefinedAndNonNull('pfx')
- || options.isDefinedAndNonNull('key')
- || options.isDefinedAndNonNull('passphrase')
- || options.isDefinedAndNonNull('cert')
- || options.isDefinedAndNonNull('ca')
- || options.isDefinedAndNonNull('ciphers')
- || options.isDefinedAndNonNull('rejectUnauthorized')) {
-
- if (options.isDefinedAndNonNull('pfx')) requestOptions.pfx = options.value.pfx;
- if (options.isDefinedAndNonNull('key')) requestOptions.key = options.value.key;
- if (options.isDefinedAndNonNull('passphrase')) requestOptions.passphrase = options.value.passphrase;
- if (options.isDefinedAndNonNull('cert')) requestOptions.cert = options.value.cert;
- if (options.isDefinedAndNonNull('ca')) requestOptions.ca = options.value.ca;
- if (options.isDefinedAndNonNull('ciphers')) requestOptions.ciphers = options.value.ciphers;
- if (options.isDefinedAndNonNull('rejectUnauthorized')) requestOptions.rejectUnauthorized = options.value.rejectUnauthorized;
-
- if (!agent) {
- // global agent ignores client side certificates
- agent = new httpObj.Agent(requestOptions);
- }
- }
-
- requestOptions.path = serverUrl.path || '/';
-
- if (agent) {
- requestOptions.agent = agent;
- }
-
- if (isUnixSocket) {
- requestOptions.socketPath = serverUrl.pathname;
- }
- if (options.value.origin) {
- if (options.value.protocolVersion < 13) requestOptions.headers['Sec-WebSocket-Origin'] = options.value.origin;
- else requestOptions.headers.Origin = options.value.origin;
- }
-
- var self = this;
- var req = httpObj.request(requestOptions);
-
- req.on('error', function onerror(error) {
- self.emit('error', error);
- cleanupWebsocketResources.call(this, error);
- });
-
- req.once('response', function response(res) {
- var error;
-
- if (!self.emit('unexpected-response', req, res)) {
- error = new Error('unexpected server response (' + res.statusCode + ')');
- req.abort();
- self.emit('error', error);
- }
-
- cleanupWebsocketResources.call(this, error);
- });
-
- req.once('upgrade', function upgrade(res, socket, upgradeHead) {
- if (self.readyState === WebSocket.CLOSED) {
- // client closed before server accepted connection
- self.emit('close');
- self.removeAllListeners();
- socket.end();
- return;
- }
-
- var serverKey = res.headers['sec-websocket-accept'];
- if (typeof serverKey === 'undefined' || serverKey !== expectedServerKey) {
- self.emit('error', 'invalid server key');
- self.removeAllListeners();
- socket.end();
- return;
- }
-
- var serverProt = res.headers['sec-websocket-protocol'];
- var protList = (options.value.protocol || "").split(/, */);
- var protError = null;
-
- if (!options.value.protocol && serverProt) {
- protError = 'server sent a subprotocol even though none requested';
- } else if (options.value.protocol && !serverProt) {
- protError = 'server sent no subprotocol even though requested';
- } else if (serverProt && protList.indexOf(serverProt) === -1) {
- protError = 'server responded with an invalid protocol';
- }
-
- if (protError) {
- self.emit('error', protError);
- self.removeAllListeners();
- socket.end();
- return;
- } else if (serverProt) {
- self.protocol = serverProt;
- }
-
- var serverExtensions = Extensions.parse(res.headers['sec-websocket-extensions']);
- if (perMessageDeflate && serverExtensions[PerMessageDeflate.extensionName]) {
- try {
- perMessageDeflate.accept(serverExtensions[PerMessageDeflate.extensionName]);
- } catch (err) {
- self.emit('error', 'invalid extension parameter');
- self.removeAllListeners();
- socket.end();
- return;
- }
- self.extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
- }
-
- establishConnection.call(self, Receiver, Sender, socket, upgradeHead);
-
- // perform cleanup on http resources
- req.removeAllListeners();
- req = null;
- agent = null;
- });
-
- req.end();
- this.readyState = WebSocket.CONNECTING;
-}
-
-function establishConnection(ReceiverClass, SenderClass, socket, upgradeHead) {
- var ultron = this._ultron = new Ultron(socket);
- this._socket = socket;
-
- socket.setTimeout(0);
- socket.setNoDelay(true);
- var self = this;
- this._receiver = new ReceiverClass(this.extensions);
-
- // socket cleanup handlers
- ultron.on('end', cleanupWebsocketResources.bind(this));
- ultron.on('close', cleanupWebsocketResources.bind(this));
- ultron.on('error', cleanupWebsocketResources.bind(this));
-
- // ensure that the upgradeHead is added to the receiver
- function firstHandler(data) {
- if (self.readyState !== WebSocket.OPEN && self.readyState !== WebSocket.CLOSING) return;
-
- if (upgradeHead && upgradeHead.length > 0) {
- self.bytesReceived += upgradeHead.length;
- var head = upgradeHead;
- upgradeHead = null;
- self._receiver.add(head);
- }
-
- dataHandler = realHandler;
-
- if (data) {
- self.bytesReceived += data.length;
- self._receiver.add(data);
- }
- }
-
- // subsequent packets are pushed straight to the receiver
- function realHandler(data) {
- if (data) self.bytesReceived += data.length;
- self._receiver.add(data);
- }
-
- var dataHandler = firstHandler;
-
- // if data was passed along with the http upgrade,
- // this will schedule a push of that on to the receiver.
- // this has to be done on next tick, since the caller
- // hasn't had a chance to set event handlers on this client
- // object yet.
- process.nextTick(firstHandler);
-
- // receiver event handlers
- self._receiver.ontext = function ontext(data, flags) {
- flags = flags || {};
-
- self.emit('message', data, flags);
- };
-
- self._receiver.onbinary = function onbinary(data, flags) {
- flags = flags || {};
-
- flags.binary = true;
- self.emit('message', data, flags);
- };
-
- self._receiver.onping = function onping(data, flags) {
- flags = flags || {};
-
- self.pong(data, {
- mask: !self._isServer,
- binary: flags.binary === true
- }, true);
-
- self.emit('ping', data, flags);
- };
-
- self._receiver.onpong = function onpong(data, flags) {
- self.emit('pong', data, flags || {});
- };
-
- self._receiver.onclose = function onclose(code, data, flags) {
- flags = flags || {};
-
- self._closeReceived = true;
- self.close(code, data);
- };
-
- self._receiver.onerror = function onerror(reason, errorCode) {
- // close the connection when the receiver reports a HyBi error code
- self.close(typeof errorCode !== 'undefined' ? errorCode : 1002, '');
- self.emit('error', reason, errorCode);
- };
-
- // finalize the client
- this._sender = new SenderClass(socket, this.extensions);
- this._sender.on('error', function onerror(error) {
- self.close(1002, '');
- self.emit('error', error);
- });
-
- this.readyState = WebSocket.OPEN;
- this.emit('open');
-
- ultron.on('data', dataHandler);
-}
-
-function startQueue(instance) {
- instance._queue = instance._queue || [];
-}
-
-function executeQueueSends(instance) {
- var queue = instance._queue;
- if (typeof queue === 'undefined') return;
-
- delete instance._queue;
- for (var i = 0, l = queue.length; i < l; ++i) {
- queue[i]();
- }
-}
-
-function sendStream(instance, stream, options, cb) {
- stream.on('data', function incoming(data) {
- if (instance.readyState !== WebSocket.OPEN) {
- if (typeof cb === 'function') cb(new Error('not opened'));
- else {
- delete instance._queue;
- instance.emit('error', new Error('not opened'));
- }
- return;
- }
-
- options.fin = false;
- instance._sender.send(data, options);
- });
-
- stream.on('end', function end() {
- if (instance.readyState !== WebSocket.OPEN) {
- if (typeof cb === 'function') cb(new Error('not opened'));
- else {
- delete instance._queue;
- instance.emit('error', new Error('not opened'));
- }
- return;
- }
-
- options.fin = true;
- instance._sender.send(null, options);
-
- if (typeof cb === 'function') cb(null);
- });
-}
-
-function cleanupWebsocketResources(error) {
- if (this.readyState === WebSocket.CLOSED) return;
-
- var emitClose = this.readyState !== WebSocket.CONNECTING;
- this.readyState = WebSocket.CLOSED;
-
- clearTimeout(this._closeTimer);
- this._closeTimer = null;
-
- if (emitClose) {
- this.emit('close', this._closeCode || 1000, this._closeMessage || '');
- }
-
- if (this._socket) {
- if (this._ultron) this._ultron.destroy();
- this._socket.on('error', function onerror() {
- try { this.destroy(); }
- catch (e) {}
- });
-
- try {
- if (!error) this._socket.end();
- else this._socket.destroy();
- } catch (e) { /* Ignore termination errors */ }
-
- this._socket = null;
- this._ultron = null;
- }
-
- if (this._sender) {
- this._sender.removeAllListeners();
- this._sender = null;
- }
-
- if (this._receiver) {
- this._receiver.cleanup();
- this._receiver = null;
- }
-
- this.removeAllListeners();
- this.on('error', function onerror() {}); // catch all errors after this
- delete this._queue;
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/WebSocketServer.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/WebSocketServer.js
deleted file mode 100644
index a2f3a61..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/WebSocketServer.js
+++ /dev/null
@@ -1,501 +0,0 @@
-/*!
- * ws: a node.js websocket client
- * Copyright(c) 2011 Einar Otto Stangvik
- * MIT Licensed
- */
-
-var util = require('util')
- , events = require('events')
- , http = require('http')
- , crypto = require('crypto')
- , Options = require('options')
- , WebSocket = require('./WebSocket')
- , Extensions = require('./Extensions')
- , PerMessageDeflate = require('./PerMessageDeflate')
- , tls = require('tls')
- , url = require('url');
-
-/**
- * WebSocket Server implementation
- */
-
-function WebSocketServer(options, callback) {
- events.EventEmitter.call(this);
-
- options = new Options({
- host: '0.0.0.0',
- port: null,
- server: null,
- verifyClient: null,
- handleProtocols: null,
- path: null,
- noServer: false,
- disableHixie: false,
- clientTracking: true,
- perMessageDeflate: true
- }).merge(options);
-
- if (!options.isDefinedAndNonNull('port') && !options.isDefinedAndNonNull('server') && !options.value.noServer) {
- throw new TypeError('`port` or a `server` must be provided');
- }
-
- var self = this;
-
- if (options.isDefinedAndNonNull('port')) {
- this._server = http.createServer(function (req, res) {
- res.writeHead(200, {'Content-Type': 'text/plain'});
- res.end('Not implemented');
- });
- this._server.listen(options.value.port, options.value.host, callback);
- this._closeServer = function() { if (self._server) self._server.close(); };
- }
- else if (options.value.server) {
- this._server = options.value.server;
- if (options.value.path) {
- // take note of the path, to avoid collisions when multiple websocket servers are
- // listening on the same http server
- if (this._server._webSocketPaths && options.value.server._webSocketPaths[options.value.path]) {
- throw new Error('two instances of WebSocketServer cannot listen on the same http server path');
- }
- if (typeof this._server._webSocketPaths !== 'object') {
- this._server._webSocketPaths = {};
- }
- this._server._webSocketPaths[options.value.path] = 1;
- }
- }
- if (this._server) this._server.once('listening', function() { self.emit('listening'); });
-
- if (typeof this._server != 'undefined') {
- this._server.on('error', function(error) {
- self.emit('error', error)
- });
- this._server.on('upgrade', function(req, socket, upgradeHead) {
- //copy upgradeHead to avoid retention of large slab buffers used in node core
- var head = new Buffer(upgradeHead.length);
- upgradeHead.copy(head);
-
- self.handleUpgrade(req, socket, head, function(client) {
- self.emit('connection'+req.url, client);
- self.emit('connection', client);
- });
- });
- }
-
- this.options = options.value;
- this.path = options.value.path;
- this.clients = [];
-}
-
-/**
- * Inherits from EventEmitter.
- */
-
-util.inherits(WebSocketServer, events.EventEmitter);
-
-/**
- * Immediately shuts down the connection.
- *
- * @api public
- */
-
-WebSocketServer.prototype.close = function() {
- // terminate all associated clients
- var error = null;
- try {
- for (var i = 0, l = this.clients.length; i < l; ++i) {
- this.clients[i].terminate();
- }
- }
- catch (e) {
- error = e;
- }
-
- // remove path descriptor, if any
- if (this.path && this._server._webSocketPaths) {
- delete this._server._webSocketPaths[this.path];
- if (Object.keys(this._server._webSocketPaths).length == 0) {
- delete this._server._webSocketPaths;
- }
- }
-
- // close the http server if it was internally created
- try {
- if (typeof this._closeServer !== 'undefined') {
- this._closeServer();
- }
- }
- finally {
- delete this._server;
- }
- if (error) throw error;
-}
-
-/**
- * Handle a HTTP Upgrade request.
- *
- * @api public
- */
-
-WebSocketServer.prototype.handleUpgrade = function(req, socket, upgradeHead, cb) {
- // check for wrong path
- if (this.options.path) {
- var u = url.parse(req.url);
- if (u && u.pathname !== this.options.path) return;
- }
-
- if (typeof req.headers.upgrade === 'undefined' || req.headers.upgrade.toLowerCase() !== 'websocket') {
- abortConnection(socket, 400, 'Bad Request');
- return;
- }
-
- if (req.headers['sec-websocket-key1']) handleHixieUpgrade.apply(this, arguments);
- else handleHybiUpgrade.apply(this, arguments);
-}
-
-module.exports = WebSocketServer;
-
-/**
- * Entirely private apis,
- * which may or may not be bound to a sepcific WebSocket instance.
- */
-
-function handleHybiUpgrade(req, socket, upgradeHead, cb) {
- // handle premature socket errors
- var errorHandler = function() {
- try { socket.destroy(); } catch (e) {}
- }
- socket.on('error', errorHandler);
-
- // verify key presence
- if (!req.headers['sec-websocket-key']) {
- abortConnection(socket, 400, 'Bad Request');
- return;
- }
-
- // verify version
- var version = parseInt(req.headers['sec-websocket-version']);
- if ([8, 13].indexOf(version) === -1) {
- abortConnection(socket, 400, 'Bad Request');
- return;
- }
-
- // verify protocol
- var protocols = req.headers['sec-websocket-protocol'];
-
- // verify client
- var origin = version < 13 ?
- req.headers['sec-websocket-origin'] :
- req.headers['origin'];
-
- // handle extensions offer
- var extensionsOffer = Extensions.parse(req.headers['sec-websocket-extensions']);
-
- // handler to call when the connection sequence completes
- var self = this;
- var completeHybiUpgrade2 = function(protocol) {
-
- // calc key
- var key = req.headers['sec-websocket-key'];
- var shasum = crypto.createHash('sha1');
- shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11");
- key = shasum.digest('base64');
-
- var headers = [
- 'HTTP/1.1 101 Switching Protocols'
- , 'Upgrade: websocket'
- , 'Connection: Upgrade'
- , 'Sec-WebSocket-Accept: ' + key
- ];
-
- if (typeof protocol != 'undefined') {
- headers.push('Sec-WebSocket-Protocol: ' + protocol);
- }
-
- var extensions = {};
- try {
- extensions = acceptExtensions.call(self, extensionsOffer);
- } catch (err) {
- abortConnection(socket, 400, 'Bad Request');
- return;
- }
-
- if (Object.keys(extensions).length) {
- var serverExtensions = {};
- Object.keys(extensions).forEach(function(token) {
- serverExtensions[token] = [extensions[token].params]
- });
- headers.push('Sec-WebSocket-Extensions: ' + Extensions.format(serverExtensions));
- }
-
- // allows external modification/inspection of handshake headers
- self.emit('headers', headers);
-
- socket.setTimeout(0);
- socket.setNoDelay(true);
- try {
- socket.write(headers.concat('', '').join('\r\n'));
- }
- catch (e) {
- // if the upgrade write fails, shut the connection down hard
- try { socket.destroy(); } catch (e) {}
- return;
- }
-
- var client = new WebSocket([req, socket, upgradeHead], {
- protocolVersion: version,
- protocol: protocol,
- extensions: extensions
- });
-
- if (self.options.clientTracking) {
- self.clients.push(client);
- client.on('close', function() {
- var index = self.clients.indexOf(client);
- if (index != -1) {
- self.clients.splice(index, 1);
- }
- });
- }
-
- // signal upgrade complete
- socket.removeListener('error', errorHandler);
- cb(client);
- }
-
- // optionally call external protocol selection handler before
- // calling completeHybiUpgrade2
- var completeHybiUpgrade1 = function() {
- // choose from the sub-protocols
- if (typeof self.options.handleProtocols == 'function') {
- var protList = (protocols || "").split(/, */);
- var callbackCalled = false;
- var res = self.options.handleProtocols(protList, function(result, protocol) {
- callbackCalled = true;
- if (!result) abortConnection(socket, 401, 'Unauthorized');
- else completeHybiUpgrade2(protocol);
- });
- if (!callbackCalled) {
- // the handleProtocols handler never called our callback
- abortConnection(socket, 501, 'Could not process protocols');
- }
- return;
- } else {
- if (typeof protocols !== 'undefined') {
- completeHybiUpgrade2(protocols.split(/, */)[0]);
- }
- else {
- completeHybiUpgrade2();
- }
- }
- }
-
- // optionally call external client verification handler
- if (typeof this.options.verifyClient == 'function') {
- var info = {
- origin: origin,
- secure: typeof req.connection.authorized !== 'undefined' || typeof req.connection.encrypted !== 'undefined',
- req: req
- };
- if (this.options.verifyClient.length == 2) {
- this.options.verifyClient(info, function(result, code, name) {
- if (typeof code === 'undefined') code = 401;
- if (typeof name === 'undefined') name = http.STATUS_CODES[code];
-
- if (!result) abortConnection(socket, code, name);
- else completeHybiUpgrade1();
- });
- return;
- }
- else if (!this.options.verifyClient(info)) {
- abortConnection(socket, 401, 'Unauthorized');
- return;
- }
- }
-
- completeHybiUpgrade1();
-}
-
-function handleHixieUpgrade(req, socket, upgradeHead, cb) {
- // handle premature socket errors
- var errorHandler = function() {
- try { socket.destroy(); } catch (e) {}
- }
- socket.on('error', errorHandler);
-
- // bail if options prevent hixie
- if (this.options.disableHixie) {
- abortConnection(socket, 401, 'Hixie support disabled');
- return;
- }
-
- // verify key presence
- if (!req.headers['sec-websocket-key2']) {
- abortConnection(socket, 400, 'Bad Request');
- return;
- }
-
- var origin = req.headers['origin']
- , self = this;
-
- // setup handshake completion to run after client has been verified
- var onClientVerified = function() {
- var wshost;
- if (!req.headers['x-forwarded-host'])
- wshost = req.headers.host;
- else
- wshost = req.headers['x-forwarded-host'];
- var location = ((req.headers['x-forwarded-proto'] === 'https' || socket.encrypted) ? 'wss' : 'ws') + '://' + wshost + req.url
- , protocol = req.headers['sec-websocket-protocol'];
-
- // handshake completion code to run once nonce has been successfully retrieved
- var completeHandshake = function(nonce, rest) {
- // calculate key
- var k1 = req.headers['sec-websocket-key1']
- , k2 = req.headers['sec-websocket-key2']
- , md5 = crypto.createHash('md5');
-
- [k1, k2].forEach(function (k) {
- var n = parseInt(k.replace(/[^\d]/g, ''))
- , spaces = k.replace(/[^ ]/g, '').length;
- if (spaces === 0 || n % spaces !== 0){
- abortConnection(socket, 400, 'Bad Request');
- return;
- }
- n /= spaces;
- md5.update(String.fromCharCode(
- n >> 24 & 0xFF,
- n >> 16 & 0xFF,
- n >> 8 & 0xFF,
- n & 0xFF));
- });
- md5.update(nonce.toString('binary'));
-
- var headers = [
- 'HTTP/1.1 101 Switching Protocols'
- , 'Upgrade: WebSocket'
- , 'Connection: Upgrade'
- , 'Sec-WebSocket-Location: ' + location
- ];
- if (typeof protocol != 'undefined') headers.push('Sec-WebSocket-Protocol: ' + protocol);
- if (typeof origin != 'undefined') headers.push('Sec-WebSocket-Origin: ' + origin);
-
- socket.setTimeout(0);
- socket.setNoDelay(true);
- try {
- // merge header and hash buffer
- var headerBuffer = new Buffer(headers.concat('', '').join('\r\n'));
- var hashBuffer = new Buffer(md5.digest('binary'), 'binary');
- var handshakeBuffer = new Buffer(headerBuffer.length + hashBuffer.length);
- headerBuffer.copy(handshakeBuffer, 0);
- hashBuffer.copy(handshakeBuffer, headerBuffer.length);
-
- // do a single write, which - upon success - causes a new client websocket to be setup
- socket.write(handshakeBuffer, 'binary', function(err) {
- if (err) return; // do not create client if an error happens
- var client = new WebSocket([req, socket, rest], {
- protocolVersion: 'hixie-76',
- protocol: protocol
- });
- if (self.options.clientTracking) {
- self.clients.push(client);
- client.on('close', function() {
- var index = self.clients.indexOf(client);
- if (index != -1) {
- self.clients.splice(index, 1);
- }
- });
- }
-
- // signal upgrade complete
- socket.removeListener('error', errorHandler);
- cb(client);
- });
- }
- catch (e) {
- try { socket.destroy(); } catch (e) {}
- return;
- }
- }
-
- // retrieve nonce
- var nonceLength = 8;
- if (upgradeHead && upgradeHead.length >= nonceLength) {
- var nonce = upgradeHead.slice(0, nonceLength);
- var rest = upgradeHead.length > nonceLength ? upgradeHead.slice(nonceLength) : null;
- completeHandshake.call(self, nonce, rest);
- }
- else {
- // nonce not present in upgradeHead, so we must wait for enough data
- // data to arrive before continuing
- var nonce = new Buffer(nonceLength);
- upgradeHead.copy(nonce, 0);
- var received = upgradeHead.length;
- var rest = null;
- var handler = function (data) {
- var toRead = Math.min(data.length, nonceLength - received);
- if (toRead === 0) return;
- data.copy(nonce, received, 0, toRead);
- received += toRead;
- if (received == nonceLength) {
- socket.removeListener('data', handler);
- if (toRead < data.length) rest = data.slice(toRead);
- completeHandshake.call(self, nonce, rest);
- }
- }
- socket.on('data', handler);
- }
- }
-
- // verify client
- if (typeof this.options.verifyClient == 'function') {
- var info = {
- origin: origin,
- secure: typeof req.connection.authorized !== 'undefined' || typeof req.connection.encrypted !== 'undefined',
- req: req
- };
- if (this.options.verifyClient.length == 2) {
- var self = this;
- this.options.verifyClient(info, function(result, code, name) {
- if (typeof code === 'undefined') code = 401;
- if (typeof name === 'undefined') name = http.STATUS_CODES[code];
-
- if (!result) abortConnection(socket, code, name);
- else onClientVerified.apply(self);
- });
- return;
- }
- else if (!this.options.verifyClient(info)) {
- abortConnection(socket, 401, 'Unauthorized');
- return;
- }
- }
-
- // no client verification required
- onClientVerified();
-}
-
-function acceptExtensions(offer) {
- var extensions = {};
- var options = this.options.perMessageDeflate;
- if (options && offer[PerMessageDeflate.extensionName]) {
- var perMessageDeflate = new PerMessageDeflate(options !== true ? options : {}, true);
- perMessageDeflate.accept(offer[PerMessageDeflate.extensionName]);
- extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
- }
- return extensions;
-}
-
-function abortConnection(socket, code, name) {
- try {
- var response = [
- 'HTTP/1.1 ' + code + ' ' + name,
- 'Content-type: text/html'
- ];
- socket.write(response.concat('', '').join('\r\n'));
- }
- catch (e) { /* ignore errors - we've aborted this connection */ }
- finally {
- // ensure that an early aborted connection is shut down completely
- try { socket.destroy(); } catch (e) {}
- }
-}
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/browser.js b/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/browser.js
deleted file mode 100644
index 8d3a755..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/lib/browser.js
+++ /dev/null
@@ -1,43 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var global = (function() { return this; })();
-
-/**
- * WebSocket constructor.
- */
-
-var WebSocket = global.WebSocket || global.MozWebSocket;
-
-/**
- * Module exports.
- */
-
-module.exports = WebSocket ? ws : null;
-
-/**
- * WebSocket constructor.
- *
- * The third `opts` options object gets ignored in web browsers, since it's
- * non-standard, and throws a TypeError if passed to the constructor.
- * See: https://github.com/einaros/ws/issues/227
- *
- * @param {String} uri
- * @param {Array} protocols (optional)
- * @param {Object) opts (optional)
- * @api public
- */
-
-function ws(uri, protocols, opts) {
- var instance;
- if (protocols) {
- instance = new WebSocket(uri, protocols);
- } else {
- instance = new WebSocket(uri);
- }
- return instance;
-}
-
-if (WebSocket) ws.prototype = WebSocket.prototype;
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/.dntrc b/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/.dntrc
deleted file mode 100644
index d2c6cad..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/.dntrc
+++ /dev/null
@@ -1,37 +0,0 @@
-## DNT config file
-## see https://github.com/rvagg/dnt
-
-NODE_VERSIONS="\
- v0.11.14 \
- v0.11.13 \
- v0.10.34 \
- v0.10.33 \
- v0.10.32 \
- v0.10.31 \
- v0.10.30 \
- v0.10.29 \
- v0.10.28 \
- v0.10.26 \
- v0.10.25 \
- v0.10.24 \
- v0.10.23 \
- v0.10.22 \
- v0.10.21 \
- v0.10.20 \
- v0.10.19 \
- v0.8.28 \
- v0.8.27 \
- v0.8.26 \
- v0.8.24 \
-"
-IOJS_VERSIONS="\
- v1.0.1-release
-"
-OUTPUT_PREFIX="nan-"
-TEST_CMD=" \
- cd /dnt/ && \
- npm install && \
- node_modules/.bin/node-gyp --nodedir /usr/src/node/ rebuild --directory test && \
- node_modules/.bin/tap --gc test/js/*-test.js \
-"
-
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/CHANGELOG.md b/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/CHANGELOG.md
deleted file mode 100644
index 4408f14..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/CHANGELOG.md
+++ /dev/null
@@ -1,216 +0,0 @@
-# NAN ChangeLog
-
-**Version 1.4.1: current Node unstable: 0.11.14, Node stable: 0.10.33**
-
-### 1.4.1 Nov 8 2014
- - Bugfix: Handle DEBUG definition correctly
- - Bugfix: Accept int as Boolean
-
-### 1.4.0 Nov 1 2014
-
- - Feature: Added NAN_GC_CALLBACK 6a5c245
- - Performance: Removed unnecessary local handle creation 18a7243, 41fe2f8
- - Correctness: Added constness to references in NanHasInstance 02c61cd
- - Warnings: Fixed spurious warnings from -Wundef and -Wshadow, 541b122, 99d8cb6
- - Windoze: Shut Visual Studio up when compiling 8d558c1
- - License: Switch to plain MIT from custom hacked MIT license 11de983
- - Build: Added test target to Makefile e232e46
- - Performance: Removed superfluous scope in NanAsyncWorker f4b7821
- - Sugar/Feature: Added NanReturnThis() and NanReturnHolder() shorthands 237a5ff, d697208
- - Feature: Added suitable overload of NanNew for v8::Integer::NewFromUnsigned b27b450
-
-### 1.3.0 Aug 2 2014
-
- - Added NanNew(std::string)
- - Added NanNew(std::string&)
- - Added NanAsciiString helper class
- - Added NanUtf8String helper class
- - Added NanUcs2String helper class
- - Deprecated NanRawString()
- - Deprecated NanCString()
- - Added NanGetIsolateData(v8::Isolate *isolate)
- - Added NanMakeCallback(v8::Handle target, v8::Handle func, int argc, v8::Handle* argv)
- - Added NanMakeCallback(v8::Handle target, v8::Handle symbol, int argc, v8::Handle* argv)
- - Added NanMakeCallback(v8::Handle target, const char* method, int argc, v8::Handle* argv)
- - Added NanSetTemplate(v8::Handle templ, v8::Handle name , v8::Handle value, v8::PropertyAttribute attributes)
- - Added NanSetPrototypeTemplate(v8::Local templ, v8::Handle name, v8::Handle value, v8::PropertyAttribute attributes)
- - Added NanSetInstanceTemplate(v8::Local templ, const char *name, v8::Handle value)
- - Added NanSetInstanceTemplate(v8::Local templ, v8::Handle name, v8::Handle value, v8::PropertyAttribute attributes)
-
-### 1.2.0 Jun 5 2014
-
- - Add NanSetPrototypeTemplate
- - Changed NAN_WEAK_CALLBACK internals, switched _NanWeakCallbackData to class,
- introduced _NanWeakCallbackDispatcher
- - Removed -Wno-unused-local-typedefs from test builds
- - Made test builds Windows compatible ('Sleep()')
-
-### 1.1.2 May 28 2014
-
- - Release to fix more stuff-ups in 1.1.1
-
-### 1.1.1 May 28 2014
-
- - Release to fix version mismatch in nan.h and lack of changelog entry for 1.1.0
-
-### 1.1.0 May 25 2014
-
- - Remove nan_isolate, use v8::Isolate::GetCurrent() internally instead
- - Additional explicit overloads for NanNew(): (char*,int), (uint8_t*[,int]),
- (uint16_t*[,int), double, int, unsigned int, bool, v8::String::ExternalStringResource*,
- v8::String::ExternalAsciiStringResource*
- - Deprecate NanSymbol()
- - Added SetErrorMessage() and ErrorMessage() to NanAsyncWorker
-
-### 1.0.0 May 4 2014
-
- - Heavy API changes for V8 3.25 / Node 0.11.13
- - Use cpplint.py
- - Removed NanInitPersistent
- - Removed NanPersistentToLocal
- - Removed NanFromV8String
- - Removed NanMakeWeak
- - Removed NanNewLocal
- - Removed NAN_WEAK_CALLBACK_OBJECT
- - Removed NAN_WEAK_CALLBACK_DATA
- - Introduce NanNew, replaces NanNewLocal, NanPersistentToLocal, adds many overloaded typed versions
- - Introduce NanUndefined, NanNull, NanTrue and NanFalse
- - Introduce NanEscapableScope and NanEscapeScope
- - Introduce NanMakeWeakPersistent (requires a special callback to work on both old and new node)
- - Introduce NanMakeCallback for node::MakeCallback
- - Introduce NanSetTemplate
- - Introduce NanGetCurrentContext
- - Introduce NanCompileScript and NanRunScript
- - Introduce NanAdjustExternalMemory
- - Introduce NanAddGCEpilogueCallback, NanAddGCPrologueCallback, NanRemoveGCEpilogueCallback, NanRemoveGCPrologueCallback
- - Introduce NanGetHeapStatistics
- - Rename NanAsyncWorker#SavePersistent() to SaveToPersistent()
-
-### 0.8.0 Jan 9 2014
-
- - NanDispose -> NanDisposePersistent, deprecate NanDispose
- - Extract _NAN_*_RETURN_TYPE, pull up NAN_*()
-
-### 0.7.1 Jan 9 2014
-
- - Fixes to work against debug builds of Node
- - Safer NanPersistentToLocal (avoid reinterpret_cast)
- - Speed up common NanRawString case by only extracting flattened string when necessary
-
-### 0.7.0 Dec 17 2013
-
- - New no-arg form of NanCallback() constructor.
- - NanCallback#Call takes Handle rather than Local
- - Removed deprecated NanCallback#Run method, use NanCallback#Call instead
- - Split off _NAN_*_ARGS_TYPE from _NAN_*_ARGS
- - Restore (unofficial) Node 0.6 compatibility at NanCallback#Call()
- - Introduce NanRawString() for char* (or appropriate void*) from v8::String
- (replacement for NanFromV8String)
- - Introduce NanCString() for null-terminated char* from v8::String
-
-### 0.6.0 Nov 21 2013
-
- - Introduce NanNewLocal(v8::Handle value) for use in place of
- v8::Local::New(...) since v8 started requiring isolate in Node 0.11.9
-
-### 0.5.2 Nov 16 2013
-
- - Convert SavePersistent and GetFromPersistent in NanAsyncWorker from protected and public
-
-### 0.5.1 Nov 12 2013
-
- - Use node::MakeCallback() instead of direct v8::Function::Call()
-
-### 0.5.0 Nov 11 2013
-
- - Added @TooTallNate as collaborator
- - New, much simpler, "include_dirs" for binding.gyp
- - Added full range of NAN_INDEX_* macros to match NAN_PROPERTY_* macros
-
-### 0.4.4 Nov 2 2013
-
- - Isolate argument from v8::Persistent::MakeWeak removed for 0.11.8+
-
-### 0.4.3 Nov 2 2013
-
- - Include node_object_wrap.h, removed from node.h for Node 0.11.8.
-
-### 0.4.2 Nov 2 2013
-
- - Handle deprecation of v8::Persistent::Dispose(v8::Isolate* isolate)) for
- Node 0.11.8 release.
-
-### 0.4.1 Sep 16 2013
-
- - Added explicit `#include ` as it was removed from node.h for v0.11.8
-
-### 0.4.0 Sep 2 2013
-
- - Added NAN_INLINE and NAN_DEPRECATED and made use of them
- - Added NanError, NanTypeError and NanRangeError
- - Cleaned up code
-
-### 0.3.2 Aug 30 2013
-
- - Fix missing scope declaration in GetFromPersistent() and SaveToPersistent
- in NanAsyncWorker
-
-### 0.3.1 Aug 20 2013
-
- - fix "not all control paths return a value" compile warning on some platforms
-
-### 0.3.0 Aug 19 2013
-
- - Made NAN work with NPM
- - Lots of fixes to NanFromV8String, pulling in features from new Node core
- - Changed node::encoding to Nan::Encoding in NanFromV8String to unify the API
- - Added optional error number argument for NanThrowError()
- - Added NanInitPersistent()
- - Added NanReturnNull() and NanReturnEmptyString()
- - Added NanLocker and NanUnlocker
- - Added missing scopes
- - Made sure to clear disposed Persistent handles
- - Changed NanAsyncWorker to allocate error messages on the heap
- - Changed NanThrowError(Local) to NanThrowError(Handle)
- - Fixed leak in NanAsyncWorker when errmsg is used
-
-### 0.2.2 Aug 5 2013
-
- - Fixed usage of undefined variable with node::BASE64 in NanFromV8String()
-
-### 0.2.1 Aug 5 2013
-
- - Fixed 0.8 breakage, node::BUFFER encoding type not available in 0.8 for
- NanFromV8String()
-
-### 0.2.0 Aug 5 2013
-
- - Added NAN_PROPERTY_GETTER, NAN_PROPERTY_SETTER, NAN_PROPERTY_ENUMERATOR,
- NAN_PROPERTY_DELETER, NAN_PROPERTY_QUERY
- - Extracted _NAN_METHOD_ARGS, _NAN_GETTER_ARGS, _NAN_SETTER_ARGS,
- _NAN_PROPERTY_GETTER_ARGS, _NAN_PROPERTY_SETTER_ARGS,
- _NAN_PROPERTY_ENUMERATOR_ARGS, _NAN_PROPERTY_DELETER_ARGS,
- _NAN_PROPERTY_QUERY_ARGS
- - Added NanGetInternalFieldPointer, NanSetInternalFieldPointer
- - Added NAN_WEAK_CALLBACK, NAN_WEAK_CALLBACK_OBJECT,
- NAN_WEAK_CALLBACK_DATA, NanMakeWeak
- - Renamed THROW_ERROR to _NAN_THROW_ERROR
- - Added NanNewBufferHandle(char*, size_t, node::smalloc::FreeCallback, void*)
- - Added NanBufferUse(char*, uint32_t)
- - Added NanNewContextHandle(v8::ExtensionConfiguration*,
- v8::Handle, v8::Handle)
- - Fixed broken NanCallback#GetFunction()
- - Added optional encoding and size arguments to NanFromV8String()
- - Added NanGetPointerSafe() and NanSetPointerSafe()
- - Added initial test suite (to be expanded)
- - Allow NanUInt32OptionValue to convert any Number object
-
-### 0.1.0 Jul 21 2013
-
- - Added `NAN_GETTER`, `NAN_SETTER`
- - Added `NanThrowError` with single Local argument
- - Added `NanNewBufferHandle` with single uint32_t argument
- - Added `NanHasInstance(Persistent&, Handle)`
- - Added `Local NanCallback#GetFunction()`
- - Added `NanCallback#Call(int, Local[])`
- - Deprecated `NanCallback#Run(int, Local[])` in favour of Call
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/LICENSE.md b/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/LICENSE.md
deleted file mode 100644
index 6821891..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/LICENSE.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The MIT License (MIT)
-=====================
-
-Copyright (c) 2014 NAN contributors
------------------------------------
-
-*NAN contributors listed at *
-
-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.
diff --git a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/README.md b/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/README.md
deleted file mode 100644
index 88caa3e..0000000
--- a/s4t-server-node/node_modules/autobahn/node_modules/ws/node_modules/nan/README.md
+++ /dev/null
@@ -1,1208 +0,0 @@
-Native Abstractions for Node.js
-===============================
-
-**A header file filled with macro and utility goodness for making add-on development for Node.js easier across versions 0.8, 0.10 and 0.11, and eventually 0.12.**
-
-***Current version: 1.4.1***
-
-*(See [CHANGELOG.md](https://github.com/rvagg/nan/blob/master/CHANGELOG.md) for complete ChangeLog)*
-
-[![NPM](https://nodei.co/npm/nan.png?downloads=true&downloadRank=true)](https://nodei.co/npm/nan/) [![NPM](https://nodei.co/npm-dl/nan.png?months=6&height=3)](https://nodei.co/npm/nan/)
-
-[![Build Status](https://secure.travis-ci.org/rvagg/nan.png)](http://travis-ci.org/rvagg/nan)
-[![Build status](https://ci.appveyor.com/api/projects/status/kh73pbm9dsju7fgh)](https://ci.appveyor.com/project/RodVagg/nan)
-
-Thanks to the crazy changes in V8 (and some in Node core), keeping native addons compiling happily across versions, particularly 0.10 to 0.11/0.12, is a minor nightmare. The goal of this project is to store all logic necessary to develop native Node.js addons without having to inspect `NODE_MODULE_VERSION` and get yourself into a macro-tangle.
-
-This project also contains some helper utilities that make addon development a bit more pleasant.
-
- * **[News & Updates](#news)**
- * **[Usage](#usage)**
- * **[Example](#example)**
- * **[API](#api)**
-
-
-## News & Updates
-
-### Aug-2014: 1.3.0 release
-
-* `NanCString()` and `NanRawString()` have been deprecated in favour of new NanAsciiString
, NanUtf8String
and NanUcs2String
. These classes manage the underlying memory for you in a safer way than just handing off an allocated array. You should now `*NanAsciiString(handle)` to access the raw `char` data, you can also allocate on the heap if you need to keep a reference.
-* Two more NanMakeCallback
overloads have been added to for parity with Node core.
-* You can now `NanNew(std::string)` (use `NanNew(std::string&)` to pass by reference)
-* NanSetTemplate
, NanSetPrototypeTemplate
and NanSetInstanceTemplate
have been added.
-
-### May-2014: 1.1.0 release
-
-* We've deprecated `NanSymbol()`, you should just use `NanNew()` now.
-* `NanNull()`, `NanUndefined()`, `NanTrue()`, `NanFalse()` all return `Local`s now.
-* `nan_isolate` is gone, it was intended to be internal-only but if you were using it then you should switch to `v8::Isolate::GetCurrent()`.
-* `NanNew()` has received some additional overload-love so you should be able to give it many kinds of values without specifying the ``.
-* Lots of small fixes and additions to expand the V8 API coverage, *use the source, Luke*.
-
-
-### May-2014: Major changes for V8 3.25 / Node 0.11.13
-
-Node 0.11.11 and 0.11.12 were both broken releases for native add-ons, you simply can't properly compile against either of them for different reasons. But we now have a 0.11.13 release that jumps a couple of versions of V8 ahead and includes some more, major (traumatic) API changes.
-
-Because we are now nearing Node 0.12 and estimate that the version of V8 we are using in Node 0.11.13 will be close to the API we get for 0.12, we have taken the opportunity to not only *fix* NAN for 0.11.13 but make some major changes to improve the NAN API.
-
-We have **removed support for Node 0.11 versions prior to 0.11.13**. As usual, our tests are run against (and pass) the last 5 versions of Node 0.8 and Node 0.10. We also include Node 0.11.13 obviously.
-
-The major change is something that [Benjamin Byholm](kkoopa) has put many hours in to. We now have a fantastic new `NanNew(args)` interface for creating new `Local`s, this replaces `NanNewLocal()` and much more. If you look in [./nan.h](nan.h) you'll see a large number of overloaded versions of this method. In general you should be able to `NanNew(arguments)` for any type you want to make a `Local` from. This includes `Persistent` types, so we now have a `Local NanNew(const Persistent arg)` to replace `NanPersistentToLocal()`.
-
-We also now have `NanUndefined()`, `NanNull()`, `NanTrue()` and `NanFalse()`. Mainly because of the new requirement for an `Isolate` argument for each of the native V8 versions of this.
-
-V8 has now introduced an `EscapableHandleScope` from which you `scope.Escape(Local value)` to *return* a value from a one scope to another. This replaces the standard `HandleScope` and `scope.Close(Local value)`, although `HandleScope` still exists for when you don't need to return a handle to the caller. For NAN we are exposing it as `NanEscapableScope()` and `NanEscapeScope()`, while `NanScope()` is still how you create a new scope that doesn't need to return handles. For older versions of Node/V8, it'll still map to the older `HandleScope` functionality.
-
-`NanFromV8String()` was deprecated and has now been removed. You should use `NanCString()` or `NanRawString()` instead.
-
-Because `node::MakeCallback()` now takes an `Isolate`, and because it doesn't exist in older versions of Node, we've introduced `NanMakeCallback()`. You should *always* use this when calling a JavaScript function from C++.
-
-There's lots more, check out the Changelog in nan.h or look through [#86](https://github.com/rvagg/nan/pull/86) for all the gory details.
-
-### Dec-2013: NanCString and NanRawString
-
-Two new functions have been introduced to replace the functionality that's been provided by `NanFromV8String` until now. NanCString has sensible defaults so it's super easy to fetch a null-terminated c-style string out of a `v8::String`. `NanFromV8String` is still around and has defaults that allow you to pass a single handle to fetch a `char*` while `NanRawString` requires a little more attention to arguments.
-
-### Nov-2013: Node 0.11.9+ breaking V8 change
-
-The version of V8 that's shipping with Node 0.11.9+ has changed the signature for new `Local`s to: `v8::Local::New(isolate, value)`, i.e. introducing the `isolate` argument and therefore breaking all new `Local` declarations for previous versions. NAN 0.6+ now includes a `NanNewLocal(value)` that can be used in place to work around this incompatibility and maintain compatibility with 0.8->0.11.9+ (minus a few early 0.11 releases).
-
-For example, if you wanted to return a `null` on a callback you will have to change the argument from `v8::Local::New(v8::Null())` to `NanNewLocal(v8::Null())`.
-
-### Nov-2013: Change to binding.gyp `"include_dirs"` for NAN
-
-Inclusion of NAN in a project's binding.gyp is now greatly simplified. You can now just use `"
-## Usage
-
-Simply add **NAN** as a dependency in the *package.json* of your Node addon:
-
-``` bash
-$ npm install --save nan
-```
-
-Pull in the path to **NAN** in your *binding.gyp* so that you can use `#include ` in your *.cpp* files:
-
-``` python
-"include_dirs" : [
- "` when compiling your addon.
-
-
-## Example
-
-See **[LevelDOWN](https://github.com/rvagg/node-leveldown/pull/48)** for a full example of **NAN** in use.
-
-For a simpler example, see the **[async pi estimation example](https://github.com/rvagg/nan/tree/master/examples/async_pi_estimate)** in the examples directory for full code and an explanation of what this Monte Carlo Pi estimation example does. Below are just some parts of the full example that illustrate the use of **NAN**.
-
-For another example, see **[nan-example-eol](https://github.com/CodeCharmLtd/nan-example-eol)**. It shows newline detection implemented as a native addon.
-
-Compare to the current 0.10 version of this example, found in the [node-addon-examples](https://github.com/rvagg/node-addon-examples/tree/master/9_async_work) repository and also a 0.11 version of the same found [here](https://github.com/kkoopa/node-addon-examples/tree/5c01f58fc993377a567812597e54a83af69686d7/9_async_work).
-
-Note that there is no embedded version sniffing going on here and also the async work is made much simpler, see below for details on the `NanAsyncWorker` class.
-
-```c++
-// addon.cc
-#include
-#include
-// ...
-
-using v8::FunctionTemplate;
-using v8::Handle;
-using v8::Object;
-using v8::String;
-
-void InitAll(Handle