UNPKG

69.1 kBJavaScriptView Raw
1'use strict';
2
3var babelHelpers = {};
4babelHelpers.typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
5 return typeof obj;
6} : function (obj) {
7 return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
8};
9
10babelHelpers.classCallCheck = function (instance, Constructor) {
11 if (!(instance instanceof Constructor)) {
12 throw new TypeError("Cannot call a class as a function");
13 }
14};
15
16babelHelpers.createClass = function () {
17 function defineProperties(target, props) {
18 for (var i = 0; i < props.length; i++) {
19 var descriptor = props[i];
20 descriptor.enumerable = descriptor.enumerable || false;
21 descriptor.configurable = true;
22 if ("value" in descriptor) descriptor.writable = true;
23 Object.defineProperty(target, descriptor.key, descriptor);
24 }
25 }
26
27 return function (Constructor, protoProps, staticProps) {
28 if (protoProps) defineProperties(Constructor.prototype, protoProps);
29 if (staticProps) defineProperties(Constructor, staticProps);
30 return Constructor;
31 };
32}();
33
34babelHelpers;
35
36
37var __commonjs_global = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this;
38function __commonjs(fn, module) { return module = { exports: {} }, fn(module, module.exports, __commonjs_global), module.exports; }
39
40/**
41 * csModClientid module.
42 * @module core/csModClientid
43 * @return {string} - Returns a new random, unique clientid
44 */
45
46// This function simply generates a random time based client token.
47// Clients will use this token to authenticate themselves, so this should be
48// saved in the application if you plan to resubscribe to channels after reloading
49// the catsnake client
50var csModClientid = function csModClientid() {
51 var d = new Date().getTime();
52 var uuid = 'client-xxxxxxxx'.replace(/[xy]/g, function (c) {
53 var r = (d + Math.random() * 16) % 16 | 0;
54 d = Math.floor(d / 16);
55 return (c === 'x' ? r : r & 0x3 | 0x8).toString(16);
56 });
57 return uuid;
58};
59
60var msgpack_min = __commonjs(function (module, exports, global) {
61!function (t) {
62 if ("object" == (typeof exports === "undefined" ? "undefined" : babelHelpers.typeof(exports)) && "undefined" != typeof module) module.exports = t();else if ("function" == typeof define && define.amd) define([], t);else {
63 var r;r = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, r.msgpack = t();
64 }
65}(function () {
66 return function t(r, e, n) {
67 function o(f, u) {
68 if (!e[f]) {
69 if (!r[f]) {
70 var a = "function" == typeof require && require;if (!u && a) return a(f, !0);if (i) return i(f, !0);var s = new Error("Cannot find module '" + f + "'");throw s.code = "MODULE_NOT_FOUND", s;
71 }var c = e[f] = { exports: {} };r[f][0].call(c.exports, function (t) {
72 var e = r[f][1][t];return o(e ? e : t);
73 }, c, c.exports, t, r, e, n);
74 }return e[f].exports;
75 }for (var i = "function" == typeof require && require, f = 0; f < n.length; f++) {
76 o(n[f]);
77 }return o;
78 }({ 1: [function (t, r, e) {
79 e.encode = t("./encode").encode, e.decode = t("./decode").decode, e.Encoder = t("./encoder").Encoder, e.Decoder = t("./decoder").Decoder, e.createCodec = t("./ext").createCodec, e.codec = t("./codec").codec;
80 }, { "./codec": 3, "./decode": 6, "./decoder": 7, "./encode": 9, "./encoder": 10, "./ext": 13 }], 2: [function (t, r, e) {
81 function n(t, r) {
82 for (var e = this, n = r || 0, o = t.length, i = 0; o > i; i++) {
83 var f = t.charCodeAt(i);128 > f ? e[n++] = f : 2048 > f ? (e[n++] = 192 | f >> 6, e[n++] = 128 | 63 & f) : (e[n++] = 224 | f >> 12, e[n++] = 128 | f >> 6 & 63, e[n++] = 128 | 63 & f);
84 }return n - r;
85 }function o(t, r) {
86 var e = this,
87 n = t - 0 || 0;r || (r = e.length);var o = r - t;o > s && (o = s);for (var i = []; r > n;) {
88 for (var f = new Array(o), u = 0; o > u && r > n;) {
89 var a = e[n++];a = 128 > a ? a : 224 > a ? (63 & a) << 6 | 63 & e[n++] : (63 & a) << 12 | (63 & e[n++]) << 6 | 63 & e[n++], f[u++] = a;
90 }o > u && (f = f.slice(0, u)), i.push(String.fromCharCode.apply("", f));
91 }return i.length > 1 ? i.join("") : i.length ? i.shift() : "";
92 }function i(t) {
93 var r = 0;return Array.prototype.forEach.call(t, function (t) {
94 var e = t.charCodeAt(0);r += 128 > e ? 1 : 2048 > e ? 2 : 3;
95 }), r;
96 }function f(t, r, e, n) {
97 var o;e || (e = 0), n || 0 === n || (n = this.length), r || (r = 0);var i = n - e;if (t === this && r > e && n > r) for (o = i - 1; o >= 0; o--) {
98 t[o + r] = this[o + e];
99 } else for (o = 0; i > o; o++) {
100 t[o + r] = this[o + e];
101 }return i;
102 }function u(t, r) {
103 for (var e = 7; e >= 0; e--) {
104 this[r + e] = 255 & t, t /= 256;
105 }
106 }function a(t, r) {
107 if (t > 0) return u.call(this, t, r);t++;for (var e = 7; e >= 0; e--) {
108 this[r + e] = 255 & -t ^ 255, t /= 256;
109 }
110 }var s = 8192;e.writeString = n, e.readString = o, e.byteLength = i, e.copy = f, e.writeUint64BE = u, e.writeInt64BE = a;
111 }, {}], 3: [function (t, r, e) {
112 e.codec = { preset: t("./ext-preset").preset };
113 }, { "./ext-preset": 12 }], 4: [function (t, r, e) {
114 e.BUFFER_SHORTAGE = new Error("BUFFER_SHORTAGE");
115 }, {}], 5: [function (t, r, e) {
116 (function (r) {
117 function n(t) {
118 return this instanceof n ? (this.options = t || i, void (this.codec = this.options.codec || o)) : new n(t);
119 }e.DecodeBuffer = n;var o = t("./ext-preset").preset,
120 i = {};n.prototype.push = Array.prototype.push, n.prototype.read = Array.prototype.shift, n.prototype.append = function (t) {
121 var e = this.offset ? this.buffer.slice(this.offset) : this.buffer;this.buffer = e ? r.concat([e, t]) : t, this.offset = 0;
122 };
123 }).call(this, t("buffer").Buffer);
124 }, { "./ext-preset": 12, buffer: 22 }], 6: [function (t, r, e) {
125 function n(t, r) {
126 var e = new o(r);return e.append(t), n(e);
127 }e.decode = n;var o = t("./decode-buffer").DecodeBuffer,
128 n = t("./read-core").decode;
129 }, { "./decode-buffer": 5, "./read-core": 15 }], 7: [function (t, r, e) {
130 function n(t) {
131 return this instanceof n ? void i.call(this, t) : new n(t);
132 }e.Decoder = n;var o = t("event-lite"),
133 i = t("./decode-buffer").DecodeBuffer,
134 f = t("./read-core").decodeAsync;n.prototype = new i(), o.mixin(n.prototype), n.prototype.decode = function (t) {
135 t && this.append(t), f(this);
136 }, n.prototype.push = function (t) {
137 this.emit("data", t);
138 }, n.prototype.end = function (t) {
139 this.decode(t), this.emit("end");
140 };
141 }, { "./decode-buffer": 5, "./read-core": 15, "event-lite": 25 }], 8: [function (t, r, e) {
142 (function (r) {
143 function n(t) {
144 return this instanceof n ? (this.options = t || u, void (this.codec = this.options.codec || o)) : new n(t);
145 }e.EncodeBuffer = n;var o = t("./ext-preset").preset,
146 i = 2048,
147 f = 65536,
148 u = {};n.prototype.push = function (t) {
149 var r = this.buffers || (this.buffers = []);r.push(t);
150 }, n.prototype.read = function () {
151 this.flush();var t = this.buffers;if (t) {
152 var e = t.length > 1 ? r.concat(t) : t[0];return t.length = 0, e;
153 }
154 }, n.prototype.flush = function () {
155 this.start < this.offset && (this.push(this.buffer.slice(this.start, this.offset)), this.start = this.offset);
156 }, n.prototype.reserve = function (t) {
157 if (!this.buffer) return this.alloc(t);var r = this.buffer.length;this.offset + t < r || (this.offset && this.flush(), this.alloc(Math.max(t, Math.min(2 * r, f))));
158 }, n.prototype.alloc = function (t) {
159 this.buffer = new r(t > i ? t : i), this.start = 0, this.offset = 0;
160 }, n.prototype.send = function (t) {
161 var r = this.offset + t.length;this.buffer && r < this.buffer.length ? (t.copy(this.buffer, this.offset), this.offset = r) : (this.flush(), this.push(t));
162 };
163 }).call(this, t("buffer").Buffer);
164 }, { "./ext-preset": 12, buffer: 22 }], 9: [function (t, r, e) {
165 function n(t, r) {
166 var e = new o(r);return n(e, t), e.read();
167 }e.encode = n;var n = t("./write-core").encode,
168 o = t("./encode-buffer").EncodeBuffer;
169 }, { "./encode-buffer": 8, "./write-core": 18 }], 10: [function (t, r, e) {
170 function n(t) {
171 return this instanceof n ? void f.call(this, t) : new n(t);
172 }e.Encoder = n;var o = t("event-lite"),
173 i = t("./write-core").encode,
174 f = t("./encode-buffer").EncodeBuffer;n.prototype = new f(), o.mixin(n.prototype), n.prototype.encode = function (t) {
175 i(this, t), this.emit("data", this.read());
176 }, n.prototype.end = function (t) {
177 arguments.length && this.encode(t), this.flush(), this.emit("end");
178 };
179 }, { "./encode-buffer": 8, "./write-core": 18, "event-lite": 25 }], 11: [function (t, r, e) {
180 function n(t, r) {
181 return this instanceof n ? (this.buffer = t, void (this.type = r)) : new n(t, r);
182 }e.ExtBuffer = n;
183 }, {}], 12: [function (t, r, e) {
184 (function (r) {
185 function n() {
186 y.addExtPacker(14, Error, [a, g]), y.addExtPacker(1, EvalError, [a, g]), y.addExtPacker(2, RangeError, [a, g]), y.addExtPacker(3, ReferenceError, [a, g]), y.addExtPacker(4, SyntaxError, [a, g]), y.addExtPacker(5, TypeError, [a, g]), y.addExtPacker(6, URIError, [a, g]), y.addExtUnpacker(14, [v, s(Error)]), y.addExtUnpacker(1, [v, s(EvalError)]), y.addExtUnpacker(2, [v, s(RangeError)]), y.addExtUnpacker(3, [v, s(ReferenceError)]), y.addExtUnpacker(4, [v, s(SyntaxError)]), y.addExtUnpacker(5, [v, s(TypeError)]), y.addExtUnpacker(6, [v, s(URIError)]), y.addExtPacker(10, RegExp, [f, g]), y.addExtPacker(11, Boolean, [i, g]), y.addExtPacker(12, String, [i, g]), y.addExtPacker(13, Date, [Number, g]), y.addExtPacker(15, Number, [i, g]), y.addExtUnpacker(10, [v, u]), y.addExtUnpacker(11, [v, c(Boolean)]), y.addExtUnpacker(12, [v, c(String)]), y.addExtUnpacker(13, [v, c(Date)]), y.addExtUnpacker(15, [v, c(Number)]), "undefined" != typeof Uint8Array && (y.addExtPacker(17, Int8Array, o), y.addExtPacker(18, Uint8Array, o), y.addExtPacker(19, Int16Array, h), y.addExtPacker(20, Uint16Array, h), y.addExtPacker(21, Int32Array, h), y.addExtPacker(22, Uint32Array, h), y.addExtPacker(23, Float32Array, h), y.addExtUnpacker(17, c(Int8Array)), y.addExtUnpacker(18, c(Uint8Array)), y.addExtUnpacker(19, [l, c(Int16Array)]), y.addExtUnpacker(20, [l, c(Uint16Array)]), y.addExtUnpacker(21, [l, c(Int32Array)]), y.addExtUnpacker(22, [l, c(Uint32Array)]), y.addExtUnpacker(23, [l, c(Float32Array)]), "undefined" != typeof Float64Array && (y.addExtPacker(24, Float64Array, h), y.addExtUnpacker(24, [l, c(Float64Array)])), "undefined" != typeof Uint8ClampedArray && (y.addExtPacker(25, Uint8ClampedArray, o), y.addExtUnpacker(25, c(Uint8ClampedArray))), y.addExtPacker(26, ArrayBuffer, p), y.addExtPacker(29, DataView, h), y.addExtUnpacker(26, l), y.addExtUnpacker(29, [l, c(DataView)]));
187 }function o(t) {
188 return new r(t);
189 }function i(t) {
190 return t.valueOf();
191 }function f(t) {
192 t = RegExp.prototype.toString.call(t).split("/"), t.shift();var r = [t.pop()];return r.unshift(t.join("/")), r;
193 }function u(t) {
194 return RegExp.apply(null, t);
195 }function a(t) {
196 var r = {};for (var e in E) {
197 r[e] = t[e];
198 }return r;
199 }function s(t) {
200 return function (r) {
201 var e = new t();for (var n in E) {
202 e[n] = r[n];
203 }return e;
204 };
205 }function c(t) {
206 return function (r) {
207 return new t(r);
208 };
209 }function h(t) {
210 return new r(new Uint8Array(t.buffer));
211 }function p(t) {
212 return new r(new Uint8Array(t));
213 }function l(t) {
214 return new Uint8Array(t).buffer;
215 }var d = t("./ext").Ext,
216 y = e.preset = new d(),
217 g = t("./encode").encode,
218 v = t("./decode").decode,
219 E = { name: 1, message: 1, stack: 1, columnNumber: 1, fileName: 1, lineNumber: 1 };n();
220 }).call(this, t("buffer").Buffer);
221 }, { "./decode": 6, "./encode": 9, "./ext": 13, buffer: 22 }], 13: [function (t, r, e) {
222 function n() {
223 return this instanceof n ? (this.extPackers = {}, void (this.extUnpackers = [])) : new n();
224 }function o() {
225 return new n();
226 }function i(t) {
227 function r(t, r) {
228 return r(t);
229 }return t = t.slice(), function (e) {
230 return t.reduce(r, e);
231 };
232 }e.Ext = n, e.createCodec = o;var f = t("./ext-buffer").ExtBuffer,
233 u = t("./is-array");n.prototype.addExtPacker = function (t, r, e) {
234 function n(r) {
235 var n = e(r);return new f(n, t);
236 }u(e) && (e = i(e));var o = r.name;if (o && "Object" !== o) this.extPackers[o] = n;else {
237 var a = this.extEncoderList || (this.extEncoderList = []);a.unshift([r, n]);
238 }
239 }, n.prototype.addExtUnpacker = function (t, r) {
240 this.extUnpackers[t] = u(r) ? i(r) : r;
241 }, n.prototype.getExtPacker = function (t) {
242 var r = t.constructor,
243 e = r && r.name && this.extPackers[r.name];if (e) return e;var n = this.extEncoderList;if (n) for (var o = n.length, i = 0; o > i; i++) {
244 var f = n[i];if (r === f[0]) return f[1];
245 }
246 }, n.prototype.getExtUnpacker = function (t) {
247 function r(r) {
248 return new f(r, t);
249 }return this.extUnpackers[t] || r;
250 };
251 }, { "./ext-buffer": 11, "./is-array": 14 }], 14: [function (t, r, e) {
252 r.exports = Array.isArray || function (t) {
253 return "[object Array]" === Object.prototype.toString.call(t);
254 };
255 }, {}], 15: [function (t, r, e) {
256 function n(t) {
257 var r = i(t),
258 e = f[r];if (!e) throw new Error("Invalid type: " + (r ? "0x" + r.toString(16) : r));return e(t);
259 }function o(t) {
260 for (; t.offset < t.buffer.length;) {
261 var r,
262 e = t.offset;try {
263 r = n(t);
264 } catch (o) {
265 if (o !== u) throw o;t.offset = e;break;
266 }t.push(r);
267 }
268 }e.decode = n, e.decodeAsync = o;var i = t("./read-format").format.uint8,
269 f = t("./read-token").token,
270 u = t("./common").BUFFER_SHORTAGE;
271 }, { "./common": 4, "./read-format": 16, "./read-token": 17 }], 16: [function (t, r, e) {
272 (function (r) {
273 function n(t, r) {
274 var e,
275 n = {},
276 o = new Array(r),
277 i = new Array(r);for (e = 0; r > e; e++) {
278 o[e] = E(t), i[e] = E(t);
279 }for (e = 0; r > e; e++) {
280 n[o[e]] = i[e];
281 }return n;
282 }function o(t, r) {
283 for (var e = new Array(r), n = 0; r > n; n++) {
284 e[n] = E(t);
285 }return e;
286 }function i(t, e) {
287 var n = t.offset,
288 o = t.offset = n + e,
289 i = t.buffer;if (o > i.length) throw w;return x || !r.isBuffer(i) ? v.readString.call(i, n, o) : i.toString("utf-8", n, o);
290 }function f(t, r) {
291 var e = t.offset,
292 n = t.offset = e + r;if (n > t.buffer.length) throw w;return y.call(t.buffer, e, n);
293 }function u(t, r) {
294 var e = t.offset,
295 n = t.offset = e + r + 1;if (n > t.buffer.length) throw w;var o = t.buffer[e],
296 i = t.codec.getExtUnpacker(o);if (!i) throw new Error("Invalid ext type: " + (o ? "0x" + o.toString(16) : o));var f = y.call(t.buffer, e + 1, n);return i(f);
297 }function a(t) {
298 var r = t.buffer;if (t.offset >= r.length) throw w;return r[t.offset++];
299 }function s(t) {
300 var r = t.buffer;if (t.offset + 2 > r.length) throw w;return r[t.offset++] << 8 | r[t.offset++];
301 }function c(t, r) {
302 return function (e) {
303 var n = e.offset,
304 o = e.offset = n + t;if (o > e.buffer.length) throw w;return r.call(e.buffer, n, U);
305 };
306 }function h(t, r) {
307 var e = A.call(this, t, r),
308 n = A.call(this, t + 4, r);return e ? 4294967296 * e + n : n;
309 }function p(t, r) {
310 var e = b.call(this, t, r),
311 n = A.call(this, t + 4, r);return e ? 4294967296 * e + n : n;
312 }function l(t) {
313 return this.readFloatBE ? this.readFloatBE(t) : g.read(this, t, !1, 23, 4);
314 }function d(t) {
315 return this.readDoubleBE ? this.readDoubleBE(t) : g.read(this, t, !1, 52, 8);
316 }function y(t, e) {
317 var n = this.slice || Array.prototype.slice,
318 o = n.call(this, t, e);return r.isBuffer(o) || (o = r(o)), o;
319 }e.format = { map: n, array: o, str: i, bin: f, ext: u, uint8: a, uint16: s, uint32: c(4, r.prototype.readUInt32BE), uint64: c(8, h), int8: c(1, r.prototype.readInt8), int16: c(2, r.prototype.readInt16BE), int32: c(4, r.prototype.readInt32BE), int64: c(8, p), float32: c(4, l), float64: c(8, d) };var g = t("ieee754"),
320 v = t("./buffer-lite"),
321 E = t("./read-core").decode,
322 w = t("./common").BUFFER_SHORTAGE,
323 b = r.prototype.readInt32BE,
324 A = r.prototype.readUInt32BE,
325 x = "TYPED_ARRAY_SUPPORT" in r,
326 U = !0;
327 }).call(this, t("buffer").Buffer);
328 }, { "./buffer-lite": 2, "./common": 4, "./read-core": 15, buffer: 22, ieee754: 26 }], 17: [function (t, r, e) {
329 function n() {
330 var t;for (t = 0; 127 >= t; t++) {
331 u[t] = o(t);
332 }for (t = 128; 143 >= t; t++) {
333 u[t] = f(t - 128, a.map);
334 }for (t = 144; 159 >= t; t++) {
335 u[t] = f(t - 144, a.array);
336 }for (t = 160; 191 >= t; t++) {
337 u[t] = f(t - 160, a.str);
338 }for (u[192] = o(null), u[193] = null, u[194] = o(!1), u[195] = o(!0), u[196] = i(a.uint8, a.bin), u[197] = i(a.uint16, a.bin), u[198] = i(a.uint32, a.bin), u[199] = i(a.uint8, a.ext), u[200] = i(a.uint16, a.ext), u[201] = i(a.uint32, a.ext), u[202] = a.float32, u[203] = a.float64, u[204] = a.uint8, u[205] = a.uint16, u[206] = a.uint32, u[207] = a.uint64, u[208] = a.int8, u[209] = a.int16, u[210] = a.int32, u[211] = a.int64, u[212] = f(1, a.ext), u[213] = f(2, a.ext), u[214] = f(4, a.ext), u[215] = f(8, a.ext), u[216] = f(16, a.ext), u[217] = i(a.uint8, a.str), u[218] = i(a.uint16, a.str), u[219] = i(a.uint32, a.str), u[220] = i(a.uint16, a.array), u[221] = i(a.uint32, a.array), u[222] = i(a.uint16, a.map), u[223] = i(a.uint32, a.map), t = 224; 255 >= t; t++) {
339 u[t] = o(t - 256);
340 }
341 }function o(t) {
342 return function () {
343 return t;
344 };
345 }function i(t, r) {
346 return function (e) {
347 var n = t(e);return r(e, n);
348 };
349 }function f(t, r) {
350 return function (e) {
351 return r(e, t);
352 };
353 }var u = e.token = new Array(256),
354 a = t("./read-format").format;n();
355 }, { "./read-format": 16 }], 18: [function (t, r, e) {
356 function n(t, r) {
357 var e = o[typeof r === "undefined" ? "undefined" : babelHelpers.typeof(r)];if (!e) throw new Error('Unsupported type "' + (typeof r === "undefined" ? "undefined" : babelHelpers.typeof(r)) + '": ' + r);e(t, r);
358 }e.encode = n;var o = t("./write-type").type;
359 }, { "./write-type": 20 }], 19: [function (t, r, e) {
360 (function (r) {
361 function n() {
362 for (var t = 0; 255 >= t; t++) {
363 c[t] = p[t];
364 }y ? i() : o();
365 }function o() {
366 c[196] = f(196), c[197] = u(197), c[198] = a(198), c[199] = f(199), c[200] = u(200), c[201] = a(201), c[202] = s(202, 4, r.prototype.writeFloatBE), c[203] = s(203, 8, r.prototype.writeDoubleBE), c[204] = f(204), c[205] = u(205), c[206] = a(206), c[207] = s(207, 8, h.writeUint64BE), c[208] = f(208), c[209] = u(209), c[210] = a(210), c[211] = s(211, 8, h.writeUint64BE), c[217] = f(217), c[218] = u(218), c[219] = a(219), c[220] = u(220), c[221] = a(221), c[222] = u(222), c[223] = a(223);
367 }function i() {
368 c[196] = s(196, 1, r.prototype.writeUInt8), c[197] = s(197, 2, r.prototype.writeUInt16BE), c[198] = s(198, 4, r.prototype.writeUInt32BE), c[199] = s(199, 1, r.prototype.writeUInt8), c[200] = s(200, 2, r.prototype.writeUInt16BE), c[201] = s(201, 4, r.prototype.writeUInt32BE), c[202] = s(202, 4, r.prototype.writeFloatBE), c[203] = s(203, 8, r.prototype.writeDoubleBE), c[204] = s(204, 1, r.prototype.writeUInt8), c[205] = s(205, 2, r.prototype.writeUInt16BE), c[206] = s(206, 4, r.prototype.writeUInt32BE), c[207] = s(207, 8, h.writeUint64BE), c[208] = s(208, 1, r.prototype.writeInt8), c[209] = s(209, 2, r.prototype.writeInt16BE), c[210] = s(210, 4, r.prototype.writeInt32BE), c[211] = s(211, 8, h.writeUint64BE), c[217] = s(217, 1, r.prototype.writeUInt8), c[218] = s(218, 2, r.prototype.writeUInt16BE), c[219] = s(219, 4, r.prototype.writeUInt32BE), c[220] = s(220, 2, r.prototype.writeUInt16BE), c[221] = s(221, 4, r.prototype.writeUInt32BE), c[222] = s(222, 2, r.prototype.writeUInt16BE), c[223] = s(223, 4, r.prototype.writeUInt32BE);
369 }function f(t) {
370 return function (r, e) {
371 r.reserve(2);var n = r.buffer,
372 o = r.offset;n[o++] = t, n[o++] = e, r.offset = o;
373 };
374 }function u(t) {
375 return function (r, e) {
376 r.reserve(3);var n = r.buffer,
377 o = r.offset;n[o++] = t, n[o++] = e >>> 8, n[o++] = e, r.offset = o;
378 };
379 }function a(t) {
380 return function (r, e) {
381 r.reserve(5);var n = r.buffer,
382 o = r.offset;n[o++] = t, n[o++] = e >>> 24, n[o++] = e >>> 16, n[o++] = e >>> 8, n[o++] = e, r.offset = o;
383 };
384 }function s(t, r, e) {
385 return function (n, o) {
386 n.reserve(r + 1), n.buffer[n.offset++] = t, e.call(n.buffer, o, n.offset, l), n.offset += r;
387 };
388 }var c = e.token = new Array(256),
389 h = t("./buffer-lite"),
390 p = t("./write-uint8").uint8,
391 l = !0,
392 d = "TYPED_ARRAY_SUPPORT" in r,
393 y = d && !r.TYPED_ARRAY_SUPPORT;n();
394 }).call(this, t("buffer").Buffer);
395 }, { "./buffer-lite": 2, "./write-uint8": 21, buffer: 22 }], 20: [function (t, r, e) {
396 (function (r) {
397 function n(t, r) {
398 var e = r ? 195 : 194;l[e](t, r);
399 }function o(t, r) {
400 var e,
401 n = 0 | r;return r !== n ? (e = 203, void l[e](t, r)) : (e = n >= -32 && 127 >= n ? 255 & n : n >= 0 ? 255 >= n ? 204 : 65535 >= n ? 205 : 206 : n >= -128 ? 208 : n >= -32768 ? 209 : 210, void l[e](t, n));
402 }function i(t, r) {
403 var e = r.length,
404 n = 5 + 3 * e;t.reserve(n);var o = 32 > e ? 1 : 255 >= e ? 2 : 65535 >= e ? 3 : 5,
405 i = t.offset + o;e = p.writeString.call(t.buffer, r, i);var f = 32 > e ? 1 : 255 >= e ? 2 : 65535 >= e ? 3 : 5;if (o !== f) {
406 var u = t.offset + f,
407 a = i + e;v ? p.copy.call(t.buffer, t.buffer, u, i, a) : t.buffer.copy(t.buffer, u, i, a);
408 }var s = 1 === f ? 160 + e : 3 >= f ? 215 + f : 219;l[s](t, e), t.offset += e;
409 }function f(t, e) {
410 if (E(e)) return a(t, e);if (null === e) return u(t, e);if (r.isBuffer(e)) return s(t, e);var n = t.codec.getExtPacker(e);return n && (e = n(e)), e instanceof g ? c(t, e) : void h(t, e);
411 }function u(t, r) {
412 var e = 192;l[e](t, r);
413 }function a(t, r) {
414 var e = r.length,
415 n = 16 > e ? 144 + e : 65535 >= e ? 220 : 221;l[n](t, e);for (var o = 0; e > o; o++) {
416 d(t, r[o]);
417 }
418 }function s(t, r) {
419 var e = r.length,
420 n = 255 > e ? 196 : 65535 >= e ? 197 : 198;l[n](t, e), t.send(r);
421 }function c(t, r) {
422 var e = r.buffer,
423 n = e.length,
424 o = w[n] || (255 > n ? 199 : 65535 >= n ? 200 : 201);l[o](t, n), y[r.type](t), t.send(e);
425 }function h(t, r) {
426 var e = Object.keys(r),
427 n = e.length,
428 o = 16 > n ? 128 + n : 65535 >= n ? 222 : 223;l[o](t, n), e.forEach(function (e) {
429 d(t, e), d(t, r[e]);
430 });
431 }e.type = { "boolean": n, "function": u, number: o, object: f, string: i, symbol: u, undefined: u };var p = t("./buffer-lite"),
432 l = t("./write-token").token,
433 d = t("./write-core").encode,
434 y = t("./write-uint8").uint8,
435 g = t("./ext-buffer").ExtBuffer,
436 v = "TYPED_ARRAY_SUPPORT" in r,
437 E = t("./is-array"),
438 w = [];w[1] = 212, w[2] = 213, w[4] = 214, w[8] = 215, w[16] = 216;
439 }).call(this, t("buffer").Buffer);
440 }, { "./buffer-lite": 2, "./ext-buffer": 11, "./is-array": 14, "./write-core": 18, "./write-token": 19, "./write-uint8": 21, buffer: 22 }], 21: [function (t, r, e) {
441 function n(t) {
442 return function (r) {
443 r.reserve(1), r.buffer[r.offset++] = t;
444 };
445 }for (var o = e.uint8 = new Array(256), i = 0; 255 >= i; i++) {
446 o[i] = n(i);
447 }
448 }, {}], 22: [function (t, r, e) {
449 (function (r) {
450 "use strict";
451 function n() {
452 try {
453 var t = new Uint8Array(1);return t.foo = function () {
454 return 42;
455 }, 42 === t.foo() && "function" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength;
456 } catch (r) {
457 return !1;
458 }
459 }function o() {
460 return i.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
461 }function i(t) {
462 return this instanceof i ? (i.TYPED_ARRAY_SUPPORT || (this.length = 0, this.parent = void 0), "number" == typeof t ? f(this, t) : "string" == typeof t ? u(this, t, arguments.length > 1 ? arguments[1] : "utf8") : a(this, t)) : arguments.length > 1 ? new i(t, arguments[1]) : new i(t);
463 }function f(t, r) {
464 if (t = y(t, 0 > r ? 0 : 0 | g(r)), !i.TYPED_ARRAY_SUPPORT) for (var e = 0; r > e; e++) {
465 t[e] = 0;
466 }return t;
467 }function u(t, r, e) {
468 "string" == typeof e && "" !== e || (e = "utf8");var n = 0 | E(r, e);return t = y(t, n), t.write(r, e), t;
469 }function a(t, r) {
470 if (i.isBuffer(r)) return s(t, r);if (K(r)) return c(t, r);if (null == r) throw new TypeError("must start with number, buffer, array or string");if ("undefined" != typeof ArrayBuffer) {
471 if (r.buffer instanceof ArrayBuffer) return h(t, r);if (r instanceof ArrayBuffer) return p(t, r);
472 }return r.length ? l(t, r) : d(t, r);
473 }function s(t, r) {
474 var e = 0 | g(r.length);return t = y(t, e), r.copy(t, 0, 0, e), t;
475 }function c(t, r) {
476 var e = 0 | g(r.length);t = y(t, e);for (var n = 0; e > n; n += 1) {
477 t[n] = 255 & r[n];
478 }return t;
479 }function h(t, r) {
480 var e = 0 | g(r.length);t = y(t, e);for (var n = 0; e > n; n += 1) {
481 t[n] = 255 & r[n];
482 }return t;
483 }function p(t, r) {
484 return r.byteLength, i.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(r), t.__proto__ = i.prototype) : t = h(t, new Uint8Array(r)), t;
485 }function l(t, r) {
486 var e = 0 | g(r.length);t = y(t, e);for (var n = 0; e > n; n += 1) {
487 t[n] = 255 & r[n];
488 }return t;
489 }function d(t, r) {
490 var e,
491 n = 0;"Buffer" === r.type && K(r.data) && (e = r.data, n = 0 | g(e.length)), t = y(t, n);for (var o = 0; n > o; o += 1) {
492 t[o] = 255 & e[o];
493 }return t;
494 }function y(t, r) {
495 i.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(r), t.__proto__ = i.prototype) : t.length = r;var e = 0 !== r && r <= i.poolSize >>> 1;return e && (t.parent = Q), t;
496 }function g(t) {
497 if (t >= o()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + o().toString(16) + " bytes");return 0 | t;
498 }function v(t, r) {
499 if (!(this instanceof v)) return new v(t, r);var e = new i(t, r);return delete e.parent, e;
500 }function E(t, r) {
501 "string" != typeof t && (t = "" + t);var e = t.length;if (0 === e) return 0;for (var n = !1;;) {
502 switch (r) {case "ascii":case "binary":case "raw":case "raws":
503 return e;case "utf8":case "utf-8":
504 return z(t).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":
505 return 2 * e;case "hex":
506 return e >>> 1;case "base64":
507 return V(t).length;default:
508 if (n) return z(t).length;r = ("" + r).toLowerCase(), n = !0;}
509 }
510 }function w(t, r, e) {
511 var n = !1;if (r = 0 | r, e = void 0 === e || e === 1 / 0 ? this.length : 0 | e, t || (t = "utf8"), 0 > r && (r = 0), e > this.length && (e = this.length), r >= e) return "";for (;;) {
512 switch (t) {case "hex":
513 return T(this, r, e);case "utf8":case "utf-8":
514 return m(this, r, e);case "ascii":
515 return k(this, r, e);case "binary":
516 return S(this, r, e);case "base64":
517 return B(this, r, e);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":
518 return I(this, r, e);default:
519 if (n) throw new TypeError("Unknown encoding: " + t);t = (t + "").toLowerCase(), n = !0;}
520 }
521 }function b(t, r, e, n) {
522 e = Number(e) || 0;var o = t.length - e;n ? (n = Number(n), n > o && (n = o)) : n = o;var i = r.length;if (i % 2 !== 0) throw new Error("Invalid hex string");n > i / 2 && (n = i / 2);for (var f = 0; n > f; f++) {
523 var u = parseInt(r.substr(2 * f, 2), 16);if (isNaN(u)) throw new Error("Invalid hex string");t[e + f] = u;
524 }return f;
525 }function A(t, r, e, n) {
526 return X(z(r, t.length - e), t, e, n);
527 }function x(t, r, e, n) {
528 return X(G(r), t, e, n);
529 }function U(t, r, e, n) {
530 return x(t, r, e, n);
531 }function P(t, r, e, n) {
532 return X(V(r), t, e, n);
533 }function R(t, r, e, n) {
534 return X(H(r, t.length - e), t, e, n);
535 }function B(t, r, e) {
536 return 0 === r && e === t.length ? J.fromByteArray(t) : J.fromByteArray(t.slice(r, e));
537 }function m(t, r, e) {
538 e = Math.min(t.length, e);for (var n = [], o = r; e > o;) {
539 var i = t[o],
540 f = null,
541 u = i > 239 ? 4 : i > 223 ? 3 : i > 191 ? 2 : 1;if (e >= o + u) {
542 var a, s, c, h;switch (u) {case 1:
543 128 > i && (f = i);break;case 2:
544 a = t[o + 1], 128 === (192 & a) && (h = (31 & i) << 6 | 63 & a, h > 127 && (f = h));break;case 3:
545 a = t[o + 1], s = t[o + 2], 128 === (192 & a) && 128 === (192 & s) && (h = (15 & i) << 12 | (63 & a) << 6 | 63 & s, h > 2047 && (55296 > h || h > 57343) && (f = h));break;case 4:
546 a = t[o + 1], s = t[o + 2], c = t[o + 3], 128 === (192 & a) && 128 === (192 & s) && 128 === (192 & c) && (h = (15 & i) << 18 | (63 & a) << 12 | (63 & s) << 6 | 63 & c, h > 65535 && 1114112 > h && (f = h));}
547 }null === f ? (f = 65533, u = 1) : f > 65535 && (f -= 65536, n.push(f >>> 10 & 1023 | 55296), f = 56320 | 1023 & f), n.push(f), o += u;
548 }return _(n);
549 }function _(t) {
550 var r = t.length;if (W >= r) return String.fromCharCode.apply(String, t);for (var e = "", n = 0; r > n;) {
551 e += String.fromCharCode.apply(String, t.slice(n, n += W));
552 }return e;
553 }function k(t, r, e) {
554 var n = "";e = Math.min(t.length, e);for (var o = r; e > o; o++) {
555 n += String.fromCharCode(127 & t[o]);
556 }return n;
557 }function S(t, r, e) {
558 var n = "";e = Math.min(t.length, e);for (var o = r; e > o; o++) {
559 n += String.fromCharCode(t[o]);
560 }return n;
561 }function T(t, r, e) {
562 var n = t.length;(!r || 0 > r) && (r = 0), (!e || 0 > e || e > n) && (e = n);for (var o = "", i = r; e > i; i++) {
563 o += q(t[i]);
564 }return o;
565 }function I(t, r, e) {
566 for (var n = t.slice(r, e), o = "", i = 0; i < n.length; i += 2) {
567 o += String.fromCharCode(n[i] + 256 * n[i + 1]);
568 }return o;
569 }function Y(t, r, e) {
570 if (t % 1 !== 0 || 0 > t) throw new RangeError("offset is not uint");if (t + r > e) throw new RangeError("Trying to access beyond buffer length");
571 }function D(t, r, e, n, o, f) {
572 if (!i.isBuffer(t)) throw new TypeError("buffer must be a Buffer instance");if (r > o || f > r) throw new RangeError("value is out of bounds");if (e + n > t.length) throw new RangeError("index out of range");
573 }function O(t, r, e, n) {
574 0 > r && (r = 65535 + r + 1);for (var o = 0, i = Math.min(t.length - e, 2); i > o; o++) {
575 t[e + o] = (r & 255 << 8 * (n ? o : 1 - o)) >>> 8 * (n ? o : 1 - o);
576 }
577 }function C(t, r, e, n) {
578 0 > r && (r = 4294967295 + r + 1);for (var o = 0, i = Math.min(t.length - e, 4); i > o; o++) {
579 t[e + o] = r >>> 8 * (n ? o : 3 - o) & 255;
580 }
581 }function M(t, r, e, n, o, i) {
582 if (e + n > t.length) throw new RangeError("index out of range");if (0 > e) throw new RangeError("index out of range");
583 }function L(t, r, e, n, o) {
584 return o || M(t, r, e, 4, 3.4028234663852886e38, -3.4028234663852886e38), Z.write(t, r, e, n, 23, 4), e + 4;
585 }function F(t, r, e, n, o) {
586 return o || M(t, r, e, 8, 1.7976931348623157e308, -1.7976931348623157e308), Z.write(t, r, e, n, 52, 8), e + 8;
587 }function N(t) {
588 if (t = j(t).replace($, ""), t.length < 2) return "";for (; t.length % 4 !== 0;) {
589 t += "=";
590 }return t;
591 }function j(t) {
592 return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "");
593 }function q(t) {
594 return 16 > t ? "0" + t.toString(16) : t.toString(16);
595 }function z(t, r) {
596 r = r || 1 / 0;for (var e, n = t.length, o = null, i = [], f = 0; n > f; f++) {
597 if (e = t.charCodeAt(f), e > 55295 && 57344 > e) {
598 if (!o) {
599 if (e > 56319) {
600 (r -= 3) > -1 && i.push(239, 191, 189);continue;
601 }if (f + 1 === n) {
602 (r -= 3) > -1 && i.push(239, 191, 189);continue;
603 }o = e;continue;
604 }if (56320 > e) {
605 (r -= 3) > -1 && i.push(239, 191, 189), o = e;continue;
606 }e = (o - 55296 << 10 | e - 56320) + 65536;
607 } else o && (r -= 3) > -1 && i.push(239, 191, 189);if (o = null, 128 > e) {
608 if ((r -= 1) < 0) break;i.push(e);
609 } else if (2048 > e) {
610 if ((r -= 2) < 0) break;i.push(e >> 6 | 192, 63 & e | 128);
611 } else if (65536 > e) {
612 if ((r -= 3) < 0) break;i.push(e >> 12 | 224, e >> 6 & 63 | 128, 63 & e | 128);
613 } else {
614 if (!(1114112 > e)) throw new Error("Invalid code point");if ((r -= 4) < 0) break;i.push(e >> 18 | 240, e >> 12 & 63 | 128, e >> 6 & 63 | 128, 63 & e | 128);
615 }
616 }return i;
617 }function G(t) {
618 for (var r = [], e = 0; e < t.length; e++) {
619 r.push(255 & t.charCodeAt(e));
620 }return r;
621 }function H(t, r) {
622 for (var e, n, o, i = [], f = 0; f < t.length && !((r -= 2) < 0); f++) {
623 e = t.charCodeAt(f), n = e >> 8, o = e % 256, i.push(o), i.push(n);
624 }return i;
625 }function V(t) {
626 return J.toByteArray(N(t));
627 }function X(t, r, e, n) {
628 for (var o = 0; n > o && !(o + e >= r.length || o >= t.length); o++) {
629 r[o + e] = t[o];
630 }return o;
631 }var J = t("base64-js"),
632 Z = t("ieee754"),
633 K = t("isarray");e.Buffer = i, e.SlowBuffer = v, e.INSPECT_MAX_BYTES = 50, i.poolSize = 8192;var Q = {};i.TYPED_ARRAY_SUPPORT = void 0 !== r.TYPED_ARRAY_SUPPORT ? r.TYPED_ARRAY_SUPPORT : n(), i._augment = function (t) {
634 return t.__proto__ = i.prototype, t;
635 }, i.TYPED_ARRAY_SUPPORT ? (i.prototype.__proto__ = Uint8Array.prototype, i.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && i[Symbol.species] === i && Object.defineProperty(i, Symbol.species, { value: null, configurable: !0 })) : (i.prototype.length = void 0, i.prototype.parent = void 0), i.isBuffer = function (t) {
636 return !(null == t || !t._isBuffer);
637 }, i.compare = function (t, r) {
638 if (!i.isBuffer(t) || !i.isBuffer(r)) throw new TypeError("Arguments must be Buffers");if (t === r) return 0;for (var e = t.length, n = r.length, o = 0, f = Math.min(e, n); f > o && t[o] === r[o];) {
639 ++o;
640 }return o !== f && (e = t[o], n = r[o]), n > e ? -1 : e > n ? 1 : 0;
641 }, i.isEncoding = function (t) {
642 switch (String(t).toLowerCase()) {case "hex":case "utf8":case "utf-8":case "ascii":case "binary":case "base64":case "raw":case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":
643 return !0;default:
644 return !1;}
645 }, i.concat = function (t, r) {
646 if (!K(t)) throw new TypeError("list argument must be an Array of Buffers.");if (0 === t.length) return new i(0);var e;if (void 0 === r) for (r = 0, e = 0; e < t.length; e++) {
647 r += t[e].length;
648 }var n = new i(r),
649 o = 0;for (e = 0; e < t.length; e++) {
650 var f = t[e];f.copy(n, o), o += f.length;
651 }return n;
652 }, i.byteLength = E, i.prototype._isBuffer = !0, i.prototype.toString = function () {
653 var t = 0 | this.length;return 0 === t ? "" : 0 === arguments.length ? m(this, 0, t) : w.apply(this, arguments);
654 }, i.prototype.equals = function (t) {
655 if (!i.isBuffer(t)) throw new TypeError("Argument must be a Buffer");return this === t ? !0 : 0 === i.compare(this, t);
656 }, i.prototype.inspect = function () {
657 var t = "",
658 r = e.INSPECT_MAX_BYTES;return this.length > 0 && (t = this.toString("hex", 0, r).match(/.{2}/g).join(" "), this.length > r && (t += " ... ")), "<Buffer " + t + ">";
659 }, i.prototype.compare = function (t) {
660 if (!i.isBuffer(t)) throw new TypeError("Argument must be a Buffer");return this === t ? 0 : i.compare(this, t);
661 }, i.prototype.indexOf = function (t, r) {
662 function e(t, r, e) {
663 for (var n = -1, o = 0; e + o < t.length; o++) {
664 if (t[e + o] === r[-1 === n ? 0 : o - n]) {
665 if (-1 === n && (n = o), o - n + 1 === r.length) return e + n;
666 } else n = -1;
667 }return -1;
668 }if (r > 2147483647 ? r = 2147483647 : -2147483648 > r && (r = -2147483648), r >>= 0, 0 === this.length) return -1;if (r >= this.length) return -1;if (0 > r && (r = Math.max(this.length + r, 0)), "string" == typeof t) return 0 === t.length ? -1 : String.prototype.indexOf.call(this, t, r);if (i.isBuffer(t)) return e(this, t, r);if ("number" == typeof t) return i.TYPED_ARRAY_SUPPORT && "function" === Uint8Array.prototype.indexOf ? Uint8Array.prototype.indexOf.call(this, t, r) : e(this, [t], r);throw new TypeError("val must be string, number or Buffer");
669 }, i.prototype.write = function (t, r, e, n) {
670 if (void 0 === r) n = "utf8", e = this.length, r = 0;else if (void 0 === e && "string" == typeof r) n = r, e = this.length, r = 0;else if (isFinite(r)) r = 0 | r, isFinite(e) ? (e = 0 | e, void 0 === n && (n = "utf8")) : (n = e, e = void 0);else {
671 var o = n;n = r, r = 0 | e, e = o;
672 }var i = this.length - r;if ((void 0 === e || e > i) && (e = i), t.length > 0 && (0 > e || 0 > r) || r > this.length) throw new RangeError("attempt to write outside buffer bounds");n || (n = "utf8");for (var f = !1;;) {
673 switch (n) {case "hex":
674 return b(this, t, r, e);case "utf8":case "utf-8":
675 return A(this, t, r, e);case "ascii":
676 return x(this, t, r, e);case "binary":
677 return U(this, t, r, e);case "base64":
678 return P(this, t, r, e);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":
679 return R(this, t, r, e);default:
680 if (f) throw new TypeError("Unknown encoding: " + n);n = ("" + n).toLowerCase(), f = !0;}
681 }
682 }, i.prototype.toJSON = function () {
683 return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) };
684 };var W = 4096;i.prototype.slice = function (t, r) {
685 var e = this.length;t = ~ ~t, r = void 0 === r ? e : ~ ~r, 0 > t ? (t += e, 0 > t && (t = 0)) : t > e && (t = e), 0 > r ? (r += e, 0 > r && (r = 0)) : r > e && (r = e), t > r && (r = t);var n;if (i.TYPED_ARRAY_SUPPORT) n = this.subarray(t, r), n.__proto__ = i.prototype;else {
686 var o = r - t;n = new i(o, void 0);for (var f = 0; o > f; f++) {
687 n[f] = this[f + t];
688 }
689 }return n.length && (n.parent = this.parent || this), n;
690 }, i.prototype.readUIntLE = function (t, r, e) {
691 t = 0 | t, r = 0 | r, e || Y(t, r, this.length);for (var n = this[t], o = 1, i = 0; ++i < r && (o *= 256);) {
692 n += this[t + i] * o;
693 }return n;
694 }, i.prototype.readUIntBE = function (t, r, e) {
695 t = 0 | t, r = 0 | r, e || Y(t, r, this.length);for (var n = this[t + --r], o = 1; r > 0 && (o *= 256);) {
696 n += this[t + --r] * o;
697 }return n;
698 }, i.prototype.readUInt8 = function (t, r) {
699 return r || Y(t, 1, this.length), this[t];
700 }, i.prototype.readUInt16LE = function (t, r) {
701 return r || Y(t, 2, this.length), this[t] | this[t + 1] << 8;
702 }, i.prototype.readUInt16BE = function (t, r) {
703 return r || Y(t, 2, this.length), this[t] << 8 | this[t + 1];
704 }, i.prototype.readUInt32LE = function (t, r) {
705 return r || Y(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3];
706 }, i.prototype.readUInt32BE = function (t, r) {
707 return r || Y(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]);
708 }, i.prototype.readIntLE = function (t, r, e) {
709 t = 0 | t, r = 0 | r, e || Y(t, r, this.length);for (var n = this[t], o = 1, i = 0; ++i < r && (o *= 256);) {
710 n += this[t + i] * o;
711 }return o *= 128, n >= o && (n -= Math.pow(2, 8 * r)), n;
712 }, i.prototype.readIntBE = function (t, r, e) {
713 t = 0 | t, r = 0 | r, e || Y(t, r, this.length);for (var n = r, o = 1, i = this[t + --n]; n > 0 && (o *= 256);) {
714 i += this[t + --n] * o;
715 }return o *= 128, i >= o && (i -= Math.pow(2, 8 * r)), i;
716 }, i.prototype.readInt8 = function (t, r) {
717 return r || Y(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t];
718 }, i.prototype.readInt16LE = function (t, r) {
719 r || Y(t, 2, this.length);var e = this[t] | this[t + 1] << 8;return 32768 & e ? 4294901760 | e : e;
720 }, i.prototype.readInt16BE = function (t, r) {
721 r || Y(t, 2, this.length);var e = this[t + 1] | this[t] << 8;return 32768 & e ? 4294901760 | e : e;
722 }, i.prototype.readInt32LE = function (t, r) {
723 return r || Y(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24;
724 }, i.prototype.readInt32BE = function (t, r) {
725 return r || Y(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3];
726 }, i.prototype.readFloatLE = function (t, r) {
727 return r || Y(t, 4, this.length), Z.read(this, t, !0, 23, 4);
728 }, i.prototype.readFloatBE = function (t, r) {
729 return r || Y(t, 4, this.length), Z.read(this, t, !1, 23, 4);
730 }, i.prototype.readDoubleLE = function (t, r) {
731 return r || Y(t, 8, this.length), Z.read(this, t, !0, 52, 8);
732 }, i.prototype.readDoubleBE = function (t, r) {
733 return r || Y(t, 8, this.length), Z.read(this, t, !1, 52, 8);
734 }, i.prototype.writeUIntLE = function (t, r, e, n) {
735 t = +t, r = 0 | r, e = 0 | e, n || D(this, t, r, e, Math.pow(2, 8 * e), 0);var o = 1,
736 i = 0;for (this[r] = 255 & t; ++i < e && (o *= 256);) {
737 this[r + i] = t / o & 255;
738 }return r + e;
739 }, i.prototype.writeUIntBE = function (t, r, e, n) {
740 t = +t, r = 0 | r, e = 0 | e, n || D(this, t, r, e, Math.pow(2, 8 * e), 0);var o = e - 1,
741 i = 1;for (this[r + o] = 255 & t; --o >= 0 && (i *= 256);) {
742 this[r + o] = t / i & 255;
743 }return r + e;
744 }, i.prototype.writeUInt8 = function (t, r, e) {
745 return t = +t, r = 0 | r, e || D(this, t, r, 1, 255, 0), i.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[r] = 255 & t, r + 1;
746 }, i.prototype.writeUInt16LE = function (t, r, e) {
747 return t = +t, r = 0 | r, e || D(this, t, r, 2, 65535, 0), i.TYPED_ARRAY_SUPPORT ? (this[r] = 255 & t, this[r + 1] = t >>> 8) : O(this, t, r, !0), r + 2;
748 }, i.prototype.writeUInt16BE = function (t, r, e) {
749 return t = +t, r = 0 | r, e || D(this, t, r, 2, 65535, 0), i.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 8, this[r + 1] = 255 & t) : O(this, t, r, !1), r + 2;
750 }, i.prototype.writeUInt32LE = function (t, r, e) {
751 return t = +t, r = 0 | r, e || D(this, t, r, 4, 4294967295, 0), i.TYPED_ARRAY_SUPPORT ? (this[r + 3] = t >>> 24, this[r + 2] = t >>> 16, this[r + 1] = t >>> 8, this[r] = 255 & t) : C(this, t, r, !0), r + 4;
752 }, i.prototype.writeUInt32BE = function (t, r, e) {
753 return t = +t, r = 0 | r, e || D(this, t, r, 4, 4294967295, 0), i.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t) : C(this, t, r, !1), r + 4;
754 }, i.prototype.writeIntLE = function (t, r, e, n) {
755 if (t = +t, r = 0 | r, !n) {
756 var o = Math.pow(2, 8 * e - 1);D(this, t, r, e, o - 1, -o);
757 }var i = 0,
758 f = 1,
759 u = 0 > t ? 1 : 0;for (this[r] = 255 & t; ++i < e && (f *= 256);) {
760 this[r + i] = (t / f >> 0) - u & 255;
761 }return r + e;
762 }, i.prototype.writeIntBE = function (t, r, e, n) {
763 if (t = +t, r = 0 | r, !n) {
764 var o = Math.pow(2, 8 * e - 1);D(this, t, r, e, o - 1, -o);
765 }var i = e - 1,
766 f = 1,
767 u = 0 > t ? 1 : 0;for (this[r + i] = 255 & t; --i >= 0 && (f *= 256);) {
768 this[r + i] = (t / f >> 0) - u & 255;
769 }return r + e;
770 }, i.prototype.writeInt8 = function (t, r, e) {
771 return t = +t, r = 0 | r, e || D(this, t, r, 1, 127, -128), i.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), 0 > t && (t = 255 + t + 1), this[r] = 255 & t, r + 1;
772 }, i.prototype.writeInt16LE = function (t, r, e) {
773 return t = +t, r = 0 | r, e || D(this, t, r, 2, 32767, -32768), i.TYPED_ARRAY_SUPPORT ? (this[r] = 255 & t, this[r + 1] = t >>> 8) : O(this, t, r, !0), r + 2;
774 }, i.prototype.writeInt16BE = function (t, r, e) {
775 return t = +t, r = 0 | r, e || D(this, t, r, 2, 32767, -32768), i.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 8, this[r + 1] = 255 & t) : O(this, t, r, !1), r + 2;
776 }, i.prototype.writeInt32LE = function (t, r, e) {
777 return t = +t, r = 0 | r, e || D(this, t, r, 4, 2147483647, -2147483648), i.TYPED_ARRAY_SUPPORT ? (this[r] = 255 & t, this[r + 1] = t >>> 8, this[r + 2] = t >>> 16, this[r + 3] = t >>> 24) : C(this, t, r, !0), r + 4;
778 }, i.prototype.writeInt32BE = function (t, r, e) {
779 return t = +t, r = 0 | r, e || D(this, t, r, 4, 2147483647, -2147483648), 0 > t && (t = 4294967295 + t + 1), i.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t) : C(this, t, r, !1), r + 4;
780 }, i.prototype.writeFloatLE = function (t, r, e) {
781 return L(this, t, r, !0, e);
782 }, i.prototype.writeFloatBE = function (t, r, e) {
783 return L(this, t, r, !1, e);
784 }, i.prototype.writeDoubleLE = function (t, r, e) {
785 return F(this, t, r, !0, e);
786 }, i.prototype.writeDoubleBE = function (t, r, e) {
787 return F(this, t, r, !1, e);
788 }, i.prototype.copy = function (t, r, e, n) {
789 if (e || (e = 0), n || 0 === n || (n = this.length), r >= t.length && (r = t.length), r || (r = 0), n > 0 && e > n && (n = e), n === e) return 0;if (0 === t.length || 0 === this.length) return 0;if (0 > r) throw new RangeError("targetStart out of bounds");if (0 > e || e >= this.length) throw new RangeError("sourceStart out of bounds");if (0 > n) throw new RangeError("sourceEnd out of bounds");n > this.length && (n = this.length), t.length - r < n - e && (n = t.length - r + e);var o,
790 f = n - e;if (this === t && r > e && n > r) for (o = f - 1; o >= 0; o--) {
791 t[o + r] = this[o + e];
792 } else if (1e3 > f || !i.TYPED_ARRAY_SUPPORT) for (o = 0; f > o; o++) {
793 t[o + r] = this[o + e];
794 } else Uint8Array.prototype.set.call(t, this.subarray(e, e + f), r);return f;
795 }, i.prototype.fill = function (t, r, e) {
796 if (t || (t = 0), r || (r = 0), e || (e = this.length), r > e) throw new RangeError("end < start");if (e !== r && 0 !== this.length) {
797 if (0 > r || r >= this.length) throw new RangeError("start out of bounds");if (0 > e || e > this.length) throw new RangeError("end out of bounds");var n;if ("number" == typeof t) for (n = r; e > n; n++) {
798 this[n] = t;
799 } else {
800 var o = z(t.toString()),
801 i = o.length;for (n = r; e > n; n++) {
802 this[n] = o[n % i];
803 }
804 }return this;
805 }
806 };var $ = /[^+\/0-9A-Za-z-_]/g;
807 }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {});
808 }, { "base64-js": 23, ieee754: 26, isarray: 24 }], 23: [function (t, r, e) {
809 !function (t) {
810 "use strict";
811 function r(t) {
812 var r = c[t.charCodeAt(0)];return void 0 !== r ? r : -1;
813 }function e(t) {
814 function e(t) {
815 a[c++] = t;
816 }var n, o, i, f, u, a;if (t.length % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");var s = t.length;u = "=" === t.charAt(s - 2) ? 2 : "=" === t.charAt(s - 1) ? 1 : 0, a = new h(3 * t.length / 4 - u), i = u > 0 ? t.length - 4 : t.length;var c = 0;for (n = 0, o = 0; i > n; n += 4, o += 3) {
817 f = r(t.charAt(n)) << 18 | r(t.charAt(n + 1)) << 12 | r(t.charAt(n + 2)) << 6 | r(t.charAt(n + 3)), e((16711680 & f) >> 16), e((65280 & f) >> 8), e(255 & f);
818 }return 2 === u ? (f = r(t.charAt(n)) << 2 | r(t.charAt(n + 1)) >> 4, e(255 & f)) : 1 === u && (f = r(t.charAt(n)) << 10 | r(t.charAt(n + 1)) << 4 | r(t.charAt(n + 2)) >> 2, e(f >> 8 & 255), e(255 & f)), a;
819 }function n(t) {
820 return s[t];
821 }function o(t) {
822 return n(t >> 18 & 63) + n(t >> 12 & 63) + n(t >> 6 & 63) + n(63 & t);
823 }function i(t, r, e) {
824 for (var n, i = [], f = r; e > f; f += 3) {
825 n = (t[f] << 16) + (t[f + 1] << 8) + t[f + 2], i.push(o(n));
826 }return i.join("");
827 }function f(t) {
828 var r,
829 e,
830 o,
831 f = t.length % 3,
832 u = "",
833 a = [],
834 s = 16383;for (r = 0, o = t.length - f; o > r; r += s) {
835 a.push(i(t, r, r + s > o ? o : r + s));
836 }switch (f) {case 1:
837 e = t[t.length - 1], u += n(e >> 2), u += n(e << 4 & 63), u += "==";break;case 2:
838 e = (t[t.length - 2] << 8) + t[t.length - 1], u += n(e >> 10), u += n(e >> 4 & 63), u += n(e << 2 & 63), u += "=";}return a.push(u), a.join("");
839 }var u,
840 a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
841 s = [];for (u = 0; u < a.length; u++) {
842 s[u] = a[u];
843 }var c = [];for (u = 0; u < a.length; ++u) {
844 c[a.charCodeAt(u)] = u;
845 }c["-".charCodeAt(0)] = 62, c["_".charCodeAt(0)] = 63;var h = "undefined" != typeof Uint8Array ? Uint8Array : Array;t.toByteArray = e, t.fromByteArray = f;
846 }("undefined" == typeof e ? this.base64js = {} : e);
847 }, {}], 24: [function (t, r, e) {
848 var n = {}.toString;r.exports = Array.isArray || function (t) {
849 return "[object Array]" == n.call(t);
850 };
851 }, {}], 25: [function (t, r, e) {
852 function n() {
853 return this instanceof n ? void 0 : new n();
854 }!function (t) {
855 function e(t) {
856 for (var r in s) {
857 t[r] = s[r];
858 }return t;
859 }function n(t, r) {
860 return u(this, t).push(r), this;
861 }function o(t, r) {
862 function e() {
863 i.call(n, t, e), r.apply(this, arguments);
864 }var n = this;return e.originalListener = r, u(n, t).push(e), n;
865 }function i(t, r) {
866 function e(t) {
867 return t !== r && t.originalListener !== r;
868 }var n,
869 o = this;if (arguments.length) {
870 if (r) {
871 if (n = u(o, t, !0)) {
872 if (n = n.filter(e), !n.length) return i.call(o, t);o[a][t] = n;
873 }
874 } else if (n = o[a], n && (delete n[t], !Object.keys(n).length)) return i.call(o);
875 } else delete o[a];return o;
876 }function f(t, r) {
877 function e(t) {
878 t.call(i);
879 }function n(t) {
880 t.call(i, r);
881 }function o(t) {
882 t.apply(i, s);
883 }var i = this,
884 f = u(i, t, !0);if (!f) return !1;var a = arguments.length;if (1 === a) f.forEach(e);else if (2 === a) f.forEach(n);else {
885 var s = Array.prototype.slice.call(arguments, 1);f.forEach(o);
886 }return !!f.length;
887 }function u(t, r, e) {
888 if (!e || t[a]) {
889 var n = t[a] || (t[a] = {});return n[r] || (n[r] = []);
890 }
891 }"undefined" != typeof r && (r.exports = t);var a = "listeners",
892 s = { on: n, once: o, off: i, emit: f };e(t.prototype), t.mixin = e;
893 }(n);
894 }, {}], 26: [function (t, r, e) {
895 e.read = function (t, r, e, n, o) {
896 var i,
897 f,
898 u = 8 * o - n - 1,
899 a = (1 << u) - 1,
900 s = a >> 1,
901 c = -7,
902 h = e ? o - 1 : 0,
903 p = e ? -1 : 1,
904 l = t[r + h];for (h += p, i = l & (1 << -c) - 1, l >>= -c, c += u; c > 0; i = 256 * i + t[r + h], h += p, c -= 8) {}for (f = i & (1 << -c) - 1, i >>= -c, c += n; c > 0; f = 256 * f + t[r + h], h += p, c -= 8) {}if (0 === i) i = 1 - s;else {
905 if (i === a) return f ? NaN : (l ? -1 : 1) * (1 / 0);f += Math.pow(2, n), i -= s;
906 }return (l ? -1 : 1) * f * Math.pow(2, i - n);
907 }, e.write = function (t, r, e, n, o, i) {
908 var f,
909 u,
910 a,
911 s = 8 * i - o - 1,
912 c = (1 << s) - 1,
913 h = c >> 1,
914 p = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
915 l = n ? 0 : i - 1,
916 d = n ? 1 : -1,
917 y = 0 > r || 0 === r && 0 > 1 / r ? 1 : 0;for (r = Math.abs(r), isNaN(r) || r === 1 / 0 ? (u = isNaN(r) ? 1 : 0, f = c) : (f = Math.floor(Math.log(r) / Math.LN2), r * (a = Math.pow(2, -f)) < 1 && (f--, a *= 2), r += f + h >= 1 ? p / a : p * Math.pow(2, 1 - h), r * a >= 2 && (f++, a /= 2), f + h >= c ? (u = 0, f = c) : f + h >= 1 ? (u = (r * a - 1) * Math.pow(2, o), f += h) : (u = r * Math.pow(2, h - 1) * Math.pow(2, o), f = 0)); o >= 8; t[e + l] = 255 & u, l += d, u /= 256, o -= 8) {}for (f = f << o | u, s += o; s > 0; t[e + l] = 255 & f, l += d, f /= 256, s -= 8) {}t[e + l - d] |= 128 * y;
918 };
919 }, {}] }, {}, [1])(1);
920});
921});
922
923var msgpack = (msgpack_min && typeof msgpack_min === 'object' && 'default' in msgpack_min ? msgpack_min['default'] : msgpack_min);
924
925/**
926 * csModStringify module.
927 * @module core/csModStringify
928 * @param {object} data - the object to attempt to stringify
929 * @callback {function} callback - Returns a stringified object
930*/
931
932// A dead simple try catch for stringifying objects. In the future we'd like this
933// to somehow minify the string and make for a smaller payload
934var csModStringify = function csModStringify(data, callback) {
935 try {
936 callback(msgpack.encode(data));
937 } catch (e) {
938 console.warn('attempted to send invalid data to the pubsub server.');
939 }
940};
941
942/**
943 * csModPublish module.
944 * @module core/csModPublish
945 * @param {string} channel - the channel to publish to
946 * @param {object} data - the object to publish
947 * @param {string} privateKey - optional private key for private channels
948 * @param {this} _this - this inheratance
949*/
950var csModPublish = function csModPublish(channel, data, privateKey, _this) {
951 // If we're connected, let's go ahead and publish our payload.
952 if (_this.connected) {
953 // Safely stringify our data before sending it to the server.
954 _this.stringify({
955 channel: channel,
956 privateKey: privateKey,
957 payload: data,
958 metadata: {
959 time: Date.now(),
960 client: _this.client,
961 commonName: _this.commonName,
962 type: 'publish'
963 }
964 }, function (payload) {
965 // Send off the payload to the server signifiying we're using a standard publish method.
966 _this.socket.send(payload);
967 });
968 } else {
969 // Crap, Something is wrong and we're not connected yet, let's try again later.
970 console.warn('Failed to connect, attempting again in 1 second.');
971 setTimeout(function () {
972 // call self with the same params that were initially passed.
973 _this.publish(channel, data, privateKey);
974 }, 500);
975 }
976};
977
978/**
979 * csModInfo module.
980 * @module core/csModInfo
981 * @param {string} channel - the channel to look at
982 * @param {object} data - additional information for request
983 * @param {object} opts - additional options for subscriptions
984 * @param {this} _this - this inheratance
985*/
986var csModInfo = function csModInfo(channel, data, opts, _this) {
987 // Since options are optional, if there are no options passed, we'll drop in
988 // an empty object if options are false or undefined. This will help fix top
989 // level null or undefined exceptions.
990 var options = opts ? opts : {};
991 var privateKey = options.privateKey ? options.privateKey : false;
992
993 // If we're connected, let's go ahead and publish our payload.
994 if (_this.connected) {
995 // Safely stringify our data before sending it to the server.
996 _this.stringify({
997 channel: channel,
998 privateKey: privateKey,
999 payload: data,
1000 metadata: {
1001 time: Date.now(),
1002 client: _this.client,
1003 commonName: _this.commonName,
1004 type: 'info'
1005 }
1006 }, function (payload) {
1007 // Send off the payload to the frontend that will request channel info
1008 _this.socket.send(payload);
1009 });
1010 } else {
1011 // Something is wrong and we're not connected yet, let's try again later.
1012 console.warn('Failed to connect, attempting again in 1 second.');
1013 setTimeout(function () {
1014 // call self with the same params that were initially passed.
1015 _this.info(channel, data, opts);
1016 }, 500);
1017 }
1018};
1019
1020/**
1021 * csModSubscribe module.
1022 * @module core/csModSubscribe
1023 * @param {string} channel - the channel to subscribe to
1024 * @callback {function} callback - new messages are returned here via msg
1025 * @param {object} opts - additional options for subscriptions
1026 * @param {this} _this - this inheratance
1027*/
1028var csModSubscribe = function csModSubscribe(channel, callback, opts, _this) {
1029 // Since options are optional, if there are no options passed, we'll drop in
1030 // an empty object if options are false or undefined. This will help fix top
1031 // level null or undefined exceptions.
1032 var options = opts ? opts : {};
1033
1034 var privateKey = options.privateKey ? options.privateKey : false;
1035
1036 if (_this.connected) {
1037 // Safely stringify our data before sending it to the server.
1038 _this.stringify({
1039 channel: channel,
1040 privateKey: privateKey,
1041 noself: options.noself ? options.noself : false,
1042 secret: options.accessToken ? options.accessToken : false,
1043 private: options.private ? options.private : false,
1044 metadata: {
1045 time: Date.now(),
1046 client: _this.client,
1047 commonName: _this.commonName,
1048 type: 'subscribe'
1049 }
1050 }, function (payload) {
1051 console.log('payload', payload);
1052 // Send off the payload to the server letting it know we're subscribing to a channel
1053 _this.socket.send(payload);
1054
1055 // Whenever the server has new info it will tell us here.
1056 _this.socket.onmessage = function (msg) {
1057 var decodedMsg = msgpack.decode(new Uint8Array(msg.data));
1058 if (decodedMsg.channel === channel) {
1059 callback(decodedMsg);
1060 }
1061 };
1062
1063 // When we go to leave be sure to tell the server we're leaving, it would be rude not to.
1064 window.onbeforeunload = function () {
1065 _this.stringify({
1066 channel: channel,
1067 privateKey: privateKey,
1068 metadata: {
1069 time: Date.now(),
1070 client: _this.client,
1071 commonName: _this.commonName,
1072 type: 'unsubscribe'
1073 }
1074 }, function (payload) {
1075 _this.socket.send(payload);
1076 });
1077 };
1078 });
1079 } else {
1080 // Crap, Something is wrong and we're not connected yet, let's try again later.
1081 console.warn('Failed to connect, attempting again in 1 second.');
1082 setTimeout(function () {
1083 // call self with the same params that were initially passed.
1084 _this.subscribe(channel, callback, opts);
1085 }, 500);
1086 }
1087};
1088
1089/**
1090 * Deny a client access to a channel
1091 * @function csModDeny
1092 * @param {string} channel - the channel in which to deny the client from
1093 * @param {string} client - the client to deny
1094 * @param {string} secret - the secret key associated with this channel
1095 * @param {this} _this - this inheratance
1096*/
1097var csModDeny = function csModDeny(channel, client, secret, _this) {
1098 // If we're connected, let's go ahead and publish our payload.
1099 if (_this.connected) {
1100 // Safely stringify our data before sending it to the server.
1101 _this.stringify({
1102 channel: channel,
1103 client: client,
1104 secret: secret,
1105 metadata: {
1106 time: Date.now(),
1107 client: _this.client,
1108 commonName: _this.commonName,
1109 type: 'deny'
1110 }
1111 }, function (payload) {
1112 // Send off the payload to the frontend that will attempt to deny a client
1113 _this.socket.send(payload);
1114 });
1115 } else {
1116 // Something is wrong and we're not connected yet, let's try again later.
1117 console.warn('Failed to connect, attempting again in 1 second.');
1118 setTimeout(function () {
1119 // call self with the same params that were initially passed.
1120 _this.info(channel, data, opts);
1121 }, 500);
1122 }
1123};
1124
1125/**
1126 * csModHistory module.
1127 * @module core/csModHistory
1128 * @param {string} channel - the channel to pull history from
1129 * @param {number} limit - the ammount of items to pull from history
1130 * @param {object} opts - options such as privateKeys
1131 * @param {this} _this - this inheratance
1132*/
1133var csModHistory = function csModHistory(channel, limit, opts, _this) {
1134 // Since options are optional, if there are no options passed, we'll drop in
1135 // an empty object if options are false or undefined. This will help fix top
1136 // level null or undefined exceptions.
1137 var options = opts ? opts : {};
1138 var privateKey = options.privateKey ? options.privateKey : false;
1139
1140 // If we're connected, let's go ahead and publish our payload.
1141 if (_this.connected) {
1142 // Safely stringify our data before sending it to the server.
1143 _this.stringify({
1144 channel: channel,
1145 privateKey: privateKey,
1146 limit: limit,
1147 metadata: {
1148 time: Date.now(),
1149 client: _this.client,
1150 commonName: _this.commonName,
1151 type: 'history'
1152 }
1153 }, function (payload) {
1154 // Send off the payload to the frontend that will request a batch of history
1155 _this.socket.send(payload);
1156 });
1157 } else {
1158 // Something is wrong and we're not connected yet, let's try again later.
1159 console.warn('Failed to connect, attempting again in 1 second.');
1160 setTimeout(function () {
1161 // call self with the same params that were initially passed.
1162 _this.history(channel, limit, opts);
1163 }, 500);
1164 }
1165};
1166
1167/**
1168 * Creates a new CatSnake client.
1169 * @class
1170 */
1171
1172var CatSnake = function () {
1173 /**
1174 * @constructs CatSnake
1175 * @param {string} address - the address of the catsnake server
1176 * @param {object} options - options such as common name and others
1177 */
1178
1179 function CatSnake(address, options) {
1180 var _this = this;
1181
1182 babelHelpers.classCallCheck(this, CatSnake);
1183
1184 this.socket = new WebSocket(address);
1185 this.socket.binaryType = 'arraybuffer';
1186
1187 this.connected = false;
1188
1189 // Genrate a unique clientid
1190 this.client = csModClientid();
1191
1192 this.commonName = options.commonName ? options.commonName : config.defaultName;
1193
1194 // Fired when the connection is made to the server
1195 this.socket.onopen = function (event) {
1196 _this.connected = true;
1197
1198 // Make sure we tell the server we're leaving.
1199 window.onbeforeunload = function () {
1200 _this.socket.close();
1201 };
1202 };
1203 }
1204
1205 babelHelpers.createClass(CatSnake, [{
1206 key: 'stringify',
1207 value: function stringify(data, callback) {
1208 /**
1209 * Tries to return a stringified object.
1210 * @function csModStringify
1211 * @param {object} data - the object to attempt to stringify
1212 * @callback {string} - Returns a stringified object
1213 */
1214 return csModStringify(data, callback);
1215 }
1216 }, {
1217 key: 'publish',
1218 value: function publish(channel, data, privateKey) {
1219 /**
1220 * Publishes a message to all subscribers
1221 * @function csModPublish
1222 * @param {string} channel - the channel to publish to
1223 * @param {object} data - the object to publish
1224 * @param {string} privateKey - optional private key for private channels
1225 * @param {this} this - this inheratance
1226 */
1227 csModPublish(channel, data, privateKey, this);
1228 }
1229 }, {
1230 key: 'info',
1231 value: function info(channel, data, opts) {
1232 /**
1233 * List all clients
1234 * @function csModInfo
1235 * @param {string} channel - the channel to look at
1236 * @param {object} data - additional information for request
1237 * @param {object} opts - additional options for subscriptions
1238 * @param {this} this - this inheratance
1239 */
1240 csModInfo(channel, data, opts, this);
1241 }
1242 }, {
1243 key: 'history',
1244 value: function history(channel, limit, opts) {
1245 /**
1246 * List all clients
1247 * @function csModHistory
1248 * @param {string} channel - the channel to pull history from
1249 * @param {number} limit - the ammount of items to pull from history
1250 * @param {object} opts - options such as privateKeys
1251 * @param {this} this - this inheratance
1252 */
1253 csModHistory(channel, limit, opts, this);
1254 }
1255 }, {
1256 key: 'subscribe',
1257 value: function subscribe(channel, callback, opts) {
1258 /**
1259 * Subscribe to a channel
1260 * @function csModSubscribe
1261 * @param {string} channel - the channel to subscribe to
1262 * @callback {function} callback - new messages are returned here via msg
1263 * @param {object} opts - additional options for subscriptions
1264 * @param {this} this - this inheratance
1265 */
1266 csModSubscribe(channel, callback, opts, this);
1267 }
1268 }, {
1269 key: 'deny',
1270 value: function deny(channel, client, secret) {
1271 /**
1272 * Deny a client access to a channel
1273 * @function csModDeny
1274 * @param {string} channel - the channel in which to deny the client from
1275 * @param {string} client - the client to deny
1276 * @param {string} secret - the secret key associated with this channel
1277 */
1278 return csModDeny(channel, client, secret, this);
1279 }
1280 }, {
1281 key: 'grant',
1282 value: function grant(channel, client, secret) {
1283 /**
1284 * Grant a client access to a channel
1285 * @function csModGrant
1286 * @param {string} channel - the channel in which to grant the client access to
1287 * @param {string} client - the client to grant access
1288 * @param {string} secret - the secret key associated with this channel
1289 */
1290 return cdModGrant(channel, client, secret, this);
1291 }
1292 }]);
1293 return CatSnake;
1294}();
\No newline at end of file