socket.io-rails 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/socket.io-rails/version.rb +1 -1
- data/vendor/assets/javascripts/socket.io.js +249 -59
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8ffd31c42f8991d6275a8fc6a2d366cd33af996
|
4
|
+
data.tar.gz: b62f3d430a23179d4f84411536c6bc3153a368c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eadba0636c6628fc9909119de61366c015c88e05c2d5b8f57860ca8027aceae2e0b0d489c032961d8a268999ac20a91b9367391d539c776b7e39f4e205cb02a6
|
7
|
+
data.tar.gz: bdb9ea2d8e8fe9bddfc83339e8dfef4875300bb8280bb5592c51dc42a3a2404813fb960c869e3b80282e2683a031bcad075f890b6bfb20317913cf4ca9be447b
|
@@ -91,7 +91,7 @@ exports.connect = lookup;
|
|
91
91
|
exports.Manager = _dereq_('./manager');
|
92
92
|
exports.Socket = _dereq_('./socket');
|
93
93
|
|
94
|
-
},{"./manager":3,"./socket":5,"./url":6,"debug":10,"socket.io-parser":
|
94
|
+
},{"./manager":3,"./socket":5,"./url":6,"debug":10,"socket.io-parser":46}],3:[function(_dereq_,module,exports){
|
95
95
|
|
96
96
|
/**
|
97
97
|
* Module dependencies.
|
@@ -596,7 +596,7 @@ Manager.prototype.onreconnect = function(){
|
|
596
596
|
this.emitAll('reconnect', attempt);
|
597
597
|
};
|
598
598
|
|
599
|
-
},{"./on":4,"./socket":5,"./url":6,"backo2":7,"component-bind":8,"component-emitter":9,"debug":10,"engine.io-client":11,"indexof":
|
599
|
+
},{"./on":4,"./socket":5,"./url":6,"backo2":7,"component-bind":8,"component-emitter":9,"debug":10,"engine.io-client":11,"indexof":42,"object-component":43,"socket.io-parser":46}],4:[function(_dereq_,module,exports){
|
600
600
|
|
601
601
|
/**
|
602
602
|
* Module exports.
|
@@ -1009,7 +1009,7 @@ Socket.prototype.disconnect = function(){
|
|
1009
1009
|
return this;
|
1010
1010
|
};
|
1011
1011
|
|
1012
|
-
},{"./on":4,"component-bind":8,"component-emitter":9,"debug":10,"has-binary":
|
1012
|
+
},{"./on":4,"component-bind":8,"component-emitter":9,"debug":10,"has-binary":38,"socket.io-parser":46,"to-array":50}],6:[function(_dereq_,module,exports){
|
1013
1013
|
(function (global){
|
1014
1014
|
|
1015
1015
|
/**
|
@@ -1086,7 +1086,7 @@ function url(uri, loc){
|
|
1086
1086
|
}
|
1087
1087
|
|
1088
1088
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
1089
|
-
},{"debug":10,"parseuri":
|
1089
|
+
},{"debug":10,"parseuri":44}],7:[function(_dereq_,module,exports){
|
1090
1090
|
|
1091
1091
|
/**
|
1092
1092
|
* Expose `Backoff`.
|
@@ -1580,7 +1580,12 @@ function Socket(uri, opts){
|
|
1580
1580
|
if (opts.host) {
|
1581
1581
|
var pieces = opts.host.split(':');
|
1582
1582
|
opts.hostname = pieces.shift();
|
1583
|
-
if (pieces.length)
|
1583
|
+
if (pieces.length) {
|
1584
|
+
opts.port = pieces.pop();
|
1585
|
+
} else if (!opts.port) {
|
1586
|
+
// if no port is specified manually, use the protocol default
|
1587
|
+
opts.port = this.secure ? '443' : '80';
|
1588
|
+
}
|
1584
1589
|
}
|
1585
1590
|
|
1586
1591
|
this.agent = opts.agent || false;
|
@@ -1605,9 +1610,20 @@ function Socket(uri, opts){
|
|
1605
1610
|
this.callbackBuffer = [];
|
1606
1611
|
this.policyPort = opts.policyPort || 843;
|
1607
1612
|
this.rememberUpgrade = opts.rememberUpgrade || false;
|
1608
|
-
this.open();
|
1609
1613
|
this.binaryType = null;
|
1610
1614
|
this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;
|
1615
|
+
this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || true) : false;
|
1616
|
+
|
1617
|
+
// SSL options for Node.js client
|
1618
|
+
this.pfx = opts.pfx || null;
|
1619
|
+
this.key = opts.key || null;
|
1620
|
+
this.passphrase = opts.passphrase || null;
|
1621
|
+
this.cert = opts.cert || null;
|
1622
|
+
this.ca = opts.ca || null;
|
1623
|
+
this.ciphers = opts.ciphers || null;
|
1624
|
+
this.rejectUnauthorized = opts.rejectUnauthorized || null;
|
1625
|
+
|
1626
|
+
this.open();
|
1611
1627
|
}
|
1612
1628
|
|
1613
1629
|
Socket.priorWebsocketSuccess = false;
|
@@ -1671,7 +1687,15 @@ Socket.prototype.createTransport = function (name) {
|
|
1671
1687
|
timestampRequests: this.timestampRequests,
|
1672
1688
|
timestampParam: this.timestampParam,
|
1673
1689
|
policyPort: this.policyPort,
|
1674
|
-
socket: this
|
1690
|
+
socket: this,
|
1691
|
+
pfx: this.pfx,
|
1692
|
+
key: this.key,
|
1693
|
+
passphrase: this.passphrase,
|
1694
|
+
cert: this.cert,
|
1695
|
+
ca: this.ca,
|
1696
|
+
ciphers: this.ciphers,
|
1697
|
+
rejectUnauthorized: this.rejectUnauthorized,
|
1698
|
+
perMessageDeflate: this.perMessageDeflate
|
1675
1699
|
});
|
1676
1700
|
|
1677
1701
|
return transport;
|
@@ -1779,7 +1803,7 @@ Socket.prototype.probe = function (name) {
|
|
1779
1803
|
if (failed) return;
|
1780
1804
|
|
1781
1805
|
debug('probe transport "%s" opened', name);
|
1782
|
-
transport.send([{ type: 'ping', data: 'probe' }]);
|
1806
|
+
transport.send([{ type: 'ping', data: 'probe', options: { compress: true } }]);
|
1783
1807
|
transport.once('packet', function (msg) {
|
1784
1808
|
if (failed) return;
|
1785
1809
|
if ('pong' == msg.type && 'probe' == msg.data) {
|
@@ -1798,7 +1822,7 @@ Socket.prototype.probe = function (name) {
|
|
1798
1822
|
cleanup();
|
1799
1823
|
|
1800
1824
|
self.setTransport(transport);
|
1801
|
-
transport.send([{ type: 'upgrade' }]);
|
1825
|
+
transport.send([{ type: 'upgrade', options: { compress: true } }]);
|
1802
1826
|
self.emit('upgrade', transport);
|
1803
1827
|
transport = null;
|
1804
1828
|
self.upgrading = false;
|
@@ -2054,13 +2078,14 @@ Socket.prototype.flush = function () {
|
|
2054
2078
|
*
|
2055
2079
|
* @param {String} message.
|
2056
2080
|
* @param {Function} callback function.
|
2081
|
+
* @param {Object} options.
|
2057
2082
|
* @return {Socket} for chaining.
|
2058
2083
|
* @api public
|
2059
2084
|
*/
|
2060
2085
|
|
2061
2086
|
Socket.prototype.write =
|
2062
|
-
Socket.prototype.send = function (msg, fn) {
|
2063
|
-
this.sendPacket('message', msg, fn);
|
2087
|
+
Socket.prototype.send = function (msg, options, fn) {
|
2088
|
+
this.sendPacket('message', msg, options, fn);
|
2064
2089
|
return this;
|
2065
2090
|
};
|
2066
2091
|
|
@@ -2069,16 +2094,29 @@ Socket.prototype.send = function (msg, fn) {
|
|
2069
2094
|
*
|
2070
2095
|
* @param {String} packet type.
|
2071
2096
|
* @param {String} data.
|
2097
|
+
* @param {Object} options.
|
2072
2098
|
* @param {Function} callback function.
|
2073
2099
|
* @api private
|
2074
2100
|
*/
|
2075
2101
|
|
2076
|
-
Socket.prototype.sendPacket = function (type, data, fn) {
|
2102
|
+
Socket.prototype.sendPacket = function (type, data, options, fn) {
|
2103
|
+
if ('function' == typeof options) {
|
2104
|
+
fn = options;
|
2105
|
+
options = null;
|
2106
|
+
}
|
2107
|
+
|
2077
2108
|
if ('closing' == this.readyState || 'closed' == this.readyState) {
|
2078
2109
|
return;
|
2079
2110
|
}
|
2080
2111
|
|
2081
|
-
|
2112
|
+
options = options || {};
|
2113
|
+
options.compress = false !== options.compress;
|
2114
|
+
|
2115
|
+
var packet = {
|
2116
|
+
type: type,
|
2117
|
+
data: data,
|
2118
|
+
options: options
|
2119
|
+
};
|
2082
2120
|
this.emit('packetCreate', packet);
|
2083
2121
|
this.writeBuffer.push(packet);
|
2084
2122
|
this.callbackBuffer.push(fn);
|
@@ -2206,7 +2244,7 @@ Socket.prototype.filterUpgrades = function (upgrades) {
|
|
2206
2244
|
};
|
2207
2245
|
|
2208
2246
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
2209
|
-
},{"./transport":14,"./transports":15,"component-emitter":9,"debug":22,"engine.io-parser":25,"indexof":
|
2247
|
+
},{"./transport":14,"./transports":15,"component-emitter":9,"debug":22,"engine.io-parser":25,"indexof":42,"parsejson":34,"parseqs":35,"parseuri":36}],14:[function(_dereq_,module,exports){
|
2210
2248
|
/**
|
2211
2249
|
* Module dependencies.
|
2212
2250
|
*/
|
@@ -2239,6 +2277,15 @@ function Transport (opts) {
|
|
2239
2277
|
this.agent = opts.agent || false;
|
2240
2278
|
this.socket = opts.socket;
|
2241
2279
|
this.enablesXDR = opts.enablesXDR;
|
2280
|
+
|
2281
|
+
// SSL options for Node.js client
|
2282
|
+
this.pfx = opts.pfx;
|
2283
|
+
this.key = opts.key;
|
2284
|
+
this.passphrase = opts.passphrase;
|
2285
|
+
this.cert = opts.cert;
|
2286
|
+
this.ca = opts.ca;
|
2287
|
+
this.ciphers = opts.ciphers;
|
2288
|
+
this.rejectUnauthorized = opts.rejectUnauthorized;
|
2242
2289
|
}
|
2243
2290
|
|
2244
2291
|
/**
|
@@ -2729,6 +2776,16 @@ XHR.prototype.request = function(opts){
|
|
2729
2776
|
opts.agent = this.agent || false;
|
2730
2777
|
opts.supportsBinary = this.supportsBinary;
|
2731
2778
|
opts.enablesXDR = this.enablesXDR;
|
2779
|
+
|
2780
|
+
// SSL options for Node.js client
|
2781
|
+
opts.pfx = this.pfx;
|
2782
|
+
opts.key = this.key;
|
2783
|
+
opts.passphrase = this.passphrase;
|
2784
|
+
opts.cert = this.cert;
|
2785
|
+
opts.ca = this.ca;
|
2786
|
+
opts.ciphers = this.ciphers;
|
2787
|
+
opts.rejectUnauthorized = this.rejectUnauthorized;
|
2788
|
+
|
2732
2789
|
return new Request(opts);
|
2733
2790
|
};
|
2734
2791
|
|
@@ -2788,6 +2845,16 @@ function Request(opts){
|
|
2788
2845
|
this.isBinary = opts.isBinary;
|
2789
2846
|
this.supportsBinary = opts.supportsBinary;
|
2790
2847
|
this.enablesXDR = opts.enablesXDR;
|
2848
|
+
|
2849
|
+
// SSL options for Node.js client
|
2850
|
+
this.pfx = opts.pfx;
|
2851
|
+
this.key = opts.key;
|
2852
|
+
this.passphrase = opts.passphrase;
|
2853
|
+
this.cert = opts.cert;
|
2854
|
+
this.ca = opts.ca;
|
2855
|
+
this.ciphers = opts.ciphers;
|
2856
|
+
this.rejectUnauthorized = opts.rejectUnauthorized;
|
2857
|
+
|
2791
2858
|
this.create();
|
2792
2859
|
}
|
2793
2860
|
|
@@ -2804,7 +2871,18 @@ Emitter(Request.prototype);
|
|
2804
2871
|
*/
|
2805
2872
|
|
2806
2873
|
Request.prototype.create = function(){
|
2807
|
-
var
|
2874
|
+
var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };
|
2875
|
+
|
2876
|
+
// SSL options for Node.js client
|
2877
|
+
opts.pfx = this.pfx;
|
2878
|
+
opts.key = this.key;
|
2879
|
+
opts.passphrase = this.passphrase;
|
2880
|
+
opts.cert = this.cert;
|
2881
|
+
opts.ca = this.ca;
|
2882
|
+
opts.ciphers = this.ciphers;
|
2883
|
+
opts.rejectUnauthorized = this.rejectUnauthorized;
|
2884
|
+
|
2885
|
+
var xhr = this.xhr = new XMLHttpRequest(opts);
|
2808
2886
|
var self = this;
|
2809
2887
|
|
2810
2888
|
try {
|
@@ -2901,7 +2979,7 @@ Request.prototype.onData = function(data){
|
|
2901
2979
|
|
2902
2980
|
Request.prototype.onError = function(err){
|
2903
2981
|
this.emit('error', err);
|
2904
|
-
this.cleanup();
|
2982
|
+
this.cleanup(true);
|
2905
2983
|
};
|
2906
2984
|
|
2907
2985
|
/**
|
@@ -2910,7 +2988,7 @@ Request.prototype.onError = function(err){
|
|
2910
2988
|
* @api private
|
2911
2989
|
*/
|
2912
2990
|
|
2913
|
-
Request.prototype.cleanup = function(){
|
2991
|
+
Request.prototype.cleanup = function(fromError){
|
2914
2992
|
if ('undefined' == typeof this.xhr || null === this.xhr) {
|
2915
2993
|
return;
|
2916
2994
|
}
|
@@ -2921,9 +2999,11 @@ Request.prototype.cleanup = function(){
|
|
2921
2999
|
this.xhr.onreadystatechange = empty;
|
2922
3000
|
}
|
2923
3001
|
|
2924
|
-
|
2925
|
-
|
2926
|
-
|
3002
|
+
if (fromError) {
|
3003
|
+
try {
|
3004
|
+
this.xhr.abort();
|
3005
|
+
} catch(e) {}
|
3006
|
+
}
|
2927
3007
|
|
2928
3008
|
if (global.document) {
|
2929
3009
|
delete Request.requests[this.index];
|
@@ -3254,7 +3334,7 @@ Polling.prototype.uri = function(){
|
|
3254
3334
|
return schema + '://' + this.hostname + port + this.path + query;
|
3255
3335
|
};
|
3256
3336
|
|
3257
|
-
},{"../transport":14,"component-inherit":21,"debug":22,"engine.io-parser":25,"parseqs":
|
3337
|
+
},{"../transport":14,"component-inherit":21,"debug":22,"engine.io-parser":25,"parseqs":35,"xmlhttprequest":20}],19:[function(_dereq_,module,exports){
|
3258
3338
|
/**
|
3259
3339
|
* Module dependencies.
|
3260
3340
|
*/
|
@@ -3291,6 +3371,7 @@ function WS(opts){
|
|
3291
3371
|
if (forceBase64) {
|
3292
3372
|
this.supportsBinary = false;
|
3293
3373
|
}
|
3374
|
+
this.perMessageDeflate = opts.perMessageDeflate;
|
3294
3375
|
Transport.call(this, opts);
|
3295
3376
|
}
|
3296
3377
|
|
@@ -3329,7 +3410,19 @@ WS.prototype.doOpen = function(){
|
|
3329
3410
|
var self = this;
|
3330
3411
|
var uri = this.uri();
|
3331
3412
|
var protocols = void(0);
|
3332
|
-
var opts = {
|
3413
|
+
var opts = {
|
3414
|
+
agent: this.agent,
|
3415
|
+
perMessageDeflate: this.perMessageDeflate
|
3416
|
+
};
|
3417
|
+
|
3418
|
+
// SSL options for Node.js client
|
3419
|
+
opts.pfx = this.pfx;
|
3420
|
+
opts.key = this.key;
|
3421
|
+
opts.passphrase = this.passphrase;
|
3422
|
+
opts.cert = this.cert;
|
3423
|
+
opts.ca = this.ca;
|
3424
|
+
opts.ciphers = this.ciphers;
|
3425
|
+
opts.rejectUnauthorized = this.rejectUnauthorized;
|
3333
3426
|
|
3334
3427
|
this.ws = new WebSocket(uri, protocols, opts);
|
3335
3428
|
|
@@ -3394,12 +3487,13 @@ WS.prototype.write = function(packets){
|
|
3394
3487
|
// encodePacket efficient as it uses WS framing
|
3395
3488
|
// no need for encodePayload
|
3396
3489
|
for (var i = 0, l = packets.length; i < l; i++) {
|
3397
|
-
|
3490
|
+
var packet = packets[i];
|
3491
|
+
parser.encodePacket(packet, this.supportsBinary, function(data) {
|
3398
3492
|
//Sometimes the websocket has already been closed but the browser didn't
|
3399
3493
|
//have a chance of informing us about it yet, in that case send will
|
3400
3494
|
//throw an error
|
3401
3495
|
try {
|
3402
|
-
self.ws.send(data);
|
3496
|
+
self.ws.send(data, packet.options);
|
3403
3497
|
} catch (e){
|
3404
3498
|
debug('websocket closed before onclose event');
|
3405
3499
|
}
|
@@ -3485,7 +3579,7 @@ WS.prototype.check = function(){
|
|
3485
3579
|
return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);
|
3486
3580
|
};
|
3487
3581
|
|
3488
|
-
},{"../transport":14,"component-inherit":21,"debug":22,"engine.io-parser":25,"parseqs":
|
3582
|
+
},{"../transport":14,"component-inherit":21,"debug":22,"engine.io-parser":25,"parseqs":35,"ws":37}],20:[function(_dereq_,module,exports){
|
3489
3583
|
// browser shim for xmlhttprequest module
|
3490
3584
|
var hasCORS = _dereq_('has-cors');
|
3491
3585
|
|
@@ -3523,7 +3617,7 @@ module.exports = function(opts) {
|
|
3523
3617
|
}
|
3524
3618
|
}
|
3525
3619
|
|
3526
|
-
},{"has-cors":
|
3620
|
+
},{"has-cors":40}],21:[function(_dereq_,module,exports){
|
3527
3621
|
|
3528
3622
|
module.exports = function(a, b){
|
3529
3623
|
var fn = function(){};
|
@@ -3999,6 +4093,7 @@ function plural(ms, n, name) {
|
|
3999
4093
|
*/
|
4000
4094
|
|
4001
4095
|
var keys = _dereq_('./keys');
|
4096
|
+
var hasBinary = _dereq_('has-binary');
|
4002
4097
|
var sliceBuffer = _dereq_('arraybuffer.slice');
|
4003
4098
|
var base64encoder = _dereq_('base64-arraybuffer');
|
4004
4099
|
var after = _dereq_('after');
|
@@ -4013,6 +4108,20 @@ var utf8 = _dereq_('utf8');
|
|
4013
4108
|
|
4014
4109
|
var isAndroid = navigator.userAgent.match(/Android/i);
|
4015
4110
|
|
4111
|
+
/**
|
4112
|
+
* Check if we are running in PhantomJS.
|
4113
|
+
* Uploading a Blob with PhantomJS does not work correctly, as reported here:
|
4114
|
+
* https://github.com/ariya/phantomjs/issues/11395
|
4115
|
+
* @type boolean
|
4116
|
+
*/
|
4117
|
+
var isPhantomJS = /PhantomJS/i.test(navigator.userAgent);
|
4118
|
+
|
4119
|
+
/**
|
4120
|
+
* When true, avoids using Blobs to encode payloads.
|
4121
|
+
* @type boolean
|
4122
|
+
*/
|
4123
|
+
var dontSendBlobs = isAndroid || isPhantomJS;
|
4124
|
+
|
4016
4125
|
/**
|
4017
4126
|
* Current protocol version.
|
4018
4127
|
*/
|
@@ -4084,6 +4193,11 @@ exports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {
|
|
4084
4193
|
return encodeBlob(packet, supportsBinary, callback);
|
4085
4194
|
}
|
4086
4195
|
|
4196
|
+
// might be an object with { base64: true, data: dataAsBase64String }
|
4197
|
+
if (data && data.base64) {
|
4198
|
+
return encodeBase64Object(packet, callback);
|
4199
|
+
}
|
4200
|
+
|
4087
4201
|
// Sending data as a utf-8 string
|
4088
4202
|
var encoded = packets[packet.type];
|
4089
4203
|
|
@@ -4096,6 +4210,12 @@ exports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {
|
|
4096
4210
|
|
4097
4211
|
};
|
4098
4212
|
|
4213
|
+
function encodeBase64Object(packet, callback) {
|
4214
|
+
// packet data is an object { base64: true, data: dataAsBase64String }
|
4215
|
+
var message = 'b' + exports.packets[packet.type] + packet.data.data;
|
4216
|
+
return callback(message);
|
4217
|
+
}
|
4218
|
+
|
4099
4219
|
/**
|
4100
4220
|
* Encode packet helpers for binary types
|
4101
4221
|
*/
|
@@ -4135,7 +4255,7 @@ function encodeBlob(packet, supportsBinary, callback) {
|
|
4135
4255
|
return exports.encodeBase64Packet(packet, callback);
|
4136
4256
|
}
|
4137
4257
|
|
4138
|
-
if (
|
4258
|
+
if (dontSendBlobs) {
|
4139
4259
|
return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);
|
4140
4260
|
}
|
4141
4261
|
|
@@ -4267,8 +4387,10 @@ exports.encodePayload = function (packets, supportsBinary, callback) {
|
|
4267
4387
|
supportsBinary = null;
|
4268
4388
|
}
|
4269
4389
|
|
4270
|
-
|
4271
|
-
|
4390
|
+
var isBinary = hasBinary(packets);
|
4391
|
+
|
4392
|
+
if (supportsBinary && isBinary) {
|
4393
|
+
if (Blob && !dontSendBlobs) {
|
4272
4394
|
return exports.encodePayloadAsBlob(packets, callback);
|
4273
4395
|
}
|
4274
4396
|
|
@@ -4284,7 +4406,7 @@ exports.encodePayload = function (packets, supportsBinary, callback) {
|
|
4284
4406
|
}
|
4285
4407
|
|
4286
4408
|
function encodeOne(packet, doneCallback) {
|
4287
|
-
exports.encodePacket(packet, supportsBinary, true, function(message) {
|
4409
|
+
exports.encodePacket(packet, !isBinary ? false : supportsBinary, true, function(message) {
|
4288
4410
|
doneCallback(null, setLengthHeader(message));
|
4289
4411
|
});
|
4290
4412
|
}
|
@@ -4562,7 +4684,7 @@ exports.decodePayloadAsBinary = function (data, binaryType, callback) {
|
|
4562
4684
|
};
|
4563
4685
|
|
4564
4686
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
4565
|
-
},{"./keys":26,"after":27,"arraybuffer.slice":28,"base64-arraybuffer":29,"blob":30,"utf8":
|
4687
|
+
},{"./keys":26,"after":27,"arraybuffer.slice":28,"base64-arraybuffer":29,"blob":30,"has-binary":31,"utf8":33}],26:[function(_dereq_,module,exports){
|
4566
4688
|
|
4567
4689
|
/**
|
4568
4690
|
* Gets the keys for an object.
|
@@ -4760,6 +4882,73 @@ module.exports = (function() {
|
|
4760
4882
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
4761
4883
|
},{}],31:[function(_dereq_,module,exports){
|
4762
4884
|
(function (global){
|
4885
|
+
|
4886
|
+
/*
|
4887
|
+
* Module requirements.
|
4888
|
+
*/
|
4889
|
+
|
4890
|
+
var isArray = _dereq_('isarray');
|
4891
|
+
|
4892
|
+
/**
|
4893
|
+
* Module exports.
|
4894
|
+
*/
|
4895
|
+
|
4896
|
+
module.exports = hasBinary;
|
4897
|
+
|
4898
|
+
/**
|
4899
|
+
* Checks for binary data.
|
4900
|
+
*
|
4901
|
+
* Right now only Buffer and ArrayBuffer are supported..
|
4902
|
+
*
|
4903
|
+
* @param {Object} anything
|
4904
|
+
* @api public
|
4905
|
+
*/
|
4906
|
+
|
4907
|
+
function hasBinary(data) {
|
4908
|
+
|
4909
|
+
function _hasBinary(obj) {
|
4910
|
+
if (!obj) return false;
|
4911
|
+
|
4912
|
+
if ( (global.Buffer && global.Buffer.isBuffer(obj)) ||
|
4913
|
+
(global.ArrayBuffer && obj instanceof ArrayBuffer) ||
|
4914
|
+
(global.Blob && obj instanceof Blob) ||
|
4915
|
+
(global.File && obj instanceof File)
|
4916
|
+
) {
|
4917
|
+
return true;
|
4918
|
+
}
|
4919
|
+
|
4920
|
+
if (isArray(obj)) {
|
4921
|
+
for (var i = 0; i < obj.length; i++) {
|
4922
|
+
if (_hasBinary(obj[i])) {
|
4923
|
+
return true;
|
4924
|
+
}
|
4925
|
+
}
|
4926
|
+
} else if (obj && 'object' == typeof obj) {
|
4927
|
+
if (obj.toJSON) {
|
4928
|
+
obj = obj.toJSON();
|
4929
|
+
}
|
4930
|
+
|
4931
|
+
for (var key in obj) {
|
4932
|
+
if (obj.hasOwnProperty(key) && _hasBinary(obj[key])) {
|
4933
|
+
return true;
|
4934
|
+
}
|
4935
|
+
}
|
4936
|
+
}
|
4937
|
+
|
4938
|
+
return false;
|
4939
|
+
}
|
4940
|
+
|
4941
|
+
return _hasBinary(data);
|
4942
|
+
}
|
4943
|
+
|
4944
|
+
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
4945
|
+
},{"isarray":32}],32:[function(_dereq_,module,exports){
|
4946
|
+
module.exports = Array.isArray || function (arr) {
|
4947
|
+
return Object.prototype.toString.call(arr) == '[object Array]';
|
4948
|
+
};
|
4949
|
+
|
4950
|
+
},{}],33:[function(_dereq_,module,exports){
|
4951
|
+
(function (global){
|
4763
4952
|
/*! http://mths.be/utf8js v2.0.0 by @mathias */
|
4764
4953
|
;(function(root) {
|
4765
4954
|
|
@@ -5001,7 +5190,7 @@ module.exports = (function() {
|
|
5001
5190
|
}(this));
|
5002
5191
|
|
5003
5192
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
5004
|
-
},{}],
|
5193
|
+
},{}],34:[function(_dereq_,module,exports){
|
5005
5194
|
(function (global){
|
5006
5195
|
/**
|
5007
5196
|
* JSON parse.
|
@@ -5036,7 +5225,7 @@ module.exports = function parsejson(data) {
|
|
5036
5225
|
}
|
5037
5226
|
};
|
5038
5227
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
5039
|
-
},{}],
|
5228
|
+
},{}],35:[function(_dereq_,module,exports){
|
5040
5229
|
/**
|
5041
5230
|
* Compiles a querystring
|
5042
5231
|
* Returns string representation of the object
|
@@ -5075,7 +5264,7 @@ exports.decode = function(qs){
|
|
5075
5264
|
return qry;
|
5076
5265
|
};
|
5077
5266
|
|
5078
|
-
},{}],
|
5267
|
+
},{}],36:[function(_dereq_,module,exports){
|
5079
5268
|
/**
|
5080
5269
|
* Parses an URI
|
5081
5270
|
*
|
@@ -5116,7 +5305,7 @@ module.exports = function parseuri(str) {
|
|
5116
5305
|
return uri;
|
5117
5306
|
};
|
5118
5307
|
|
5119
|
-
},{}],
|
5308
|
+
},{}],37:[function(_dereq_,module,exports){
|
5120
5309
|
|
5121
5310
|
/**
|
5122
5311
|
* Module dependencies.
|
@@ -5161,7 +5350,7 @@ function ws(uri, protocols, opts) {
|
|
5161
5350
|
|
5162
5351
|
if (WebSocket) ws.prototype = WebSocket.prototype;
|
5163
5352
|
|
5164
|
-
},{}],
|
5353
|
+
},{}],38:[function(_dereq_,module,exports){
|
5165
5354
|
(function (global){
|
5166
5355
|
|
5167
5356
|
/*
|
@@ -5210,7 +5399,7 @@ function hasBinary(data) {
|
|
5210
5399
|
}
|
5211
5400
|
|
5212
5401
|
for (var key in obj) {
|
5213
|
-
if (
|
5402
|
+
if (Object.prototype.hasOwnProperty.call(obj, key) && _hasBinary(obj[key])) {
|
5214
5403
|
return true;
|
5215
5404
|
}
|
5216
5405
|
}
|
@@ -5223,12 +5412,9 @@ function hasBinary(data) {
|
|
5223
5412
|
}
|
5224
5413
|
|
5225
5414
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
5226
|
-
},{"isarray":
|
5227
|
-
module.exports
|
5228
|
-
|
5229
|
-
};
|
5230
|
-
|
5231
|
-
},{}],38:[function(_dereq_,module,exports){
|
5415
|
+
},{"isarray":39}],39:[function(_dereq_,module,exports){
|
5416
|
+
module.exports=_dereq_(32)
|
5417
|
+
},{}],40:[function(_dereq_,module,exports){
|
5232
5418
|
|
5233
5419
|
/**
|
5234
5420
|
* Module dependencies.
|
@@ -5253,7 +5439,7 @@ try {
|
|
5253
5439
|
module.exports = false;
|
5254
5440
|
}
|
5255
5441
|
|
5256
|
-
},{"global":
|
5442
|
+
},{"global":41}],41:[function(_dereq_,module,exports){
|
5257
5443
|
|
5258
5444
|
/**
|
5259
5445
|
* Returns `this`. Execute this without a "context" (i.e. without it being
|
@@ -5263,7 +5449,7 @@ try {
|
|
5263
5449
|
|
5264
5450
|
module.exports = (function () { return this; })();
|
5265
5451
|
|
5266
|
-
},{}],
|
5452
|
+
},{}],42:[function(_dereq_,module,exports){
|
5267
5453
|
|
5268
5454
|
var indexOf = [].indexOf;
|
5269
5455
|
|
@@ -5274,7 +5460,7 @@ module.exports = function(arr, obj){
|
|
5274
5460
|
}
|
5275
5461
|
return -1;
|
5276
5462
|
};
|
5277
|
-
},{}],
|
5463
|
+
},{}],43:[function(_dereq_,module,exports){
|
5278
5464
|
|
5279
5465
|
/**
|
5280
5466
|
* HOP ref.
|
@@ -5359,7 +5545,7 @@ exports.length = function(obj){
|
|
5359
5545
|
exports.isEmpty = function(obj){
|
5360
5546
|
return 0 == exports.length(obj);
|
5361
5547
|
};
|
5362
|
-
},{}],
|
5548
|
+
},{}],44:[function(_dereq_,module,exports){
|
5363
5549
|
/**
|
5364
5550
|
* Parses an URI
|
5365
5551
|
*
|
@@ -5386,7 +5572,7 @@ module.exports = function parseuri(str) {
|
|
5386
5572
|
return uri;
|
5387
5573
|
};
|
5388
5574
|
|
5389
|
-
},{}],
|
5575
|
+
},{}],45:[function(_dereq_,module,exports){
|
5390
5576
|
(function (global){
|
5391
5577
|
/*global Blob,File*/
|
5392
5578
|
|
@@ -5531,7 +5717,7 @@ exports.removeBlobs = function(data, callback) {
|
|
5531
5717
|
};
|
5532
5718
|
|
5533
5719
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
5534
|
-
},{"./is-buffer":
|
5720
|
+
},{"./is-buffer":47,"isarray":48}],46:[function(_dereq_,module,exports){
|
5535
5721
|
|
5536
5722
|
/**
|
5537
5723
|
* Module dependencies.
|
@@ -5774,7 +5960,7 @@ Decoder.prototype.add = function(obj) {
|
|
5774
5960
|
this.reconstructor = new BinaryReconstructor(packet);
|
5775
5961
|
|
5776
5962
|
// no attachments, labeled binary but no binary data to follow
|
5777
|
-
if (this.reconstructor.reconPack.attachments
|
5963
|
+
if (this.reconstructor.reconPack.attachments === 0) {
|
5778
5964
|
this.emit('decoded', packet);
|
5779
5965
|
}
|
5780
5966
|
} else { // non-binary full packet
|
@@ -5815,11 +6001,15 @@ function decodeString(str) {
|
|
5815
6001
|
|
5816
6002
|
// look up attachments if type binary
|
5817
6003
|
if (exports.BINARY_EVENT == p.type || exports.BINARY_ACK == p.type) {
|
5818
|
-
|
6004
|
+
var buf = '';
|
5819
6005
|
while (str.charAt(++i) != '-') {
|
5820
|
-
|
6006
|
+
buf += str.charAt(i);
|
6007
|
+
if (i + 1 == str.length) break;
|
5821
6008
|
}
|
5822
|
-
|
6009
|
+
if (buf != Number(buf) || str.charAt(i) != '-') {
|
6010
|
+
throw new Error('Illegal attachments');
|
6011
|
+
}
|
6012
|
+
p.attachments = Number(buf);
|
5823
6013
|
}
|
5824
6014
|
|
5825
6015
|
// look up namespace (if any)
|
@@ -5837,7 +6027,7 @@ function decodeString(str) {
|
|
5837
6027
|
|
5838
6028
|
// look up id
|
5839
6029
|
var next = str.charAt(i + 1);
|
5840
|
-
if (''
|
6030
|
+
if ('' !== next && Number(next) == next) {
|
5841
6031
|
p.id = '';
|
5842
6032
|
while (++i) {
|
5843
6033
|
var c = str.charAt(i);
|
@@ -5929,7 +6119,7 @@ function error(data){
|
|
5929
6119
|
};
|
5930
6120
|
}
|
5931
6121
|
|
5932
|
-
},{"./binary":
|
6122
|
+
},{"./binary":45,"./is-buffer":47,"component-emitter":9,"debug":10,"isarray":48,"json3":49}],47:[function(_dereq_,module,exports){
|
5933
6123
|
(function (global){
|
5934
6124
|
|
5935
6125
|
module.exports = isBuf;
|
@@ -5946,9 +6136,9 @@ function isBuf(obj) {
|
|
5946
6136
|
}
|
5947
6137
|
|
5948
6138
|
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
5949
|
-
},{}],
|
5950
|
-
module.exports=_dereq_(
|
5951
|
-
},{}],
|
6139
|
+
},{}],48:[function(_dereq_,module,exports){
|
6140
|
+
module.exports=_dereq_(32)
|
6141
|
+
},{}],49:[function(_dereq_,module,exports){
|
5952
6142
|
/*! JSON v3.2.6 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */
|
5953
6143
|
;(function (window) {
|
5954
6144
|
// Convenience aliases.
|
@@ -6811,7 +7001,7 @@ module.exports=_dereq_(37)
|
|
6811
7001
|
}
|
6812
7002
|
}(this));
|
6813
7003
|
|
6814
|
-
},{}],
|
7004
|
+
},{}],50:[function(_dereq_,module,exports){
|
6815
7005
|
module.exports = toArray
|
6816
7006
|
|
6817
7007
|
function toArray(list, index) {
|