pusher-fake 1.12.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/bin/pusher-fake +1 -3
  3. data/lib/pusher-fake.rb +3 -1
  4. data/lib/pusher-fake/channel.rb +4 -2
  5. data/lib/pusher-fake/channel/presence.rb +3 -3
  6. data/lib/pusher-fake/channel/private.rb +3 -1
  7. data/lib/pusher-fake/channel/public.rb +2 -0
  8. data/lib/pusher-fake/configuration.rb +4 -1
  9. data/lib/pusher-fake/connection.rb +10 -7
  10. data/lib/pusher-fake/server.rb +2 -0
  11. data/lib/pusher-fake/server/application.rb +4 -2
  12. data/lib/pusher-fake/support/base.rb +4 -2
  13. data/lib/pusher-fake/support/cucumber.rb +2 -0
  14. data/lib/pusher-fake/support/rspec.rb +2 -0
  15. data/lib/pusher-fake/webhook.rb +3 -1
  16. data/spec/features/api/channels_spec.rb +2 -0
  17. data/spec/features/api/users_spec.rb +2 -0
  18. data/spec/features/client/connect_spec.rb +2 -0
  19. data/spec/features/client/event_spec.rb +2 -0
  20. data/spec/features/client/presence_spec.rb +2 -0
  21. data/spec/features/client/subscribe_spec.rb +9 -5
  22. data/spec/features/server/event_spec.rb +2 -0
  23. data/spec/features/server/webhooks_spec.rb +2 -0
  24. data/spec/lib/pusher-fake/channel/presence_spec.rb +2 -0
  25. data/spec/lib/pusher-fake/channel/private_spec.rb +4 -2
  26. data/spec/lib/pusher-fake/channel/public_spec.rb +2 -0
  27. data/spec/lib/pusher-fake/channel_spec.rb +2 -0
  28. data/spec/lib/pusher-fake/configuration_spec.rb +9 -1
  29. data/spec/lib/pusher-fake/connection_spec.rb +4 -2
  30. data/spec/lib/pusher-fake/server/application_spec.rb +4 -2
  31. data/spec/lib/pusher-fake/server_spec.rb +2 -0
  32. data/spec/lib/pusher-fake/webhook_spec.rb +3 -1
  33. data/spec/lib/pusher_fake_spec.rb +2 -0
  34. data/spec/spec_helper.rb +3 -1
  35. data/spec/support/application.rb +3 -1
  36. data/spec/support/application/public/javascripts/vendor/polyfill.min.js +1 -0
  37. data/spec/support/application/public/javascripts/vendor/pusher-7.0.0.js +4565 -0
  38. data/spec/support/application/views/index.erb +2 -1
  39. data/spec/support/capybara.rb +4 -7
  40. data/spec/support/coveralls.rb +2 -0
  41. data/spec/support/helpers/connect.rb +2 -0
  42. data/spec/support/helpers/event.rb +2 -0
  43. data/spec/support/helpers/subscription.rb +2 -0
  44. data/spec/support/helpers/user.rb +2 -0
  45. data/spec/support/matchers/have_configuration_option.rb +2 -0
  46. data/spec/support/pusher_fake.rb +3 -1
  47. data/spec/support/webhooks.rb +17 -15
  48. metadata +104 -47
  49. data/lib/pusher-fake/cucumber.rb +0 -4
  50. data/spec/support/application/public/javascripts/vendor/pusher-4.2.2.js +0 -4183
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe PusherFake, ".configure" do
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/setup"
2
4
 
3
5
  Bundler.require(:default, :development)
4
6
 
5
- Dir[File.expand_path("support/**/*.rb", __dir__)].each do |file|
7
+ Dir[File.expand_path("support/**/*.rb", __dir__)].sort.each do |file|
6
8
  require file
7
9
  end
8
10
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "sinatra"
2
4
  require "tilt/erb"
3
5
 
@@ -22,7 +24,7 @@ module Sinatra
22
24
  protected
23
25
 
24
26
  def channel_data
25
- return unless params[:channel_name] =~ /^presence-/
27
+ return unless /^presence-/.match?(params[:channel_name])
26
28
 
27
29
  {
28
30
  user_id: params[:socket_id],
@@ -0,0 +1 @@
1
+ !function r(c,a,f){function o(n,t){if(!a[n]){if(!c[n]){var e="function"==typeof require&&require;if(!t&&e)return e(n,!0);if(s)return s(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var u=a[n]={exports:{}};c[n][0].call(u.exports,function(t){return o(c[n][1][t]||t)},u,u.exports,r,c,a,f)}return a[n].exports}for(var s="function"==typeof require&&require,t=0;t<f.length;t++)o(f[t]);return o}({1:[function(t,n,r){t(276),t(212),t(214),t(213),t(216),t(218),t(223),t(217),t(215),t(225),t(224),t(220),t(221),t(219),t(211),t(222),t(226),t(227),t(178),t(180),t(179),t(229),t(228),t(199),t(209),t(210),t(200),t(201),t(202),t(203),t(204),t(205),t(206),t(207),t(208),t(182),t(183),t(184),t(185),t(186),t(187),t(188),t(189),t(190),t(191),t(192),t(193),t(194),t(195),t(196),t(197),t(198),t(263),t(268),t(275),t(266),t(258),t(259),t(264),t(269),t(271),t(254),t(255),t(256),t(257),t(260),t(261),t(262),t(265),t(267),t(270),t(272),t(273),t(274),t(173),t(175),t(174),t(177),t(176),t(161),t(159),t(166),t(163),t(169),t(171),t(158),t(165),t(155),t(170),t(153),t(168),t(167),t(160),t(164),t(152),t(154),t(157),t(156),t(172),t(162),t(245),t(246),t(252),t(247),t(248),t(249),t(250),t(251),t(230),t(181),t(253),t(288),t(289),t(277),t(278),t(283),t(286),t(287),t(281),t(284),t(282),t(285),t(279),t(280),t(231),t(232),t(233),t(234),t(235),t(238),t(236),t(237),t(239),t(240),t(241),t(242),t(244),t(243),n.exports=t(50)},{152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,50:50}],2:[function(t,n,r){t(290),n.exports=t(50).Array.flatMap},{290:290,50:50}],3:[function(t,n,r){t(291),n.exports=t(50).Array.includes},{291:291,50:50}],4:[function(t,n,r){t(292),n.exports=t(50).Object.entries},{292:292,50:50}],5:[function(t,n,r){t(293),n.exports=t(50).Object.getOwnPropertyDescriptors},{293:293,50:50}],6:[function(t,n,r){t(294),n.exports=t(50).Object.values},{294:294,50:50}],7:[function(t,n,r){"use strict";t(230),t(295),n.exports=t(50).Promise.finally},{230:230,295:295,50:50}],8:[function(t,n,r){t(296),n.exports=t(50).String.padEnd},{296:296,50:50}],9:[function(t,n,r){t(297),n.exports=t(50).String.padStart},{297:297,50:50}],10:[function(t,n,r){t(299),n.exports=t(50).String.trimRight},{299:299,50:50}],11:[function(t,n,r){t(298),n.exports=t(50).String.trimLeft},{298:298,50:50}],12:[function(t,n,r){t(300),n.exports=t(149).f("asyncIterator")},{149:149,300:300}],13:[function(t,n,r){t(30),n.exports=t(16).global},{16:16,30:30}],14:[function(t,n,r){n.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},{}],15:[function(t,n,r){var e=t(26);n.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},{26:26}],16:[function(t,n,r){var e=n.exports={version:"2.6.11"};"number"==typeof __e&&(__e=e)},{}],17:[function(t,n,r){var o=t(14);n.exports=function(e,i,t){if(o(e),void 0===i)return e;switch(t){case 1:return function(t){return e.call(i,t)};case 2:return function(t,n){return e.call(i,t,n)};case 3:return function(t,n,r){return e.call(i,t,n,r)}}return function(){return e.apply(i,arguments)}}},{14:14}],18:[function(t,n,r){n.exports=!t(21)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{21:21}],19:[function(t,n,r){var e=t(26),i=t(22).document,o=e(i)&&e(i.createElement);n.exports=function(t){return o?i.createElement(t):{}}},{22:22,26:26}],20:[function(t,n,r){var g=t(22),y=t(16),d=t(17),x=t(24),m=t(23),S="prototype",b=function(t,n,r){var e,i,o,u=t&b.F,c=t&b.G,a=t&b.S,f=t&b.P,s=t&b.B,l=t&b.W,h=c?y:y[n]||(y[n]={}),p=h[S],v=c?g:a?g[n]:(g[n]||{})[S];for(e in c&&(r=n),r)(i=!u&&v&&void 0!==v[e])&&m(h,e)||(o=i?v[e]:r[e],h[e]=c&&"function"!=typeof v[e]?r[e]:s&&i?d(o,g):l&&v[e]==o?function(e){function ib(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)}return ib[S]=e[S],ib}(o):f&&"function"==typeof o?d(Function.call,o):o,f&&((h.virtual||(h.virtual={}))[e]=o,t&b.R&&p&&!p[e]&&x(p,e,o)))};b.F=1,b.G=2,b.S=4,b.P=8,b.B=16,b.W=32,b.U=64,b.R=128,n.exports=b},{16:16,17:17,22:22,23:23,24:24}],21:[function(t,n,r){n.exports=function(t){try{return!!t()}catch(t){return!0}}},{}],22:[function(t,n,r){var e=n.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},{}],23:[function(t,n,r){var e={}.hasOwnProperty;n.exports=function(t,n){return e.call(t,n)}},{}],24:[function(t,n,r){var e=t(27),i=t(28);n.exports=t(18)?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},{18:18,27:27,28:28}],25:[function(t,n,r){n.exports=!t(18)&&!t(21)(function(){return 7!=Object.defineProperty(t(19)("div"),"a",{get:function(){return 7}}).a})},{18:18,19:19,21:21}],26:[function(t,n,r){n.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],27:[function(t,n,r){var e=t(15),i=t(25),o=t(29),u=Object.defineProperty;r.f=t(18)?Object.defineProperty:function defineProperty(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},{15:15,18:18,25:25,29:29}],28:[function(t,n,r){n.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},{}],29:[function(t,n,r){var i=t(26);n.exports=function(t,n){if(!i(t))return t;var r,e;if(n&&"function"==typeof(r=t.toString)&&!i(e=r.call(t)))return e;if("function"==typeof(r=t.valueOf)&&!i(e=r.call(t)))return e;if(!n&&"function"==typeof(r=t.toString)&&!i(e=r.call(t)))return e;throw TypeError("Can't convert object to primitive value")}},{26:26}],30:[function(t,n,r){var e=t(20);e(e.G,{global:t(22)})},{20:20,22:22}],31:[function(t,n,r){arguments[4][14][0].apply(r,arguments)},{14:14}],32:[function(t,n,r){var e=t(46);n.exports=function(t,n){if("number"!=typeof t&&"Number"!=e(t))throw TypeError(n);return+t}},{46:46}],33:[function(t,n,r){var e=t(150)("unscopables"),i=Array.prototype;null==i[e]&&t(70)(i,e,{}),n.exports=function(t){i[e][t]=!0}},{150:150,70:70}],34:[function(t,n,r){"use strict";var e=t(127)(!0);n.exports=function(t,n,r){return n+(r?e(t,n).length:1)}},{127:127}],35:[function(t,n,r){n.exports=function(t,n,r,e){if(!(t instanceof n)||void 0!==e&&e in t)throw TypeError(r+": incorrect invocation!");return t}},{}],36:[function(t,n,r){arguments[4][15][0].apply(r,arguments)},{15:15,79:79}],37:[function(t,n,r){"use strict";var f=t(140),s=t(135),l=t(139);n.exports=[].copyWithin||function copyWithin(t,n){var r=f(this),e=l(r.length),i=s(t,e),o=s(n,e),u=2<arguments.length?arguments[2]:void 0,c=Math.min((void 0===u?e:s(u,e))-o,e-i),a=1;for(o<i&&i<o+c&&(a=-1,o+=c-1,i+=c-1);0<c--;)o in r?r[i]=r[o]:delete r[i],i+=a,o+=a;return r}},{135:135,139:139,140:140}],38:[function(t,n,r){"use strict";var c=t(140),a=t(135),f=t(139);n.exports=function fill(t){for(var n=c(this),r=f(n.length),e=arguments.length,i=a(1<e?arguments[1]:void 0,r),o=2<e?arguments[2]:void 0,u=void 0===o?r:a(o,r);i<u;)n[i++]=t;return n}},{135:135,139:139,140:140}],39:[function(t,n,r){var a=t(138),f=t(139),s=t(135);n.exports=function(c){return function(t,n,r){var e,i=a(t),o=f(i.length),u=s(r,o);if(c&&n!=n){for(;u<o;)if((e=i[u++])!=e)return!0}else for(;u<o;u++)if((c||u in i)&&i[u]===n)return c||u||0;return!c&&-1}}},{135:135,138:138,139:139}],40:[function(t,n,r){var m=t(52),S=t(75),b=t(140),w=t(139),e=t(43);n.exports=function(l,t){var h=1==l,p=2==l,v=3==l,g=4==l,y=6==l,d=5==l||y,x=t||e;return function(t,n,r){for(var e,i,o=b(t),u=S(o),c=m(n,r,3),a=w(u.length),f=0,s=h?x(t,a):p?x(t,0):void 0;f<a;f++)if((d||f in u)&&(i=c(e=u[f],f,o),l))if(h)s[f]=i;else if(i)switch(l){case 3:return!0;case 5:return e;case 6:return f;case 2:s.push(e)}else if(g)return!1;return y?-1:v||g?g:s}}},{139:139,140:140,43:43,52:52,75:75}],41:[function(t,n,r){var s=t(31),l=t(140),h=t(75),p=t(139);n.exports=function(t,n,r,e,i){s(n);var o=l(t),u=h(o),c=p(o.length),a=i?c-1:0,f=i?-1:1;if(r<2)for(;;){if(a in u){e=u[a],a+=f;break}if(a+=f,i?a<0:c<=a)throw TypeError("Reduce of empty array with no initial value")}for(;i?0<=a:a<c;a+=f)a in u&&(e=n(e,u[a],a,o));return e}},{139:139,140:140,31:31,75:75}],42:[function(t,n,r){var e=t(79),i=t(77),o=t(150)("species");n.exports=function(t){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)||(n=void 0),e(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},{150:150,77:77,79:79}],43:[function(t,n,r){var e=t(42);n.exports=function(t,n){return new(e(t))(n)}},{42:42}],44:[function(t,n,r){"use strict";var o=t(31),u=t(79),c=t(74),a=[].slice,f={};n.exports=Function.bind||function bind(n){var r=o(this),e=a.call(arguments,1),i=function(){var t=e.concat(a.call(arguments));return this instanceof i?function(t,n,r){if(!(n in f)){for(var e=[],i=0;i<n;i++)e[i]="a["+i+"]";f[n]=Function("F,a","return new F("+e.join(",")+")")}return f[n](t,r)}(r,t.length,t):c(r,t,n)};return u(r.prototype)&&(i.prototype=r.prototype),i}},{31:31,74:74,79:79}],45:[function(t,n,r){var i=t(46),o=t(150)("toStringTag"),u="Arguments"==i(function(){return arguments}());n.exports=function(t){var n,r,e;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),o))?r:u?i(n):"Object"==(e=i(n))&&"function"==typeof n.callee?"Arguments":e}},{150:150,46:46}],46:[function(t,n,r){var e={}.toString;n.exports=function(t){return e.call(t).slice(8,-1)}},{}],47:[function(t,n,r){"use strict";function Uf(t,n){var r,e=p(n);if("F"!==e)return t._i[e];for(r=t._f;r;r=r.n)if(r.k==n)return r}var u=t(97).f,c=t(96),a=t(115),f=t(52),s=t(35),l=t(66),e=t(83),i=t(85),o=t(121),h=t(56),p=t(92).fastKey,v=t(147),g=h?"_s":"size";n.exports={getConstructor:function(t,o,r,e){var i=t(function(t,n){s(t,i,o,"_i"),t._t=o,t._i=c(null),t._f=void 0,t._l=void 0,t[g]=0,null!=n&&l(n,r,t[e],t)});return a(i.prototype,{clear:function clear(){for(var t=v(this,o),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[g]=0},delete:function(t){var n=v(this,o),r=Uf(n,t);if(r){var e=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=e),e&&(e.p=i),n._f==r&&(n._f=e),n._l==r&&(n._l=i),n[g]--}return!!r},forEach:function forEach(t){v(this,o);for(var n,r=f(t,1<arguments.length?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function has(t){return!!Uf(v(this,o),t)}}),h&&u(i.prototype,"size",{get:function(){return v(this,o)[g]}}),i},def:function(t,n,r){var e,i,o=Uf(t,n);return o?o.v=r:(t._l=o={i:i=p(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=o),e&&(e.n=o),t[g]++,"F"!==i&&(t._i[i]=o)),t},getEntry:Uf,setStrong:function(t,r,n){e(t,r,function(t,n){this._t=v(t,r),this._k=n,this._l=void 0},function(){for(var t=this,n=t._k,r=t._l;r&&r.r;)r=r.p;return t._t&&(t._l=r=r?r.n:t._t._f)?i(0,"keys"==n?r.k:"values"==n?r.v:[r.k,r.v]):(t._t=void 0,i(1))},n?"entries":"values",!n,!0),o(r)}}},{115:115,121:121,147:147,35:35,52:52,56:56,66:66,83:83,85:85,92:92,96:96,97:97}],48:[function(t,n,r){"use strict";function Tg(t){return t._l||(t._l=new g)}function Vg(t,n){return o(t.a,function(t){return t[0]===n})}var u=t(115),c=t(92).getWeak,i=t(36),a=t(79),f=t(35),s=t(66),e=t(40),l=t(69),h=t(147),o=e(5),p=e(6),v=0,g=function(){this.a=[]};g.prototype={get:function(t){var n=Vg(this,t);if(n)return n[1]},has:function(t){return!!Vg(this,t)},set:function(t,n){var r=Vg(this,t);r?r[1]=n:this.a.push([t,n])},delete:function(n){var t=p(this.a,function(t){return t[0]===n});return~t&&this.a.splice(t,1),!!~t}},n.exports={getConstructor:function(t,r,e,i){var o=t(function(t,n){f(t,o,r,"_i"),t._t=r,t._i=v++,t._l=void 0,null!=n&&s(n,e,t[i],t)});return u(o.prototype,{delete:function(t){if(!a(t))return!1;var n=c(t);return!0===n?Tg(h(this,r)).delete(t):n&&l(n,this._i)&&delete n[this._i]},has:function has(t){if(!a(t))return!1;var n=c(t);return!0===n?Tg(h(this,r)).has(t):n&&l(n,this._i)}}),o},def:function(t,n,r){var e=c(i(n),!0);return!0===e?Tg(t).set(n,r):e[t._i]=r,t},ufstore:Tg}},{115:115,147:147,35:35,36:36,40:40,66:66,69:69,79:79,92:92}],49:[function(t,n,r){"use strict";var y=t(68),d=t(60),x=t(116),m=t(115),S=t(92),b=t(66),w=t(35),_=t(79),E=t(62),O=t(84),I=t(122),F=t(73);n.exports=function(e,t,n,r,i,o){function Wh(t){var r=f[t];x(f,t,"delete"==t?function(t){return!(o&&!_(t))&&r.call(this,0===t?0:t)}:"has"==t?function has(t){return!(o&&!_(t))&&r.call(this,0===t?0:t)}:"get"==t?function get(t){return o&&!_(t)?void 0:r.call(this,0===t?0:t)}:"add"==t?function add(t){return r.call(this,0===t?0:t),this}:function set(t,n){return r.call(this,0===t?0:t,n),this})}var u=y[e],c=u,a=i?"set":"add",f=c&&c.prototype,s={};if("function"==typeof c&&(o||f.forEach&&!E(function(){(new c).entries().next()}))){var l=new c,h=l[a](o?{}:-0,1)!=l,p=E(function(){l.has(1)}),v=O(function(t){new c(t)}),g=!o&&E(function(){for(var t=new c,n=5;n--;)t[a](n,n);return!t.has(-0)});v||(((c=t(function(t,n){w(t,c,e);var r=F(new u,t,c);return null!=n&&b(n,i,r[a],r),r})).prototype=f).constructor=c),(p||g)&&(Wh("delete"),Wh("has"),i&&Wh("get")),(g||h)&&Wh(a),o&&f.clear&&delete f.clear}else c=r.getConstructor(t,e,i,a),m(c.prototype,n),S.NEED=!0;return I(c,e),s[e]=c,d(d.G+d.W+d.F*(c!=u),s),o||r.setStrong(c,e,i),c}},{115:115,116:116,122:122,35:35,60:60,62:62,66:66,68:68,73:73,79:79,84:84,92:92}],50:[function(t,n,r){arguments[4][16][0].apply(r,arguments)},{16:16}],51:[function(t,n,r){"use strict";var e=t(97),i=t(114);n.exports=function(t,n,r){n in t?e.f(t,n,i(0,r)):t[n]=r}},{114:114,97:97}],52:[function(t,n,r){arguments[4][17][0].apply(r,arguments)},{17:17,31:31}],53:[function(t,n,r){"use strict";function Ii(t){return 9<t?t:"0"+t}var e=t(62),i=Date.prototype.getTime,o=Date.prototype.toISOString;n.exports=e(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!e(function(){o.call(new Date(NaN))})?function toISOString(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":9999<n?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+Ii(t.getUTCMonth()+1)+"-"+Ii(t.getUTCDate())+"T"+Ii(t.getUTCHours())+":"+Ii(t.getUTCMinutes())+":"+Ii(t.getUTCSeconds())+"."+(99<r?r:"0"+Ii(r))+"Z"}:o},{62:62}],54:[function(t,n,r){"use strict";var e=t(36),i=t(141);n.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(e(this),"number"!=t)}},{141:141,36:36}],55:[function(t,n,r){n.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},{}],56:[function(t,n,r){arguments[4][18][0].apply(r,arguments)},{18:18,62:62}],57:[function(t,n,r){arguments[4][19][0].apply(r,arguments)},{19:19,68:68,79:79}],58:[function(t,n,r){n.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],59:[function(t,n,r){var c=t(105),a=t(102),f=t(106);n.exports=function(t){var n=c(t),r=a.f;if(r)for(var e,i=r(t),o=f.f,u=0;i.length>u;)o.call(t,e=i[u++])&&n.push(e);return n}},{102:102,105:105,106:106}],60:[function(t,n,r){var g=t(68),y=t(50),d=t(70),x=t(116),m=t(52),S="prototype",b=function(t,n,r){var e,i,o,u,c=t&b.F,a=t&b.G,f=t&b.S,s=t&b.P,l=t&b.B,h=a?g:f?g[n]||(g[n]={}):(g[n]||{})[S],p=a?y:y[n]||(y[n]={}),v=p[S]||(p[S]={});for(e in a&&(r=n),r)o=((i=!c&&h&&void 0!==h[e])?h:r)[e],u=l&&i?m(o,g):s&&"function"==typeof o?m(Function.call,o):o,h&&x(h,e,o,t&b.U),p[e]!=o&&d(p,e,u),s&&v[e]!=o&&(v[e]=o)};g.core=y,b.F=1,b.G=2,b.S=4,b.P=8,b.B=16,b.W=32,b.U=64,b.R=128,n.exports=b},{116:116,50:50,52:52,68:68,70:70}],61:[function(t,n,r){var e=t(150)("match");n.exports=function(n){var r=/./;try{"/./"[n](r)}catch(t){try{return r[e]=!1,!"/./"[n](r)}catch(t){}}return!0}},{150:150}],62:[function(t,n,r){arguments[4][21][0].apply(r,arguments)},{21:21}],63:[function(t,n,r){"use strict";t(246);var s=t(116),l=t(70),h=t(62),p=t(55),v=t(150),g=t(118),y=v("species"),d=!h(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),x=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();n.exports=function(r,t,n){var e=v(r),o=!h(function(){var t={};return t[e]=function(){return 7},7!=""[r](t)}),i=o?!h(function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===r&&(n.constructor={},n.constructor[y]=function(){return n}),n[e](""),!t}):void 0;if(!o||!i||"replace"===r&&!d||"split"===r&&!x){var u=/./[e],c=n(p,e,""[r],function maybeCallNative(t,n,r,e,i){return n.exec===g?o&&!i?{done:!0,value:u.call(n,r,e)}:{done:!0,value:t.call(r,n,e)}:{done:!1}}),a=c[0],f=c[1];s(String.prototype,r,a),l(RegExp.prototype,e,2==t?function(t,n){return f.call(t,this,n)}:function(t){return f.call(t,this)})}}},{116:116,118:118,150:150,246:246,55:55,62:62,70:70}],64:[function(t,n,r){"use strict";var e=t(36);n.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},{36:36}],65:[function(t,n,r){"use strict";var p=t(77),v=t(79),g=t(139),y=t(52),d=t(150)("isConcatSpreadable");n.exports=function flattenIntoArray(t,n,r,e,i,o,u,c){for(var a,f,s=i,l=0,h=!!u&&y(u,c,3);l<e;){if(l in r){if(a=h?h(r[l],l,n):r[l],f=!1,v(a)&&(f=void 0!==(f=a[d])?!!f:p(a)),f&&0<o)s=flattenIntoArray(t,n,a,g(a.length),s,o-1)-1;else{if(9007199254740991<=s)throw TypeError();t[s]=a}s++}l++}return s}},{139:139,150:150,52:52,77:77,79:79}],66:[function(t,n,r){var h=t(52),p=t(81),v=t(76),g=t(36),y=t(139),d=t(151),x={},m={};(r=n.exports=function(t,n,r,e,i){var o,u,c,a,f=i?function(){return t}:d(t),s=h(r,e,n?2:1),l=0;if("function"!=typeof f)throw TypeError(t+" is not iterable!");if(v(f)){for(o=y(t.length);l<o;l++)if((a=n?s(g(u=t[l])[0],u[1]):s(t[l]))===x||a===m)return a}else for(c=f.call(t);!(u=c.next()).done;)if((a=p(c,s,u.value,n))===x||a===m)return a}).BREAK=x,r.RETURN=m},{139:139,151:151,36:36,52:52,76:76,81:81}],67:[function(t,n,r){n.exports=t(124)("native-function-to-string",Function.toString)},{124:124}],68:[function(t,n,r){arguments[4][22][0].apply(r,arguments)},{22:22}],69:[function(t,n,r){arguments[4][23][0].apply(r,arguments)},{23:23}],70:[function(t,n,r){arguments[4][24][0].apply(r,arguments)},{114:114,24:24,56:56,97:97}],71:[function(t,n,r){var e=t(68).document;n.exports=e&&e.documentElement},{68:68}],72:[function(t,n,r){arguments[4][25][0].apply(r,arguments)},{25:25,56:56,57:57,62:62}],73:[function(t,n,r){var o=t(79),u=t(120).set;n.exports=function(t,n,r){var e,i=n.constructor;return i!==r&&"function"==typeof i&&(e=i.prototype)!==r.prototype&&o(e)&&u&&u(t,e),t}},{120:120,79:79}],74:[function(t,n,r){n.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},{}],75:[function(t,n,r){var e=t(46);n.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},{46:46}],76:[function(t,n,r){var e=t(86),i=t(150)("iterator"),o=Array.prototype;n.exports=function(t){return void 0!==t&&(e.Array===t||o[i]===t)}},{150:150,86:86}],77:[function(t,n,r){var e=t(46);n.exports=Array.isArray||function isArray(t){return"Array"==e(t)}},{46:46}],78:[function(t,n,r){var e=t(79),i=Math.floor;n.exports=function isInteger(t){return!e(t)&&isFinite(t)&&i(t)===t}},{79:79}],79:[function(t,n,r){arguments[4][26][0].apply(r,arguments)},{26:26}],80:[function(t,n,r){var e=t(79),i=t(46),o=t(150)("match");n.exports=function(t){var n;return e(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},{150:150,46:46,79:79}],81:[function(t,n,r){var o=t(36);n.exports=function(n,t,r,e){try{return e?t(o(r)[0],r[1]):t(r)}catch(t){var i=n.return;throw void 0!==i&&o(i.call(n)),t}}},{36:36}],82:[function(t,n,r){"use strict";var e=t(96),i=t(114),o=t(122),u={};t(70)(u,t(150)("iterator"),function(){return this}),n.exports=function(t,n,r){t.prototype=e(u,{next:i(1,r)}),o(t,n+" Iterator")}},{114:114,122:122,150:150,70:70,96:96}],83:[function(t,n,r){"use strict";function In(){return this}var x=t(87),m=t(60),S=t(116),b=t(70),w=t(86),_=t(82),E=t(122),O=t(103),I=t(150)("iterator"),F=!([].keys&&"next"in[].keys()),P="values";n.exports=function(t,n,r,e,i,o,u){_(r,n,e);function Qn(t){if(!F&&t in p)return p[t];switch(t){case"keys":return function keys(){return new r(this,t)};case P:return function values(){return new r(this,t)}}return function entries(){return new r(this,t)}}var c,a,f,s=n+" Iterator",l=i==P,h=!1,p=t.prototype,v=p[I]||p["@@iterator"]||i&&p[i],g=v||Qn(i),y=i?l?Qn("entries"):g:void 0,d="Array"==n&&p.entries||v;if(d&&(f=O(d.call(new t)))!==Object.prototype&&f.next&&(E(f,s,!0),x||"function"==typeof f[I]||b(f,I,In)),l&&v&&v.name!==P&&(h=!0,g=function values(){return v.call(this)}),x&&!u||!F&&!h&&p[I]||b(p,I,g),w[n]=g,w[s]=In,i)if(c={values:l?g:Qn(P),keys:o?g:Qn("keys"),entries:y},u)for(a in c)a in p||S(p,a,c[a]);else m(m.P+m.F*(F||h),n,c);return c}},{103:103,116:116,122:122,150:150,60:60,70:70,82:82,86:86,87:87}],84:[function(t,n,r){var o=t(150)("iterator"),u=!1;try{var e=[7][o]();e.return=function(){u=!0},Array.from(e,function(){throw 2})}catch(t){}n.exports=function(t,n){if(!n&&!u)return!1;var r=!1;try{var e=[7],i=e[o]();i.next=function(){return{done:r=!0}},e[o]=function(){return i},t(e)}catch(t){}return r}},{150:150}],85:[function(t,n,r){n.exports=function(t,n){return{value:n,done:!!t}}},{}],86:[function(t,n,r){n.exports={}},{}],87:[function(t,n,r){n.exports=!1},{}],88:[function(t,n,r){var e=Math.expm1;n.exports=!e||22025.465794806718<e(10)||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function expm1(t){return 0==(t=+t)?t:-1e-6<t&&t<1e-6?t+t*t/2:Math.exp(t)-1}:e},{}],89:[function(t,n,r){var o=t(91),e=Math.pow,u=e(2,-52),c=e(2,-23),a=e(2,127)*(2-c),f=e(2,-126);n.exports=Math.fround||function fround(t){var n,r,e=Math.abs(t),i=o(t);return e<f?i*(e/f/c+1/u-1/u)*f*c:a<(r=(n=(1+c/u)*e)-(n-e))||r!=r?i*(1/0):i*r}},{91:91}],90:[function(t,n,r){n.exports=Math.log1p||function log1p(t){return-1e-8<(t=+t)&&t<1e-8?t-t*t/2:Math.log(1+t)}},{}],91:[function(t,n,r){n.exports=Math.sign||function sign(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},{}],92:[function(t,n,r){function lp(t){u(t,e,{value:{i:"O"+ ++c,w:{}}})}var e=t(145)("meta"),i=t(79),o=t(69),u=t(97).f,c=0,a=Object.isExtensible||function(){return!0},f=!t(62)(function(){return a(Object.preventExtensions({}))}),s=n.exports={KEY:e,NEED:!1,fastKey:function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,e)){if(!a(t))return"F";if(!n)return"E";lp(t)}return t[e].i},getWeak:function(t,n){if(!o(t,e)){if(!a(t))return!0;if(!n)return!1;lp(t)}return t[e].w},onFreeze:function(t){return f&&s.NEED&&a(t)&&!o(t,e)&&lp(t),t}}},{145:145,62:62,69:69,79:79,97:97}],93:[function(t,n,r){var u=t(68),c=t(134).set,a=u.MutationObserver||u.WebKitMutationObserver,f=u.process,s=u.Promise,l="process"==t(46)(f);n.exports=function(){function Ip(){var t,n;for(l&&(t=f.domain)&&t.exit();r;){n=r.fn,r=r.next;try{n()}catch(t){throw r?i():e=void 0,t}}e=void 0,t&&t.enter()}var r,e,i;if(l)i=function(){f.nextTick(Ip)};else if(!a||u.navigator&&u.navigator.standalone)if(s&&s.resolve){var t=s.resolve(void 0);i=function(){t.then(Ip)}}else i=function(){c.call(u,Ip)};else{var n=!0,o=document.createTextNode("");new a(Ip).observe(o,{characterData:!0}),i=function(){o.data=n=!n}}return function(t){var n={fn:t,next:void 0};e&&(e.next=n),r||(r=n,i()),e=n}}},{134:134,46:46,68:68}],94:[function(t,n,r){"use strict";var i=t(31);function PromiseCapability(t){var r,e;this.promise=new t(function(t,n){if(void 0!==r||void 0!==e)throw TypeError("Bad Promise constructor");r=t,e=n}),this.resolve=i(r),this.reject=i(e)}n.exports.f=function(t){return new PromiseCapability(t)}},{31:31}],95:[function(t,n,r){"use strict";var h=t(56),p=t(105),v=t(102),g=t(106),y=t(140),d=t(75),i=Object.assign;n.exports=!i||t(62)(function(){var t={},n={},r=Symbol(),e="abcdefghijklmnopqrst";return t[r]=7,e.split("").forEach(function(t){n[t]=t}),7!=i({},t)[r]||Object.keys(i({},n)).join("")!=e})?function assign(t,n){for(var r=y(t),e=arguments.length,i=1,o=v.f,u=g.f;i<e;)for(var c,a=d(arguments[i++]),f=o?p(a).concat(o(a)):p(a),s=f.length,l=0;l<s;)c=f[l++],h&&!u.call(a,c)||(r[c]=a[c]);return r}:i},{102:102,105:105,106:106,140:140,56:56,62:62,75:75}],96:[function(e,t,n){function Hq(){}var i=e(36),o=e(98),u=e(58),c=e(123)("IE_PROTO"),a="prototype",f=function(){var t,n=e(57)("iframe"),r=u.length;for(n.style.display="none",e(71).appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),f=t.F;r--;)delete f[a][u[r]];return f()};t.exports=Object.create||function create(t,n){var r;return null!==t?(Hq[a]=i(t),r=new Hq,Hq[a]=null,r[c]=t):r=f(),void 0===n?r:o(r,n)}},{123:123,36:36,57:57,58:58,71:71,98:98}],97:[function(t,n,r){arguments[4][27][0].apply(r,arguments)},{141:141,27:27,36:36,56:56,72:72}],98:[function(t,n,r){var u=t(97),c=t(36),a=t(105);n.exports=t(56)?Object.defineProperties:function defineProperties(t,n){c(t);for(var r,e=a(n),i=e.length,o=0;o<i;)u.f(t,r=e[o++],n[r]);return t}},{105:105,36:36,56:56,97:97}],99:[function(t,n,r){var e=t(106),i=t(114),o=t(138),u=t(141),c=t(69),a=t(72),f=Object.getOwnPropertyDescriptor;r.f=t(56)?f:function getOwnPropertyDescriptor(t,n){if(t=o(t),n=u(n,!0),a)try{return f(t,n)}catch(t){}if(c(t,n))return i(!e.f.call(t,n),t[n])}},{106:106,114:114,138:138,141:141,56:56,69:69,72:72}],100:[function(t,n,r){var e=t(138),i=t(101).f,o={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];n.exports.f=function getOwnPropertyNames(t){return u&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return u.slice()}}(t):i(e(t))}},{101:101,138:138}],101:[function(t,n,r){var e=t(104),i=t(58).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return e(t,i)}},{104:104,58:58}],102:[function(t,n,r){r.f=Object.getOwnPropertySymbols},{}],103:[function(t,n,r){var e=t(69),i=t(140),o=t(123)("IE_PROTO"),u=Object.prototype;n.exports=Object.getPrototypeOf||function(t){return t=i(t),e(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},{123:123,140:140,69:69}],104:[function(t,n,r){var u=t(69),c=t(138),a=t(39)(!1),f=t(123)("IE_PROTO");n.exports=function(t,n){var r,e=c(t),i=0,o=[];for(r in e)r!=f&&u(e,r)&&o.push(r);for(;n.length>i;)u(e,r=n[i++])&&(~a(o,r)||o.push(r));return o}},{123:123,138:138,39:39,69:69}],105:[function(t,n,r){var e=t(104),i=t(58);n.exports=Object.keys||function keys(t){return e(t,i)}},{104:104,58:58}],106:[function(t,n,r){r.f={}.propertyIsEnumerable},{}],107:[function(t,n,r){var i=t(60),o=t(50),u=t(62);n.exports=function(t,n){var r=(o.Object||{})[t]||Object[t],e={};e[t]=n(r),i(i.S+i.F*u(function(){r(1)}),"Object",e)}},{50:50,60:60,62:62}],108:[function(t,n,r){var a=t(56),f=t(105),s=t(138),l=t(106).f;n.exports=function(c){return function(t){for(var n,r=s(t),e=f(r),i=e.length,o=0,u=[];o<i;)n=e[o++],a&&!l.call(r,n)||u.push(c?[n,r[n]]:r[n]);return u}}},{105:105,106:106,138:138,56:56}],109:[function(t,n,r){var e=t(101),i=t(102),o=t(36),u=t(68).Reflect;n.exports=u&&u.ownKeys||function ownKeys(t){var n=e.f(o(t)),r=i.f;return r?n.concat(r(t)):n}},{101:101,102:102,36:36,68:68}],110:[function(t,n,r){var e=t(68).parseFloat,i=t(132).trim;n.exports=1/e(t(133)+"-0")!=-1/0?function parseFloat(t){var n=i(String(t),3),r=e(n);return 0===r&&"-"==n.charAt(0)?-0:r}:e},{132:132,133:133,68:68}],111:[function(t,n,r){var e=t(68).parseInt,i=t(132).trim,o=t(133),u=/^[-+]?0[xX]/;n.exports=8!==e(o+"08")||22!==e(o+"0x16")?function parseInt(t,n){var r=i(String(t),3);return e(r,n>>>0||(u.test(r)?16:10))}:e},{132:132,133:133,68:68}],112:[function(t,n,r){n.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},{}],113:[function(t,n,r){var e=t(36),i=t(79),o=t(94);n.exports=function(t,n){if(e(t),i(n)&&n.constructor===t)return n;var r=o.f(t);return(0,r.resolve)(n),r.promise}},{36:36,79:79,94:94}],114:[function(t,n,r){arguments[4][28][0].apply(r,arguments)},{28:28}],115:[function(t,n,r){var i=t(116);n.exports=function(t,n,r){for(var e in n)i(t,e,n[e],r);return t}},{116:116}],116:[function(t,n,r){var o=t(68),u=t(70),c=t(69),a=t(145)("src"),e=t(67),i="toString",f=(""+e).split(i);t(50).inspectSource=function(t){return e.call(t)},(n.exports=function(t,n,r,e){var i="function"==typeof r;i&&(c(r,"name")||u(r,"name",n)),t[n]!==r&&(i&&(c(r,a)||u(r,a,t[n]?""+t[n]:f.join(String(n)))),t===o?t[n]=r:e?t[n]?t[n]=r:u(t,n,r):(delete t[n],u(t,n,r)))})(Function.prototype,i,function toString(){return"function"==typeof this&&this[a]||e.call(this)})},{145:145,50:50,67:67,68:68,69:69,70:70}],117:[function(t,n,r){"use strict";var i=t(45),o=RegExp.prototype.exec;n.exports=function(t,n){var r=t.exec;if("function"==typeof r){var e=r.call(t,n);if("object"!=typeof e)throw new TypeError("RegExp exec method returned something other than an Object or null");return e}if("RegExp"!==i(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,n)}},{45:45}],118:[function(t,n,r){"use strict";var e,i,u=t(64),c=RegExp.prototype.exec,a=String.prototype.replace,o=c,f="lastIndex",s=(e=/a/,i=/b*/g,c.call(e,"a"),c.call(i,"a"),0!==e[f]||0!==i[f]),l=void 0!==/()??/.exec("")[1];(s||l)&&(o=function exec(t){var n,r,e,i,o=this;return l&&(r=new RegExp("^"+o.source+"$(?!\\s)",u.call(o))),s&&(n=o[f]),e=c.call(o,t),s&&e&&(o[f]=o.global?e.index+e[0].length:n),l&&e&&1<e.length&&a.call(e[0],r,function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(e[i]=void 0)}),e}),n.exports=o},{64:64}],119:[function(t,n,r){n.exports=Object.is||function is(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}},{}],120:[function(n,t,r){function Ou(t,n){if(i(t),!e(n)&&null!==n)throw TypeError(n+": can't set as prototype!")}var e=n(79),i=n(36);t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,r,e){try{(e=n(52)(Function.call,n(99).f(Object.prototype,"__proto__").set,2))(t,[]),r=!(t instanceof Array)}catch(t){r=!0}return function setPrototypeOf(t,n){return Ou(t,n),r?t.__proto__=n:e(t,n),t}}({},!1):void 0),check:Ou}},{36:36,52:52,79:79,99:99}],121:[function(t,n,r){"use strict";var e=t(68),i=t(97),o=t(56),u=t(150)("species");n.exports=function(t){var n=e[t];o&&n&&!n[u]&&i.f(n,u,{configurable:!0,get:function(){return this}})}},{150:150,56:56,68:68,97:97}],122:[function(t,n,r){var e=t(97).f,i=t(69),o=t(150)("toStringTag");n.exports=function(t,n,r){t&&!i(t=r?t:t.prototype,o)&&e(t,o,{configurable:!0,value:n})}},{150:150,69:69,97:97}],123:[function(t,n,r){var e=t(124)("keys"),i=t(145);n.exports=function(t){return e[t]||(e[t]=i(t))}},{124:124,145:145}],124:[function(t,n,r){var e=t(50),i=t(68),o="__core-js_shared__",u=i[o]||(i[o]={});(n.exports=function(t,n){return u[t]||(u[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:t(87)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},{50:50,68:68,87:87}],125:[function(t,n,r){var i=t(36),o=t(31),u=t(150)("species");n.exports=function(t,n){var r,e=i(t).constructor;return void 0===e||null==(r=i(e)[u])?n:o(r)}},{150:150,31:31,36:36}],126:[function(t,n,r){"use strict";var e=t(62);n.exports=function(t,n){return!!t&&e(function(){n?t.call(null,function(){},1):t.call(null)})}},{62:62}],127:[function(t,n,r){var a=t(137),f=t(55);n.exports=function(c){return function(t,n){var r,e,i=String(f(t)),o=a(n),u=i.length;return o<0||u<=o?c?"":void 0:(r=i.charCodeAt(o))<55296||56319<r||o+1===u||(e=i.charCodeAt(o+1))<56320||57343<e?c?i.charAt(o):r:c?i.slice(o,o+2):e-56320+(r-55296<<10)+65536}}},{137:137,55:55}],128:[function(t,n,r){var e=t(80),i=t(55);n.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(i(t))}},{55:55,80:80}],129:[function(t,n,r){function sw(t,n,r,e){var i=String(u(t)),o="<"+n;return""!==r&&(o+=" "+r+'="'+String(e).replace(c,"&quot;")+'"'),o+">"+i+"</"+n+">"}var e=t(60),i=t(62),u=t(55),c=/"/g;n.exports=function(n,t){var r={};r[n]=t(sw),e(e.P+e.F*i(function(){var t=""[n]('"');return t!==t.toLowerCase()||3<t.split('"').length}),"String",r)}},{55:55,60:60,62:62}],130:[function(t,n,r){var s=t(139),l=t(131),h=t(55);n.exports=function(t,n,r,e){var i=String(h(t)),o=i.length,u=void 0===r?" ":String(r),c=s(n);if(c<=o||""==u)return i;var a=c-o,f=l.call(u,Math.ceil(a/u.length));return f.length>a&&(f=f.slice(0,a)),e?f+i:i+f}},{131:131,139:139,55:55}],131:[function(t,n,r){"use strict";var i=t(137),o=t(55);n.exports=function repeat(t){var n=String(o(this)),r="",e=i(t);if(e<0||e==1/0)throw RangeError("Count can't be negative");for(;0<e;(e>>>=1)&&(n+=n))1&e&&(r+=n);return r}},{137:137,55:55}],132:[function(t,n,r){function lx(t,n,r){var e={},i=c(function(){return!!a[t]()||"​…"!="​…"[t]()}),o=e[t]=i?n(s):a[t];r&&(e[r]=o),u(u.P+u.F*i,"String",e)}var u=t(60),e=t(55),c=t(62),a=t(133),i="["+a+"]",o=RegExp("^"+i+i+"*"),f=RegExp(i+i+"*$"),s=lx.trim=function(t,n){return t=String(e(t)),1&n&&(t=t.replace(o,"")),2&n&&(t=t.replace(f,"")),t};n.exports=lx},{133:133,55:55,60:60,62:62}],133:[function(t,n,r){n.exports="\t\n\v\f\r  ᠎              \u2028\u2029\ufeff"},{}],134:[function(t,n,r){function Rx(){var t=+this;if(d.hasOwnProperty(t)){var n=d[t];delete d[t],n()}}function Sx(t){Rx.call(t.data)}var e,i,o,u=t(52),c=t(74),a=t(71),f=t(57),s=t(68),l=s.process,h=s.setImmediate,p=s.clearImmediate,v=s.MessageChannel,g=s.Dispatch,y=0,d={},x="onreadystatechange";h&&p||(h=function setImmediate(t){for(var n=[],r=1;r<arguments.length;)n.push(arguments[r++]);return d[++y]=function(){c("function"==typeof t?t:Function(t),n)},e(y),y},p=function clearImmediate(t){delete d[t]},"process"==t(46)(l)?e=function(t){l.nextTick(u(Rx,t,1))}:g&&g.now?e=function(t){g.now(u(Rx,t,1))}:v?(o=(i=new v).port2,i.port1.onmessage=Sx,e=u(o.postMessage,o,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts?(e=function(t){s.postMessage(t+"","*")},s.addEventListener("message",Sx,!1)):e=x in f("script")?function(t){a.appendChild(f("script"))[x]=function(){a.removeChild(this),Rx.call(t)}}:function(t){setTimeout(u(Rx,t,1),0)}),n.exports={set:h,clear:p}},{46:46,52:52,57:57,68:68,71:71,74:74}],135:[function(t,n,r){var e=t(137),i=Math.max,o=Math.min;n.exports=function(t,n){return(t=e(t))<0?i(t+n,0):o(t,n)}},{137:137}],136:[function(t,n,r){var e=t(137),i=t(139);n.exports=function(t){if(void 0===t)return 0;var n=e(t),r=i(n);if(n!==r)throw RangeError("Wrong length!");return r}},{137:137,139:139}],137:[function(t,n,r){var e=Math.ceil,i=Math.floor;n.exports=function(t){return isNaN(t=+t)?0:(0<t?i:e)(t)}},{}],138:[function(t,n,r){var e=t(75),i=t(55);n.exports=function(t){return e(i(t))}},{55:55,75:75}],139:[function(t,n,r){var e=t(137),i=Math.min;n.exports=function(t){return 0<t?i(e(t),9007199254740991):0}},{137:137}],140:[function(t,n,r){var e=t(55);n.exports=function(t){return Object(e(t))}},{55:55}],141:[function(t,n,r){arguments[4][29][0].apply(r,arguments)},{29:29,79:79}],142:[function(t,n,r){"use strict";if(t(56)){var y=t(87),d=t(68),x=t(62),m=t(60),S=t(144),e=t(143),h=t(52),b=t(35),i=t(114),w=t(70),o=t(115),u=t(137),_=t(139),E=t(136),c=t(135),a=t(141),f=t(69),O=t(45),I=t(79),p=t(140),v=t(76),F=t(96),P=t(103),A=t(101).f,g=t(151),s=t(145),l=t(150),M=t(40),k=t(39),R=t(125),N=t(162),j=t(86),T=t(84),L=t(121),C=t(38),G=t(37),U=t(97),D=t(99),W=U.f,V=D.f,B=d.RangeError,q=d.TypeError,z=d.Uint8Array,$="ArrayBuffer",Y="Shared"+$,J="BYTES_PER_ELEMENT",H="prototype",Q=Array[H],K=e.ArrayBuffer,Z=e.DataView,X=M(0),tt=M(2),nt=M(3),rt=M(4),et=M(5),it=M(6),ot=k(!0),ut=k(!1),ct=N.values,at=N.keys,ft=N.entries,st=Q.lastIndexOf,lt=Q.reduce,ht=Q.reduceRight,pt=Q.join,vt=Q.sort,gt=Q.slice,yt=Q.toString,dt=Q.toLocaleString,xt=l("iterator"),mt=l("toStringTag"),St=s("typed_constructor"),bt=s("def_constructor"),wt=S.CONSTR,_t=S.TYPED,Et=S.VIEW,Ot="Wrong length!",It=M(1,function(t,n){return kt(R(t,t[bt]),n)}),Ft=x(function(){return 1===new z(new Uint16Array([1]).buffer)[0]}),Pt=!!z&&!!z[H].set&&x(function(){new z(1).set({})}),At=function(t,n){var r=u(t);if(r<0||r%n)throw B("Wrong offset!");return r},Mt=function(t){if(I(t)&&_t in t)return t;throw q(t+" is not a typed array!")},kt=function(t,n){if(!(I(t)&&St in t))throw q("It is not a typed array constructor!");return new t(n)},Rt=function(t,n){return Nt(R(t,t[bt]),n)},Nt=function(t,n){for(var r=0,e=n.length,i=kt(t,e);r<e;)i[r]=n[r++];return i},jt=function(t,n,r){W(t,n,{get:function(){return this._d[r]}})},Tt=function from(t){var n,r,e,i,o,u,c=p(t),a=arguments.length,f=1<a?arguments[1]:void 0,s=void 0!==f,l=g(c);if(null!=l&&!v(l)){for(u=l.call(c),e=[],n=0;!(o=u.next()).done;n++)e.push(o.value);c=e}for(s&&2<a&&(f=h(f,arguments[2],2)),n=0,r=_(c.length),i=kt(this,r);n<r;n++)i[n]=s?f(c[n],n):c[n];return i},Lt=function of(){for(var t=0,n=arguments.length,r=kt(this,n);t<n;)r[t]=arguments[t++];return r},Ct=!!z&&x(function(){dt.call(new z(1))}),Gt=function toLocaleString(){return dt.apply(Ct?gt.call(Mt(this)):Mt(this),arguments)},Ut={copyWithin:function copyWithin(t,n){return G.call(Mt(this),t,n,2<arguments.length?arguments[2]:void 0)},every:function every(t){return rt(Mt(this),t,1<arguments.length?arguments[1]:void 0)},fill:function fill(t){return C.apply(Mt(this),arguments)},filter:function filter(t){return Rt(this,tt(Mt(this),t,1<arguments.length?arguments[1]:void 0))},find:function find(t){return et(Mt(this),t,1<arguments.length?arguments[1]:void 0)},findIndex:function findIndex(t){return it(Mt(this),t,1<arguments.length?arguments[1]:void 0)},forEach:function forEach(t){X(Mt(this),t,1<arguments.length?arguments[1]:void 0)},indexOf:function indexOf(t){return ut(Mt(this),t,1<arguments.length?arguments[1]:void 0)},includes:function includes(t){return ot(Mt(this),t,1<arguments.length?arguments[1]:void 0)},join:function join(t){return pt.apply(Mt(this),arguments)},lastIndexOf:function lastIndexOf(t){return st.apply(Mt(this),arguments)},map:function map(t){return It(Mt(this),t,1<arguments.length?arguments[1]:void 0)},reduce:function reduce(t){return lt.apply(Mt(this),arguments)},reduceRight:function reduceRight(t){return ht.apply(Mt(this),arguments)},reverse:function reverse(){for(var t,n=this,r=Mt(n).length,e=Math.floor(r/2),i=0;i<e;)t=n[i],n[i++]=n[--r],n[r]=t;return n},some:function some(t){return nt(Mt(this),t,1<arguments.length?arguments[1]:void 0)},sort:function sort(t){return vt.call(Mt(this),t)},subarray:function subarray(t,n){var r=Mt(this),e=r.length,i=c(t,e);return new(R(r,r[bt]))(r.buffer,r.byteOffset+i*r.BYTES_PER_ELEMENT,_((void 0===n?e:c(n,e))-i))}},Dt=function slice(t,n){return Rt(this,gt.call(Mt(this),t,n))},Wt=function set(t){Mt(this);var n=At(arguments[1],1),r=this.length,e=p(t),i=_(e.length),o=0;if(r<i+n)throw B(Ot);for(;o<i;)this[n+o]=e[o++]},Vt={entries:function entries(){return ft.call(Mt(this))},keys:function keys(){return at.call(Mt(this))},values:function values(){return ct.call(Mt(this))}},Bt=function(t,n){return I(t)&&t[_t]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},qt=function getOwnPropertyDescriptor(t,n){return Bt(t,n=a(n,!0))?i(2,t[n]):V(t,n)},zt=function defineProperty(t,n,r){return!(Bt(t,n=a(n,!0))&&I(r)&&f(r,"value"))||f(r,"get")||f(r,"set")||r.configurable||f(r,"writable")&&!r.writable||f(r,"enumerable")&&!r.enumerable?W(t,n,r):(t[n]=r.value,t)};wt||(D.f=qt,U.f=zt),m(m.S+m.F*!wt,"Object",{getOwnPropertyDescriptor:qt,defineProperty:zt}),x(function(){yt.call({})})&&(yt=dt=function toString(){return pt.call(this)});var $t=o({},Ut);o($t,Vt),w($t,xt,Vt.values),o($t,{slice:Dt,set:Wt,constructor:function(){},toString:yt,toLocaleString:Gt}),jt($t,"buffer","b"),jt($t,"byteOffset","o"),jt($t,"byteLength","l"),jt($t,"length","e"),W($t,mt,{get:function(){return this[_t]}}),n.exports=function(t,l,n,o){function uC(t,i){W(t,i,{get:function(){return t=i,(n=this._d).v[r](t*l+n.o,Ft);var t,n},set:function(t){return n=i,r=t,e=this._d,o&&(r=(r=Math.round(r))<0?0:255<r?255:255&r),void e.v[u](n*l+e.o,r,Ft);var n,r,e},enumerable:!0})}var h=t+((o=!!o)?"Clamped":"")+"Array",r="get"+t,u="set"+t,p=d[h],c=p||{},e=p&&P(p),i=!p||!S.ABV,a={},f=p&&p[H];i?(p=n(function(t,n,r,e){b(t,p,h,"_d");var i,o,u,c,a=0,f=0;if(I(n)){if(!(n instanceof K||(c=O(n))==$||c==Y))return _t in n?Nt(p,n):Tt.call(p,n);i=n,f=At(r,l);var s=n.byteLength;if(void 0===e){if(s%l)throw B(Ot);if((o=s-f)<0)throw B(Ot)}else if(s<(o=_(e)*l)+f)throw B(Ot);u=o/l}else u=E(n),i=new K(o=u*l);for(w(t,"_d",{b:i,o:f,l:o,e:u,v:new Z(i)});a<u;)uC(t,a++)}),f=p[H]=F($t),w(f,"constructor",p)):x(function(){p(1)})&&x(function(){new p(-1)})&&T(function(t){new p,new p(null),new p(1.5),new p(t)},!0)||(p=n(function(t,n,r,e){var i;return b(t,p,h),I(n)?n instanceof K||(i=O(n))==$||i==Y?void 0!==e?new c(n,At(r,l),e):void 0!==r?new c(n,At(r,l)):new c(n):_t in n?Nt(p,n):Tt.call(p,n):new c(E(n))}),X(e!==Function.prototype?A(c).concat(A(e)):A(c),function(t){t in p||w(p,t,c[t])}),p[H]=f,y||(f.constructor=p));var s=f[xt],v=!!s&&("values"==s.name||null==s.name),g=Vt.values;w(p,St,!0),w(f,_t,h),w(f,Et,!0),w(f,bt,p),(o?new p(1)[mt]==h:mt in f)||W(f,mt,{get:function(){return h}}),a[h]=p,m(m.G+m.W+m.F*(p!=c),a),m(m.S,h,{BYTES_PER_ELEMENT:l}),m(m.S+m.F*x(function(){c.of.call(p,1)}),h,{from:Tt,of:Lt}),J in f||w(f,J,l),m(m.P,h,Ut),L(h),m(m.P+m.F*Pt,h,{set:Wt}),m(m.P+m.F*!v,h,Vt),y||f.toString==yt||(f.toString=yt),m(m.P+m.F*x(function(){new p(1).slice()}),h,{slice:Dt}),m(m.P+m.F*(x(function(){return[1,2].toLocaleString()!=new p([1,2]).toLocaleString()})||!x(function(){f.toLocaleString.call([1,2])})),h,{toLocaleString:Gt}),j[h]=v?s:g,y||v||w(f,xt,g)}}else n.exports=function(){}},{101:101,103:103,114:114,115:115,121:121,125:125,135:135,136:136,137:137,139:139,140:140,141:141,143:143,144:144,145:145,150:150,151:151,162:162,35:35,37:37,38:38,39:39,40:40,45:45,52:52,56:56,60:60,62:62,68:68,69:69,70:70,76:76,79:79,84:84,86:86,87:87,96:96,97:97,99:99}],143:[function(t,n,r){"use strict";var e=t(68),i=t(56),o=t(87),u=t(144),c=t(70),a=t(115),f=t(62),s=t(35),l=t(137),h=t(139),p=t(136),v=t(101).f,g=t(97).f,y=t(38),d=t(122),x="ArrayBuffer",m="DataView",S="prototype",b="Wrong index!",w=e[x],_=e[m],E=e.Math,O=e.RangeError,I=e.Infinity,F=w,P=E.abs,A=E.pow,M=E.floor,k=E.log,R=E.LN2,N="byteLength",j="byteOffset",T=i?"_b":"buffer",L=i?"_l":N,C=i?"_o":j;function packIEEE754(t,n,r){var e,i,o,u=new Array(r),c=8*r-n-1,a=(1<<c)-1,f=a>>1,s=23===n?A(2,-24)-A(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for((t=P(t))!=t||t===I?(i=t!=t?1:0,e=a):(e=M(k(t)/R),t*(o=A(2,-e))<1&&(e--,o*=2),2<=(t+=1<=e+f?s/o:s*A(2,1-f))*o&&(e++,o/=2),a<=e+f?(i=0,e=a):1<=e+f?(i=(t*o-1)*A(2,n),e+=f):(i=t*A(2,f-1)*A(2,n),e=0));8<=n;u[l++]=255&i,i/=256,n-=8);for(e=e<<n|i,c+=n;0<c;u[l++]=255&e,e/=256,c-=8);return u[--l]|=128*h,u}function unpackIEEE754(t,n,r){var e,i=8*r-n-1,o=(1<<i)-1,u=o>>1,c=i-7,a=r-1,f=t[a--],s=127&f;for(f>>=7;0<c;s=256*s+t[a],a--,c-=8);for(e=s&(1<<-c)-1,s>>=-c,c+=n;0<c;e=256*e+t[a],a--,c-=8);if(0===s)s=1-u;else{if(s===o)return e?NaN:f?-I:I;e+=A(2,n),s-=u}return(f?-1:1)*e*A(2,s-n)}function unpackI32(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function packI8(t){return[255&t]}function packI16(t){return[255&t,t>>8&255]}function packI32(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function packF64(t){return packIEEE754(t,52,8)}function packF32(t){return packIEEE754(t,23,4)}function addGetter(t,n,r){g(t[S],n,{get:function(){return this[r]}})}function get(t,n,r,e){var i=p(+r);if(i+n>t[L])throw O(b);var o=t[T]._b,u=i+t[C],c=o.slice(u,u+n);return e?c:c.reverse()}function set(t,n,r,e,i,o){var u=p(+r);if(u+n>t[L])throw O(b);for(var c=t[T]._b,a=u+t[C],f=e(+i),s=0;s<n;s++)c[a+s]=f[o?s:n-s-1]}if(u.ABV){if(!f(function(){w(1)})||!f(function(){new w(-1)})||f(function(){return new w,new w(1.5),new w(NaN),w.name!=x})){for(var G,U=(w=function ArrayBuffer(t){return s(this,w),new F(p(t))})[S]=F[S],D=v(F),W=0;D.length>W;)(G=D[W++])in w||c(w,G,F[G]);o||(U.constructor=w)}var V=new _(new w(2)),B=_[S].setInt8;V.setInt8(0,2147483648),V.setInt8(1,2147483649),!V.getInt8(0)&&V.getInt8(1)||a(_[S],{setInt8:function setInt8(t,n){B.call(this,t,n<<24>>24)},setUint8:function setUint8(t,n){B.call(this,t,n<<24>>24)}},!0)}else w=function ArrayBuffer(t){s(this,w,x);var n=p(t);this._b=y.call(new Array(n),0),this[L]=n},_=function DataView(t,n,r){s(this,_,m),s(t,w,m);var e=t[L],i=l(n);if(i<0||e<i)throw O("Wrong offset!");if(e<i+(r=void 0===r?e-i:h(r)))throw O("Wrong length!");this[T]=t,this[C]=i,this[L]=r},i&&(addGetter(w,N,"_l"),addGetter(_,"buffer","_b"),addGetter(_,N,"_l"),addGetter(_,j,"_o")),a(_[S],{getInt8:function getInt8(t){return get(this,1,t)[0]<<24>>24},getUint8:function getUint8(t){return get(this,1,t)[0]},getInt16:function getInt16(t){var n=get(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function getUint16(t){var n=get(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function getInt32(t){return unpackI32(get(this,4,t,arguments[1]))},getUint32:function getUint32(t){return unpackI32(get(this,4,t,arguments[1]))>>>0},getFloat32:function getFloat32(t){return unpackIEEE754(get(this,4,t,arguments[1]),23,4)},getFloat64:function getFloat64(t){return unpackIEEE754(get(this,8,t,arguments[1]),52,8)},setInt8:function setInt8(t,n){set(this,1,t,packI8,n)},setUint8:function setUint8(t,n){set(this,1,t,packI8,n)},setInt16:function setInt16(t,n){set(this,2,t,packI16,n,arguments[2])},setUint16:function setUint16(t,n){set(this,2,t,packI16,n,arguments[2])},setInt32:function setInt32(t,n){set(this,4,t,packI32,n,arguments[2])},setUint32:function setUint32(t,n){set(this,4,t,packI32,n,arguments[2])},setFloat32:function setFloat32(t,n){set(this,4,t,packF32,n,arguments[2])},setFloat64:function setFloat64(t,n){set(this,8,t,packF64,n,arguments[2])}});d(w,x),d(_,m),c(_[S],u.VIEW,!0),r[x]=w,r[m]=_},{101:101,115:115,122:122,136:136,137:137,139:139,144:144,35:35,38:38,56:56,62:62,68:68,70:70,87:87,97:97}],144:[function(t,n,r){for(var e,i=t(68),o=t(70),u=t(145),c=u("typed_array"),a=u("view"),f=!(!i.ArrayBuffer||!i.DataView),s=f,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=i[h[l++]])?(o(e.prototype,c,!0),o(e.prototype,a,!0)):s=!1;n.exports={ABV:f,CONSTR:s,TYPED:c,VIEW:a}},{145:145,68:68,70:70}],145:[function(t,n,r){var e=0,i=Math.random();n.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+i).toString(36))}},{}],146:[function(t,n,r){var e=t(68).navigator;n.exports=e&&e.userAgent||""},{68:68}],147:[function(t,n,r){var e=t(79);n.exports=function(t,n){if(!e(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},{79:79}],148:[function(t,n,r){var e=t(68),i=t(50),o=t(87),u=t(149),c=t(97).f;n.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},{149:149,50:50,68:68,87:87,97:97}],149:[function(t,n,r){r.f=t(150)},{150:150}],150:[function(t,n,r){var e=t(124)("wks"),i=t(145),o=t(68).Symbol,u="function"==typeof o;(n.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=e},{124:124,145:145,68:68}],151:[function(t,n,r){var e=t(45),i=t(150)("iterator"),o=t(86);n.exports=t(50).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[e(t)]}},{150:150,45:45,50:50,86:86}],152:[function(t,n,r){var e=t(60);e(e.P,"Array",{copyWithin:t(37)}),t(33)("copyWithin")},{33:33,37:37,60:60}],153:[function(t,n,r){"use strict";var e=t(60),i=t(40)(4);e(e.P+e.F*!t(126)([].every,!0),"Array",{every:function every(t){return i(this,t,arguments[1])}})},{126:126,40:40,60:60}],154:[function(t,n,r){var e=t(60);e(e.P,"Array",{fill:t(38)}),t(33)("fill")},{33:33,38:38,60:60}],155:[function(t,n,r){"use strict";var e=t(60),i=t(40)(2);e(e.P+e.F*!t(126)([].filter,!0),"Array",{filter:function filter(t){return i(this,t,arguments[1])}})},{126:126,40:40,60:60}],156:[function(t,n,r){"use strict";var e=t(60),i=t(40)(6),o="findIndex",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{findIndex:function findIndex(t){return i(this,t,1<arguments.length?arguments[1]:void 0)}}),t(33)(o)},{33:33,40:40,60:60}],157:[function(t,n,r){"use strict";var e=t(60),i=t(40)(5),o="find",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{find:function find(t){return i(this,t,1<arguments.length?arguments[1]:void 0)}}),t(33)(o)},{33:33,40:40,60:60}],158:[function(t,n,r){"use strict";var e=t(60),i=t(40)(0),o=t(126)([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function forEach(t){return i(this,t,arguments[1])}})},{126:126,40:40,60:60}],159:[function(t,n,r){"use strict";var h=t(52),e=t(60),p=t(140),v=t(81),g=t(76),y=t(139),d=t(51),x=t(151);e(e.S+e.F*!t(84)(function(t){Array.from(t)}),"Array",{from:function from(t){var n,r,e,i,o=p(t),u="function"==typeof this?this:Array,c=arguments.length,a=1<c?arguments[1]:void 0,f=void 0!==a,s=0,l=x(o);if(f&&(a=h(a,2<c?arguments[2]:void 0,2)),null==l||u==Array&&g(l))for(r=new u(n=y(o.length));s<n;s++)d(r,s,f?a(o[s],s):o[s]);else for(i=l.call(o),r=new u;!(e=i.next()).done;s++)d(r,s,f?v(i,a,[e.value,s],!0):e.value);return r.length=s,r}})},{139:139,140:140,151:151,51:51,52:52,60:60,76:76,81:81,84:84}],160:[function(t,n,r){"use strict";var e=t(60),i=t(39)(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!t(126)(o)),"Array",{indexOf:function indexOf(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},{126:126,39:39,60:60}],161:[function(t,n,r){var e=t(60);e(e.S,"Array",{isArray:t(77)})},{60:60,77:77}],162:[function(t,n,r){"use strict";var e=t(33),i=t(85),o=t(86),u=t(138);n.exports=t(83)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])},"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},{138:138,33:33,83:83,85:85,86:86}],163:[function(t,n,r){"use strict";var e=t(60),i=t(138),o=[].join;e(e.P+e.F*(t(75)!=Object||!t(126)(o)),"Array",{join:function join(t){return o.call(i(this),void 0===t?",":t)}})},{126:126,138:138,60:60,75:75}],164:[function(t,n,r){"use strict";var e=t(60),i=t(138),o=t(137),u=t(139),c=[].lastIndexOf,a=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(a||!t(126)(c)),"Array",{lastIndexOf:function lastIndexOf(t){if(a)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(1<arguments.length&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);0<=e;e--)if(e in n&&n[e]===t)return e||0;return-1}})},{126:126,137:137,138:138,139:139,60:60}],165:[function(t,n,r){"use strict";var e=t(60),i=t(40)(1);e(e.P+e.F*!t(126)([].map,!0),"Array",{map:function map(t){return i(this,t,arguments[1])}})},{126:126,40:40,60:60}],166:[function(t,n,r){"use strict";var e=t(60),i=t(51);e(e.S+e.F*t(62)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);t<n;)i(r,t,arguments[t++]);return r.length=n,r}})},{51:51,60:60,62:62}],167:[function(t,n,r){"use strict";var e=t(60),i=t(41);e(e.P+e.F*!t(126)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(t){return i(this,t,arguments.length,arguments[1],!0)}})},{126:126,41:41,60:60}],168:[function(t,n,r){"use strict";var e=t(60),i=t(41);e(e.P+e.F*!t(126)([].reduce,!0),"Array",{reduce:function reduce(t){return i(this,t,arguments.length,arguments[1],!1)}})},{126:126,41:41,60:60}],169:[function(t,n,r){"use strict";var e=t(60),i=t(71),f=t(46),s=t(135),l=t(139),h=[].slice;e(e.P+e.F*t(62)(function(){i&&h.call(i)}),"Array",{slice:function slice(t,n){var r=l(this.length),e=f(this);if(n=void 0===n?r:n,"Array"==e)return h.call(this,t,n);for(var i=s(t,r),o=s(n,r),u=l(o-i),c=new Array(u),a=0;a<u;a++)c[a]="String"==e?this.charAt(i+a):this[i+a];return c}})},{135:135,139:139,46:46,60:60,62:62,71:71}],170:[function(t,n,r){"use strict";var e=t(60),i=t(40)(3);e(e.P+e.F*!t(126)([].some,!0),"Array",{some:function some(t){return i(this,t,arguments[1])}})},{126:126,40:40,60:60}],171:[function(t,n,r){"use strict";var e=t(60),i=t(31),o=t(140),u=t(62),c=[].sort,a=[1,2,3];e(e.P+e.F*(u(function(){a.sort(void 0)})||!u(function(){a.sort(null)})||!t(126)(c)),"Array",{sort:function sort(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},{126:126,140:140,31:31,60:60,62:62}],172:[function(t,n,r){t(121)("Array")},{121:121}],173:[function(t,n,r){var e=t(60);e(e.S,"Date",{now:function(){return(new Date).getTime()}})},{60:60}],174:[function(t,n,r){var e=t(60),i=t(53);e(e.P+e.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},{53:53,60:60}],175:[function(t,n,r){"use strict";var e=t(60),i=t(140),o=t(141);e(e.P+e.F*t(62)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},{140:140,141:141,60:60,62:62}],176:[function(t,n,r){var e=t(150)("toPrimitive"),i=Date.prototype;e in i||t(70)(i,e,t(54))},{150:150,54:54,70:70}],177:[function(t,n,r){var e=Date.prototype,i="Invalid Date",o="toString",u=e[o],c=e.getTime;new Date(NaN)+""!=i&&t(116)(e,o,function toString(){var t=c.call(this);return t==t?u.call(this):i})},{116:116}],178:[function(t,n,r){var e=t(60);e(e.P,"Function",{bind:t(44)})},{44:44,60:60}],179:[function(t,n,r){"use strict";var e=t(79),i=t(103),o=t(150)("hasInstance"),u=Function.prototype;o in u||t(97).f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},{103:103,150:150,79:79,97:97}],180:[function(t,n,r){var e=t(97).f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||t(56)&&e(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},{56:56,97:97}],181:[function(t,n,r){"use strict";var e=t(47),i=t(147);n.exports=t(49)("Map",function(t){return function Map(){return t(this,0<arguments.length?arguments[0]:void 0)}},{get:function get(t){var n=e.getEntry(i(this,"Map"),t);return n&&n.v},set:function set(t,n){return e.def(i(this,"Map"),0===t?0:t,n)}},e,!0)},{147:147,47:47,49:49}],182:[function(t,n,r){var e=t(60),i=t(90),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function acosh(t){return(t=+t)<1?NaN:94906265.62425156<t?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},{60:60,90:90}],183:[function(t,n,r){var e=t(60),i=Math.asinh;e(e.S+e.F*!(i&&0<1/i(0)),"Math",{asinh:function asinh(t){return isFinite(t=+t)&&0!=t?t<0?-asinh(-t):Math.log(t+Math.sqrt(t*t+1)):t}})},{60:60}],184:[function(t,n,r){var e=t(60),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function atanh(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},{60:60}],185:[function(t,n,r){var e=t(60),i=t(91);e(e.S,"Math",{cbrt:function cbrt(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},{60:60,91:91}],186:[function(t,n,r){var e=t(60);e(e.S,"Math",{clz32:function clz32(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},{60:60}],187:[function(t,n,r){var e=t(60),i=Math.exp;e(e.S,"Math",{cosh:function cosh(t){return(i(t=+t)+i(-t))/2}})},{60:60}],188:[function(t,n,r){var e=t(60),i=t(88);e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},{60:60,88:88}],189:[function(t,n,r){var e=t(60);e(e.S,"Math",{fround:t(89)})},{60:60,89:89}],190:[function(t,n,r){var e=t(60),a=Math.abs;e(e.S,"Math",{hypot:function hypot(t,n){for(var r,e,i=0,o=0,u=arguments.length,c=0;o<u;)c<(r=a(arguments[o++]))?(i=i*(e=c/r)*e+1,c=r):i+=0<r?(e=r/c)*e:r;return c===1/0?1/0:c*Math.sqrt(i)}})},{60:60}],191:[function(t,n,r){var e=t(60),i=Math.imul;e(e.S+e.F*t(62)(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function imul(t,n){var r=65535,e=+t,i=+n,o=r&e,u=r&i;return 0|o*u+((r&e>>>16)*u+o*(r&i>>>16)<<16>>>0)}})},{60:60,62:62}],192:[function(t,n,r){var e=t(60);e(e.S,"Math",{log10:function log10(t){return Math.log(t)*Math.LOG10E}})},{60:60}],193:[function(t,n,r){var e=t(60);e(e.S,"Math",{log1p:t(90)})},{60:60,90:90}],194:[function(t,n,r){var e=t(60);e(e.S,"Math",{log2:function log2(t){return Math.log(t)/Math.LN2}})},{60:60}],195:[function(t,n,r){var e=t(60);e(e.S,"Math",{sign:t(91)})},{60:60,91:91}],196:[function(t,n,r){var e=t(60),i=t(88),o=Math.exp;e(e.S+e.F*t(62)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},{60:60,62:62,88:88}],197:[function(t,n,r){var e=t(60),i=t(88),o=Math.exp;e(e.S,"Math",{tanh:function tanh(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},{60:60,88:88}],198:[function(t,n,r){var e=t(60);e(e.S,"Math",{trunc:function trunc(t){return(0<t?Math.floor:Math.ceil)(t)}})},{60:60}],199:[function(t,n,r){"use strict";function wN(t){var n=s(t,!1);if("string"==typeof n&&2<n.length){var r,e,i,o=(n=x?n.trim():h(n,3)).charCodeAt(0);if(43===o||45===o){if(88===(r=n.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,c=n.slice(2),a=0,f=c.length;a<f;a++)if((u=c.charCodeAt(a))<48||i<u)return NaN;return parseInt(c,e)}}return+n}var e=t(68),i=t(69),o=t(46),u=t(73),s=t(141),c=t(62),a=t(101).f,f=t(99).f,l=t(97).f,h=t(132).trim,p="Number",v=e[p],g=v,y=v.prototype,d=o(t(96)(y))==p,x="trim"in String.prototype;if(!v(" 0o1")||!v("0b1")||v("+0x1")){v=function Number(t){var n=arguments.length<1?0:t,r=this;return r instanceof v&&(d?c(function(){y.valueOf.call(r)}):o(r)!=p)?u(new g(wN(n)),r,v):wN(n)};for(var m,S=t(56)?a(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),b=0;S.length>b;b++)i(g,m=S[b])&&!i(v,m)&&l(v,m,f(g,m));(v.prototype=y).constructor=v,t(116)(e,p,v)}},{101:101,116:116,132:132,141:141,46:46,56:56,62:62,68:68,69:69,73:73,96:96,97:97,99:99}],200:[function(t,n,r){var e=t(60);e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},{60:60}],201:[function(t,n,r){var e=t(60),i=t(68).isFinite;e(e.S,"Number",{isFinite:function isFinite(t){return"number"==typeof t&&i(t)}})},{60:60,68:68}],202:[function(t,n,r){var e=t(60);e(e.S,"Number",{isInteger:t(78)})},{60:60,78:78}],203:[function(t,n,r){var e=t(60);e(e.S,"Number",{isNaN:function isNaN(t){return t!=t}})},{60:60}],204:[function(t,n,r){var e=t(60),i=t(78),o=Math.abs;e(e.S,"Number",{isSafeInteger:function isSafeInteger(t){return i(t)&&o(t)<=9007199254740991}})},{60:60,78:78}],205:[function(t,n,r){var e=t(60);e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{60:60}],206:[function(t,n,r){var e=t(60);e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{60:60}],207:[function(t,n,r){var e=t(60),i=t(110);e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},{110:110,60:60}],208:[function(t,n,r){var e=t(60),i=t(111);e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},{111:111,60:60}],209:[function(t,n,r){"use strict";function PO(t,n){for(var r=-1,e=n;++r<6;)e+=t*u[r],u[r]=e%1e7,e=o(e/1e7)}function QO(t){for(var n=6,r=0;0<=--n;)r+=u[n],u[n]=o(r/t),r=r%t*1e7}function RO(){for(var t=6,n="";0<=--t;)if(""!==n||0===t||0!==u[t]){var r=String(u[t]);n=""===n?r:n+l.call("0",7-r.length)+r}return n}var e=t(60),f=t(137),s=t(32),l=t(131),i=1..toFixed,o=Math.floor,u=[0,0,0,0,0,0],h="Number.toFixed: incorrect invocation!",p=function(t,n,r){return 0===n?r:n%2==1?p(t,n-1,r*t):p(t*t,n/2,r)};e(e.P+e.F*(!!i&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(62)(function(){i.call({})})),"Number",{toFixed:function toFixed(t){var n,r,e,i,o=s(this,h),u=f(t),c="",a="0";if(u<0||20<u)throw RangeError(h);if(o!=o)return"NaN";if(o<=-1e21||1e21<=o)return String(o);if(o<0&&(c="-",o=-o),1e-21<o)if(r=(n=function(t){for(var n=0,r=t;4096<=r;)n+=12,r/=4096;for(;2<=r;)n+=1,r/=2;return n}(o*p(2,69,1))-69)<0?o*p(2,-n,1):o/p(2,n,1),r*=4503599627370496,0<(n=52-n)){for(PO(0,r),e=u;7<=e;)PO(1e7,0),e-=7;for(PO(p(10,e,1),0),e=n-1;23<=e;)QO(1<<23),e-=23;QO(1<<e),PO(1,1),QO(2),a=RO()}else PO(0,r),PO(1<<-n,0),a=RO()+l.call("0",u);return a=0<u?c+((i=a.length)<=u?"0."+l.call("0",u-i)+a:a.slice(0,i-u)+"."+a.slice(i-u)):c+a}})},{131:131,137:137,32:32,60:60,62:62}],210:[function(t,n,r){"use strict";var e=t(60),i=t(62),o=t(32),u=1..toPrecision;e(e.P+e.F*(i(function(){return"1"!==u.call(1,void 0)})||!i(function(){u.call({})})),"Number",{toPrecision:function toPrecision(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},{32:32,60:60,62:62}],211:[function(t,n,r){var e=t(60);e(e.S+e.F,"Object",{assign:t(95)})},{60:60,95:95}],212:[function(t,n,r){var e=t(60);e(e.S,"Object",{create:t(96)})},{60:60,96:96}],213:[function(t,n,r){var e=t(60);e(e.S+e.F*!t(56),"Object",{defineProperties:t(98)})},{56:56,60:60,98:98}],214:[function(t,n,r){var e=t(60);e(e.S+e.F*!t(56),"Object",{defineProperty:t(97).f})},{56:56,60:60,97:97}],215:[function(t,n,r){var e=t(79),i=t(92).onFreeze;t(107)("freeze",function(n){return function freeze(t){return n&&e(t)?n(i(t)):t}})},{107:107,79:79,92:92}],216:[function(t,n,r){var e=t(138),i=t(99).f;t(107)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(t,n){return i(e(t),n)}})},{107:107,138:138,99:99}],217:[function(t,n,r){t(107)("getOwnPropertyNames",function(){return t(100).f})},{100:100,107:107}],218:[function(t,n,r){var e=t(140),i=t(103);t(107)("getPrototypeOf",function(){return function getPrototypeOf(t){return i(e(t))}})},{103:103,107:107,140:140}],219:[function(t,n,r){var e=t(79);t(107)("isExtensible",function(n){return function isExtensible(t){return!!e(t)&&(!n||n(t))}})},{107:107,79:79}],220:[function(t,n,r){var e=t(79);t(107)("isFrozen",function(n){return function isFrozen(t){return!e(t)||!!n&&n(t)}})},{107:107,79:79}],221:[function(t,n,r){var e=t(79);t(107)("isSealed",function(n){return function isSealed(t){return!e(t)||!!n&&n(t)}})},{107:107,79:79}],222:[function(t,n,r){var e=t(60);e(e.S,"Object",{is:t(119)})},{119:119,60:60}],223:[function(t,n,r){var e=t(140),i=t(105);t(107)("keys",function(){return function keys(t){return i(e(t))}})},{105:105,107:107,140:140}],224:[function(t,n,r){var e=t(79),i=t(92).onFreeze;t(107)("preventExtensions",function(n){return function preventExtensions(t){return n&&e(t)?n(i(t)):t}})},{107:107,79:79,92:92}],225:[function(t,n,r){var e=t(79),i=t(92).onFreeze;t(107)("seal",function(n){return function seal(t){return n&&e(t)?n(i(t)):t}})},{107:107,79:79,92:92}],226:[function(t,n,r){var e=t(60);e(e.S,"Object",{setPrototypeOf:t(120).set})},{120:120,60:60}],227:[function(t,n,r){"use strict";var e=t(45),i={};i[t(150)("toStringTag")]="z",i+""!="[object z]"&&t(116)(Object.prototype,"toString",function toString(){return"[object "+e(this)+"]"},!0)},{116:116,150:150,45:45}],228:[function(t,n,r){var e=t(60),i=t(110);e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},{110:110,60:60}],229:[function(t,n,r){var e=t(60),i=t(111);e(e.G+e.F*(parseInt!=i),{parseInt:i})},{111:111,60:60}],230:[function(r,t,n){"use strict";function SR(){}function ZR(t){var n;return!(!h(t)||"function"!=typeof(n=t.then))&&n}function $R(s,r){if(!s._n){s._n=!0;var e=s._c;x(function(){for(var a=s._v,f=1==s._s,t=0,n=function(t){var n,r,e,i=f?t.ok:t.fail,o=t.resolve,u=t.reject,c=t.domain;try{i?(f||(2==s._h&&j(s),s._h=1),!0===i?n=a:(c&&c.enter(),n=i(a),c&&(c.exit(),e=!0)),n===t.promise?u(E("Promise-chain cycle")):(r=ZR(n))?r.call(n,o,u):o(n)):u(a)}catch(t){c&&!e&&c.exit(),u(t)}};e.length>t;)n(e[t++]);s._c=[],s._n=!1,r&&!s._h&&R(s)})}}function cS(t){var n=this;n._d||(n._d=!0,(n=n._w||n)._v=t,n._s=2,n._a||(n._a=n._c.slice()),$R(n,!0))}var e,i,o,u,c=r(87),a=r(68),f=r(52),s=r(45),l=r(60),h=r(79),p=r(31),v=r(35),g=r(66),y=r(125),d=r(134).set,x=r(93)(),m=r(94),S=r(112),b=r(146),w=r(113),_="Promise",E=a.TypeError,O=a.process,I=O&&O.versions,F=I&&I.v8||"",P=a[_],A="process"==s(O),M=i=m.f,k=!!function(){try{var t=P.resolve(1),n=(t.constructor={})[r(150)("species")]=function(t){t(SR,SR)};return(A||"function"==typeof PromiseRejectionEvent)&&t.then(SR)instanceof n&&0!==F.indexOf("6.6")&&-1===b.indexOf("Chrome/66")}catch(t){}}(),R=function(o){d.call(a,function(){var t,n,r,e=o._v,i=N(o);if(i&&(t=S(function(){A?O.emit("unhandledRejection",e,o):(n=a.onunhandledrejection)?n({promise:o,reason:e}):(r=a.console)&&r.error&&r.error("Unhandled promise rejection",e)}),o._h=A||N(o)?2:1),o._a=void 0,i&&t.e)throw t.v})},N=function(t){return 1!==t._h&&0===(t._a||t._c).length},j=function(n){d.call(a,function(){var t;A?O.emit("rejectionHandled",n):(t=a.onrejectionhandled)&&t({promise:n,reason:n._v})})},T=function(t){var r,e=this;if(!e._d){e._d=!0,e=e._w||e;try{if(e===t)throw E("Promise can't be resolved itself");(r=ZR(t))?x(function(){var n={_w:e,_d:!1};try{r.call(t,f(T,n,1),f(cS,n,1))}catch(t){cS.call(n,t)}}):(e._v=t,e._s=1,$R(e,!1))}catch(t){cS.call({_w:e,_d:!1},t)}}};k||(P=function Promise(t){v(this,P,_,"_h"),p(t),e.call(this);try{t(f(T,this,1),f(cS,this,1))}catch(t){cS.call(this,t)}},(e=function Promise(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r(115)(P.prototype,{then:function then(t,n){var r=M(y(this,P));return r.ok="function"!=typeof t||t,r.fail="function"==typeof n&&n,r.domain=A?O.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&$R(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new e;this.promise=t,this.resolve=f(T,t,1),this.reject=f(cS,t,1)},m.f=M=function(t){return t===P||t===u?new o(t):i(t)}),l(l.G+l.W+l.F*!k,{Promise:P}),r(122)(P,_),r(121)(_),u=r(50)[_],l(l.S+l.F*!k,_,{reject:function reject(t){var n=M(this);return(0,n.reject)(t),n.promise}}),l(l.S+l.F*(c||!k),_,{resolve:function resolve(t){return w(c&&this===u?P:this,t)}}),l(l.S+l.F*!(k&&r(84)(function(t){P.all(t).catch(SR)})),_,{all:function all(t){var u=this,n=M(u),c=n.resolve,a=n.reject,r=S(function(){var e=[],i=0,o=1;g(t,!1,function(t){var n=i++,r=!1;e.push(void 0),o++,u.resolve(t).then(function(t){r||(r=!0,e[n]=t,--o||c(e))},a)}),--o||c(e)});return r.e&&a(r.v),n.promise},race:function race(t){var n=this,r=M(n),e=r.reject,i=S(function(){g(t,!1,function(t){n.resolve(t).then(r.resolve,e)})});return i.e&&e(i.v),r.promise}})},{112:112,113:113,115:115,121:121,122:122,125:125,134:134,146:146,150:150,31:31,35:35,45:45,50:50,52:52,60:60,66:66,68:68,79:79,84:84,87:87,93:93,94:94}],231:[function(t,n,r){var e=t(60),o=t(31),u=t(36),c=(t(68).Reflect||{}).apply,a=Function.apply;e(e.S+e.F*!t(62)(function(){c(function(){})}),"Reflect",{apply:function apply(t,n,r){var e=o(t),i=u(r);return c?c(e,n,i):a.call(e,n,i)}})},{31:31,36:36,60:60,62:62,68:68}],232:[function(t,n,r){var e=t(60),c=t(96),a=t(31),f=t(36),s=t(79),i=t(62),l=t(44),h=(t(68).Reflect||{}).construct,p=i(function(){function F(){}return!(h(function(){},[],F)instanceof F)}),v=!i(function(){h(function(){})});e(e.S+e.F*(p||v),"Reflect",{construct:function construct(t,n){a(t),f(n);var r=arguments.length<3?t:a(arguments[2]);if(v&&!p)return h(t,n,r);if(t==r){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var e=[null];return e.push.apply(e,n),new(l.apply(t,e))}var i=r.prototype,o=c(s(i)?i:Object.prototype),u=Function.apply.call(t,o,n);return s(u)?u:o}})},{31:31,36:36,44:44,60:60,62:62,68:68,79:79,96:96}],233:[function(t,n,r){var e=t(97),i=t(60),o=t(36),u=t(141);i(i.S+i.F*t(62)(function(){Reflect.defineProperty(e.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(t,n,r){o(t),n=u(n,!0),o(r);try{return e.f(t,n,r),!0}catch(t){return!1}}})},{141:141,36:36,60:60,62:62,97:97}],234:[function(t,n,r){var e=t(60),i=t(99).f,o=t(36);e(e.S,"Reflect",{deleteProperty:function deleteProperty(t,n){var r=i(o(t),n);return!(r&&!r.configurable)&&delete t[n]}})},{36:36,60:60,99:99}],235:[function(t,n,r){"use strict";function AU(t){this._t=i(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)}var e=t(60),i=t(36);t(82)(AU,"Object",function(){var t,n=this._k;do{if(this._i>=n.length)return{value:void 0,done:!0}}while(!((t=n[this._i++])in this._t));return{value:t,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(t){return new AU(t)}})},{36:36,60:60,82:82}],236:[function(t,n,r){var e=t(99),i=t(60),o=t(36);i(i.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,n){return e.f(o(t),n)}})},{36:36,60:60,99:99}],237:[function(t,n,r){var e=t(60),i=t(103),o=t(36);e(e.S,"Reflect",{getPrototypeOf:function getPrototypeOf(t){return i(o(t))}})},{103:103,36:36,60:60}],238:[function(t,n,r){var o=t(99),u=t(103),c=t(69),e=t(60),a=t(79),f=t(36);e(e.S,"Reflect",{get:function get(t,n){var r,e,i=arguments.length<3?t:arguments[2];return f(t)===i?t[n]:(r=o.f(t,n))?c(r,"value")?r.value:void 0!==r.get?r.get.call(i):void 0:a(e=u(t))?get(e,n,i):void 0}})},{103:103,36:36,60:60,69:69,79:79,99:99}],239:[function(t,n,r){var e=t(60);e(e.S,"Reflect",{has:function has(t,n){return n in t}})},{60:60}],240:[function(t,n,r){var e=t(60),i=t(36),o=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function isExtensible(t){return i(t),!o||o(t)}})},{36:36,60:60}],241:[function(t,n,r){var e=t(60);e(e.S,"Reflect",{ownKeys:t(109)})},{109:109,60:60}],242:[function(t,n,r){var e=t(60),i=t(36),o=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function preventExtensions(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},{36:36,60:60}],243:[function(t,n,r){var e=t(60),i=t(120);i&&e(e.S,"Reflect",{setPrototypeOf:function setPrototypeOf(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},{120:120,60:60}],244:[function(t,n,r){var c=t(97),a=t(99),f=t(103),s=t(69),e=t(60),l=t(114),h=t(36),p=t(79);e(e.S,"Reflect",{set:function set(t,n,r){var e,i,o=arguments.length<4?t:arguments[3],u=a.f(h(t),n);if(!u){if(p(i=f(t)))return set(i,n,r,o);u=l(0)}if(s(u,"value")){if(!1===u.writable||!p(o))return!1;if(e=a.f(o,n)){if(e.get||e.set||!1===e.writable)return!1;e.value=r,c.f(o,n,e)}else c.f(o,n,l(0,r));return!0}return void 0!==u.set&&(u.set.call(o,r),!0)}})},{103:103,114:114,36:36,60:60,69:69,79:79,97:97,99:99}],245:[function(t,n,r){var e=t(68),o=t(73),i=t(97).f,u=t(101).f,c=t(80),a=t(64),f=e.RegExp,s=f,l=f.prototype,h=/a/g,p=/a/g,v=new f(h)!==h;if(t(56)&&(!v||t(62)(function(){return p[t(150)("match")]=!1,f(h)!=h||f(p)==p||"/a/i"!=f(h,"i")}))){f=function RegExp(t,n){var r=this instanceof f,e=c(t),i=void 0===n;return!r&&e&&t.constructor===f&&i?t:o(v?new s(e&&!i?t.source:t,n):s((e=t instanceof f)?t.source:t,e&&i?a.call(t):n),r?this:l,f)};function vW(n){n in f||i(f,n,{configurable:!0,get:function(){return s[n]},set:function(t){s[n]=t}})}for(var g=u(s),y=0;g.length>y;)vW(g[y++]);(l.constructor=f).prototype=l,t(116)(e,"RegExp",f)}t(121)("RegExp")},{101:101,116:116,121:121,150:150,56:56,62:62,64:64,68:68,73:73,80:80,97:97}],246:[function(t,n,r){"use strict";var e=t(118);t(60)({target:"RegExp",proto:!0,forced:e!==/./.exec},{exec:e})},{118:118,60:60}],247:[function(t,n,r){t(56)&&"g"!=/./g.flags&&t(97).f(RegExp.prototype,"flags",{configurable:!0,get:t(64)})},{56:56,64:64,97:97}],248:[function(t,n,r){"use strict";var l=t(36),h=t(139),p=t(34),v=t(117);t(63)("match",1,function(e,i,f,s){return[function match(t){var n=e(this),r=null==t?void 0:t[i];return void 0!==r?r.call(t,n):new RegExp(t)[i](String(n))},function(t){var n=s(f,t,this);if(n.done)return n.value;var r=l(t),e=String(this);if(!r.global)return v(r,e);for(var i,o=r.unicode,u=[],c=r.lastIndex=0;null!==(i=v(r,e));){var a=String(i[0]);""===(u[c]=a)&&(r.lastIndex=p(e,h(r.lastIndex),o)),c++}return 0===c?null:u}]})},{117:117,139:139,34:34,36:36,63:63}],249:[function(t,n,r){"use strict";var _=t(36),e=t(140),E=t(139),O=t(137),I=t(34),F=t(117),P=Math.max,A=Math.min,h=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,v=/\$([$&`']|\d\d?)/g;t(63)("replace",2,function(i,o,b,w){return[function replace(t,n){var r=i(this),e=null==t?void 0:t[o];return void 0!==e?e.call(t,r,n):b.call(String(r),t,n)},function(t,n){var r=w(b,t,this,n);if(r.done)return r.value;var e=_(t),i=String(this),o="function"==typeof n;o||(n=String(n));var u=e.global;if(u){var c=e.unicode;e.lastIndex=0}for(var a=[];;){var f=F(e,i);if(null===f)break;if(a.push(f),!u)break;""===String(f[0])&&(e.lastIndex=I(i,E(e.lastIndex),c))}for(var s,l="",h=0,p=0;p<a.length;p++){f=a[p];for(var v=String(f[0]),g=P(A(O(f.index),i.length),0),y=[],d=1;d<f.length;d++)y.push(void 0===(s=f[d])?s:String(s));var x=f.groups;if(o){var m=[v].concat(y,g,i);void 0!==x&&m.push(x);var S=String(n.apply(void 0,m))}else S=getSubstitution(v,i,g,y,x,n);h<=g&&(l+=i.slice(h,g)+S,h=g+v.length)}return l+i.slice(h)}];function getSubstitution(o,u,c,a,f,t){var s=c+o.length,l=a.length,n=v;return void 0!==f&&(f=e(f),n=p),b.call(t,n,function(t,n){var r;switch(n.charAt(0)){case"$":return"$";case"&":return o;case"`":return u.slice(0,c);case"'":return u.slice(s);case"<":r=f[n.slice(1,-1)];break;default:var e=+n;if(0==e)return t;if(l<e){var i=h(e/10);return 0===i?t:i<=l?void 0===a[i-1]?n.charAt(1):a[i-1]+n.charAt(1):t}r=a[e-1]}return void 0===r?"":r})}})},{117:117,137:137,139:139,140:140,34:34,36:36,63:63}],250:[function(t,n,r){"use strict";var a=t(36),f=t(119),s=t(117);t(63)("search",1,function(e,i,u,c){return[function search(t){var n=e(this),r=null==t?void 0:t[i];return void 0!==r?r.call(t,n):new RegExp(t)[i](String(n))},function(t){var n=c(u,t,this);if(n.done)return n.value;var r=a(t),e=String(this),i=r.lastIndex;f(i,0)||(r.lastIndex=0);var o=s(r,e);return f(r.lastIndex,i)||(r.lastIndex=i),null===o?-1:o.index}]})},{117:117,119:119,36:36,63:63}],251:[function(t,n,r){"use strict";var l=t(80),m=t(36),S=t(125),b=t(34),w=t(139),_=t(117),h=t(118),e=t(62),E=Math.min,p=[].push,u="split",v="length",g="lastIndex",O=4294967295,I=!e(function(){RegExp(O,"y")});t(63)("split",2,function(i,o,y,d){var x;return x="c"=="abbc"[u](/(b)*/)[1]||4!="test"[u](/(?:)/,-1)[v]||2!="ab"[u](/(?:ab)*/)[v]||4!="."[u](/(.?)(.?)/)[v]||1<"."[u](/()()/)[v]||""[u](/.?/)[v]?function(t,n){var r=String(this);if(void 0===t&&0===n)return[];if(!l(t))return y.call(r,t,n);for(var e,i,o,u=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),a=0,f=void 0===n?O:n>>>0,s=new RegExp(t.source,c+"g");(e=h.call(s,r))&&!(a<(i=s[g])&&(u.push(r.slice(a,e.index)),1<e[v]&&e.index<r[v]&&p.apply(u,e.slice(1)),o=e[0][v],a=i,u[v]>=f));)s[g]===e.index&&s[g]++;return a===r[v]?!o&&s.test("")||u.push(""):u.push(r.slice(a)),u[v]>f?u.slice(0,f):u}:"0"[u](void 0,0)[v]?function(t,n){return void 0===t&&0===n?[]:y.call(this,t,n)}:y,[function split(t,n){var r=i(this),e=null==t?void 0:t[o];return void 0!==e?e.call(t,r,n):x.call(String(r),t,n)},function(t,n){var r=d(x,t,this,n,x!==y);if(r.done)return r.value;var e=m(t),i=String(this),o=S(e,RegExp),u=e.unicode,c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(I?"y":"g"),a=new o(I?e:"^(?:"+e.source+")",c),f=void 0===n?O:n>>>0;if(0==f)return[];if(0===i.length)return null===_(a,i)?[i]:[];for(var s=0,l=0,h=[];l<i.length;){a.lastIndex=I?l:0;var p,v=_(a,I?i:i.slice(l));if(null===v||(p=E(w(a.lastIndex+(I?0:l)),i.length))===s)l=b(i,l,u);else{if(h.push(i.slice(s,l)),h.length===f)return h;for(var g=1;g<=v.length-1;g++)if(h.push(v[g]),h.length===f)return h;l=s=p}}return h.push(i.slice(s)),h}]})},{117:117,118:118,125:125,139:139,34:34,36:36,62:62,63:63,80:80}],252:[function(n,t,r){"use strict";n(247);function PZ(t){n(116)(RegExp.prototype,u,t,!0)}var e=n(36),i=n(64),o=n(56),u="toString",c=/./[u];n(62)(function(){return"/a/b"!=c.call({source:"a",flags:"b"})})?PZ(function toString(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)}):c.name!=u&&PZ(function toString(){return c.call(this)})},{116:116,247:247,36:36,56:56,62:62,64:64}],253:[function(t,n,r){"use strict";var e=t(47),i=t(147);n.exports=t(49)("Set",function(t){return function Set(){return t(this,0<arguments.length?arguments[0]:void 0)}},{add:function add(t){return e.def(i(this,"Set"),t=0===t?0:t,t)}},e)},{147:147,47:47,49:49}],254:[function(t,n,r){"use strict";t(129)("anchor",function(n){return function anchor(t){return n(this,"a","name",t)}})},{129:129}],255:[function(t,n,r){"use strict";t(129)("big",function(t){return function big(){return t(this,"big","","")}})},{129:129}],256:[function(t,n,r){"use strict";t(129)("blink",function(t){return function blink(){return t(this,"blink","","")}})},{129:129}],257:[function(t,n,r){"use strict";t(129)("bold",function(t){return function bold(){return t(this,"b","","")}})},{129:129}],258:[function(t,n,r){"use strict";var e=t(60),i=t(127)(!1);e(e.P,"String",{codePointAt:function codePointAt(t){return i(this,t)}})},{127:127,60:60}],259:[function(t,n,r){"use strict";var e=t(60),u=t(139),c=t(128),a="endsWith",f=""[a];e(e.P+e.F*t(61)(a),"String",{endsWith:function endsWith(t){var n=c(this,t,a),r=1<arguments.length?arguments[1]:void 0,e=u(n.length),i=void 0===r?e:Math.min(u(r),e),o=String(t);return f?f.call(n,o,i):n.slice(i-o.length,i)===o}})},{128:128,139:139,60:60,61:61}],260:[function(t,n,r){"use strict";t(129)("fixed",function(t){return function fixed(){return t(this,"tt","","")}})},{129:129}],261:[function(t,n,r){"use strict";t(129)("fontcolor",function(n){return function fontcolor(t){return n(this,"font","color",t)}})},{129:129}],262:[function(t,n,r){"use strict";t(129)("fontsize",function(n){return function fontsize(t){return n(this,"font","size",t)}})},{129:129}],263:[function(t,n,r){var e=t(60),o=t(135),u=String.fromCharCode,i=String.fromCodePoint;e(e.S+e.F*(!!i&&1!=i.length),"String",{fromCodePoint:function fromCodePoint(t){for(var n,r=[],e=arguments.length,i=0;i<e;){if(n=+arguments[i++],o(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?u(n):u(55296+((n-=65536)>>10),n%1024+56320))}return r.join("")}})},{135:135,60:60}],264:[function(t,n,r){"use strict";var e=t(60),i=t(128),o="includes";e(e.P+e.F*t(61)(o),"String",{includes:function includes(t){return!!~i(this,t,o).indexOf(t,1<arguments.length?arguments[1]:void 0)}})},{128:128,60:60,61:61}],265:[function(t,n,r){"use strict";t(129)("italics",function(t){return function italics(){return t(this,"i","","")}})},{129:129}],266:[function(t,n,r){"use strict";var e=t(127)(!0);t(83)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},{127:127,83:83}],267:[function(t,n,r){"use strict";t(129)("link",function(n){return function link(t){return n(this,"a","href",t)}})},{129:129}],268:[function(t,n,r){var e=t(60),u=t(138),c=t(139);e(e.S,"String",{raw:function raw(t){for(var n=u(t.raw),r=c(n.length),e=arguments.length,i=[],o=0;o<r;)i.push(String(n[o++])),o<e&&i.push(String(arguments[o]));return i.join("")}})},{138:138,139:139,60:60}],269:[function(t,n,r){var e=t(60);e(e.P,"String",{repeat:t(131)})},{131:131,60:60}],270:[function(t,n,r){"use strict";t(129)("small",function(t){return function small(){return t(this,"small","","")}})},{129:129}],271:[function(t,n,r){"use strict";var e=t(60),i=t(139),o=t(128),u="startsWith",c=""[u];e(e.P+e.F*t(61)(u),"String",{startsWith:function startsWith(t){var n=o(this,t,u),r=i(Math.min(1<arguments.length?arguments[1]:void 0,n.length)),e=String(t);return c?c.call(n,e,r):n.slice(r,r+e.length)===e}})},{128:128,139:139,60:60,61:61}],272:[function(t,n,r){"use strict";t(129)("strike",function(t){return function strike(){return t(this,"strike","","")}})},{129:129}],273:[function(t,n,r){"use strict";t(129)("sub",function(t){return function sub(){return t(this,"sub","","")}})},{129:129}],274:[function(t,n,r){"use strict";t(129)("sup",function(t){return function sup(){return t(this,"sup","","")}})},{129:129}],275:[function(t,n,r){"use strict";t(132)("trim",function(t){return function trim(){return t(this,3)}})},{132:132}],276:[function(t,n,r){"use strict";function t1(t){var n=W[t]=E(N[L]);return n._k=t,n}function w1(t,n){x(t);for(var r,e=y(n=b(n)),i=0,o=e.length;i<o;)H(t,r=e[i++],n[r]);return t}function y1(t){var n=U.call(this,t=w(t,!0));return!(this===B&&u(W,t)&&!u(V,t))&&(!(n||!u(this,t)||!u(W,t)||u(this,C)&&this[C][t])||n)}function z1(t,n){if(t=b(t),n=w(n,!0),t!==B||!u(W,n)||u(V,n)){var r=M(t,n);return!r||!u(W,n)||u(t,C)&&t[C][n]||(r.enumerable=!0),r}}function A1(t){for(var n,r=R(b(t)),e=[],i=0;r.length>i;)u(W,n=r[i++])||n==C||n==a||e.push(n);return e}function B1(t){for(var n,r=t===B,e=R(r?V:b(t)),i=[],o=0;e.length>o;)!u(W,n=e[o++])||r&&!u(B,n)||i.push(W[n]);return i}var e=t(68),u=t(69),i=t(56),o=t(60),c=t(116),a=t(92).KEY,f=t(62),s=t(124),l=t(122),h=t(145),p=t(150),v=t(149),g=t(148),y=t(59),d=t(77),x=t(36),m=t(79),S=t(140),b=t(138),w=t(141),_=t(114),E=t(96),O=t(100),I=t(99),F=t(102),P=t(97),A=t(105),M=I.f,k=P.f,R=O.f,N=e.Symbol,j=e.JSON,T=j&&j.stringify,L="prototype",C=p("_hidden"),G=p("toPrimitive"),U={}.propertyIsEnumerable,D=s("symbol-registry"),W=s("symbols"),V=s("op-symbols"),B=Object[L],q="function"==typeof N&&!!F.f,z=e.QObject,$=!z||!z[L]||!z[L].findChild,Y=i&&f(function(){return 7!=E(k({},"a",{get:function(){return k(this,"a",{value:7}).a}})).a})?function(t,n,r){var e=M(B,n);e&&delete B[n],k(t,n,r),e&&t!==B&&k(B,n,e)}:k,J=q&&"symbol"==typeof N.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof N},H=function defineProperty(t,n,r){return t===B&&H(V,n,r),x(t),n=w(n,!0),x(r),u(W,n)?(r.enumerable?(u(t,C)&&t[C][n]&&(t[C][n]=!1),r=E(r,{enumerable:_(0,!1)})):(u(t,C)||k(t,C,_(1,{})),t[C][n]=!0),Y(t,n,r)):k(t,n,r)};q||(c((N=function Symbol(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var n=h(0<arguments.length?arguments[0]:void 0),r=function(t){this===B&&r.call(V,t),u(this,C)&&u(this[C],n)&&(this[C][n]=!1),Y(this,n,_(1,t))};return i&&$&&Y(B,n,{configurable:!0,set:r}),t1(n)})[L],"toString",function toString(){return this._k}),I.f=z1,P.f=H,t(101).f=O.f=A1,t(106).f=y1,F.f=B1,i&&!t(87)&&c(B,"propertyIsEnumerable",y1,!0),v.f=function(t){return t1(p(t))}),o(o.G+o.W+o.F*!q,{Symbol:N});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),K=0;Q.length>K;)p(Q[K++]);for(var Z=A(p.store),X=0;Z.length>X;)g(Z[X++]);o(o.S+o.F*!q,"Symbol",{for:function(t){return u(D,t+="")?D[t]:D[t]=N(t)},keyFor:function keyFor(t){if(!J(t))throw TypeError(t+" is not a symbol!");for(var n in D)if(D[n]===t)return n},useSetter:function(){$=!0},useSimple:function(){$=!1}}),o(o.S+o.F*!q,"Object",{create:function create(t,n){return void 0===n?E(t):w1(E(t),n)},defineProperty:H,defineProperties:w1,getOwnPropertyDescriptor:z1,getOwnPropertyNames:A1,getOwnPropertySymbols:B1});var tt=f(function(){F.f(1)});o(o.S+o.F*tt,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(t){return F.f(S(t))}}),j&&o(o.S+o.F*(!q||f(function(){var t=N();return"[null]"!=T([t])||"{}"!=T({a:t})||"{}"!=T(Object(t))})),"JSON",{stringify:function stringify(t){for(var n,r,e=[t],i=1;i<arguments.length;)e.push(arguments[i++]);if(r=n=e[1],(m(n)||void 0!==t)&&!J(t))return d(n)||(n=function(t,n){if("function"==typeof r&&(n=r.call(this,t,n)),!J(n))return n}),e[1]=n,T.apply(j,e)}}),N[L][G]||t(70)(N[L],G,N[L].valueOf),l(N,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},{100:100,101:101,102:102,105:105,106:106,114:114,116:116,122:122,124:124,138:138,140:140,141:141,145:145,148:148,149:149,150:150,36:36,56:56,59:59,60:60,62:62,68:68,69:69,70:70,77:77,79:79,87:87,92:92,96:96,97:97,99:99}],277:[function(t,n,r){"use strict";var e=t(60),i=t(144),o=t(143),f=t(36),s=t(135),l=t(139),u=t(79),c=t(68).ArrayBuffer,h=t(125),p=o.ArrayBuffer,v=o.DataView,a=i.ABV&&c.isView,g=p.prototype.slice,y=i.VIEW,d="ArrayBuffer";e(e.G+e.W+e.F*(c!==p),{ArrayBuffer:p}),e(e.S+e.F*!i.CONSTR,d,{isView:function isView(t){return a&&a(t)||u(t)&&y in t}}),e(e.P+e.U+e.F*t(62)(function(){return!new p(2).slice(1,void 0).byteLength}),d,{slice:function slice(t,n){if(void 0!==g&&void 0===n)return g.call(f(this),t);for(var r=f(this).byteLength,e=s(t,r),i=s(void 0===n?r:n,r),o=new(h(this,p))(l(i-e)),u=new v(this),c=new v(o),a=0;e<i;)c.setUint8(a++,u.getUint8(e++));return o}}),t(121)(d)},{121:121,125:125,135:135,139:139,143:143,144:144,36:36,60:60,62:62,68:68,79:79}],278:[function(t,n,r){var e=t(60);e(e.G+e.W+e.F*!t(144).ABV,{DataView:t(143).DataView})},{143:143,144:144,60:60}],279:[function(t,n,r){t(142)("Float32",4,function(e){return function Float32Array(t,n,r){return e(this,t,n,r)}})},{142:142}],280:[function(t,n,r){t(142)("Float64",8,function(e){return function Float64Array(t,n,r){return e(this,t,n,r)}})},{142:142}],281:[function(t,n,r){t(142)("Int16",2,function(e){return function Int16Array(t,n,r){return e(this,t,n,r)}})},{142:142}],282:[function(t,n,r){t(142)("Int32",4,function(e){return function Int32Array(t,n,r){return e(this,t,n,r)}})},{142:142}],283:[function(t,n,r){t(142)("Int8",1,function(e){return function Int8Array(t,n,r){return e(this,t,n,r)}})},{142:142}],284:[function(t,n,r){t(142)("Uint16",2,function(e){return function Uint16Array(t,n,r){return e(this,t,n,r)}})},{142:142}],285:[function(t,n,r){t(142)("Uint32",4,function(e){return function Uint32Array(t,n,r){return e(this,t,n,r)}})},{142:142}],286:[function(t,n,r){t(142)("Uint8",1,function(e){return function Uint8Array(t,n,r){return e(this,t,n,r)}})},{142:142}],287:[function(t,n,r){t(142)("Uint8",1,function(e){return function Uint8ClampedArray(t,n,r){return e(this,t,n,r)}},!0)},{142:142}],288:[function(t,n,r){"use strict";function J4(t){return function WeakMap(){return t(this,0<arguments.length?arguments[0]:void 0)}}var o,e=t(68),i=t(40)(0),u=t(116),c=t(92),a=t(95),f=t(48),s=t(79),l=t(147),h=t(147),p=!e.ActiveXObject&&"ActiveXObject"in e,v="WeakMap",g=c.getWeak,y=Object.isExtensible,d=f.ufstore,x={get:function get(t){if(s(t)){var n=g(t);return!0===n?d(l(this,v)).get(t):n?n[this._i]:void 0}},set:function set(t,n){return f.def(l(this,v),t,n)}},m=n.exports=t(49)(v,J4,x,f,!0,!0);h&&p&&(a((o=f.getConstructor(J4,v)).prototype,x),c.NEED=!0,i(["delete","has","get","set"],function(e){var t=m.prototype,i=t[e];u(t,e,function(t,n){if(!s(t)||y(t))return i.call(this,t,n);this._f||(this._f=new o);var r=this._f[e](t,n);return"set"==e?this:r})}))},{116:116,147:147,40:40,48:48,49:49,68:68,79:79,92:92,95:95}],289:[function(t,n,r){"use strict";var e=t(48),i=t(147),o="WeakSet";t(49)(o,function(t){return function WeakSet(){return t(this,0<arguments.length?arguments[0]:void 0)}},{add:function add(t){return e.def(i(this,o),t,!0)}},e,!1,!0)},{147:147,48:48,49:49}],290:[function(t,n,r){"use strict";var e=t(60),i=t(65),o=t(140),u=t(139),c=t(31),a=t(43);e(e.P,"Array",{flatMap:function flatMap(t){var n,r,e=o(this);return c(t),n=u(e.length),r=a(e,0),i(r,e,e,n,0,1,t,arguments[1]),r}}),t(33)("flatMap")},{139:139,140:140,31:31,33:33,43:43,60:60,65:65}],291:[function(t,n,r){"use strict";var e=t(60),i=t(39)(!0);e(e.P,"Array",{includes:function includes(t){return i(this,t,1<arguments.length?arguments[1]:void 0)}}),t(33)("includes")},{33:33,39:39,60:60}],292:[function(t,n,r){var e=t(60),i=t(108)(!0);e(e.S,"Object",{entries:function entries(t){return i(t)}})},{108:108,60:60}],293:[function(t,n,r){var e=t(60),a=t(109),f=t(138),s=t(99),l=t(51);e(e.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var n,r,e=f(t),i=s.f,o=a(e),u={},c=0;o.length>c;)void 0!==(r=i(e,n=o[c++]))&&l(u,n,r);return u}})},{109:109,138:138,51:51,60:60,99:99}],294:[function(t,n,r){var e=t(60),i=t(108)(!1);e(e.S,"Object",{values:function values(t){return i(t)}})},{108:108,60:60}],295:[function(t,n,r){"use strict";var e=t(60),i=t(50),o=t(68),u=t(125),c=t(113);e(e.P+e.R,"Promise",{finally:function(n){var r=u(this,i.Promise||o.Promise),t="function"==typeof n;return this.then(t?function(t){return c(r,n()).then(function(){return t})}:n,t?function(t){return c(r,n()).then(function(){throw t})}:n)}})},{113:113,125:125,50:50,60:60,68:68}],296:[function(t,n,r){"use strict";var e=t(60),i=t(130),o=t(146),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padEnd:function padEnd(t){return i(this,t,1<arguments.length?arguments[1]:void 0,!1)}})},{130:130,146:146,60:60}],297:[function(t,n,r){"use strict";var e=t(60),i=t(130),o=t(146),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padStart:function padStart(t){return i(this,t,1<arguments.length?arguments[1]:void 0,!0)}})},{130:130,146:146,60:60}],298:[function(t,n,r){"use strict";t(132)("trimLeft",function(t){return function trimLeft(){return t(this,1)}},"trimStart")},{132:132}],299:[function(t,n,r){"use strict";t(132)("trimRight",function(t){return function trimRight(){return t(this,2)}},"trimEnd")},{132:132}],300:[function(t,n,r){t(148)("asyncIterator")},{148:148}],301:[function(t,n,r){for(var e=t(162),i=t(105),o=t(116),u=t(68),c=t(70),a=t(86),f=t(150),s=f("iterator"),l=f("toStringTag"),h=a.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},v=i(p),g=0;g<v.length;g++){var y,d=v[g],x=p[d],m=u[d],S=m&&m.prototype;if(S&&(S[s]||c(S,s,h),S[l]||c(S,l,d),a[d]=h,x))for(y in e)S[y]||o(S,y,e[y],!0)}},{105:105,116:116,150:150,162:162,68:68,70:70,86:86}],302:[function(t,n,r){var e=t(60),i=t(134);e(e.G+e.B,{setImmediate:i.set,clearImmediate:i.clear})},{134:134,60:60}],303:[function(t,n,r){function q7(i){return function(t,n){var r=2<arguments.length,e=r&&u.call(arguments,2);return i(r?function(){("function"==typeof t?t:Function(t)).apply(this,e)}:t,n)}}var e=t(68),i=t(60),o=t(146),u=[].slice,c=/MSIE .\./.test(o);i(i.G+i.B+i.F*c,{setTimeout:q7(e.setTimeout),setInterval:q7(e.setInterval)})},{146:146,60:60,68:68}],304:[function(t,n,r){t(303),t(302),t(301),n.exports=t(50)},{301:301,302:302,303:303,50:50}],305:[function(t,n,r){var e=function(u){"use strict";var c,t=Object.prototype,f=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",r=n.asyncIterator||"@@asyncIterator",e=n.toStringTag||"@@toStringTag";function wrap(t,n,r,e){var i=n&&n.prototype instanceof Generator?n:Generator,o=Object.create(i.prototype),u=new Context(e||[]);return o._invoke=function makeInvokeMethod(o,u,c){var a=s;return function invoke(t,n){if(a===h)throw new Error("Generator is already running");if(a===p){if("throw"===t)throw n;return doneResult()}for(c.method=t,c.arg=n;;){var r=c.delegate;if(r){var e=maybeInvokeDelegate(r,c);if(e){if(e===v)continue;return e}}if("next"===c.method)c.sent=c._sent=c.arg;else if("throw"===c.method){if(a===s)throw a=p,c.arg;c.dispatchException(c.arg)}else"return"===c.method&&c.abrupt("return",c.arg);a=h;var i=tryCatch(o,u,c);if("normal"===i.type){if(a=c.done?p:l,i.arg===v)continue;return{value:i.arg,done:c.done}}"throw"===i.type&&(a=p,c.method="throw",c.arg=i.arg)}}}(t,r,u),o}function tryCatch(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}u.wrap=wrap;var s="suspendedStart",l="suspendedYield",h="executing",p="completed",v={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var o={};o[i]=function(){return this};var a=Object.getPrototypeOf,g=a&&a(a(values([])));g&&g!==t&&f.call(g,i)&&(o=g);var y=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(o);function defineIteratorMethods(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function AsyncIterator(c,a){var t;this._invoke=function enqueue(r,e){function callInvokeWithMethodAndArg(){return new a(function(t,n){!function invoke(t,n,r,e){var i=tryCatch(c[t],c,n);if("throw"!==i.type){var o=i.arg,u=o.value;return u&&"object"==typeof u&&f.call(u,"__await")?a.resolve(u.__await).then(function(t){invoke("next",t,r,e)},function(t){invoke("throw",t,r,e)}):a.resolve(u).then(function(t){o.value=t,r(o)},function(t){return invoke("throw",t,r,e)})}e(i.arg)}(r,e,t,n)})}return t=t?t.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}function maybeInvokeDelegate(t,n){var r=t.iterator[n.method];if(r===c){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=c,maybeInvokeDelegate(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var e=tryCatch(r,t.iterator,n.arg);if("throw"===e.type)return n.method="throw",n.arg=e.arg,n.delegate=null,v;var i=e.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=c),n.delegate=null,v):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function pushTryEntry(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function resetTryEntry(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,e=function next(){for(;++r<t.length;)if(f.call(t,r))return next.value=t[r],next.done=!1,next;return next.value=c,next.done=!0,next};return e.next=e}}return{next:doneResult}}function doneResult(){return{value:c,done:!0}}return GeneratorFunction.prototype=y.constructor=GeneratorFunctionPrototype,GeneratorFunctionPrototype.constructor=GeneratorFunction,GeneratorFunctionPrototype[e]=GeneratorFunction.displayName="GeneratorFunction",u.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===GeneratorFunction||"GeneratorFunction"===(n.displayName||n.name))},u.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,e in t||(t[e]="GeneratorFunction")),t.prototype=Object.create(y),t},u.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),AsyncIterator.prototype[r]=function(){return this},u.AsyncIterator=AsyncIterator,u.async=function(t,n,r,e,i){void 0===i&&(i=Promise);var o=new AsyncIterator(wrap(t,n,r,e),i);return u.isGeneratorFunction(n)?o:o.next().then(function(t){return t.done?t.value:o.next()})},defineIteratorMethods(y),y[e]="Generator",y[i]=function(){return this},y.toString=function(){return"[object Generator]"},u.keys=function(n){var r=[];for(var t in n)r.push(t);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in n)return next.value=t,next.done=!1,next}return next.done=!0,next}},u.values=values,Context.prototype={constructor:Context,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=c,this.done=!1,this.delegate=null,this.method="next",this.arg=c,this.tryEntries.forEach(resetTryEntry),!t)for(var n in this)"t"===n.charAt(0)&&f.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=c)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function handle(t,n){return i.type="throw",i.arg=r,e.next=t,n&&(e.method="next",e.arg=c),!!n}for(var t=this.tryEntries.length-1;0<=t;--t){var n=this.tryEntries[t],i=n.completion;if("root"===n.tryLoc)return handle("end");if(n.tryLoc<=this.prev){var o=f.call(n,"catchLoc"),u=f.call(n,"finallyLoc");if(o&&u){if(this.prev<n.catchLoc)return handle(n.catchLoc,!0);if(this.prev<n.finallyLoc)return handle(n.finallyLoc)}else if(o){if(this.prev<n.catchLoc)return handle(n.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<n.finallyLoc)return handle(n.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;0<=r;--r){var e=this.tryEntries[r];if(e.tryLoc<=this.prev&&f.call(e,"finallyLoc")&&this.prev<e.finallyLoc){var i=e;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=t,o.arg=n,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),v},finish:function(t){for(var n=this.tryEntries.length-1;0<=n;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),v}},catch:function(t){for(var n=this.tryEntries.length-1;0<=n;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;resetTryEntry(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:values(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=c),v}},u}("object"==typeof n?n.exports:{});try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},{}],306:[function(t,n,r){"use strict";t(307);var e=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(t(13));e.default._babelPolyfill&&"undefined"!=typeof console&&console.warn&&console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning."),e.default._babelPolyfill=!0},{13:13,307:307}],307:[function(t,n,r){"use strict";t(1),t(3),t(2),t(9),t(8),t(11),t(10),t(12),t(5),t(6),t(4),t(7),t(304),t(305)},{1:1,10:10,11:11,12:12,2:2,3:3,304:304,305:305,4:4,5:5,6:6,7:7,8:8,9:9}]},{},[306]);
@@ -0,0 +1,4565 @@
1
+ /*!
2
+ * Pusher JavaScript Library v7.0.0
3
+ * https://pusher.com/
4
+ *
5
+ * Copyright 2020, Pusher
6
+ * Released under the MIT licence.
7
+ */
8
+
9
+ (function webpackUniversalModuleDefinition(root, factory) {
10
+ if(typeof exports === 'object' && typeof module === 'object')
11
+ module.exports = factory();
12
+ else if(typeof define === 'function' && define.amd)
13
+ define([], factory);
14
+ else if(typeof exports === 'object')
15
+ exports["Pusher"] = factory();
16
+ else
17
+ root["Pusher"] = factory();
18
+ })(window, function() {
19
+ return /******/ (function(modules) { // webpackBootstrap
20
+ /******/ // The module cache
21
+ /******/ var installedModules = {};
22
+ /******/
23
+ /******/ // The require function
24
+ /******/ function __webpack_require__(moduleId) {
25
+ /******/
26
+ /******/ // Check if module is in cache
27
+ /******/ if(installedModules[moduleId]) {
28
+ /******/ return installedModules[moduleId].exports;
29
+ /******/ }
30
+ /******/ // Create a new module (and put it into the cache)
31
+ /******/ var module = installedModules[moduleId] = {
32
+ /******/ i: moduleId,
33
+ /******/ l: false,
34
+ /******/ exports: {}
35
+ /******/ };
36
+ /******/
37
+ /******/ // Execute the module function
38
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
39
+ /******/
40
+ /******/ // Flag the module as loaded
41
+ /******/ module.l = true;
42
+ /******/
43
+ /******/ // Return the exports of the module
44
+ /******/ return module.exports;
45
+ /******/ }
46
+ /******/
47
+ /******/
48
+ /******/ // expose the modules object (__webpack_modules__)
49
+ /******/ __webpack_require__.m = modules;
50
+ /******/
51
+ /******/ // expose the module cache
52
+ /******/ __webpack_require__.c = installedModules;
53
+ /******/
54
+ /******/ // define getter function for harmony exports
55
+ /******/ __webpack_require__.d = function(exports, name, getter) {
56
+ /******/ if(!__webpack_require__.o(exports, name)) {
57
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
58
+ /******/ }
59
+ /******/ };
60
+ /******/
61
+ /******/ // define __esModule on exports
62
+ /******/ __webpack_require__.r = function(exports) {
63
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
64
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
65
+ /******/ }
66
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
67
+ /******/ };
68
+ /******/
69
+ /******/ // create a fake namespace object
70
+ /******/ // mode & 1: value is a module id, require it
71
+ /******/ // mode & 2: merge all properties of value into the ns
72
+ /******/ // mode & 4: return value when already ns object
73
+ /******/ // mode & 8|1: behave like require
74
+ /******/ __webpack_require__.t = function(value, mode) {
75
+ /******/ if(mode & 1) value = __webpack_require__(value);
76
+ /******/ if(mode & 8) return value;
77
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
78
+ /******/ var ns = Object.create(null);
79
+ /******/ __webpack_require__.r(ns);
80
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
81
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
82
+ /******/ return ns;
83
+ /******/ };
84
+ /******/
85
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
86
+ /******/ __webpack_require__.n = function(module) {
87
+ /******/ var getter = module && module.__esModule ?
88
+ /******/ function getDefault() { return module['default']; } :
89
+ /******/ function getModuleExports() { return module; };
90
+ /******/ __webpack_require__.d(getter, 'a', getter);
91
+ /******/ return getter;
92
+ /******/ };
93
+ /******/
94
+ /******/ // Object.prototype.hasOwnProperty.call
95
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
96
+ /******/
97
+ /******/ // __webpack_public_path__
98
+ /******/ __webpack_require__.p = "";
99
+ /******/
100
+ /******/
101
+ /******/ // Load entry module and return exports
102
+ /******/ return __webpack_require__(__webpack_require__.s = 2);
103
+ /******/ })
104
+ /************************************************************************/
105
+ /******/ ([
106
+ /* 0 */
107
+ /***/ (function(module, exports, __webpack_require__) {
108
+
109
+ "use strict";
110
+
111
+ // Copyright (C) 2016 Dmitry Chestnykh
112
+ // MIT License. See LICENSE file for details.
113
+ var __extends = (this && this.__extends) || (function () {
114
+ var extendStatics = function (d, b) {
115
+ extendStatics = Object.setPrototypeOf ||
116
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
117
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
118
+ return extendStatics(d, b);
119
+ };
120
+ return function (d, b) {
121
+ extendStatics(d, b);
122
+ function __() { this.constructor = d; }
123
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
124
+ };
125
+ })();
126
+ Object.defineProperty(exports, "__esModule", { value: true });
127
+ /**
128
+ * Package base64 implements Base64 encoding and decoding.
129
+ */
130
+ // Invalid character used in decoding to indicate
131
+ // that the character to decode is out of range of
132
+ // alphabet and cannot be decoded.
133
+ var INVALID_BYTE = 256;
134
+ /**
135
+ * Implements standard Base64 encoding.
136
+ *
137
+ * Operates in constant time.
138
+ */
139
+ var Coder = /** @class */ (function () {
140
+ // TODO(dchest): methods to encode chunk-by-chunk.
141
+ function Coder(_paddingCharacter) {
142
+ if (_paddingCharacter === void 0) { _paddingCharacter = "="; }
143
+ this._paddingCharacter = _paddingCharacter;
144
+ }
145
+ Coder.prototype.encodedLength = function (length) {
146
+ if (!this._paddingCharacter) {
147
+ return (length * 8 + 5) / 6 | 0;
148
+ }
149
+ return (length + 2) / 3 * 4 | 0;
150
+ };
151
+ Coder.prototype.encode = function (data) {
152
+ var out = "";
153
+ var i = 0;
154
+ for (; i < data.length - 2; i += 3) {
155
+ var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);
156
+ out += this._encodeByte((c >>> 3 * 6) & 63);
157
+ out += this._encodeByte((c >>> 2 * 6) & 63);
158
+ out += this._encodeByte((c >>> 1 * 6) & 63);
159
+ out += this._encodeByte((c >>> 0 * 6) & 63);
160
+ }
161
+ var left = data.length - i;
162
+ if (left > 0) {
163
+ var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);
164
+ out += this._encodeByte((c >>> 3 * 6) & 63);
165
+ out += this._encodeByte((c >>> 2 * 6) & 63);
166
+ if (left === 2) {
167
+ out += this._encodeByte((c >>> 1 * 6) & 63);
168
+ }
169
+ else {
170
+ out += this._paddingCharacter || "";
171
+ }
172
+ out += this._paddingCharacter || "";
173
+ }
174
+ return out;
175
+ };
176
+ Coder.prototype.maxDecodedLength = function (length) {
177
+ if (!this._paddingCharacter) {
178
+ return (length * 6 + 7) / 8 | 0;
179
+ }
180
+ return length / 4 * 3 | 0;
181
+ };
182
+ Coder.prototype.decodedLength = function (s) {
183
+ return this.maxDecodedLength(s.length - this._getPaddingLength(s));
184
+ };
185
+ Coder.prototype.decode = function (s) {
186
+ if (s.length === 0) {
187
+ return new Uint8Array(0);
188
+ }
189
+ var paddingLength = this._getPaddingLength(s);
190
+ var length = s.length - paddingLength;
191
+ var out = new Uint8Array(this.maxDecodedLength(length));
192
+ var op = 0;
193
+ var i = 0;
194
+ var haveBad = 0;
195
+ var v0 = 0, v1 = 0, v2 = 0, v3 = 0;
196
+ for (; i < length - 4; i += 4) {
197
+ v0 = this._decodeChar(s.charCodeAt(i + 0));
198
+ v1 = this._decodeChar(s.charCodeAt(i + 1));
199
+ v2 = this._decodeChar(s.charCodeAt(i + 2));
200
+ v3 = this._decodeChar(s.charCodeAt(i + 3));
201
+ out[op++] = (v0 << 2) | (v1 >>> 4);
202
+ out[op++] = (v1 << 4) | (v2 >>> 2);
203
+ out[op++] = (v2 << 6) | v3;
204
+ haveBad |= v0 & INVALID_BYTE;
205
+ haveBad |= v1 & INVALID_BYTE;
206
+ haveBad |= v2 & INVALID_BYTE;
207
+ haveBad |= v3 & INVALID_BYTE;
208
+ }
209
+ if (i < length - 1) {
210
+ v0 = this._decodeChar(s.charCodeAt(i));
211
+ v1 = this._decodeChar(s.charCodeAt(i + 1));
212
+ out[op++] = (v0 << 2) | (v1 >>> 4);
213
+ haveBad |= v0 & INVALID_BYTE;
214
+ haveBad |= v1 & INVALID_BYTE;
215
+ }
216
+ if (i < length - 2) {
217
+ v2 = this._decodeChar(s.charCodeAt(i + 2));
218
+ out[op++] = (v1 << 4) | (v2 >>> 2);
219
+ haveBad |= v2 & INVALID_BYTE;
220
+ }
221
+ if (i < length - 3) {
222
+ v3 = this._decodeChar(s.charCodeAt(i + 3));
223
+ out[op++] = (v2 << 6) | v3;
224
+ haveBad |= v3 & INVALID_BYTE;
225
+ }
226
+ if (haveBad !== 0) {
227
+ throw new Error("Base64Coder: incorrect characters for decoding");
228
+ }
229
+ return out;
230
+ };
231
+ // Standard encoding have the following encoded/decoded ranges,
232
+ // which we need to convert between.
233
+ //
234
+ // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /
235
+ // Index: 0 - 25 26 - 51 52 - 61 62 63
236
+ // ASCII: 65 - 90 97 - 122 48 - 57 43 47
237
+ //
238
+ // Encode 6 bits in b into a new character.
239
+ Coder.prototype._encodeByte = function (b) {
240
+ // Encoding uses constant time operations as follows:
241
+ //
242
+ // 1. Define comparison of A with B using (A - B) >>> 8:
243
+ // if A > B, then result is positive integer
244
+ // if A <= B, then result is 0
245
+ //
246
+ // 2. Define selection of C or 0 using bitwise AND: X & C:
247
+ // if X == 0, then result is 0
248
+ // if X != 0, then result is C
249
+ //
250
+ // 3. Start with the smallest comparison (b >= 0), which is always
251
+ // true, so set the result to the starting ASCII value (65).
252
+ //
253
+ // 4. Continue comparing b to higher ASCII values, and selecting
254
+ // zero if comparison isn't true, otherwise selecting a value
255
+ // to add to result, which:
256
+ //
257
+ // a) undoes the previous addition
258
+ // b) provides new value to add
259
+ //
260
+ var result = b;
261
+ // b >= 0
262
+ result += 65;
263
+ // b > 25
264
+ result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);
265
+ // b > 51
266
+ result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);
267
+ // b > 61
268
+ result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);
269
+ // b > 62
270
+ result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);
271
+ return String.fromCharCode(result);
272
+ };
273
+ // Decode a character code into a byte.
274
+ // Must return 256 if character is out of alphabet range.
275
+ Coder.prototype._decodeChar = function (c) {
276
+ // Decoding works similar to encoding: using the same comparison
277
+ // function, but now it works on ranges: result is always incremented
278
+ // by value, but this value becomes zero if the range is not
279
+ // satisfied.
280
+ //
281
+ // Decoding starts with invalid value, 256, which is then
282
+ // subtracted when the range is satisfied. If none of the ranges
283
+ // apply, the function returns 256, which is then checked by
284
+ // the caller to throw error.
285
+ var result = INVALID_BYTE; // start with invalid character
286
+ // c == 43 (c > 42 and c < 44)
287
+ result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);
288
+ // c == 47 (c > 46 and c < 48)
289
+ result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);
290
+ // c > 47 and c < 58
291
+ result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);
292
+ // c > 64 and c < 91
293
+ result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);
294
+ // c > 96 and c < 123
295
+ result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);
296
+ return result;
297
+ };
298
+ Coder.prototype._getPaddingLength = function (s) {
299
+ var paddingLength = 0;
300
+ if (this._paddingCharacter) {
301
+ for (var i = s.length - 1; i >= 0; i--) {
302
+ if (s[i] !== this._paddingCharacter) {
303
+ break;
304
+ }
305
+ paddingLength++;
306
+ }
307
+ if (s.length < 4 || paddingLength > 2) {
308
+ throw new Error("Base64Coder: incorrect padding");
309
+ }
310
+ }
311
+ return paddingLength;
312
+ };
313
+ return Coder;
314
+ }());
315
+ exports.Coder = Coder;
316
+ var stdCoder = new Coder();
317
+ function encode(data) {
318
+ return stdCoder.encode(data);
319
+ }
320
+ exports.encode = encode;
321
+ function decode(s) {
322
+ return stdCoder.decode(s);
323
+ }
324
+ exports.decode = decode;
325
+ /**
326
+ * Implements URL-safe Base64 encoding.
327
+ * (Same as Base64, but '+' is replaced with '-', and '/' with '_').
328
+ *
329
+ * Operates in constant time.
330
+ */
331
+ var URLSafeCoder = /** @class */ (function (_super) {
332
+ __extends(URLSafeCoder, _super);
333
+ function URLSafeCoder() {
334
+ return _super !== null && _super.apply(this, arguments) || this;
335
+ }
336
+ // URL-safe encoding have the following encoded/decoded ranges:
337
+ //
338
+ // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _
339
+ // Index: 0 - 25 26 - 51 52 - 61 62 63
340
+ // ASCII: 65 - 90 97 - 122 48 - 57 45 95
341
+ //
342
+ URLSafeCoder.prototype._encodeByte = function (b) {
343
+ var result = b;
344
+ // b >= 0
345
+ result += 65;
346
+ // b > 25
347
+ result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);
348
+ // b > 51
349
+ result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);
350
+ // b > 61
351
+ result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);
352
+ // b > 62
353
+ result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);
354
+ return String.fromCharCode(result);
355
+ };
356
+ URLSafeCoder.prototype._decodeChar = function (c) {
357
+ var result = INVALID_BYTE;
358
+ // c == 45 (c > 44 and c < 46)
359
+ result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);
360
+ // c == 95 (c > 94 and c < 96)
361
+ result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);
362
+ // c > 47 and c < 58
363
+ result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);
364
+ // c > 64 and c < 91
365
+ result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);
366
+ // c > 96 and c < 123
367
+ result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);
368
+ return result;
369
+ };
370
+ return URLSafeCoder;
371
+ }(Coder));
372
+ exports.URLSafeCoder = URLSafeCoder;
373
+ var urlSafeCoder = new URLSafeCoder();
374
+ function encodeURLSafe(data) {
375
+ return urlSafeCoder.encode(data);
376
+ }
377
+ exports.encodeURLSafe = encodeURLSafe;
378
+ function decodeURLSafe(s) {
379
+ return urlSafeCoder.decode(s);
380
+ }
381
+ exports.decodeURLSafe = decodeURLSafe;
382
+ exports.encodedLength = function (length) {
383
+ return stdCoder.encodedLength(length);
384
+ };
385
+ exports.maxDecodedLength = function (length) {
386
+ return stdCoder.maxDecodedLength(length);
387
+ };
388
+ exports.decodedLength = function (s) {
389
+ return stdCoder.decodedLength(s);
390
+ };
391
+ //# sourceMappingURL=base64.js.map
392
+
393
+ /***/ }),
394
+ /* 1 */
395
+ /***/ (function(module, exports, __webpack_require__) {
396
+
397
+ "use strict";
398
+
399
+ // Copyright (C) 2016 Dmitry Chestnykh
400
+ // MIT License. See LICENSE file for details.
401
+ Object.defineProperty(exports, "__esModule", { value: true });
402
+ /**
403
+ * Package utf8 implements UTF-8 encoding and decoding.
404
+ */
405
+ var INVALID_UTF16 = "utf8: invalid string";
406
+ var INVALID_UTF8 = "utf8: invalid source encoding";
407
+ /**
408
+ * Encodes the given string into UTF-8 byte array.
409
+ * Throws if the source string has invalid UTF-16 encoding.
410
+ */
411
+ function encode(s) {
412
+ // Calculate result length and allocate output array.
413
+ // encodedLength() also validates string and throws errors,
414
+ // so we don't need repeat validation here.
415
+ var arr = new Uint8Array(encodedLength(s));
416
+ var pos = 0;
417
+ for (var i = 0; i < s.length; i++) {
418
+ var c = s.charCodeAt(i);
419
+ if (c < 0x80) {
420
+ arr[pos++] = c;
421
+ }
422
+ else if (c < 0x800) {
423
+ arr[pos++] = 0xc0 | c >> 6;
424
+ arr[pos++] = 0x80 | c & 0x3f;
425
+ }
426
+ else if (c < 0xd800) {
427
+ arr[pos++] = 0xe0 | c >> 12;
428
+ arr[pos++] = 0x80 | (c >> 6) & 0x3f;
429
+ arr[pos++] = 0x80 | c & 0x3f;
430
+ }
431
+ else {
432
+ i++; // get one more character
433
+ c = (c & 0x3ff) << 10;
434
+ c |= s.charCodeAt(i) & 0x3ff;
435
+ c += 0x10000;
436
+ arr[pos++] = 0xf0 | c >> 18;
437
+ arr[pos++] = 0x80 | (c >> 12) & 0x3f;
438
+ arr[pos++] = 0x80 | (c >> 6) & 0x3f;
439
+ arr[pos++] = 0x80 | c & 0x3f;
440
+ }
441
+ }
442
+ return arr;
443
+ }
444
+ exports.encode = encode;
445
+ /**
446
+ * Returns the number of bytes required to encode the given string into UTF-8.
447
+ * Throws if the source string has invalid UTF-16 encoding.
448
+ */
449
+ function encodedLength(s) {
450
+ var result = 0;
451
+ for (var i = 0; i < s.length; i++) {
452
+ var c = s.charCodeAt(i);
453
+ if (c < 0x80) {
454
+ result += 1;
455
+ }
456
+ else if (c < 0x800) {
457
+ result += 2;
458
+ }
459
+ else if (c < 0xd800) {
460
+ result += 3;
461
+ }
462
+ else if (c <= 0xdfff) {
463
+ if (i >= s.length - 1) {
464
+ throw new Error(INVALID_UTF16);
465
+ }
466
+ i++; // "eat" next character
467
+ result += 4;
468
+ }
469
+ else {
470
+ throw new Error(INVALID_UTF16);
471
+ }
472
+ }
473
+ return result;
474
+ }
475
+ exports.encodedLength = encodedLength;
476
+ /**
477
+ * Decodes the given byte array from UTF-8 into a string.
478
+ * Throws if encoding is invalid.
479
+ */
480
+ function decode(arr) {
481
+ var chars = [];
482
+ for (var i = 0; i < arr.length; i++) {
483
+ var b = arr[i];
484
+ if (b & 0x80) {
485
+ var min = void 0;
486
+ if (b < 0xe0) {
487
+ // Need 1 more byte.
488
+ if (i >= arr.length) {
489
+ throw new Error(INVALID_UTF8);
490
+ }
491
+ var n1 = arr[++i];
492
+ if ((n1 & 0xc0) !== 0x80) {
493
+ throw new Error(INVALID_UTF8);
494
+ }
495
+ b = (b & 0x1f) << 6 | (n1 & 0x3f);
496
+ min = 0x80;
497
+ }
498
+ else if (b < 0xf0) {
499
+ // Need 2 more bytes.
500
+ if (i >= arr.length - 1) {
501
+ throw new Error(INVALID_UTF8);
502
+ }
503
+ var n1 = arr[++i];
504
+ var n2 = arr[++i];
505
+ if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) {
506
+ throw new Error(INVALID_UTF8);
507
+ }
508
+ b = (b & 0x0f) << 12 | (n1 & 0x3f) << 6 | (n2 & 0x3f);
509
+ min = 0x800;
510
+ }
511
+ else if (b < 0xf8) {
512
+ // Need 3 more bytes.
513
+ if (i >= arr.length - 2) {
514
+ throw new Error(INVALID_UTF8);
515
+ }
516
+ var n1 = arr[++i];
517
+ var n2 = arr[++i];
518
+ var n3 = arr[++i];
519
+ if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) {
520
+ throw new Error(INVALID_UTF8);
521
+ }
522
+ b = (b & 0x0f) << 18 | (n1 & 0x3f) << 12 | (n2 & 0x3f) << 6 | (n3 & 0x3f);
523
+ min = 0x10000;
524
+ }
525
+ else {
526
+ throw new Error(INVALID_UTF8);
527
+ }
528
+ if (b < min || (b >= 0xd800 && b <= 0xdfff)) {
529
+ throw new Error(INVALID_UTF8);
530
+ }
531
+ if (b >= 0x10000) {
532
+ // Surrogate pair.
533
+ if (b > 0x10ffff) {
534
+ throw new Error(INVALID_UTF8);
535
+ }
536
+ b -= 0x10000;
537
+ chars.push(String.fromCharCode(0xd800 | (b >> 10)));
538
+ b = 0xdc00 | (b & 0x3ff);
539
+ }
540
+ }
541
+ chars.push(String.fromCharCode(b));
542
+ }
543
+ return chars.join("");
544
+ }
545
+ exports.decode = decode;
546
+ //# sourceMappingURL=utf8.js.map
547
+
548
+ /***/ }),
549
+ /* 2 */
550
+ /***/ (function(module, exports, __webpack_require__) {
551
+
552
+ // required so we don't have to do require('pusher').default etc.
553
+ module.exports = __webpack_require__(3).default;
554
+
555
+
556
+ /***/ }),
557
+ /* 3 */
558
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
559
+
560
+ "use strict";
561
+ __webpack_require__.r(__webpack_exports__);
562
+
563
+ // CONCATENATED MODULE: ./src/runtimes/web/dom/script_receiver_factory.ts
564
+ var ScriptReceiverFactory = (function () {
565
+ function ScriptReceiverFactory(prefix, name) {
566
+ this.lastId = 0;
567
+ this.prefix = prefix;
568
+ this.name = name;
569
+ }
570
+ ScriptReceiverFactory.prototype.create = function (callback) {
571
+ this.lastId++;
572
+ var number = this.lastId;
573
+ var id = this.prefix + number;
574
+ var name = this.name + '[' + number + ']';
575
+ var called = false;
576
+ var callbackWrapper = function () {
577
+ if (!called) {
578
+ callback.apply(null, arguments);
579
+ called = true;
580
+ }
581
+ };
582
+ this[number] = callbackWrapper;
583
+ return { number: number, id: id, name: name, callback: callbackWrapper };
584
+ };
585
+ ScriptReceiverFactory.prototype.remove = function (receiver) {
586
+ delete this[receiver.number];
587
+ };
588
+ return ScriptReceiverFactory;
589
+ }());
590
+
591
+ var ScriptReceivers = new ScriptReceiverFactory('_pusher_script_', 'Pusher.ScriptReceivers');
592
+
593
+ // CONCATENATED MODULE: ./src/core/defaults.ts
594
+ var Defaults = {
595
+ VERSION: "7.0.0",
596
+ PROTOCOL: 7,
597
+ wsPort: 80,
598
+ wssPort: 443,
599
+ wsPath: '',
600
+ httpHost: 'sockjs.pusher.com',
601
+ httpPort: 80,
602
+ httpsPort: 443,
603
+ httpPath: '/pusher',
604
+ stats_host: 'stats.pusher.com',
605
+ authEndpoint: '/pusher/auth',
606
+ authTransport: 'ajax',
607
+ activityTimeout: 120000,
608
+ pongTimeout: 30000,
609
+ unavailableTimeout: 10000,
610
+ cluster: 'mt1',
611
+ cdn_http: "http://js.pusher.com",
612
+ cdn_https: "https://js.pusher.com",
613
+ dependency_suffix: ""
614
+ };
615
+ /* harmony default export */ var defaults = (Defaults);
616
+
617
+ // CONCATENATED MODULE: ./src/runtimes/web/dom/dependency_loader.ts
618
+
619
+
620
+ var dependency_loader_DependencyLoader = (function () {
621
+ function DependencyLoader(options) {
622
+ this.options = options;
623
+ this.receivers = options.receivers || ScriptReceivers;
624
+ this.loading = {};
625
+ }
626
+ DependencyLoader.prototype.load = function (name, options, callback) {
627
+ var self = this;
628
+ if (self.loading[name] && self.loading[name].length > 0) {
629
+ self.loading[name].push(callback);
630
+ }
631
+ else {
632
+ self.loading[name] = [callback];
633
+ var request = runtime.createScriptRequest(self.getPath(name, options));
634
+ var receiver = self.receivers.create(function (error) {
635
+ self.receivers.remove(receiver);
636
+ if (self.loading[name]) {
637
+ var callbacks = self.loading[name];
638
+ delete self.loading[name];
639
+ var successCallback = function (wasSuccessful) {
640
+ if (!wasSuccessful) {
641
+ request.cleanup();
642
+ }
643
+ };
644
+ for (var i = 0; i < callbacks.length; i++) {
645
+ callbacks[i](error, successCallback);
646
+ }
647
+ }
648
+ });
649
+ request.send(receiver);
650
+ }
651
+ };
652
+ DependencyLoader.prototype.getRoot = function (options) {
653
+ var cdn;
654
+ var protocol = runtime.getDocument().location.protocol;
655
+ if ((options && options.useTLS) || protocol === 'https:') {
656
+ cdn = this.options.cdn_https;
657
+ }
658
+ else {
659
+ cdn = this.options.cdn_http;
660
+ }
661
+ return cdn.replace(/\/*$/, '') + '/' + this.options.version;
662
+ };
663
+ DependencyLoader.prototype.getPath = function (name, options) {
664
+ return this.getRoot(options) + '/' + name + this.options.suffix + '.js';
665
+ };
666
+ return DependencyLoader;
667
+ }());
668
+ /* harmony default export */ var dependency_loader = (dependency_loader_DependencyLoader);
669
+
670
+ // CONCATENATED MODULE: ./src/runtimes/web/dom/dependencies.ts
671
+
672
+
673
+
674
+ var DependenciesReceivers = new ScriptReceiverFactory('_pusher_dependencies', 'Pusher.DependenciesReceivers');
675
+ var Dependencies = new dependency_loader({
676
+ cdn_http: defaults.cdn_http,
677
+ cdn_https: defaults.cdn_https,
678
+ version: defaults.VERSION,
679
+ suffix: defaults.dependency_suffix,
680
+ receivers: DependenciesReceivers
681
+ });
682
+
683
+ // CONCATENATED MODULE: ./src/core/utils/url_store.ts
684
+ var urlStore = {
685
+ baseUrl: 'https://pusher.com',
686
+ urls: {
687
+ authenticationEndpoint: {
688
+ path: '/docs/authenticating_users'
689
+ },
690
+ javascriptQuickStart: {
691
+ path: '/docs/javascript_quick_start'
692
+ },
693
+ triggeringClientEvents: {
694
+ path: '/docs/client_api_guide/client_events#trigger-events'
695
+ },
696
+ encryptedChannelSupport: {
697
+ fullUrl: 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support'
698
+ }
699
+ }
700
+ };
701
+ var buildLogSuffix = function (key) {
702
+ var urlPrefix = 'See:';
703
+ var urlObj = urlStore.urls[key];
704
+ if (!urlObj)
705
+ return '';
706
+ var url;
707
+ if (urlObj.fullUrl) {
708
+ url = urlObj.fullUrl;
709
+ }
710
+ else if (urlObj.path) {
711
+ url = urlStore.baseUrl + urlObj.path;
712
+ }
713
+ if (!url)
714
+ return '';
715
+ return urlPrefix + " " + url;
716
+ };
717
+ /* harmony default export */ var url_store = ({ buildLogSuffix: buildLogSuffix });
718
+
719
+ // CONCATENATED MODULE: ./src/core/errors.ts
720
+ var __extends = (undefined && undefined.__extends) || (function () {
721
+ var extendStatics = function (d, b) {
722
+ extendStatics = Object.setPrototypeOf ||
723
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
724
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
725
+ return extendStatics(d, b);
726
+ };
727
+ return function (d, b) {
728
+ extendStatics(d, b);
729
+ function __() { this.constructor = d; }
730
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
731
+ };
732
+ })();
733
+ var BadEventName = (function (_super) {
734
+ __extends(BadEventName, _super);
735
+ function BadEventName(msg) {
736
+ var _newTarget = this.constructor;
737
+ var _this = _super.call(this, msg) || this;
738
+ Object.setPrototypeOf(_this, _newTarget.prototype);
739
+ return _this;
740
+ }
741
+ return BadEventName;
742
+ }(Error));
743
+
744
+ var RequestTimedOut = (function (_super) {
745
+ __extends(RequestTimedOut, _super);
746
+ function RequestTimedOut(msg) {
747
+ var _newTarget = this.constructor;
748
+ var _this = _super.call(this, msg) || this;
749
+ Object.setPrototypeOf(_this, _newTarget.prototype);
750
+ return _this;
751
+ }
752
+ return RequestTimedOut;
753
+ }(Error));
754
+
755
+ var TransportPriorityTooLow = (function (_super) {
756
+ __extends(TransportPriorityTooLow, _super);
757
+ function TransportPriorityTooLow(msg) {
758
+ var _newTarget = this.constructor;
759
+ var _this = _super.call(this, msg) || this;
760
+ Object.setPrototypeOf(_this, _newTarget.prototype);
761
+ return _this;
762
+ }
763
+ return TransportPriorityTooLow;
764
+ }(Error));
765
+
766
+ var TransportClosed = (function (_super) {
767
+ __extends(TransportClosed, _super);
768
+ function TransportClosed(msg) {
769
+ var _newTarget = this.constructor;
770
+ var _this = _super.call(this, msg) || this;
771
+ Object.setPrototypeOf(_this, _newTarget.prototype);
772
+ return _this;
773
+ }
774
+ return TransportClosed;
775
+ }(Error));
776
+
777
+ var UnsupportedFeature = (function (_super) {
778
+ __extends(UnsupportedFeature, _super);
779
+ function UnsupportedFeature(msg) {
780
+ var _newTarget = this.constructor;
781
+ var _this = _super.call(this, msg) || this;
782
+ Object.setPrototypeOf(_this, _newTarget.prototype);
783
+ return _this;
784
+ }
785
+ return UnsupportedFeature;
786
+ }(Error));
787
+
788
+ var UnsupportedTransport = (function (_super) {
789
+ __extends(UnsupportedTransport, _super);
790
+ function UnsupportedTransport(msg) {
791
+ var _newTarget = this.constructor;
792
+ var _this = _super.call(this, msg) || this;
793
+ Object.setPrototypeOf(_this, _newTarget.prototype);
794
+ return _this;
795
+ }
796
+ return UnsupportedTransport;
797
+ }(Error));
798
+
799
+ var UnsupportedStrategy = (function (_super) {
800
+ __extends(UnsupportedStrategy, _super);
801
+ function UnsupportedStrategy(msg) {
802
+ var _newTarget = this.constructor;
803
+ var _this = _super.call(this, msg) || this;
804
+ Object.setPrototypeOf(_this, _newTarget.prototype);
805
+ return _this;
806
+ }
807
+ return UnsupportedStrategy;
808
+ }(Error));
809
+
810
+ var HTTPAuthError = (function (_super) {
811
+ __extends(HTTPAuthError, _super);
812
+ function HTTPAuthError(status, msg) {
813
+ var _newTarget = this.constructor;
814
+ var _this = _super.call(this, msg) || this;
815
+ _this.status = status;
816
+ Object.setPrototypeOf(_this, _newTarget.prototype);
817
+ return _this;
818
+ }
819
+ return HTTPAuthError;
820
+ }(Error));
821
+
822
+
823
+ // CONCATENATED MODULE: ./src/runtimes/isomorphic/auth/xhr_auth.ts
824
+
825
+
826
+
827
+ var ajax = function (context, socketId, callback) {
828
+ var self = this, xhr;
829
+ xhr = runtime.createXHR();
830
+ xhr.open('POST', self.options.authEndpoint, true);
831
+ xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
832
+ for (var headerName in this.authOptions.headers) {
833
+ xhr.setRequestHeader(headerName, this.authOptions.headers[headerName]);
834
+ }
835
+ xhr.onreadystatechange = function () {
836
+ if (xhr.readyState === 4) {
837
+ if (xhr.status === 200) {
838
+ var data = void 0;
839
+ var parsed = false;
840
+ try {
841
+ data = JSON.parse(xhr.responseText);
842
+ parsed = true;
843
+ }
844
+ catch (e) {
845
+ callback(new HTTPAuthError(200, 'JSON returned from auth endpoint was invalid, yet status code was 200. Data was: ' +
846
+ xhr.responseText), { auth: '' });
847
+ }
848
+ if (parsed) {
849
+ callback(null, data);
850
+ }
851
+ }
852
+ else {
853
+ var suffix = url_store.buildLogSuffix('authenticationEndpoint');
854
+ callback(new HTTPAuthError(xhr.status, 'Unable to retrieve auth string from auth endpoint - ' +
855
+ ("received status: " + xhr.status + " from " + self.options.authEndpoint + ". ") +
856
+ ("Clients must be authenticated to join private or presence channels. " + suffix)), { auth: '' });
857
+ }
858
+ }
859
+ };
860
+ xhr.send(this.composeQuery(socketId));
861
+ return xhr;
862
+ };
863
+ /* harmony default export */ var xhr_auth = (ajax);
864
+
865
+ // CONCATENATED MODULE: ./src/core/base64.ts
866
+ function encode(s) {
867
+ return btoa(utob(s));
868
+ }
869
+ var fromCharCode = String.fromCharCode;
870
+ var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
871
+ var b64tab = {};
872
+ for (var base64_i = 0, l = b64chars.length; base64_i < l; base64_i++) {
873
+ b64tab[b64chars.charAt(base64_i)] = base64_i;
874
+ }
875
+ var cb_utob = function (c) {
876
+ var cc = c.charCodeAt(0);
877
+ return cc < 0x80
878
+ ? c
879
+ : cc < 0x800
880
+ ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))
881
+ : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) +
882
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) +
883
+ fromCharCode(0x80 | (cc & 0x3f));
884
+ };
885
+ var utob = function (u) {
886
+ return u.replace(/[^\x00-\x7F]/g, cb_utob);
887
+ };
888
+ var cb_encode = function (ccc) {
889
+ var padlen = [0, 2, 1][ccc.length % 3];
890
+ var ord = (ccc.charCodeAt(0) << 16) |
891
+ ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |
892
+ (ccc.length > 2 ? ccc.charCodeAt(2) : 0);
893
+ var chars = [
894
+ b64chars.charAt(ord >>> 18),
895
+ b64chars.charAt((ord >>> 12) & 63),
896
+ padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
897
+ padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
898
+ ];
899
+ return chars.join('');
900
+ };
901
+ var btoa = window.btoa ||
902
+ function (b) {
903
+ return b.replace(/[\s\S]{1,3}/g, cb_encode);
904
+ };
905
+
906
+ // CONCATENATED MODULE: ./src/core/utils/timers/abstract_timer.ts
907
+ var Timer = (function () {
908
+ function Timer(set, clear, delay, callback) {
909
+ var _this = this;
910
+ this.clear = clear;
911
+ this.timer = set(function () {
912
+ if (_this.timer) {
913
+ _this.timer = callback(_this.timer);
914
+ }
915
+ }, delay);
916
+ }
917
+ Timer.prototype.isRunning = function () {
918
+ return this.timer !== null;
919
+ };
920
+ Timer.prototype.ensureAborted = function () {
921
+ if (this.timer) {
922
+ this.clear(this.timer);
923
+ this.timer = null;
924
+ }
925
+ };
926
+ return Timer;
927
+ }());
928
+ /* harmony default export */ var abstract_timer = (Timer);
929
+
930
+ // CONCATENATED MODULE: ./src/core/utils/timers/index.ts
931
+ var timers_extends = (undefined && undefined.__extends) || (function () {
932
+ var extendStatics = function (d, b) {
933
+ extendStatics = Object.setPrototypeOf ||
934
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
935
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
936
+ return extendStatics(d, b);
937
+ };
938
+ return function (d, b) {
939
+ extendStatics(d, b);
940
+ function __() { this.constructor = d; }
941
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
942
+ };
943
+ })();
944
+
945
+ function timers_clearTimeout(timer) {
946
+ window.clearTimeout(timer);
947
+ }
948
+ function timers_clearInterval(timer) {
949
+ window.clearInterval(timer);
950
+ }
951
+ var OneOffTimer = (function (_super) {
952
+ timers_extends(OneOffTimer, _super);
953
+ function OneOffTimer(delay, callback) {
954
+ return _super.call(this, setTimeout, timers_clearTimeout, delay, function (timer) {
955
+ callback();
956
+ return null;
957
+ }) || this;
958
+ }
959
+ return OneOffTimer;
960
+ }(abstract_timer));
961
+
962
+ var PeriodicTimer = (function (_super) {
963
+ timers_extends(PeriodicTimer, _super);
964
+ function PeriodicTimer(delay, callback) {
965
+ return _super.call(this, setInterval, timers_clearInterval, delay, function (timer) {
966
+ callback();
967
+ return timer;
968
+ }) || this;
969
+ }
970
+ return PeriodicTimer;
971
+ }(abstract_timer));
972
+
973
+
974
+ // CONCATENATED MODULE: ./src/core/util.ts
975
+
976
+ var Util = {
977
+ now: function () {
978
+ if (Date.now) {
979
+ return Date.now();
980
+ }
981
+ else {
982
+ return new Date().valueOf();
983
+ }
984
+ },
985
+ defer: function (callback) {
986
+ return new OneOffTimer(0, callback);
987
+ },
988
+ method: function (name) {
989
+ var args = [];
990
+ for (var _i = 1; _i < arguments.length; _i++) {
991
+ args[_i - 1] = arguments[_i];
992
+ }
993
+ var boundArguments = Array.prototype.slice.call(arguments, 1);
994
+ return function (object) {
995
+ return object[name].apply(object, boundArguments.concat(arguments));
996
+ };
997
+ }
998
+ };
999
+ /* harmony default export */ var util = (Util);
1000
+
1001
+ // CONCATENATED MODULE: ./src/core/utils/collections.ts
1002
+
1003
+
1004
+ function extend(target) {
1005
+ var sources = [];
1006
+ for (var _i = 1; _i < arguments.length; _i++) {
1007
+ sources[_i - 1] = arguments[_i];
1008
+ }
1009
+ for (var i = 0; i < sources.length; i++) {
1010
+ var extensions = sources[i];
1011
+ for (var property in extensions) {
1012
+ if (extensions[property] &&
1013
+ extensions[property].constructor &&
1014
+ extensions[property].constructor === Object) {
1015
+ target[property] = extend(target[property] || {}, extensions[property]);
1016
+ }
1017
+ else {
1018
+ target[property] = extensions[property];
1019
+ }
1020
+ }
1021
+ }
1022
+ return target;
1023
+ }
1024
+ function stringify() {
1025
+ var m = ['Pusher'];
1026
+ for (var i = 0; i < arguments.length; i++) {
1027
+ if (typeof arguments[i] === 'string') {
1028
+ m.push(arguments[i]);
1029
+ }
1030
+ else {
1031
+ m.push(safeJSONStringify(arguments[i]));
1032
+ }
1033
+ }
1034
+ return m.join(' : ');
1035
+ }
1036
+ function arrayIndexOf(array, item) {
1037
+ var nativeIndexOf = Array.prototype.indexOf;
1038
+ if (array === null) {
1039
+ return -1;
1040
+ }
1041
+ if (nativeIndexOf && array.indexOf === nativeIndexOf) {
1042
+ return array.indexOf(item);
1043
+ }
1044
+ for (var i = 0, l = array.length; i < l; i++) {
1045
+ if (array[i] === item) {
1046
+ return i;
1047
+ }
1048
+ }
1049
+ return -1;
1050
+ }
1051
+ function objectApply(object, f) {
1052
+ for (var key in object) {
1053
+ if (Object.prototype.hasOwnProperty.call(object, key)) {
1054
+ f(object[key], key, object);
1055
+ }
1056
+ }
1057
+ }
1058
+ function keys(object) {
1059
+ var keys = [];
1060
+ objectApply(object, function (_, key) {
1061
+ keys.push(key);
1062
+ });
1063
+ return keys;
1064
+ }
1065
+ function values(object) {
1066
+ var values = [];
1067
+ objectApply(object, function (value) {
1068
+ values.push(value);
1069
+ });
1070
+ return values;
1071
+ }
1072
+ function apply(array, f, context) {
1073
+ for (var i = 0; i < array.length; i++) {
1074
+ f.call(context || window, array[i], i, array);
1075
+ }
1076
+ }
1077
+ function map(array, f) {
1078
+ var result = [];
1079
+ for (var i = 0; i < array.length; i++) {
1080
+ result.push(f(array[i], i, array, result));
1081
+ }
1082
+ return result;
1083
+ }
1084
+ function mapObject(object, f) {
1085
+ var result = {};
1086
+ objectApply(object, function (value, key) {
1087
+ result[key] = f(value);
1088
+ });
1089
+ return result;
1090
+ }
1091
+ function filter(array, test) {
1092
+ test =
1093
+ test ||
1094
+ function (value) {
1095
+ return !!value;
1096
+ };
1097
+ var result = [];
1098
+ for (var i = 0; i < array.length; i++) {
1099
+ if (test(array[i], i, array, result)) {
1100
+ result.push(array[i]);
1101
+ }
1102
+ }
1103
+ return result;
1104
+ }
1105
+ function filterObject(object, test) {
1106
+ var result = {};
1107
+ objectApply(object, function (value, key) {
1108
+ if ((test && test(value, key, object, result)) || Boolean(value)) {
1109
+ result[key] = value;
1110
+ }
1111
+ });
1112
+ return result;
1113
+ }
1114
+ function flatten(object) {
1115
+ var result = [];
1116
+ objectApply(object, function (value, key) {
1117
+ result.push([key, value]);
1118
+ });
1119
+ return result;
1120
+ }
1121
+ function any(array, test) {
1122
+ for (var i = 0; i < array.length; i++) {
1123
+ if (test(array[i], i, array)) {
1124
+ return true;
1125
+ }
1126
+ }
1127
+ return false;
1128
+ }
1129
+ function collections_all(array, test) {
1130
+ for (var i = 0; i < array.length; i++) {
1131
+ if (!test(array[i], i, array)) {
1132
+ return false;
1133
+ }
1134
+ }
1135
+ return true;
1136
+ }
1137
+ function encodeParamsObject(data) {
1138
+ return mapObject(data, function (value) {
1139
+ if (typeof value === 'object') {
1140
+ value = safeJSONStringify(value);
1141
+ }
1142
+ return encodeURIComponent(encode(value.toString()));
1143
+ });
1144
+ }
1145
+ function buildQueryString(data) {
1146
+ var params = filterObject(data, function (value) {
1147
+ return value !== undefined;
1148
+ });
1149
+ var query = map(flatten(encodeParamsObject(params)), util.method('join', '=')).join('&');
1150
+ return query;
1151
+ }
1152
+ function decycleObject(object) {
1153
+ var objects = [], paths = [];
1154
+ return (function derez(value, path) {
1155
+ var i, name, nu;
1156
+ switch (typeof value) {
1157
+ case 'object':
1158
+ if (!value) {
1159
+ return null;
1160
+ }
1161
+ for (i = 0; i < objects.length; i += 1) {
1162
+ if (objects[i] === value) {
1163
+ return { $ref: paths[i] };
1164
+ }
1165
+ }
1166
+ objects.push(value);
1167
+ paths.push(path);
1168
+ if (Object.prototype.toString.apply(value) === '[object Array]') {
1169
+ nu = [];
1170
+ for (i = 0; i < value.length; i += 1) {
1171
+ nu[i] = derez(value[i], path + '[' + i + ']');
1172
+ }
1173
+ }
1174
+ else {
1175
+ nu = {};
1176
+ for (name in value) {
1177
+ if (Object.prototype.hasOwnProperty.call(value, name)) {
1178
+ nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']');
1179
+ }
1180
+ }
1181
+ }
1182
+ return nu;
1183
+ case 'number':
1184
+ case 'string':
1185
+ case 'boolean':
1186
+ return value;
1187
+ }
1188
+ })(object, '$');
1189
+ }
1190
+ function safeJSONStringify(source) {
1191
+ try {
1192
+ return JSON.stringify(source);
1193
+ }
1194
+ catch (e) {
1195
+ return JSON.stringify(decycleObject(source));
1196
+ }
1197
+ }
1198
+
1199
+ // CONCATENATED MODULE: ./src/core/logger.ts
1200
+
1201
+
1202
+ var logger_Logger = (function () {
1203
+ function Logger() {
1204
+ this.globalLog = function (message) {
1205
+ if (window.console && window.console.log) {
1206
+ window.console.log(message);
1207
+ }
1208
+ };
1209
+ }
1210
+ Logger.prototype.debug = function () {
1211
+ var args = [];
1212
+ for (var _i = 0; _i < arguments.length; _i++) {
1213
+ args[_i] = arguments[_i];
1214
+ }
1215
+ this.log(this.globalLog, args);
1216
+ };
1217
+ Logger.prototype.warn = function () {
1218
+ var args = [];
1219
+ for (var _i = 0; _i < arguments.length; _i++) {
1220
+ args[_i] = arguments[_i];
1221
+ }
1222
+ this.log(this.globalLogWarn, args);
1223
+ };
1224
+ Logger.prototype.error = function () {
1225
+ var args = [];
1226
+ for (var _i = 0; _i < arguments.length; _i++) {
1227
+ args[_i] = arguments[_i];
1228
+ }
1229
+ this.log(this.globalLogError, args);
1230
+ };
1231
+ Logger.prototype.globalLogWarn = function (message) {
1232
+ if (window.console && window.console.warn) {
1233
+ window.console.warn(message);
1234
+ }
1235
+ else {
1236
+ this.globalLog(message);
1237
+ }
1238
+ };
1239
+ Logger.prototype.globalLogError = function (message) {
1240
+ if (window.console && window.console.error) {
1241
+ window.console.error(message);
1242
+ }
1243
+ else {
1244
+ this.globalLogWarn(message);
1245
+ }
1246
+ };
1247
+ Logger.prototype.log = function (defaultLoggingFunction) {
1248
+ var args = [];
1249
+ for (var _i = 1; _i < arguments.length; _i++) {
1250
+ args[_i - 1] = arguments[_i];
1251
+ }
1252
+ var message = stringify.apply(this, arguments);
1253
+ if (core_pusher.log) {
1254
+ core_pusher.log(message);
1255
+ }
1256
+ else if (core_pusher.logToConsole) {
1257
+ var log = defaultLoggingFunction.bind(this);
1258
+ log(message);
1259
+ }
1260
+ };
1261
+ return Logger;
1262
+ }());
1263
+ /* harmony default export */ var logger = (new logger_Logger());
1264
+
1265
+ // CONCATENATED MODULE: ./src/runtimes/web/auth/jsonp_auth.ts
1266
+
1267
+ var jsonp = function (context, socketId, callback) {
1268
+ if (this.authOptions.headers !== undefined) {
1269
+ logger.warn('To send headers with the auth request, you must use AJAX, rather than JSONP.');
1270
+ }
1271
+ var callbackName = context.nextAuthCallbackID.toString();
1272
+ context.nextAuthCallbackID++;
1273
+ var document = context.getDocument();
1274
+ var script = document.createElement('script');
1275
+ context.auth_callbacks[callbackName] = function (data) {
1276
+ callback(null, data);
1277
+ };
1278
+ var callback_name = "Pusher.auth_callbacks['" + callbackName + "']";
1279
+ script.src =
1280
+ this.options.authEndpoint +
1281
+ '?callback=' +
1282
+ encodeURIComponent(callback_name) +
1283
+ '&' +
1284
+ this.composeQuery(socketId);
1285
+ var head = document.getElementsByTagName('head')[0] || document.documentElement;
1286
+ head.insertBefore(script, head.firstChild);
1287
+ };
1288
+ /* harmony default export */ var jsonp_auth = (jsonp);
1289
+
1290
+ // CONCATENATED MODULE: ./src/runtimes/web/dom/script_request.ts
1291
+ var ScriptRequest = (function () {
1292
+ function ScriptRequest(src) {
1293
+ this.src = src;
1294
+ }
1295
+ ScriptRequest.prototype.send = function (receiver) {
1296
+ var self = this;
1297
+ var errorString = 'Error loading ' + self.src;
1298
+ self.script = document.createElement('script');
1299
+ self.script.id = receiver.id;
1300
+ self.script.src = self.src;
1301
+ self.script.type = 'text/javascript';
1302
+ self.script.charset = 'UTF-8';
1303
+ if (self.script.addEventListener) {
1304
+ self.script.onerror = function () {
1305
+ receiver.callback(errorString);
1306
+ };
1307
+ self.script.onload = function () {
1308
+ receiver.callback(null);
1309
+ };
1310
+ }
1311
+ else {
1312
+ self.script.onreadystatechange = function () {
1313
+ if (self.script.readyState === 'loaded' ||
1314
+ self.script.readyState === 'complete') {
1315
+ receiver.callback(null);
1316
+ }
1317
+ };
1318
+ }
1319
+ if (self.script.async === undefined &&
1320
+ document.attachEvent &&
1321
+ /opera/i.test(navigator.userAgent)) {
1322
+ self.errorScript = document.createElement('script');
1323
+ self.errorScript.id = receiver.id + '_error';
1324
+ self.errorScript.text = receiver.name + "('" + errorString + "');";
1325
+ self.script.async = self.errorScript.async = false;
1326
+ }
1327
+ else {
1328
+ self.script.async = true;
1329
+ }
1330
+ var head = document.getElementsByTagName('head')[0];
1331
+ head.insertBefore(self.script, head.firstChild);
1332
+ if (self.errorScript) {
1333
+ head.insertBefore(self.errorScript, self.script.nextSibling);
1334
+ }
1335
+ };
1336
+ ScriptRequest.prototype.cleanup = function () {
1337
+ if (this.script) {
1338
+ this.script.onload = this.script.onerror = null;
1339
+ this.script.onreadystatechange = null;
1340
+ }
1341
+ if (this.script && this.script.parentNode) {
1342
+ this.script.parentNode.removeChild(this.script);
1343
+ }
1344
+ if (this.errorScript && this.errorScript.parentNode) {
1345
+ this.errorScript.parentNode.removeChild(this.errorScript);
1346
+ }
1347
+ this.script = null;
1348
+ this.errorScript = null;
1349
+ };
1350
+ return ScriptRequest;
1351
+ }());
1352
+ /* harmony default export */ var script_request = (ScriptRequest);
1353
+
1354
+ // CONCATENATED MODULE: ./src/runtimes/web/dom/jsonp_request.ts
1355
+
1356
+
1357
+ var jsonp_request_JSONPRequest = (function () {
1358
+ function JSONPRequest(url, data) {
1359
+ this.url = url;
1360
+ this.data = data;
1361
+ }
1362
+ JSONPRequest.prototype.send = function (receiver) {
1363
+ if (this.request) {
1364
+ return;
1365
+ }
1366
+ var query = buildQueryString(this.data);
1367
+ var url = this.url + '/' + receiver.number + '?' + query;
1368
+ this.request = runtime.createScriptRequest(url);
1369
+ this.request.send(receiver);
1370
+ };
1371
+ JSONPRequest.prototype.cleanup = function () {
1372
+ if (this.request) {
1373
+ this.request.cleanup();
1374
+ }
1375
+ };
1376
+ return JSONPRequest;
1377
+ }());
1378
+ /* harmony default export */ var jsonp_request = (jsonp_request_JSONPRequest);
1379
+
1380
+ // CONCATENATED MODULE: ./src/runtimes/web/timeline/jsonp_timeline.ts
1381
+
1382
+
1383
+ var getAgent = function (sender, useTLS) {
1384
+ return function (data, callback) {
1385
+ var scheme = 'http' + (useTLS ? 's' : '') + '://';
1386
+ var url = scheme + (sender.host || sender.options.host) + sender.options.path;
1387
+ var request = runtime.createJSONPRequest(url, data);
1388
+ var receiver = runtime.ScriptReceivers.create(function (error, result) {
1389
+ ScriptReceivers.remove(receiver);
1390
+ request.cleanup();
1391
+ if (result && result.host) {
1392
+ sender.host = result.host;
1393
+ }
1394
+ if (callback) {
1395
+ callback(error, result);
1396
+ }
1397
+ });
1398
+ request.send(receiver);
1399
+ };
1400
+ };
1401
+ var jsonp_timeline_jsonp = {
1402
+ name: 'jsonp',
1403
+ getAgent: getAgent
1404
+ };
1405
+ /* harmony default export */ var jsonp_timeline = (jsonp_timeline_jsonp);
1406
+
1407
+ // CONCATENATED MODULE: ./src/core/transports/url_schemes.ts
1408
+
1409
+ function getGenericURL(baseScheme, params, path) {
1410
+ var scheme = baseScheme + (params.useTLS ? 's' : '');
1411
+ var host = params.useTLS ? params.hostTLS : params.hostNonTLS;
1412
+ return scheme + '://' + host + path;
1413
+ }
1414
+ function getGenericPath(key, queryString) {
1415
+ var path = '/app/' + key;
1416
+ var query = '?protocol=' +
1417
+ defaults.PROTOCOL +
1418
+ '&client=js' +
1419
+ '&version=' +
1420
+ defaults.VERSION +
1421
+ (queryString ? '&' + queryString : '');
1422
+ return path + query;
1423
+ }
1424
+ var ws = {
1425
+ getInitial: function (key, params) {
1426
+ var path = (params.httpPath || '') + getGenericPath(key, 'flash=false');
1427
+ return getGenericURL('ws', params, path);
1428
+ }
1429
+ };
1430
+ var http = {
1431
+ getInitial: function (key, params) {
1432
+ var path = (params.httpPath || '/pusher') + getGenericPath(key);
1433
+ return getGenericURL('http', params, path);
1434
+ }
1435
+ };
1436
+ var sockjs = {
1437
+ getInitial: function (key, params) {
1438
+ return getGenericURL('http', params, params.httpPath || '/pusher');
1439
+ },
1440
+ getPath: function (key, params) {
1441
+ return getGenericPath(key);
1442
+ }
1443
+ };
1444
+
1445
+ // CONCATENATED MODULE: ./src/core/events/callback_registry.ts
1446
+
1447
+ var callback_registry_CallbackRegistry = (function () {
1448
+ function CallbackRegistry() {
1449
+ this._callbacks = {};
1450
+ }
1451
+ CallbackRegistry.prototype.get = function (name) {
1452
+ return this._callbacks[prefix(name)];
1453
+ };
1454
+ CallbackRegistry.prototype.add = function (name, callback, context) {
1455
+ var prefixedEventName = prefix(name);
1456
+ this._callbacks[prefixedEventName] =
1457
+ this._callbacks[prefixedEventName] || [];
1458
+ this._callbacks[prefixedEventName].push({
1459
+ fn: callback,
1460
+ context: context
1461
+ });
1462
+ };
1463
+ CallbackRegistry.prototype.remove = function (name, callback, context) {
1464
+ if (!name && !callback && !context) {
1465
+ this._callbacks = {};
1466
+ return;
1467
+ }
1468
+ var names = name ? [prefix(name)] : keys(this._callbacks);
1469
+ if (callback || context) {
1470
+ this.removeCallback(names, callback, context);
1471
+ }
1472
+ else {
1473
+ this.removeAllCallbacks(names);
1474
+ }
1475
+ };
1476
+ CallbackRegistry.prototype.removeCallback = function (names, callback, context) {
1477
+ apply(names, function (name) {
1478
+ this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) {
1479
+ return ((callback && callback !== binding.fn) ||
1480
+ (context && context !== binding.context));
1481
+ });
1482
+ if (this._callbacks[name].length === 0) {
1483
+ delete this._callbacks[name];
1484
+ }
1485
+ }, this);
1486
+ };
1487
+ CallbackRegistry.prototype.removeAllCallbacks = function (names) {
1488
+ apply(names, function (name) {
1489
+ delete this._callbacks[name];
1490
+ }, this);
1491
+ };
1492
+ return CallbackRegistry;
1493
+ }());
1494
+ /* harmony default export */ var callback_registry = (callback_registry_CallbackRegistry);
1495
+ function prefix(name) {
1496
+ return '_' + name;
1497
+ }
1498
+
1499
+ // CONCATENATED MODULE: ./src/core/events/dispatcher.ts
1500
+
1501
+
1502
+ var dispatcher_Dispatcher = (function () {
1503
+ function Dispatcher(failThrough) {
1504
+ this.callbacks = new callback_registry();
1505
+ this.global_callbacks = [];
1506
+ this.failThrough = failThrough;
1507
+ }
1508
+ Dispatcher.prototype.bind = function (eventName, callback, context) {
1509
+ this.callbacks.add(eventName, callback, context);
1510
+ return this;
1511
+ };
1512
+ Dispatcher.prototype.bind_global = function (callback) {
1513
+ this.global_callbacks.push(callback);
1514
+ return this;
1515
+ };
1516
+ Dispatcher.prototype.unbind = function (eventName, callback, context) {
1517
+ this.callbacks.remove(eventName, callback, context);
1518
+ return this;
1519
+ };
1520
+ Dispatcher.prototype.unbind_global = function (callback) {
1521
+ if (!callback) {
1522
+ this.global_callbacks = [];
1523
+ return this;
1524
+ }
1525
+ this.global_callbacks = filter(this.global_callbacks || [], function (c) { return c !== callback; });
1526
+ return this;
1527
+ };
1528
+ Dispatcher.prototype.unbind_all = function () {
1529
+ this.unbind();
1530
+ this.unbind_global();
1531
+ return this;
1532
+ };
1533
+ Dispatcher.prototype.emit = function (eventName, data, metadata) {
1534
+ for (var i = 0; i < this.global_callbacks.length; i++) {
1535
+ this.global_callbacks[i](eventName, data);
1536
+ }
1537
+ var callbacks = this.callbacks.get(eventName);
1538
+ var args = [];
1539
+ if (metadata) {
1540
+ args.push(data, metadata);
1541
+ }
1542
+ else if (data) {
1543
+ args.push(data);
1544
+ }
1545
+ if (callbacks && callbacks.length > 0) {
1546
+ for (var i = 0; i < callbacks.length; i++) {
1547
+ callbacks[i].fn.apply(callbacks[i].context || window, args);
1548
+ }
1549
+ }
1550
+ else if (this.failThrough) {
1551
+ this.failThrough(eventName, data);
1552
+ }
1553
+ return this;
1554
+ };
1555
+ return Dispatcher;
1556
+ }());
1557
+ /* harmony default export */ var dispatcher = (dispatcher_Dispatcher);
1558
+
1559
+ // CONCATENATED MODULE: ./src/core/transports/transport_connection.ts
1560
+ var transport_connection_extends = (undefined && undefined.__extends) || (function () {
1561
+ var extendStatics = function (d, b) {
1562
+ extendStatics = Object.setPrototypeOf ||
1563
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
1564
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
1565
+ return extendStatics(d, b);
1566
+ };
1567
+ return function (d, b) {
1568
+ extendStatics(d, b);
1569
+ function __() { this.constructor = d; }
1570
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1571
+ };
1572
+ })();
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+ var transport_connection_TransportConnection = (function (_super) {
1579
+ transport_connection_extends(TransportConnection, _super);
1580
+ function TransportConnection(hooks, name, priority, key, options) {
1581
+ var _this = _super.call(this) || this;
1582
+ _this.initialize = runtime.transportConnectionInitializer;
1583
+ _this.hooks = hooks;
1584
+ _this.name = name;
1585
+ _this.priority = priority;
1586
+ _this.key = key;
1587
+ _this.options = options;
1588
+ _this.state = 'new';
1589
+ _this.timeline = options.timeline;
1590
+ _this.activityTimeout = options.activityTimeout;
1591
+ _this.id = _this.timeline.generateUniqueID();
1592
+ return _this;
1593
+ }
1594
+ TransportConnection.prototype.handlesActivityChecks = function () {
1595
+ return Boolean(this.hooks.handlesActivityChecks);
1596
+ };
1597
+ TransportConnection.prototype.supportsPing = function () {
1598
+ return Boolean(this.hooks.supportsPing);
1599
+ };
1600
+ TransportConnection.prototype.connect = function () {
1601
+ var _this = this;
1602
+ if (this.socket || this.state !== 'initialized') {
1603
+ return false;
1604
+ }
1605
+ var url = this.hooks.urls.getInitial(this.key, this.options);
1606
+ try {
1607
+ this.socket = this.hooks.getSocket(url, this.options);
1608
+ }
1609
+ catch (e) {
1610
+ util.defer(function () {
1611
+ _this.onError(e);
1612
+ _this.changeState('closed');
1613
+ });
1614
+ return false;
1615
+ }
1616
+ this.bindListeners();
1617
+ logger.debug('Connecting', { transport: this.name, url: url });
1618
+ this.changeState('connecting');
1619
+ return true;
1620
+ };
1621
+ TransportConnection.prototype.close = function () {
1622
+ if (this.socket) {
1623
+ this.socket.close();
1624
+ return true;
1625
+ }
1626
+ else {
1627
+ return false;
1628
+ }
1629
+ };
1630
+ TransportConnection.prototype.send = function (data) {
1631
+ var _this = this;
1632
+ if (this.state === 'open') {
1633
+ util.defer(function () {
1634
+ if (_this.socket) {
1635
+ _this.socket.send(data);
1636
+ }
1637
+ });
1638
+ return true;
1639
+ }
1640
+ else {
1641
+ return false;
1642
+ }
1643
+ };
1644
+ TransportConnection.prototype.ping = function () {
1645
+ if (this.state === 'open' && this.supportsPing()) {
1646
+ this.socket.ping();
1647
+ }
1648
+ };
1649
+ TransportConnection.prototype.onOpen = function () {
1650
+ if (this.hooks.beforeOpen) {
1651
+ this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options));
1652
+ }
1653
+ this.changeState('open');
1654
+ this.socket.onopen = undefined;
1655
+ };
1656
+ TransportConnection.prototype.onError = function (error) {
1657
+ this.emit('error', { type: 'WebSocketError', error: error });
1658
+ this.timeline.error(this.buildTimelineMessage({ error: error.toString() }));
1659
+ };
1660
+ TransportConnection.prototype.onClose = function (closeEvent) {
1661
+ if (closeEvent) {
1662
+ this.changeState('closed', {
1663
+ code: closeEvent.code,
1664
+ reason: closeEvent.reason,
1665
+ wasClean: closeEvent.wasClean
1666
+ });
1667
+ }
1668
+ else {
1669
+ this.changeState('closed');
1670
+ }
1671
+ this.unbindListeners();
1672
+ this.socket = undefined;
1673
+ };
1674
+ TransportConnection.prototype.onMessage = function (message) {
1675
+ this.emit('message', message);
1676
+ };
1677
+ TransportConnection.prototype.onActivity = function () {
1678
+ this.emit('activity');
1679
+ };
1680
+ TransportConnection.prototype.bindListeners = function () {
1681
+ var _this = this;
1682
+ this.socket.onopen = function () {
1683
+ _this.onOpen();
1684
+ };
1685
+ this.socket.onerror = function (error) {
1686
+ _this.onError(error);
1687
+ };
1688
+ this.socket.onclose = function (closeEvent) {
1689
+ _this.onClose(closeEvent);
1690
+ };
1691
+ this.socket.onmessage = function (message) {
1692
+ _this.onMessage(message);
1693
+ };
1694
+ if (this.supportsPing()) {
1695
+ this.socket.onactivity = function () {
1696
+ _this.onActivity();
1697
+ };
1698
+ }
1699
+ };
1700
+ TransportConnection.prototype.unbindListeners = function () {
1701
+ if (this.socket) {
1702
+ this.socket.onopen = undefined;
1703
+ this.socket.onerror = undefined;
1704
+ this.socket.onclose = undefined;
1705
+ this.socket.onmessage = undefined;
1706
+ if (this.supportsPing()) {
1707
+ this.socket.onactivity = undefined;
1708
+ }
1709
+ }
1710
+ };
1711
+ TransportConnection.prototype.changeState = function (state, params) {
1712
+ this.state = state;
1713
+ this.timeline.info(this.buildTimelineMessage({
1714
+ state: state,
1715
+ params: params
1716
+ }));
1717
+ this.emit(state, params);
1718
+ };
1719
+ TransportConnection.prototype.buildTimelineMessage = function (message) {
1720
+ return extend({ cid: this.id }, message);
1721
+ };
1722
+ return TransportConnection;
1723
+ }(dispatcher));
1724
+ /* harmony default export */ var transport_connection = (transport_connection_TransportConnection);
1725
+
1726
+ // CONCATENATED MODULE: ./src/core/transports/transport.ts
1727
+
1728
+ var transport_Transport = (function () {
1729
+ function Transport(hooks) {
1730
+ this.hooks = hooks;
1731
+ }
1732
+ Transport.prototype.isSupported = function (environment) {
1733
+ return this.hooks.isSupported(environment);
1734
+ };
1735
+ Transport.prototype.createConnection = function (name, priority, key, options) {
1736
+ return new transport_connection(this.hooks, name, priority, key, options);
1737
+ };
1738
+ return Transport;
1739
+ }());
1740
+ /* harmony default export */ var transports_transport = (transport_Transport);
1741
+
1742
+ // CONCATENATED MODULE: ./src/runtimes/isomorphic/transports/transports.ts
1743
+
1744
+
1745
+
1746
+
1747
+ var WSTransport = new transports_transport({
1748
+ urls: ws,
1749
+ handlesActivityChecks: false,
1750
+ supportsPing: false,
1751
+ isInitialized: function () {
1752
+ return Boolean(runtime.getWebSocketAPI());
1753
+ },
1754
+ isSupported: function () {
1755
+ return Boolean(runtime.getWebSocketAPI());
1756
+ },
1757
+ getSocket: function (url) {
1758
+ return runtime.createWebSocket(url);
1759
+ }
1760
+ });
1761
+ var httpConfiguration = {
1762
+ urls: http,
1763
+ handlesActivityChecks: false,
1764
+ supportsPing: true,
1765
+ isInitialized: function () {
1766
+ return true;
1767
+ }
1768
+ };
1769
+ var streamingConfiguration = extend({
1770
+ getSocket: function (url) {
1771
+ return runtime.HTTPFactory.createStreamingSocket(url);
1772
+ }
1773
+ }, httpConfiguration);
1774
+ var pollingConfiguration = extend({
1775
+ getSocket: function (url) {
1776
+ return runtime.HTTPFactory.createPollingSocket(url);
1777
+ }
1778
+ }, httpConfiguration);
1779
+ var xhrConfiguration = {
1780
+ isSupported: function () {
1781
+ return runtime.isXHRSupported();
1782
+ }
1783
+ };
1784
+ var XHRStreamingTransport = new transports_transport((extend({}, streamingConfiguration, xhrConfiguration)));
1785
+ var XHRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xhrConfiguration));
1786
+ var Transports = {
1787
+ ws: WSTransport,
1788
+ xhr_streaming: XHRStreamingTransport,
1789
+ xhr_polling: XHRPollingTransport
1790
+ };
1791
+ /* harmony default export */ var transports = (Transports);
1792
+
1793
+ // CONCATENATED MODULE: ./src/runtimes/web/transports/transports.ts
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+ var SockJSTransport = new transports_transport({
1801
+ file: 'sockjs',
1802
+ urls: sockjs,
1803
+ handlesActivityChecks: true,
1804
+ supportsPing: false,
1805
+ isSupported: function () {
1806
+ return true;
1807
+ },
1808
+ isInitialized: function () {
1809
+ return window.SockJS !== undefined;
1810
+ },
1811
+ getSocket: function (url, options) {
1812
+ return new window.SockJS(url, null, {
1813
+ js_path: Dependencies.getPath('sockjs', {
1814
+ useTLS: options.useTLS
1815
+ }),
1816
+ ignore_null_origin: options.ignoreNullOrigin
1817
+ });
1818
+ },
1819
+ beforeOpen: function (socket, path) {
1820
+ socket.send(JSON.stringify({
1821
+ path: path
1822
+ }));
1823
+ }
1824
+ });
1825
+ var xdrConfiguration = {
1826
+ isSupported: function (environment) {
1827
+ var yes = runtime.isXDRSupported(environment.useTLS);
1828
+ return yes;
1829
+ }
1830
+ };
1831
+ var XDRStreamingTransport = new transports_transport((extend({}, streamingConfiguration, xdrConfiguration)));
1832
+ var XDRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xdrConfiguration));
1833
+ transports.xdr_streaming = XDRStreamingTransport;
1834
+ transports.xdr_polling = XDRPollingTransport;
1835
+ transports.sockjs = SockJSTransport;
1836
+ /* harmony default export */ var transports_transports = (transports);
1837
+
1838
+ // CONCATENATED MODULE: ./src/runtimes/web/net_info.ts
1839
+ var net_info_extends = (undefined && undefined.__extends) || (function () {
1840
+ var extendStatics = function (d, b) {
1841
+ extendStatics = Object.setPrototypeOf ||
1842
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
1843
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
1844
+ return extendStatics(d, b);
1845
+ };
1846
+ return function (d, b) {
1847
+ extendStatics(d, b);
1848
+ function __() { this.constructor = d; }
1849
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1850
+ };
1851
+ })();
1852
+
1853
+ var NetInfo = (function (_super) {
1854
+ net_info_extends(NetInfo, _super);
1855
+ function NetInfo() {
1856
+ var _this = _super.call(this) || this;
1857
+ var self = _this;
1858
+ if (window.addEventListener !== undefined) {
1859
+ window.addEventListener('online', function () {
1860
+ self.emit('online');
1861
+ }, false);
1862
+ window.addEventListener('offline', function () {
1863
+ self.emit('offline');
1864
+ }, false);
1865
+ }
1866
+ return _this;
1867
+ }
1868
+ NetInfo.prototype.isOnline = function () {
1869
+ if (window.navigator.onLine === undefined) {
1870
+ return true;
1871
+ }
1872
+ else {
1873
+ return window.navigator.onLine;
1874
+ }
1875
+ };
1876
+ return NetInfo;
1877
+ }(dispatcher));
1878
+
1879
+ var net_info_Network = new NetInfo();
1880
+
1881
+ // CONCATENATED MODULE: ./src/core/transports/assistant_to_the_transport_manager.ts
1882
+
1883
+
1884
+ var assistant_to_the_transport_manager_AssistantToTheTransportManager = (function () {
1885
+ function AssistantToTheTransportManager(manager, transport, options) {
1886
+ this.manager = manager;
1887
+ this.transport = transport;
1888
+ this.minPingDelay = options.minPingDelay;
1889
+ this.maxPingDelay = options.maxPingDelay;
1890
+ this.pingDelay = undefined;
1891
+ }
1892
+ AssistantToTheTransportManager.prototype.createConnection = function (name, priority, key, options) {
1893
+ var _this = this;
1894
+ options = extend({}, options, {
1895
+ activityTimeout: this.pingDelay
1896
+ });
1897
+ var connection = this.transport.createConnection(name, priority, key, options);
1898
+ var openTimestamp = null;
1899
+ var onOpen = function () {
1900
+ connection.unbind('open', onOpen);
1901
+ connection.bind('closed', onClosed);
1902
+ openTimestamp = util.now();
1903
+ };
1904
+ var onClosed = function (closeEvent) {
1905
+ connection.unbind('closed', onClosed);
1906
+ if (closeEvent.code === 1002 || closeEvent.code === 1003) {
1907
+ _this.manager.reportDeath();
1908
+ }
1909
+ else if (!closeEvent.wasClean && openTimestamp) {
1910
+ var lifespan = util.now() - openTimestamp;
1911
+ if (lifespan < 2 * _this.maxPingDelay) {
1912
+ _this.manager.reportDeath();
1913
+ _this.pingDelay = Math.max(lifespan / 2, _this.minPingDelay);
1914
+ }
1915
+ }
1916
+ };
1917
+ connection.bind('open', onOpen);
1918
+ return connection;
1919
+ };
1920
+ AssistantToTheTransportManager.prototype.isSupported = function (environment) {
1921
+ return this.manager.isAlive() && this.transport.isSupported(environment);
1922
+ };
1923
+ return AssistantToTheTransportManager;
1924
+ }());
1925
+ /* harmony default export */ var assistant_to_the_transport_manager = (assistant_to_the_transport_manager_AssistantToTheTransportManager);
1926
+
1927
+ // CONCATENATED MODULE: ./src/core/connection/protocol/protocol.ts
1928
+ var Protocol = {
1929
+ decodeMessage: function (messageEvent) {
1930
+ try {
1931
+ var messageData = JSON.parse(messageEvent.data);
1932
+ var pusherEventData = messageData.data;
1933
+ if (typeof pusherEventData === 'string') {
1934
+ try {
1935
+ pusherEventData = JSON.parse(messageData.data);
1936
+ }
1937
+ catch (e) { }
1938
+ }
1939
+ var pusherEvent = {
1940
+ event: messageData.event,
1941
+ channel: messageData.channel,
1942
+ data: pusherEventData
1943
+ };
1944
+ if (messageData.user_id) {
1945
+ pusherEvent.user_id = messageData.user_id;
1946
+ }
1947
+ return pusherEvent;
1948
+ }
1949
+ catch (e) {
1950
+ throw { type: 'MessageParseError', error: e, data: messageEvent.data };
1951
+ }
1952
+ },
1953
+ encodeMessage: function (event) {
1954
+ return JSON.stringify(event);
1955
+ },
1956
+ processHandshake: function (messageEvent) {
1957
+ var message = Protocol.decodeMessage(messageEvent);
1958
+ if (message.event === 'pusher:connection_established') {
1959
+ if (!message.data.activity_timeout) {
1960
+ throw 'No activity timeout specified in handshake';
1961
+ }
1962
+ return {
1963
+ action: 'connected',
1964
+ id: message.data.socket_id,
1965
+ activityTimeout: message.data.activity_timeout * 1000
1966
+ };
1967
+ }
1968
+ else if (message.event === 'pusher:error') {
1969
+ return {
1970
+ action: this.getCloseAction(message.data),
1971
+ error: this.getCloseError(message.data)
1972
+ };
1973
+ }
1974
+ else {
1975
+ throw 'Invalid handshake';
1976
+ }
1977
+ },
1978
+ getCloseAction: function (closeEvent) {
1979
+ if (closeEvent.code < 4000) {
1980
+ if (closeEvent.code >= 1002 && closeEvent.code <= 1004) {
1981
+ return 'backoff';
1982
+ }
1983
+ else {
1984
+ return null;
1985
+ }
1986
+ }
1987
+ else if (closeEvent.code === 4000) {
1988
+ return 'tls_only';
1989
+ }
1990
+ else if (closeEvent.code < 4100) {
1991
+ return 'refused';
1992
+ }
1993
+ else if (closeEvent.code < 4200) {
1994
+ return 'backoff';
1995
+ }
1996
+ else if (closeEvent.code < 4300) {
1997
+ return 'retry';
1998
+ }
1999
+ else {
2000
+ return 'refused';
2001
+ }
2002
+ },
2003
+ getCloseError: function (closeEvent) {
2004
+ if (closeEvent.code !== 1000 && closeEvent.code !== 1001) {
2005
+ return {
2006
+ type: 'PusherError',
2007
+ data: {
2008
+ code: closeEvent.code,
2009
+ message: closeEvent.reason || closeEvent.message
2010
+ }
2011
+ };
2012
+ }
2013
+ else {
2014
+ return null;
2015
+ }
2016
+ }
2017
+ };
2018
+ /* harmony default export */ var protocol_protocol = (Protocol);
2019
+
2020
+ // CONCATENATED MODULE: ./src/core/connection/connection.ts
2021
+ var connection_extends = (undefined && undefined.__extends) || (function () {
2022
+ var extendStatics = function (d, b) {
2023
+ extendStatics = Object.setPrototypeOf ||
2024
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2025
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
2026
+ return extendStatics(d, b);
2027
+ };
2028
+ return function (d, b) {
2029
+ extendStatics(d, b);
2030
+ function __() { this.constructor = d; }
2031
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2032
+ };
2033
+ })();
2034
+
2035
+
2036
+
2037
+
2038
+ var connection_Connection = (function (_super) {
2039
+ connection_extends(Connection, _super);
2040
+ function Connection(id, transport) {
2041
+ var _this = _super.call(this) || this;
2042
+ _this.id = id;
2043
+ _this.transport = transport;
2044
+ _this.activityTimeout = transport.activityTimeout;
2045
+ _this.bindListeners();
2046
+ return _this;
2047
+ }
2048
+ Connection.prototype.handlesActivityChecks = function () {
2049
+ return this.transport.handlesActivityChecks();
2050
+ };
2051
+ Connection.prototype.send = function (data) {
2052
+ return this.transport.send(data);
2053
+ };
2054
+ Connection.prototype.send_event = function (name, data, channel) {
2055
+ var event = { event: name, data: data };
2056
+ if (channel) {
2057
+ event.channel = channel;
2058
+ }
2059
+ logger.debug('Event sent', event);
2060
+ return this.send(protocol_protocol.encodeMessage(event));
2061
+ };
2062
+ Connection.prototype.ping = function () {
2063
+ if (this.transport.supportsPing()) {
2064
+ this.transport.ping();
2065
+ }
2066
+ else {
2067
+ this.send_event('pusher:ping', {});
2068
+ }
2069
+ };
2070
+ Connection.prototype.close = function () {
2071
+ this.transport.close();
2072
+ };
2073
+ Connection.prototype.bindListeners = function () {
2074
+ var _this = this;
2075
+ var listeners = {
2076
+ message: function (messageEvent) {
2077
+ var pusherEvent;
2078
+ try {
2079
+ pusherEvent = protocol_protocol.decodeMessage(messageEvent);
2080
+ }
2081
+ catch (e) {
2082
+ _this.emit('error', {
2083
+ type: 'MessageParseError',
2084
+ error: e,
2085
+ data: messageEvent.data
2086
+ });
2087
+ }
2088
+ if (pusherEvent !== undefined) {
2089
+ logger.debug('Event recd', pusherEvent);
2090
+ switch (pusherEvent.event) {
2091
+ case 'pusher:error':
2092
+ _this.emit('error', {
2093
+ type: 'PusherError',
2094
+ data: pusherEvent.data
2095
+ });
2096
+ break;
2097
+ case 'pusher:ping':
2098
+ _this.emit('ping');
2099
+ break;
2100
+ case 'pusher:pong':
2101
+ _this.emit('pong');
2102
+ break;
2103
+ }
2104
+ _this.emit('message', pusherEvent);
2105
+ }
2106
+ },
2107
+ activity: function () {
2108
+ _this.emit('activity');
2109
+ },
2110
+ error: function (error) {
2111
+ _this.emit('error', error);
2112
+ },
2113
+ closed: function (closeEvent) {
2114
+ unbindListeners();
2115
+ if (closeEvent && closeEvent.code) {
2116
+ _this.handleCloseEvent(closeEvent);
2117
+ }
2118
+ _this.transport = null;
2119
+ _this.emit('closed');
2120
+ }
2121
+ };
2122
+ var unbindListeners = function () {
2123
+ objectApply(listeners, function (listener, event) {
2124
+ _this.transport.unbind(event, listener);
2125
+ });
2126
+ };
2127
+ objectApply(listeners, function (listener, event) {
2128
+ _this.transport.bind(event, listener);
2129
+ });
2130
+ };
2131
+ Connection.prototype.handleCloseEvent = function (closeEvent) {
2132
+ var action = protocol_protocol.getCloseAction(closeEvent);
2133
+ var error = protocol_protocol.getCloseError(closeEvent);
2134
+ if (error) {
2135
+ this.emit('error', error);
2136
+ }
2137
+ if (action) {
2138
+ this.emit(action, { action: action, error: error });
2139
+ }
2140
+ };
2141
+ return Connection;
2142
+ }(dispatcher));
2143
+ /* harmony default export */ var connection_connection = (connection_Connection);
2144
+
2145
+ // CONCATENATED MODULE: ./src/core/connection/handshake/index.ts
2146
+
2147
+
2148
+
2149
+ var handshake_Handshake = (function () {
2150
+ function Handshake(transport, callback) {
2151
+ this.transport = transport;
2152
+ this.callback = callback;
2153
+ this.bindListeners();
2154
+ }
2155
+ Handshake.prototype.close = function () {
2156
+ this.unbindListeners();
2157
+ this.transport.close();
2158
+ };
2159
+ Handshake.prototype.bindListeners = function () {
2160
+ var _this = this;
2161
+ this.onMessage = function (m) {
2162
+ _this.unbindListeners();
2163
+ var result;
2164
+ try {
2165
+ result = protocol_protocol.processHandshake(m);
2166
+ }
2167
+ catch (e) {
2168
+ _this.finish('error', { error: e });
2169
+ _this.transport.close();
2170
+ return;
2171
+ }
2172
+ if (result.action === 'connected') {
2173
+ _this.finish('connected', {
2174
+ connection: new connection_connection(result.id, _this.transport),
2175
+ activityTimeout: result.activityTimeout
2176
+ });
2177
+ }
2178
+ else {
2179
+ _this.finish(result.action, { error: result.error });
2180
+ _this.transport.close();
2181
+ }
2182
+ };
2183
+ this.onClosed = function (closeEvent) {
2184
+ _this.unbindListeners();
2185
+ var action = protocol_protocol.getCloseAction(closeEvent) || 'backoff';
2186
+ var error = protocol_protocol.getCloseError(closeEvent);
2187
+ _this.finish(action, { error: error });
2188
+ };
2189
+ this.transport.bind('message', this.onMessage);
2190
+ this.transport.bind('closed', this.onClosed);
2191
+ };
2192
+ Handshake.prototype.unbindListeners = function () {
2193
+ this.transport.unbind('message', this.onMessage);
2194
+ this.transport.unbind('closed', this.onClosed);
2195
+ };
2196
+ Handshake.prototype.finish = function (action, params) {
2197
+ this.callback(extend({ transport: this.transport, action: action }, params));
2198
+ };
2199
+ return Handshake;
2200
+ }());
2201
+ /* harmony default export */ var connection_handshake = (handshake_Handshake);
2202
+
2203
+ // CONCATENATED MODULE: ./src/core/auth/pusher_authorizer.ts
2204
+
2205
+ var pusher_authorizer_PusherAuthorizer = (function () {
2206
+ function PusherAuthorizer(channel, options) {
2207
+ this.channel = channel;
2208
+ var authTransport = options.authTransport;
2209
+ if (typeof runtime.getAuthorizers()[authTransport] === 'undefined') {
2210
+ throw "'" + authTransport + "' is not a recognized auth transport";
2211
+ }
2212
+ this.type = authTransport;
2213
+ this.options = options;
2214
+ this.authOptions = options.auth || {};
2215
+ }
2216
+ PusherAuthorizer.prototype.composeQuery = function (socketId) {
2217
+ var query = 'socket_id=' +
2218
+ encodeURIComponent(socketId) +
2219
+ '&channel_name=' +
2220
+ encodeURIComponent(this.channel.name);
2221
+ for (var i in this.authOptions.params) {
2222
+ query +=
2223
+ '&' +
2224
+ encodeURIComponent(i) +
2225
+ '=' +
2226
+ encodeURIComponent(this.authOptions.params[i]);
2227
+ }
2228
+ return query;
2229
+ };
2230
+ PusherAuthorizer.prototype.authorize = function (socketId, callback) {
2231
+ PusherAuthorizer.authorizers =
2232
+ PusherAuthorizer.authorizers || runtime.getAuthorizers();
2233
+ PusherAuthorizer.authorizers[this.type].call(this, runtime, socketId, callback);
2234
+ };
2235
+ return PusherAuthorizer;
2236
+ }());
2237
+ /* harmony default export */ var pusher_authorizer = (pusher_authorizer_PusherAuthorizer);
2238
+
2239
+ // CONCATENATED MODULE: ./src/core/timeline/timeline_sender.ts
2240
+
2241
+ var timeline_sender_TimelineSender = (function () {
2242
+ function TimelineSender(timeline, options) {
2243
+ this.timeline = timeline;
2244
+ this.options = options || {};
2245
+ }
2246
+ TimelineSender.prototype.send = function (useTLS, callback) {
2247
+ if (this.timeline.isEmpty()) {
2248
+ return;
2249
+ }
2250
+ this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback);
2251
+ };
2252
+ return TimelineSender;
2253
+ }());
2254
+ /* harmony default export */ var timeline_sender = (timeline_sender_TimelineSender);
2255
+
2256
+ // CONCATENATED MODULE: ./src/core/channels/channel.ts
2257
+ var channel_extends = (undefined && undefined.__extends) || (function () {
2258
+ var extendStatics = function (d, b) {
2259
+ extendStatics = Object.setPrototypeOf ||
2260
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2261
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
2262
+ return extendStatics(d, b);
2263
+ };
2264
+ return function (d, b) {
2265
+ extendStatics(d, b);
2266
+ function __() { this.constructor = d; }
2267
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2268
+ };
2269
+ })();
2270
+
2271
+
2272
+
2273
+
2274
+
2275
+ var channel_Channel = (function (_super) {
2276
+ channel_extends(Channel, _super);
2277
+ function Channel(name, pusher) {
2278
+ var _this = _super.call(this, function (event, data) {
2279
+ logger.debug('No callbacks on ' + name + ' for ' + event);
2280
+ }) || this;
2281
+ _this.name = name;
2282
+ _this.pusher = pusher;
2283
+ _this.subscribed = false;
2284
+ _this.subscriptionPending = false;
2285
+ _this.subscriptionCancelled = false;
2286
+ return _this;
2287
+ }
2288
+ Channel.prototype.authorize = function (socketId, callback) {
2289
+ return callback(null, { auth: '' });
2290
+ };
2291
+ Channel.prototype.trigger = function (event, data) {
2292
+ if (event.indexOf('client-') !== 0) {
2293
+ throw new BadEventName("Event '" + event + "' does not start with 'client-'");
2294
+ }
2295
+ if (!this.subscribed) {
2296
+ var suffix = url_store.buildLogSuffix('triggeringClientEvents');
2297
+ logger.warn("Client event triggered before channel 'subscription_succeeded' event . " + suffix);
2298
+ }
2299
+ return this.pusher.send_event(event, data, this.name);
2300
+ };
2301
+ Channel.prototype.disconnect = function () {
2302
+ this.subscribed = false;
2303
+ this.subscriptionPending = false;
2304
+ };
2305
+ Channel.prototype.handleEvent = function (event) {
2306
+ var eventName = event.event;
2307
+ var data = event.data;
2308
+ if (eventName === 'pusher_internal:subscription_succeeded') {
2309
+ this.handleSubscriptionSucceededEvent(event);
2310
+ }
2311
+ else if (eventName.indexOf('pusher_internal:') !== 0) {
2312
+ var metadata = {};
2313
+ this.emit(eventName, data, metadata);
2314
+ }
2315
+ };
2316
+ Channel.prototype.handleSubscriptionSucceededEvent = function (event) {
2317
+ this.subscriptionPending = false;
2318
+ this.subscribed = true;
2319
+ if (this.subscriptionCancelled) {
2320
+ this.pusher.unsubscribe(this.name);
2321
+ }
2322
+ else {
2323
+ this.emit('pusher:subscription_succeeded', event.data);
2324
+ }
2325
+ };
2326
+ Channel.prototype.subscribe = function () {
2327
+ var _this = this;
2328
+ if (this.subscribed) {
2329
+ return;
2330
+ }
2331
+ this.subscriptionPending = true;
2332
+ this.subscriptionCancelled = false;
2333
+ this.authorize(this.pusher.connection.socket_id, function (error, data) {
2334
+ if (error) {
2335
+ logger.error(error.toString());
2336
+ _this.emit('pusher:subscription_error', Object.assign({}, {
2337
+ type: 'AuthError',
2338
+ error: error.message
2339
+ }, error instanceof HTTPAuthError ? { status: error.status } : {}));
2340
+ }
2341
+ else {
2342
+ _this.pusher.send_event('pusher:subscribe', {
2343
+ auth: data.auth,
2344
+ channel_data: data.channel_data,
2345
+ channel: _this.name
2346
+ });
2347
+ }
2348
+ });
2349
+ };
2350
+ Channel.prototype.unsubscribe = function () {
2351
+ this.subscribed = false;
2352
+ this.pusher.send_event('pusher:unsubscribe', {
2353
+ channel: this.name
2354
+ });
2355
+ };
2356
+ Channel.prototype.cancelSubscription = function () {
2357
+ this.subscriptionCancelled = true;
2358
+ };
2359
+ Channel.prototype.reinstateSubscription = function () {
2360
+ this.subscriptionCancelled = false;
2361
+ };
2362
+ return Channel;
2363
+ }(dispatcher));
2364
+ /* harmony default export */ var channels_channel = (channel_Channel);
2365
+
2366
+ // CONCATENATED MODULE: ./src/core/channels/private_channel.ts
2367
+ var private_channel_extends = (undefined && undefined.__extends) || (function () {
2368
+ var extendStatics = function (d, b) {
2369
+ extendStatics = Object.setPrototypeOf ||
2370
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2371
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
2372
+ return extendStatics(d, b);
2373
+ };
2374
+ return function (d, b) {
2375
+ extendStatics(d, b);
2376
+ function __() { this.constructor = d; }
2377
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2378
+ };
2379
+ })();
2380
+
2381
+
2382
+ var private_channel_PrivateChannel = (function (_super) {
2383
+ private_channel_extends(PrivateChannel, _super);
2384
+ function PrivateChannel() {
2385
+ return _super !== null && _super.apply(this, arguments) || this;
2386
+ }
2387
+ PrivateChannel.prototype.authorize = function (socketId, callback) {
2388
+ var authorizer = factory.createAuthorizer(this, this.pusher.config);
2389
+ return authorizer.authorize(socketId, callback);
2390
+ };
2391
+ return PrivateChannel;
2392
+ }(channels_channel));
2393
+ /* harmony default export */ var private_channel = (private_channel_PrivateChannel);
2394
+
2395
+ // CONCATENATED MODULE: ./src/core/channels/members.ts
2396
+
2397
+ var members_Members = (function () {
2398
+ function Members() {
2399
+ this.reset();
2400
+ }
2401
+ Members.prototype.get = function (id) {
2402
+ if (Object.prototype.hasOwnProperty.call(this.members, id)) {
2403
+ return {
2404
+ id: id,
2405
+ info: this.members[id]
2406
+ };
2407
+ }
2408
+ else {
2409
+ return null;
2410
+ }
2411
+ };
2412
+ Members.prototype.each = function (callback) {
2413
+ var _this = this;
2414
+ objectApply(this.members, function (member, id) {
2415
+ callback(_this.get(id));
2416
+ });
2417
+ };
2418
+ Members.prototype.setMyID = function (id) {
2419
+ this.myID = id;
2420
+ };
2421
+ Members.prototype.onSubscription = function (subscriptionData) {
2422
+ this.members = subscriptionData.presence.hash;
2423
+ this.count = subscriptionData.presence.count;
2424
+ this.me = this.get(this.myID);
2425
+ };
2426
+ Members.prototype.addMember = function (memberData) {
2427
+ if (this.get(memberData.user_id) === null) {
2428
+ this.count++;
2429
+ }
2430
+ this.members[memberData.user_id] = memberData.user_info;
2431
+ return this.get(memberData.user_id);
2432
+ };
2433
+ Members.prototype.removeMember = function (memberData) {
2434
+ var member = this.get(memberData.user_id);
2435
+ if (member) {
2436
+ delete this.members[memberData.user_id];
2437
+ this.count--;
2438
+ }
2439
+ return member;
2440
+ };
2441
+ Members.prototype.reset = function () {
2442
+ this.members = {};
2443
+ this.count = 0;
2444
+ this.myID = null;
2445
+ this.me = null;
2446
+ };
2447
+ return Members;
2448
+ }());
2449
+ /* harmony default export */ var members = (members_Members);
2450
+
2451
+ // CONCATENATED MODULE: ./src/core/channels/presence_channel.ts
2452
+ var presence_channel_extends = (undefined && undefined.__extends) || (function () {
2453
+ var extendStatics = function (d, b) {
2454
+ extendStatics = Object.setPrototypeOf ||
2455
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2456
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
2457
+ return extendStatics(d, b);
2458
+ };
2459
+ return function (d, b) {
2460
+ extendStatics(d, b);
2461
+ function __() { this.constructor = d; }
2462
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2463
+ };
2464
+ })();
2465
+
2466
+
2467
+
2468
+
2469
+ var presence_channel_PresenceChannel = (function (_super) {
2470
+ presence_channel_extends(PresenceChannel, _super);
2471
+ function PresenceChannel(name, pusher) {
2472
+ var _this = _super.call(this, name, pusher) || this;
2473
+ _this.members = new members();
2474
+ return _this;
2475
+ }
2476
+ PresenceChannel.prototype.authorize = function (socketId, callback) {
2477
+ var _this = this;
2478
+ _super.prototype.authorize.call(this, socketId, function (error, authData) {
2479
+ if (!error) {
2480
+ authData = authData;
2481
+ if (authData.channel_data === undefined) {
2482
+ var suffix = url_store.buildLogSuffix('authenticationEndpoint');
2483
+ logger.error("Invalid auth response for channel '" + _this.name + "'," +
2484
+ ("expected 'channel_data' field. " + suffix));
2485
+ callback('Invalid auth response');
2486
+ return;
2487
+ }
2488
+ var channelData = JSON.parse(authData.channel_data);
2489
+ _this.members.setMyID(channelData.user_id);
2490
+ }
2491
+ callback(error, authData);
2492
+ });
2493
+ };
2494
+ PresenceChannel.prototype.handleEvent = function (event) {
2495
+ var eventName = event.event;
2496
+ if (eventName.indexOf('pusher_internal:') === 0) {
2497
+ this.handleInternalEvent(event);
2498
+ }
2499
+ else {
2500
+ var data = event.data;
2501
+ var metadata = {};
2502
+ if (event.user_id) {
2503
+ metadata.user_id = event.user_id;
2504
+ }
2505
+ this.emit(eventName, data, metadata);
2506
+ }
2507
+ };
2508
+ PresenceChannel.prototype.handleInternalEvent = function (event) {
2509
+ var eventName = event.event;
2510
+ var data = event.data;
2511
+ switch (eventName) {
2512
+ case 'pusher_internal:subscription_succeeded':
2513
+ this.handleSubscriptionSucceededEvent(event);
2514
+ break;
2515
+ case 'pusher_internal:member_added':
2516
+ var addedMember = this.members.addMember(data);
2517
+ this.emit('pusher:member_added', addedMember);
2518
+ break;
2519
+ case 'pusher_internal:member_removed':
2520
+ var removedMember = this.members.removeMember(data);
2521
+ if (removedMember) {
2522
+ this.emit('pusher:member_removed', removedMember);
2523
+ }
2524
+ break;
2525
+ }
2526
+ };
2527
+ PresenceChannel.prototype.handleSubscriptionSucceededEvent = function (event) {
2528
+ this.subscriptionPending = false;
2529
+ this.subscribed = true;
2530
+ if (this.subscriptionCancelled) {
2531
+ this.pusher.unsubscribe(this.name);
2532
+ }
2533
+ else {
2534
+ this.members.onSubscription(event.data);
2535
+ this.emit('pusher:subscription_succeeded', this.members);
2536
+ }
2537
+ };
2538
+ PresenceChannel.prototype.disconnect = function () {
2539
+ this.members.reset();
2540
+ _super.prototype.disconnect.call(this);
2541
+ };
2542
+ return PresenceChannel;
2543
+ }(private_channel));
2544
+ /* harmony default export */ var presence_channel = (presence_channel_PresenceChannel);
2545
+
2546
+ // EXTERNAL MODULE: ./node_modules/@stablelib/utf8/lib/utf8.js
2547
+ var utf8 = __webpack_require__(1);
2548
+
2549
+ // EXTERNAL MODULE: ./node_modules/@stablelib/base64/lib/base64.js
2550
+ var base64 = __webpack_require__(0);
2551
+
2552
+ // CONCATENATED MODULE: ./src/core/channels/encrypted_channel.ts
2553
+ var encrypted_channel_extends = (undefined && undefined.__extends) || (function () {
2554
+ var extendStatics = function (d, b) {
2555
+ extendStatics = Object.setPrototypeOf ||
2556
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2557
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
2558
+ return extendStatics(d, b);
2559
+ };
2560
+ return function (d, b) {
2561
+ extendStatics(d, b);
2562
+ function __() { this.constructor = d; }
2563
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2564
+ };
2565
+ })();
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+ var encrypted_channel_EncryptedChannel = (function (_super) {
2572
+ encrypted_channel_extends(EncryptedChannel, _super);
2573
+ function EncryptedChannel(name, pusher, nacl) {
2574
+ var _this = _super.call(this, name, pusher) || this;
2575
+ _this.key = null;
2576
+ _this.nacl = nacl;
2577
+ return _this;
2578
+ }
2579
+ EncryptedChannel.prototype.authorize = function (socketId, callback) {
2580
+ var _this = this;
2581
+ _super.prototype.authorize.call(this, socketId, function (error, authData) {
2582
+ if (error) {
2583
+ callback(error, authData);
2584
+ return;
2585
+ }
2586
+ var sharedSecret = authData['shared_secret'];
2587
+ if (!sharedSecret) {
2588
+ callback(new Error("No shared_secret key in auth payload for encrypted channel: " + _this.name), null);
2589
+ return;
2590
+ }
2591
+ _this.key = Object(base64["decode"])(sharedSecret);
2592
+ delete authData['shared_secret'];
2593
+ callback(null, authData);
2594
+ });
2595
+ };
2596
+ EncryptedChannel.prototype.trigger = function (event, data) {
2597
+ throw new UnsupportedFeature('Client events are not currently supported for encrypted channels');
2598
+ };
2599
+ EncryptedChannel.prototype.handleEvent = function (event) {
2600
+ var eventName = event.event;
2601
+ var data = event.data;
2602
+ if (eventName.indexOf('pusher_internal:') === 0 ||
2603
+ eventName.indexOf('pusher:') === 0) {
2604
+ _super.prototype.handleEvent.call(this, event);
2605
+ return;
2606
+ }
2607
+ this.handleEncryptedEvent(eventName, data);
2608
+ };
2609
+ EncryptedChannel.prototype.handleEncryptedEvent = function (event, data) {
2610
+ var _this = this;
2611
+ if (!this.key) {
2612
+ logger.debug('Received encrypted event before key has been retrieved from the authEndpoint');
2613
+ return;
2614
+ }
2615
+ if (!data.ciphertext || !data.nonce) {
2616
+ logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' +
2617
+ data);
2618
+ return;
2619
+ }
2620
+ var cipherText = Object(base64["decode"])(data.ciphertext);
2621
+ if (cipherText.length < this.nacl.secretbox.overheadLength) {
2622
+ logger.error("Expected encrypted event ciphertext length to be " + this.nacl.secretbox.overheadLength + ", got: " + cipherText.length);
2623
+ return;
2624
+ }
2625
+ var nonce = Object(base64["decode"])(data.nonce);
2626
+ if (nonce.length < this.nacl.secretbox.nonceLength) {
2627
+ logger.error("Expected encrypted event nonce length to be " + this.nacl.secretbox.nonceLength + ", got: " + nonce.length);
2628
+ return;
2629
+ }
2630
+ var bytes = this.nacl.secretbox.open(cipherText, nonce, this.key);
2631
+ if (bytes === null) {
2632
+ logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...');
2633
+ this.authorize(this.pusher.connection.socket_id, function (error, authData) {
2634
+ if (error) {
2635
+ logger.error("Failed to make a request to the authEndpoint: " + authData + ". Unable to fetch new key, so dropping encrypted event");
2636
+ return;
2637
+ }
2638
+ bytes = _this.nacl.secretbox.open(cipherText, nonce, _this.key);
2639
+ if (bytes === null) {
2640
+ logger.error("Failed to decrypt event with new key. Dropping encrypted event");
2641
+ return;
2642
+ }
2643
+ _this.emit(event, _this.getDataToEmit(bytes));
2644
+ return;
2645
+ });
2646
+ return;
2647
+ }
2648
+ this.emit(event, this.getDataToEmit(bytes));
2649
+ };
2650
+ EncryptedChannel.prototype.getDataToEmit = function (bytes) {
2651
+ var raw = Object(utf8["decode"])(bytes);
2652
+ try {
2653
+ return JSON.parse(raw);
2654
+ }
2655
+ catch (_a) {
2656
+ return raw;
2657
+ }
2658
+ };
2659
+ return EncryptedChannel;
2660
+ }(private_channel));
2661
+ /* harmony default export */ var encrypted_channel = (encrypted_channel_EncryptedChannel);
2662
+
2663
+ // CONCATENATED MODULE: ./src/core/connection/connection_manager.ts
2664
+ var connection_manager_extends = (undefined && undefined.__extends) || (function () {
2665
+ var extendStatics = function (d, b) {
2666
+ extendStatics = Object.setPrototypeOf ||
2667
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2668
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
2669
+ return extendStatics(d, b);
2670
+ };
2671
+ return function (d, b) {
2672
+ extendStatics(d, b);
2673
+ function __() { this.constructor = d; }
2674
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2675
+ };
2676
+ })();
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+ var connection_manager_ConnectionManager = (function (_super) {
2683
+ connection_manager_extends(ConnectionManager, _super);
2684
+ function ConnectionManager(key, options) {
2685
+ var _this = _super.call(this) || this;
2686
+ _this.state = 'initialized';
2687
+ _this.connection = null;
2688
+ _this.key = key;
2689
+ _this.options = options;
2690
+ _this.timeline = _this.options.timeline;
2691
+ _this.usingTLS = _this.options.useTLS;
2692
+ _this.errorCallbacks = _this.buildErrorCallbacks();
2693
+ _this.connectionCallbacks = _this.buildConnectionCallbacks(_this.errorCallbacks);
2694
+ _this.handshakeCallbacks = _this.buildHandshakeCallbacks(_this.errorCallbacks);
2695
+ var Network = runtime.getNetwork();
2696
+ Network.bind('online', function () {
2697
+ _this.timeline.info({ netinfo: 'online' });
2698
+ if (_this.state === 'connecting' || _this.state === 'unavailable') {
2699
+ _this.retryIn(0);
2700
+ }
2701
+ });
2702
+ Network.bind('offline', function () {
2703
+ _this.timeline.info({ netinfo: 'offline' });
2704
+ if (_this.connection) {
2705
+ _this.sendActivityCheck();
2706
+ }
2707
+ });
2708
+ _this.updateStrategy();
2709
+ return _this;
2710
+ }
2711
+ ConnectionManager.prototype.connect = function () {
2712
+ if (this.connection || this.runner) {
2713
+ return;
2714
+ }
2715
+ if (!this.strategy.isSupported()) {
2716
+ this.updateState('failed');
2717
+ return;
2718
+ }
2719
+ this.updateState('connecting');
2720
+ this.startConnecting();
2721
+ this.setUnavailableTimer();
2722
+ };
2723
+ ConnectionManager.prototype.send = function (data) {
2724
+ if (this.connection) {
2725
+ return this.connection.send(data);
2726
+ }
2727
+ else {
2728
+ return false;
2729
+ }
2730
+ };
2731
+ ConnectionManager.prototype.send_event = function (name, data, channel) {
2732
+ if (this.connection) {
2733
+ return this.connection.send_event(name, data, channel);
2734
+ }
2735
+ else {
2736
+ return false;
2737
+ }
2738
+ };
2739
+ ConnectionManager.prototype.disconnect = function () {
2740
+ this.disconnectInternally();
2741
+ this.updateState('disconnected');
2742
+ };
2743
+ ConnectionManager.prototype.isUsingTLS = function () {
2744
+ return this.usingTLS;
2745
+ };
2746
+ ConnectionManager.prototype.startConnecting = function () {
2747
+ var _this = this;
2748
+ var callback = function (error, handshake) {
2749
+ if (error) {
2750
+ _this.runner = _this.strategy.connect(0, callback);
2751
+ }
2752
+ else {
2753
+ if (handshake.action === 'error') {
2754
+ _this.emit('error', {
2755
+ type: 'HandshakeError',
2756
+ error: handshake.error
2757
+ });
2758
+ _this.timeline.error({ handshakeError: handshake.error });
2759
+ }
2760
+ else {
2761
+ _this.abortConnecting();
2762
+ _this.handshakeCallbacks[handshake.action](handshake);
2763
+ }
2764
+ }
2765
+ };
2766
+ this.runner = this.strategy.connect(0, callback);
2767
+ };
2768
+ ConnectionManager.prototype.abortConnecting = function () {
2769
+ if (this.runner) {
2770
+ this.runner.abort();
2771
+ this.runner = null;
2772
+ }
2773
+ };
2774
+ ConnectionManager.prototype.disconnectInternally = function () {
2775
+ this.abortConnecting();
2776
+ this.clearRetryTimer();
2777
+ this.clearUnavailableTimer();
2778
+ if (this.connection) {
2779
+ var connection = this.abandonConnection();
2780
+ connection.close();
2781
+ }
2782
+ };
2783
+ ConnectionManager.prototype.updateStrategy = function () {
2784
+ this.strategy = this.options.getStrategy({
2785
+ key: this.key,
2786
+ timeline: this.timeline,
2787
+ useTLS: this.usingTLS
2788
+ });
2789
+ };
2790
+ ConnectionManager.prototype.retryIn = function (delay) {
2791
+ var _this = this;
2792
+ this.timeline.info({ action: 'retry', delay: delay });
2793
+ if (delay > 0) {
2794
+ this.emit('connecting_in', Math.round(delay / 1000));
2795
+ }
2796
+ this.retryTimer = new OneOffTimer(delay || 0, function () {
2797
+ _this.disconnectInternally();
2798
+ _this.connect();
2799
+ });
2800
+ };
2801
+ ConnectionManager.prototype.clearRetryTimer = function () {
2802
+ if (this.retryTimer) {
2803
+ this.retryTimer.ensureAborted();
2804
+ this.retryTimer = null;
2805
+ }
2806
+ };
2807
+ ConnectionManager.prototype.setUnavailableTimer = function () {
2808
+ var _this = this;
2809
+ this.unavailableTimer = new OneOffTimer(this.options.unavailableTimeout, function () {
2810
+ _this.updateState('unavailable');
2811
+ });
2812
+ };
2813
+ ConnectionManager.prototype.clearUnavailableTimer = function () {
2814
+ if (this.unavailableTimer) {
2815
+ this.unavailableTimer.ensureAborted();
2816
+ }
2817
+ };
2818
+ ConnectionManager.prototype.sendActivityCheck = function () {
2819
+ var _this = this;
2820
+ this.stopActivityCheck();
2821
+ this.connection.ping();
2822
+ this.activityTimer = new OneOffTimer(this.options.pongTimeout, function () {
2823
+ _this.timeline.error({ pong_timed_out: _this.options.pongTimeout });
2824
+ _this.retryIn(0);
2825
+ });
2826
+ };
2827
+ ConnectionManager.prototype.resetActivityCheck = function () {
2828
+ var _this = this;
2829
+ this.stopActivityCheck();
2830
+ if (this.connection && !this.connection.handlesActivityChecks()) {
2831
+ this.activityTimer = new OneOffTimer(this.activityTimeout, function () {
2832
+ _this.sendActivityCheck();
2833
+ });
2834
+ }
2835
+ };
2836
+ ConnectionManager.prototype.stopActivityCheck = function () {
2837
+ if (this.activityTimer) {
2838
+ this.activityTimer.ensureAborted();
2839
+ }
2840
+ };
2841
+ ConnectionManager.prototype.buildConnectionCallbacks = function (errorCallbacks) {
2842
+ var _this = this;
2843
+ return extend({}, errorCallbacks, {
2844
+ message: function (message) {
2845
+ _this.resetActivityCheck();
2846
+ _this.emit('message', message);
2847
+ },
2848
+ ping: function () {
2849
+ _this.send_event('pusher:pong', {});
2850
+ },
2851
+ activity: function () {
2852
+ _this.resetActivityCheck();
2853
+ },
2854
+ error: function (error) {
2855
+ _this.emit('error', error);
2856
+ },
2857
+ closed: function () {
2858
+ _this.abandonConnection();
2859
+ if (_this.shouldRetry()) {
2860
+ _this.retryIn(1000);
2861
+ }
2862
+ }
2863
+ });
2864
+ };
2865
+ ConnectionManager.prototype.buildHandshakeCallbacks = function (errorCallbacks) {
2866
+ var _this = this;
2867
+ return extend({}, errorCallbacks, {
2868
+ connected: function (handshake) {
2869
+ _this.activityTimeout = Math.min(_this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity);
2870
+ _this.clearUnavailableTimer();
2871
+ _this.setConnection(handshake.connection);
2872
+ _this.socket_id = _this.connection.id;
2873
+ _this.updateState('connected', { socket_id: _this.socket_id });
2874
+ }
2875
+ });
2876
+ };
2877
+ ConnectionManager.prototype.buildErrorCallbacks = function () {
2878
+ var _this = this;
2879
+ var withErrorEmitted = function (callback) {
2880
+ return function (result) {
2881
+ if (result.error) {
2882
+ _this.emit('error', { type: 'WebSocketError', error: result.error });
2883
+ }
2884
+ callback(result);
2885
+ };
2886
+ };
2887
+ return {
2888
+ tls_only: withErrorEmitted(function () {
2889
+ _this.usingTLS = true;
2890
+ _this.updateStrategy();
2891
+ _this.retryIn(0);
2892
+ }),
2893
+ refused: withErrorEmitted(function () {
2894
+ _this.disconnect();
2895
+ }),
2896
+ backoff: withErrorEmitted(function () {
2897
+ _this.retryIn(1000);
2898
+ }),
2899
+ retry: withErrorEmitted(function () {
2900
+ _this.retryIn(0);
2901
+ })
2902
+ };
2903
+ };
2904
+ ConnectionManager.prototype.setConnection = function (connection) {
2905
+ this.connection = connection;
2906
+ for (var event in this.connectionCallbacks) {
2907
+ this.connection.bind(event, this.connectionCallbacks[event]);
2908
+ }
2909
+ this.resetActivityCheck();
2910
+ };
2911
+ ConnectionManager.prototype.abandonConnection = function () {
2912
+ if (!this.connection) {
2913
+ return;
2914
+ }
2915
+ this.stopActivityCheck();
2916
+ for (var event in this.connectionCallbacks) {
2917
+ this.connection.unbind(event, this.connectionCallbacks[event]);
2918
+ }
2919
+ var connection = this.connection;
2920
+ this.connection = null;
2921
+ return connection;
2922
+ };
2923
+ ConnectionManager.prototype.updateState = function (newState, data) {
2924
+ var previousState = this.state;
2925
+ this.state = newState;
2926
+ if (previousState !== newState) {
2927
+ var newStateDescription = newState;
2928
+ if (newStateDescription === 'connected') {
2929
+ newStateDescription += ' with new socket ID ' + data.socket_id;
2930
+ }
2931
+ logger.debug('State changed', previousState + ' -> ' + newStateDescription);
2932
+ this.timeline.info({ state: newState, params: data });
2933
+ this.emit('state_change', { previous: previousState, current: newState });
2934
+ this.emit(newState, data);
2935
+ }
2936
+ };
2937
+ ConnectionManager.prototype.shouldRetry = function () {
2938
+ return this.state === 'connecting' || this.state === 'connected';
2939
+ };
2940
+ return ConnectionManager;
2941
+ }(dispatcher));
2942
+ /* harmony default export */ var connection_manager = (connection_manager_ConnectionManager);
2943
+
2944
+ // CONCATENATED MODULE: ./src/core/channels/channels.ts
2945
+
2946
+
2947
+
2948
+
2949
+ var channels_Channels = (function () {
2950
+ function Channels() {
2951
+ this.channels = {};
2952
+ }
2953
+ Channels.prototype.add = function (name, pusher) {
2954
+ if (!this.channels[name]) {
2955
+ this.channels[name] = createChannel(name, pusher);
2956
+ }
2957
+ return this.channels[name];
2958
+ };
2959
+ Channels.prototype.all = function () {
2960
+ return values(this.channels);
2961
+ };
2962
+ Channels.prototype.find = function (name) {
2963
+ return this.channels[name];
2964
+ };
2965
+ Channels.prototype.remove = function (name) {
2966
+ var channel = this.channels[name];
2967
+ delete this.channels[name];
2968
+ return channel;
2969
+ };
2970
+ Channels.prototype.disconnect = function () {
2971
+ objectApply(this.channels, function (channel) {
2972
+ channel.disconnect();
2973
+ });
2974
+ };
2975
+ return Channels;
2976
+ }());
2977
+ /* harmony default export */ var channels = (channels_Channels);
2978
+ function createChannel(name, pusher) {
2979
+ if (name.indexOf('private-encrypted-') === 0) {
2980
+ if (pusher.config.nacl) {
2981
+ return factory.createEncryptedChannel(name, pusher, pusher.config.nacl);
2982
+ }
2983
+ var errMsg = 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available';
2984
+ var suffix = url_store.buildLogSuffix('encryptedChannelSupport');
2985
+ throw new UnsupportedFeature(errMsg + ". " + suffix);
2986
+ }
2987
+ else if (name.indexOf('private-') === 0) {
2988
+ return factory.createPrivateChannel(name, pusher);
2989
+ }
2990
+ else if (name.indexOf('presence-') === 0) {
2991
+ return factory.createPresenceChannel(name, pusher);
2992
+ }
2993
+ else {
2994
+ return factory.createChannel(name, pusher);
2995
+ }
2996
+ }
2997
+
2998
+ // CONCATENATED MODULE: ./src/core/utils/factory.ts
2999
+
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+ var Factory = {
3010
+ createChannels: function () {
3011
+ return new channels();
3012
+ },
3013
+ createConnectionManager: function (key, options) {
3014
+ return new connection_manager(key, options);
3015
+ },
3016
+ createChannel: function (name, pusher) {
3017
+ return new channels_channel(name, pusher);
3018
+ },
3019
+ createPrivateChannel: function (name, pusher) {
3020
+ return new private_channel(name, pusher);
3021
+ },
3022
+ createPresenceChannel: function (name, pusher) {
3023
+ return new presence_channel(name, pusher);
3024
+ },
3025
+ createEncryptedChannel: function (name, pusher, nacl) {
3026
+ return new encrypted_channel(name, pusher, nacl);
3027
+ },
3028
+ createTimelineSender: function (timeline, options) {
3029
+ return new timeline_sender(timeline, options);
3030
+ },
3031
+ createAuthorizer: function (channel, options) {
3032
+ if (options.authorizer) {
3033
+ return options.authorizer(channel, options);
3034
+ }
3035
+ return new pusher_authorizer(channel, options);
3036
+ },
3037
+ createHandshake: function (transport, callback) {
3038
+ return new connection_handshake(transport, callback);
3039
+ },
3040
+ createAssistantToTheTransportManager: function (manager, transport, options) {
3041
+ return new assistant_to_the_transport_manager(manager, transport, options);
3042
+ }
3043
+ };
3044
+ /* harmony default export */ var factory = (Factory);
3045
+
3046
+ // CONCATENATED MODULE: ./src/core/transports/transport_manager.ts
3047
+
3048
+ var transport_manager_TransportManager = (function () {
3049
+ function TransportManager(options) {
3050
+ this.options = options || {};
3051
+ this.livesLeft = this.options.lives || Infinity;
3052
+ }
3053
+ TransportManager.prototype.getAssistant = function (transport) {
3054
+ return factory.createAssistantToTheTransportManager(this, transport, {
3055
+ minPingDelay: this.options.minPingDelay,
3056
+ maxPingDelay: this.options.maxPingDelay
3057
+ });
3058
+ };
3059
+ TransportManager.prototype.isAlive = function () {
3060
+ return this.livesLeft > 0;
3061
+ };
3062
+ TransportManager.prototype.reportDeath = function () {
3063
+ this.livesLeft -= 1;
3064
+ };
3065
+ return TransportManager;
3066
+ }());
3067
+ /* harmony default export */ var transport_manager = (transport_manager_TransportManager);
3068
+
3069
+ // CONCATENATED MODULE: ./src/core/strategies/sequential_strategy.ts
3070
+
3071
+
3072
+
3073
+ var sequential_strategy_SequentialStrategy = (function () {
3074
+ function SequentialStrategy(strategies, options) {
3075
+ this.strategies = strategies;
3076
+ this.loop = Boolean(options.loop);
3077
+ this.failFast = Boolean(options.failFast);
3078
+ this.timeout = options.timeout;
3079
+ this.timeoutLimit = options.timeoutLimit;
3080
+ }
3081
+ SequentialStrategy.prototype.isSupported = function () {
3082
+ return any(this.strategies, util.method('isSupported'));
3083
+ };
3084
+ SequentialStrategy.prototype.connect = function (minPriority, callback) {
3085
+ var _this = this;
3086
+ var strategies = this.strategies;
3087
+ var current = 0;
3088
+ var timeout = this.timeout;
3089
+ var runner = null;
3090
+ var tryNextStrategy = function (error, handshake) {
3091
+ if (handshake) {
3092
+ callback(null, handshake);
3093
+ }
3094
+ else {
3095
+ current = current + 1;
3096
+ if (_this.loop) {
3097
+ current = current % strategies.length;
3098
+ }
3099
+ if (current < strategies.length) {
3100
+ if (timeout) {
3101
+ timeout = timeout * 2;
3102
+ if (_this.timeoutLimit) {
3103
+ timeout = Math.min(timeout, _this.timeoutLimit);
3104
+ }
3105
+ }
3106
+ runner = _this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: _this.failFast }, tryNextStrategy);
3107
+ }
3108
+ else {
3109
+ callback(true);
3110
+ }
3111
+ }
3112
+ };
3113
+ runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy);
3114
+ return {
3115
+ abort: function () {
3116
+ runner.abort();
3117
+ },
3118
+ forceMinPriority: function (p) {
3119
+ minPriority = p;
3120
+ if (runner) {
3121
+ runner.forceMinPriority(p);
3122
+ }
3123
+ }
3124
+ };
3125
+ };
3126
+ SequentialStrategy.prototype.tryStrategy = function (strategy, minPriority, options, callback) {
3127
+ var timer = null;
3128
+ var runner = null;
3129
+ if (options.timeout > 0) {
3130
+ timer = new OneOffTimer(options.timeout, function () {
3131
+ runner.abort();
3132
+ callback(true);
3133
+ });
3134
+ }
3135
+ runner = strategy.connect(minPriority, function (error, handshake) {
3136
+ if (error && timer && timer.isRunning() && !options.failFast) {
3137
+ return;
3138
+ }
3139
+ if (timer) {
3140
+ timer.ensureAborted();
3141
+ }
3142
+ callback(error, handshake);
3143
+ });
3144
+ return {
3145
+ abort: function () {
3146
+ if (timer) {
3147
+ timer.ensureAborted();
3148
+ }
3149
+ runner.abort();
3150
+ },
3151
+ forceMinPriority: function (p) {
3152
+ runner.forceMinPriority(p);
3153
+ }
3154
+ };
3155
+ };
3156
+ return SequentialStrategy;
3157
+ }());
3158
+ /* harmony default export */ var sequential_strategy = (sequential_strategy_SequentialStrategy);
3159
+
3160
+ // CONCATENATED MODULE: ./src/core/strategies/best_connected_ever_strategy.ts
3161
+
3162
+
3163
+ var best_connected_ever_strategy_BestConnectedEverStrategy = (function () {
3164
+ function BestConnectedEverStrategy(strategies) {
3165
+ this.strategies = strategies;
3166
+ }
3167
+ BestConnectedEverStrategy.prototype.isSupported = function () {
3168
+ return any(this.strategies, util.method('isSupported'));
3169
+ };
3170
+ BestConnectedEverStrategy.prototype.connect = function (minPriority, callback) {
3171
+ return connect(this.strategies, minPriority, function (i, runners) {
3172
+ return function (error, handshake) {
3173
+ runners[i].error = error;
3174
+ if (error) {
3175
+ if (allRunnersFailed(runners)) {
3176
+ callback(true);
3177
+ }
3178
+ return;
3179
+ }
3180
+ apply(runners, function (runner) {
3181
+ runner.forceMinPriority(handshake.transport.priority);
3182
+ });
3183
+ callback(null, handshake);
3184
+ };
3185
+ });
3186
+ };
3187
+ return BestConnectedEverStrategy;
3188
+ }());
3189
+ /* harmony default export */ var best_connected_ever_strategy = (best_connected_ever_strategy_BestConnectedEverStrategy);
3190
+ function connect(strategies, minPriority, callbackBuilder) {
3191
+ var runners = map(strategies, function (strategy, i, _, rs) {
3192
+ return strategy.connect(minPriority, callbackBuilder(i, rs));
3193
+ });
3194
+ return {
3195
+ abort: function () {
3196
+ apply(runners, abortRunner);
3197
+ },
3198
+ forceMinPriority: function (p) {
3199
+ apply(runners, function (runner) {
3200
+ runner.forceMinPriority(p);
3201
+ });
3202
+ }
3203
+ };
3204
+ }
3205
+ function allRunnersFailed(runners) {
3206
+ return collections_all(runners, function (runner) {
3207
+ return Boolean(runner.error);
3208
+ });
3209
+ }
3210
+ function abortRunner(runner) {
3211
+ if (!runner.error && !runner.aborted) {
3212
+ runner.abort();
3213
+ runner.aborted = true;
3214
+ }
3215
+ }
3216
+
3217
+ // CONCATENATED MODULE: ./src/core/strategies/cached_strategy.ts
3218
+
3219
+
3220
+
3221
+
3222
+ var cached_strategy_CachedStrategy = (function () {
3223
+ function CachedStrategy(strategy, transports, options) {
3224
+ this.strategy = strategy;
3225
+ this.transports = transports;
3226
+ this.ttl = options.ttl || 1800 * 1000;
3227
+ this.usingTLS = options.useTLS;
3228
+ this.timeline = options.timeline;
3229
+ }
3230
+ CachedStrategy.prototype.isSupported = function () {
3231
+ return this.strategy.isSupported();
3232
+ };
3233
+ CachedStrategy.prototype.connect = function (minPriority, callback) {
3234
+ var usingTLS = this.usingTLS;
3235
+ var info = fetchTransportCache(usingTLS);
3236
+ var strategies = [this.strategy];
3237
+ if (info && info.timestamp + this.ttl >= util.now()) {
3238
+ var transport = this.transports[info.transport];
3239
+ if (transport) {
3240
+ this.timeline.info({
3241
+ cached: true,
3242
+ transport: info.transport,
3243
+ latency: info.latency
3244
+ });
3245
+ strategies.push(new sequential_strategy([transport], {
3246
+ timeout: info.latency * 2 + 1000,
3247
+ failFast: true
3248
+ }));
3249
+ }
3250
+ }
3251
+ var startTimestamp = util.now();
3252
+ var runner = strategies
3253
+ .pop()
3254
+ .connect(minPriority, function cb(error, handshake) {
3255
+ if (error) {
3256
+ flushTransportCache(usingTLS);
3257
+ if (strategies.length > 0) {
3258
+ startTimestamp = util.now();
3259
+ runner = strategies.pop().connect(minPriority, cb);
3260
+ }
3261
+ else {
3262
+ callback(error);
3263
+ }
3264
+ }
3265
+ else {
3266
+ storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp);
3267
+ callback(null, handshake);
3268
+ }
3269
+ });
3270
+ return {
3271
+ abort: function () {
3272
+ runner.abort();
3273
+ },
3274
+ forceMinPriority: function (p) {
3275
+ minPriority = p;
3276
+ if (runner) {
3277
+ runner.forceMinPriority(p);
3278
+ }
3279
+ }
3280
+ };
3281
+ };
3282
+ return CachedStrategy;
3283
+ }());
3284
+ /* harmony default export */ var cached_strategy = (cached_strategy_CachedStrategy);
3285
+ function getTransportCacheKey(usingTLS) {
3286
+ return 'pusherTransport' + (usingTLS ? 'TLS' : 'NonTLS');
3287
+ }
3288
+ function fetchTransportCache(usingTLS) {
3289
+ var storage = runtime.getLocalStorage();
3290
+ if (storage) {
3291
+ try {
3292
+ var serializedCache = storage[getTransportCacheKey(usingTLS)];
3293
+ if (serializedCache) {
3294
+ return JSON.parse(serializedCache);
3295
+ }
3296
+ }
3297
+ catch (e) {
3298
+ flushTransportCache(usingTLS);
3299
+ }
3300
+ }
3301
+ return null;
3302
+ }
3303
+ function storeTransportCache(usingTLS, transport, latency) {
3304
+ var storage = runtime.getLocalStorage();
3305
+ if (storage) {
3306
+ try {
3307
+ storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({
3308
+ timestamp: util.now(),
3309
+ transport: transport,
3310
+ latency: latency
3311
+ });
3312
+ }
3313
+ catch (e) {
3314
+ }
3315
+ }
3316
+ }
3317
+ function flushTransportCache(usingTLS) {
3318
+ var storage = runtime.getLocalStorage();
3319
+ if (storage) {
3320
+ try {
3321
+ delete storage[getTransportCacheKey(usingTLS)];
3322
+ }
3323
+ catch (e) {
3324
+ }
3325
+ }
3326
+ }
3327
+
3328
+ // CONCATENATED MODULE: ./src/core/strategies/delayed_strategy.ts
3329
+
3330
+ var delayed_strategy_DelayedStrategy = (function () {
3331
+ function DelayedStrategy(strategy, _a) {
3332
+ var number = _a.delay;
3333
+ this.strategy = strategy;
3334
+ this.options = { delay: number };
3335
+ }
3336
+ DelayedStrategy.prototype.isSupported = function () {
3337
+ return this.strategy.isSupported();
3338
+ };
3339
+ DelayedStrategy.prototype.connect = function (minPriority, callback) {
3340
+ var strategy = this.strategy;
3341
+ var runner;
3342
+ var timer = new OneOffTimer(this.options.delay, function () {
3343
+ runner = strategy.connect(minPriority, callback);
3344
+ });
3345
+ return {
3346
+ abort: function () {
3347
+ timer.ensureAborted();
3348
+ if (runner) {
3349
+ runner.abort();
3350
+ }
3351
+ },
3352
+ forceMinPriority: function (p) {
3353
+ minPriority = p;
3354
+ if (runner) {
3355
+ runner.forceMinPriority(p);
3356
+ }
3357
+ }
3358
+ };
3359
+ };
3360
+ return DelayedStrategy;
3361
+ }());
3362
+ /* harmony default export */ var delayed_strategy = (delayed_strategy_DelayedStrategy);
3363
+
3364
+ // CONCATENATED MODULE: ./src/core/strategies/if_strategy.ts
3365
+ var IfStrategy = (function () {
3366
+ function IfStrategy(test, trueBranch, falseBranch) {
3367
+ this.test = test;
3368
+ this.trueBranch = trueBranch;
3369
+ this.falseBranch = falseBranch;
3370
+ }
3371
+ IfStrategy.prototype.isSupported = function () {
3372
+ var branch = this.test() ? this.trueBranch : this.falseBranch;
3373
+ return branch.isSupported();
3374
+ };
3375
+ IfStrategy.prototype.connect = function (minPriority, callback) {
3376
+ var branch = this.test() ? this.trueBranch : this.falseBranch;
3377
+ return branch.connect(minPriority, callback);
3378
+ };
3379
+ return IfStrategy;
3380
+ }());
3381
+ /* harmony default export */ var if_strategy = (IfStrategy);
3382
+
3383
+ // CONCATENATED MODULE: ./src/core/strategies/first_connected_strategy.ts
3384
+ var FirstConnectedStrategy = (function () {
3385
+ function FirstConnectedStrategy(strategy) {
3386
+ this.strategy = strategy;
3387
+ }
3388
+ FirstConnectedStrategy.prototype.isSupported = function () {
3389
+ return this.strategy.isSupported();
3390
+ };
3391
+ FirstConnectedStrategy.prototype.connect = function (minPriority, callback) {
3392
+ var runner = this.strategy.connect(minPriority, function (error, handshake) {
3393
+ if (handshake) {
3394
+ runner.abort();
3395
+ }
3396
+ callback(error, handshake);
3397
+ });
3398
+ return runner;
3399
+ };
3400
+ return FirstConnectedStrategy;
3401
+ }());
3402
+ /* harmony default export */ var first_connected_strategy = (FirstConnectedStrategy);
3403
+
3404
+ // CONCATENATED MODULE: ./src/runtimes/web/default_strategy.ts
3405
+
3406
+
3407
+
3408
+
3409
+
3410
+
3411
+
3412
+ function testSupportsStrategy(strategy) {
3413
+ return function () {
3414
+ return strategy.isSupported();
3415
+ };
3416
+ }
3417
+ var getDefaultStrategy = function (config, baseOptions, defineTransport) {
3418
+ var definedTransports = {};
3419
+ function defineTransportStrategy(name, type, priority, options, manager) {
3420
+ var transport = defineTransport(config, name, type, priority, options, manager);
3421
+ definedTransports[name] = transport;
3422
+ return transport;
3423
+ }
3424
+ var ws_options = Object.assign({}, baseOptions, {
3425
+ hostNonTLS: config.wsHost + ':' + config.wsPort,
3426
+ hostTLS: config.wsHost + ':' + config.wssPort,
3427
+ httpPath: config.wsPath
3428
+ });
3429
+ var wss_options = Object.assign({}, ws_options, {
3430
+ useTLS: true
3431
+ });
3432
+ var sockjs_options = Object.assign({}, baseOptions, {
3433
+ hostNonTLS: config.httpHost + ':' + config.httpPort,
3434
+ hostTLS: config.httpHost + ':' + config.httpsPort,
3435
+ httpPath: config.httpPath
3436
+ });
3437
+ var timeouts = {
3438
+ loop: true,
3439
+ timeout: 15000,
3440
+ timeoutLimit: 60000
3441
+ };
3442
+ var ws_manager = new transport_manager({
3443
+ lives: 2,
3444
+ minPingDelay: 10000,
3445
+ maxPingDelay: config.activityTimeout
3446
+ });
3447
+ var streaming_manager = new transport_manager({
3448
+ lives: 2,
3449
+ minPingDelay: 10000,
3450
+ maxPingDelay: config.activityTimeout
3451
+ });
3452
+ var ws_transport = defineTransportStrategy('ws', 'ws', 3, ws_options, ws_manager);
3453
+ var wss_transport = defineTransportStrategy('wss', 'ws', 3, wss_options, ws_manager);
3454
+ var sockjs_transport = defineTransportStrategy('sockjs', 'sockjs', 1, sockjs_options);
3455
+ var xhr_streaming_transport = defineTransportStrategy('xhr_streaming', 'xhr_streaming', 1, sockjs_options, streaming_manager);
3456
+ var xdr_streaming_transport = defineTransportStrategy('xdr_streaming', 'xdr_streaming', 1, sockjs_options, streaming_manager);
3457
+ var xhr_polling_transport = defineTransportStrategy('xhr_polling', 'xhr_polling', 1, sockjs_options);
3458
+ var xdr_polling_transport = defineTransportStrategy('xdr_polling', 'xdr_polling', 1, sockjs_options);
3459
+ var ws_loop = new sequential_strategy([ws_transport], timeouts);
3460
+ var wss_loop = new sequential_strategy([wss_transport], timeouts);
3461
+ var sockjs_loop = new sequential_strategy([sockjs_transport], timeouts);
3462
+ var streaming_loop = new sequential_strategy([
3463
+ new if_strategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport)
3464
+ ], timeouts);
3465
+ var polling_loop = new sequential_strategy([
3466
+ new if_strategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport)
3467
+ ], timeouts);
3468
+ var http_loop = new sequential_strategy([
3469
+ new if_strategy(testSupportsStrategy(streaming_loop), new best_connected_ever_strategy([
3470
+ streaming_loop,
3471
+ new delayed_strategy(polling_loop, { delay: 4000 })
3472
+ ]), polling_loop)
3473
+ ], timeouts);
3474
+ var http_fallback_loop = new if_strategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop);
3475
+ var wsStrategy;
3476
+ if (baseOptions.useTLS) {
3477
+ wsStrategy = new best_connected_ever_strategy([
3478
+ ws_loop,
3479
+ new delayed_strategy(http_fallback_loop, { delay: 2000 })
3480
+ ]);
3481
+ }
3482
+ else {
3483
+ wsStrategy = new best_connected_ever_strategy([
3484
+ ws_loop,
3485
+ new delayed_strategy(wss_loop, { delay: 2000 }),
3486
+ new delayed_strategy(http_fallback_loop, { delay: 5000 })
3487
+ ]);
3488
+ }
3489
+ return new cached_strategy(new first_connected_strategy(new if_strategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, {
3490
+ ttl: 1800000,
3491
+ timeline: baseOptions.timeline,
3492
+ useTLS: baseOptions.useTLS
3493
+ });
3494
+ };
3495
+ /* harmony default export */ var default_strategy = (getDefaultStrategy);
3496
+
3497
+ // CONCATENATED MODULE: ./src/runtimes/web/transports/transport_connection_initializer.ts
3498
+
3499
+ /* harmony default export */ var transport_connection_initializer = (function () {
3500
+ var self = this;
3501
+ self.timeline.info(self.buildTimelineMessage({
3502
+ transport: self.name + (self.options.useTLS ? 's' : '')
3503
+ }));
3504
+ if (self.hooks.isInitialized()) {
3505
+ self.changeState('initialized');
3506
+ }
3507
+ else if (self.hooks.file) {
3508
+ self.changeState('initializing');
3509
+ Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) {
3510
+ if (self.hooks.isInitialized()) {
3511
+ self.changeState('initialized');
3512
+ callback(true);
3513
+ }
3514
+ else {
3515
+ if (error) {
3516
+ self.onError(error);
3517
+ }
3518
+ self.onClose();
3519
+ callback(false);
3520
+ }
3521
+ });
3522
+ }
3523
+ else {
3524
+ self.onClose();
3525
+ }
3526
+ });
3527
+
3528
+ // CONCATENATED MODULE: ./src/runtimes/web/http/http_xdomain_request.ts
3529
+
3530
+ var http_xdomain_request_hooks = {
3531
+ getRequest: function (socket) {
3532
+ var xdr = new window.XDomainRequest();
3533
+ xdr.ontimeout = function () {
3534
+ socket.emit('error', new RequestTimedOut());
3535
+ socket.close();
3536
+ };
3537
+ xdr.onerror = function (e) {
3538
+ socket.emit('error', e);
3539
+ socket.close();
3540
+ };
3541
+ xdr.onprogress = function () {
3542
+ if (xdr.responseText && xdr.responseText.length > 0) {
3543
+ socket.onChunk(200, xdr.responseText);
3544
+ }
3545
+ };
3546
+ xdr.onload = function () {
3547
+ if (xdr.responseText && xdr.responseText.length > 0) {
3548
+ socket.onChunk(200, xdr.responseText);
3549
+ }
3550
+ socket.emit('finished', 200);
3551
+ socket.close();
3552
+ };
3553
+ return xdr;
3554
+ },
3555
+ abortRequest: function (xdr) {
3556
+ xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null;
3557
+ xdr.abort();
3558
+ }
3559
+ };
3560
+ /* harmony default export */ var http_xdomain_request = (http_xdomain_request_hooks);
3561
+
3562
+ // CONCATENATED MODULE: ./src/core/http/http_request.ts
3563
+ var http_request_extends = (undefined && undefined.__extends) || (function () {
3564
+ var extendStatics = function (d, b) {
3565
+ extendStatics = Object.setPrototypeOf ||
3566
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
3567
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
3568
+ return extendStatics(d, b);
3569
+ };
3570
+ return function (d, b) {
3571
+ extendStatics(d, b);
3572
+ function __() { this.constructor = d; }
3573
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
3574
+ };
3575
+ })();
3576
+
3577
+
3578
+ var MAX_BUFFER_LENGTH = 256 * 1024;
3579
+ var http_request_HTTPRequest = (function (_super) {
3580
+ http_request_extends(HTTPRequest, _super);
3581
+ function HTTPRequest(hooks, method, url) {
3582
+ var _this = _super.call(this) || this;
3583
+ _this.hooks = hooks;
3584
+ _this.method = method;
3585
+ _this.url = url;
3586
+ return _this;
3587
+ }
3588
+ HTTPRequest.prototype.start = function (payload) {
3589
+ var _this = this;
3590
+ this.position = 0;
3591
+ this.xhr = this.hooks.getRequest(this);
3592
+ this.unloader = function () {
3593
+ _this.close();
3594
+ };
3595
+ runtime.addUnloadListener(this.unloader);
3596
+ this.xhr.open(this.method, this.url, true);
3597
+ if (this.xhr.setRequestHeader) {
3598
+ this.xhr.setRequestHeader('Content-Type', 'application/json');
3599
+ }
3600
+ this.xhr.send(payload);
3601
+ };
3602
+ HTTPRequest.prototype.close = function () {
3603
+ if (this.unloader) {
3604
+ runtime.removeUnloadListener(this.unloader);
3605
+ this.unloader = null;
3606
+ }
3607
+ if (this.xhr) {
3608
+ this.hooks.abortRequest(this.xhr);
3609
+ this.xhr = null;
3610
+ }
3611
+ };
3612
+ HTTPRequest.prototype.onChunk = function (status, data) {
3613
+ while (true) {
3614
+ var chunk = this.advanceBuffer(data);
3615
+ if (chunk) {
3616
+ this.emit('chunk', { status: status, data: chunk });
3617
+ }
3618
+ else {
3619
+ break;
3620
+ }
3621
+ }
3622
+ if (this.isBufferTooLong(data)) {
3623
+ this.emit('buffer_too_long');
3624
+ }
3625
+ };
3626
+ HTTPRequest.prototype.advanceBuffer = function (buffer) {
3627
+ var unreadData = buffer.slice(this.position);
3628
+ var endOfLinePosition = unreadData.indexOf('\n');
3629
+ if (endOfLinePosition !== -1) {
3630
+ this.position += endOfLinePosition + 1;
3631
+ return unreadData.slice(0, endOfLinePosition);
3632
+ }
3633
+ else {
3634
+ return null;
3635
+ }
3636
+ };
3637
+ HTTPRequest.prototype.isBufferTooLong = function (buffer) {
3638
+ return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH;
3639
+ };
3640
+ return HTTPRequest;
3641
+ }(dispatcher));
3642
+ /* harmony default export */ var http_request = (http_request_HTTPRequest);
3643
+
3644
+ // CONCATENATED MODULE: ./src/core/http/state.ts
3645
+ var State;
3646
+ (function (State) {
3647
+ State[State["CONNECTING"] = 0] = "CONNECTING";
3648
+ State[State["OPEN"] = 1] = "OPEN";
3649
+ State[State["CLOSED"] = 3] = "CLOSED";
3650
+ })(State || (State = {}));
3651
+ /* harmony default export */ var state = (State);
3652
+
3653
+ // CONCATENATED MODULE: ./src/core/http/http_socket.ts
3654
+
3655
+
3656
+
3657
+ var autoIncrement = 1;
3658
+ var http_socket_HTTPSocket = (function () {
3659
+ function HTTPSocket(hooks, url) {
3660
+ this.hooks = hooks;
3661
+ this.session = randomNumber(1000) + '/' + randomString(8);
3662
+ this.location = getLocation(url);
3663
+ this.readyState = state.CONNECTING;
3664
+ this.openStream();
3665
+ }
3666
+ HTTPSocket.prototype.send = function (payload) {
3667
+ return this.sendRaw(JSON.stringify([payload]));
3668
+ };
3669
+ HTTPSocket.prototype.ping = function () {
3670
+ this.hooks.sendHeartbeat(this);
3671
+ };
3672
+ HTTPSocket.prototype.close = function (code, reason) {
3673
+ this.onClose(code, reason, true);
3674
+ };
3675
+ HTTPSocket.prototype.sendRaw = function (payload) {
3676
+ if (this.readyState === state.OPEN) {
3677
+ try {
3678
+ runtime.createSocketRequest('POST', getUniqueURL(getSendURL(this.location, this.session))).start(payload);
3679
+ return true;
3680
+ }
3681
+ catch (e) {
3682
+ return false;
3683
+ }
3684
+ }
3685
+ else {
3686
+ return false;
3687
+ }
3688
+ };
3689
+ HTTPSocket.prototype.reconnect = function () {
3690
+ this.closeStream();
3691
+ this.openStream();
3692
+ };
3693
+ HTTPSocket.prototype.onClose = function (code, reason, wasClean) {
3694
+ this.closeStream();
3695
+ this.readyState = state.CLOSED;
3696
+ if (this.onclose) {
3697
+ this.onclose({
3698
+ code: code,
3699
+ reason: reason,
3700
+ wasClean: wasClean
3701
+ });
3702
+ }
3703
+ };
3704
+ HTTPSocket.prototype.onChunk = function (chunk) {
3705
+ if (chunk.status !== 200) {
3706
+ return;
3707
+ }
3708
+ if (this.readyState === state.OPEN) {
3709
+ this.onActivity();
3710
+ }
3711
+ var payload;
3712
+ var type = chunk.data.slice(0, 1);
3713
+ switch (type) {
3714
+ case 'o':
3715
+ payload = JSON.parse(chunk.data.slice(1) || '{}');
3716
+ this.onOpen(payload);
3717
+ break;
3718
+ case 'a':
3719
+ payload = JSON.parse(chunk.data.slice(1) || '[]');
3720
+ for (var i = 0; i < payload.length; i++) {
3721
+ this.onEvent(payload[i]);
3722
+ }
3723
+ break;
3724
+ case 'm':
3725
+ payload = JSON.parse(chunk.data.slice(1) || 'null');
3726
+ this.onEvent(payload);
3727
+ break;
3728
+ case 'h':
3729
+ this.hooks.onHeartbeat(this);
3730
+ break;
3731
+ case 'c':
3732
+ payload = JSON.parse(chunk.data.slice(1) || '[]');
3733
+ this.onClose(payload[0], payload[1], true);
3734
+ break;
3735
+ }
3736
+ };
3737
+ HTTPSocket.prototype.onOpen = function (options) {
3738
+ if (this.readyState === state.CONNECTING) {
3739
+ if (options && options.hostname) {
3740
+ this.location.base = replaceHost(this.location.base, options.hostname);
3741
+ }
3742
+ this.readyState = state.OPEN;
3743
+ if (this.onopen) {
3744
+ this.onopen();
3745
+ }
3746
+ }
3747
+ else {
3748
+ this.onClose(1006, 'Server lost session', true);
3749
+ }
3750
+ };
3751
+ HTTPSocket.prototype.onEvent = function (event) {
3752
+ if (this.readyState === state.OPEN && this.onmessage) {
3753
+ this.onmessage({ data: event });
3754
+ }
3755
+ };
3756
+ HTTPSocket.prototype.onActivity = function () {
3757
+ if (this.onactivity) {
3758
+ this.onactivity();
3759
+ }
3760
+ };
3761
+ HTTPSocket.prototype.onError = function (error) {
3762
+ if (this.onerror) {
3763
+ this.onerror(error);
3764
+ }
3765
+ };
3766
+ HTTPSocket.prototype.openStream = function () {
3767
+ var _this = this;
3768
+ this.stream = runtime.createSocketRequest('POST', getUniqueURL(this.hooks.getReceiveURL(this.location, this.session)));
3769
+ this.stream.bind('chunk', function (chunk) {
3770
+ _this.onChunk(chunk);
3771
+ });
3772
+ this.stream.bind('finished', function (status) {
3773
+ _this.hooks.onFinished(_this, status);
3774
+ });
3775
+ this.stream.bind('buffer_too_long', function () {
3776
+ _this.reconnect();
3777
+ });
3778
+ try {
3779
+ this.stream.start();
3780
+ }
3781
+ catch (error) {
3782
+ util.defer(function () {
3783
+ _this.onError(error);
3784
+ _this.onClose(1006, 'Could not start streaming', false);
3785
+ });
3786
+ }
3787
+ };
3788
+ HTTPSocket.prototype.closeStream = function () {
3789
+ if (this.stream) {
3790
+ this.stream.unbind_all();
3791
+ this.stream.close();
3792
+ this.stream = null;
3793
+ }
3794
+ };
3795
+ return HTTPSocket;
3796
+ }());
3797
+ function getLocation(url) {
3798
+ var parts = /([^\?]*)\/*(\??.*)/.exec(url);
3799
+ return {
3800
+ base: parts[1],
3801
+ queryString: parts[2]
3802
+ };
3803
+ }
3804
+ function getSendURL(url, session) {
3805
+ return url.base + '/' + session + '/xhr_send';
3806
+ }
3807
+ function getUniqueURL(url) {
3808
+ var separator = url.indexOf('?') === -1 ? '?' : '&';
3809
+ return url + separator + 't=' + +new Date() + '&n=' + autoIncrement++;
3810
+ }
3811
+ function replaceHost(url, hostname) {
3812
+ var urlParts = /(https?:\/\/)([^\/:]+)((\/|:)?.*)/.exec(url);
3813
+ return urlParts[1] + hostname + urlParts[3];
3814
+ }
3815
+ function randomNumber(max) {
3816
+ return Math.floor(Math.random() * max);
3817
+ }
3818
+ function randomString(length) {
3819
+ var result = [];
3820
+ for (var i = 0; i < length; i++) {
3821
+ result.push(randomNumber(32).toString(32));
3822
+ }
3823
+ return result.join('');
3824
+ }
3825
+ /* harmony default export */ var http_socket = (http_socket_HTTPSocket);
3826
+
3827
+ // CONCATENATED MODULE: ./src/core/http/http_streaming_socket.ts
3828
+ var http_streaming_socket_hooks = {
3829
+ getReceiveURL: function (url, session) {
3830
+ return url.base + '/' + session + '/xhr_streaming' + url.queryString;
3831
+ },
3832
+ onHeartbeat: function (socket) {
3833
+ socket.sendRaw('[]');
3834
+ },
3835
+ sendHeartbeat: function (socket) {
3836
+ socket.sendRaw('[]');
3837
+ },
3838
+ onFinished: function (socket, status) {
3839
+ socket.onClose(1006, 'Connection interrupted (' + status + ')', false);
3840
+ }
3841
+ };
3842
+ /* harmony default export */ var http_streaming_socket = (http_streaming_socket_hooks);
3843
+
3844
+ // CONCATENATED MODULE: ./src/core/http/http_polling_socket.ts
3845
+ var http_polling_socket_hooks = {
3846
+ getReceiveURL: function (url, session) {
3847
+ return url.base + '/' + session + '/xhr' + url.queryString;
3848
+ },
3849
+ onHeartbeat: function () {
3850
+ },
3851
+ sendHeartbeat: function (socket) {
3852
+ socket.sendRaw('[]');
3853
+ },
3854
+ onFinished: function (socket, status) {
3855
+ if (status === 200) {
3856
+ socket.reconnect();
3857
+ }
3858
+ else {
3859
+ socket.onClose(1006, 'Connection interrupted (' + status + ')', false);
3860
+ }
3861
+ }
3862
+ };
3863
+ /* harmony default export */ var http_polling_socket = (http_polling_socket_hooks);
3864
+
3865
+ // CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http_xhr_request.ts
3866
+
3867
+ var http_xhr_request_hooks = {
3868
+ getRequest: function (socket) {
3869
+ var Constructor = runtime.getXHRAPI();
3870
+ var xhr = new Constructor();
3871
+ xhr.onreadystatechange = xhr.onprogress = function () {
3872
+ switch (xhr.readyState) {
3873
+ case 3:
3874
+ if (xhr.responseText && xhr.responseText.length > 0) {
3875
+ socket.onChunk(xhr.status, xhr.responseText);
3876
+ }
3877
+ break;
3878
+ case 4:
3879
+ if (xhr.responseText && xhr.responseText.length > 0) {
3880
+ socket.onChunk(xhr.status, xhr.responseText);
3881
+ }
3882
+ socket.emit('finished', xhr.status);
3883
+ socket.close();
3884
+ break;
3885
+ }
3886
+ };
3887
+ return xhr;
3888
+ },
3889
+ abortRequest: function (xhr) {
3890
+ xhr.onreadystatechange = null;
3891
+ xhr.abort();
3892
+ }
3893
+ };
3894
+ /* harmony default export */ var http_xhr_request = (http_xhr_request_hooks);
3895
+
3896
+ // CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http.ts
3897
+
3898
+
3899
+
3900
+
3901
+
3902
+ var HTTP = {
3903
+ createStreamingSocket: function (url) {
3904
+ return this.createSocket(http_streaming_socket, url);
3905
+ },
3906
+ createPollingSocket: function (url) {
3907
+ return this.createSocket(http_polling_socket, url);
3908
+ },
3909
+ createSocket: function (hooks, url) {
3910
+ return new http_socket(hooks, url);
3911
+ },
3912
+ createXHR: function (method, url) {
3913
+ return this.createRequest(http_xhr_request, method, url);
3914
+ },
3915
+ createRequest: function (hooks, method, url) {
3916
+ return new http_request(hooks, method, url);
3917
+ }
3918
+ };
3919
+ /* harmony default export */ var http_http = (HTTP);
3920
+
3921
+ // CONCATENATED MODULE: ./src/runtimes/web/http/http.ts
3922
+
3923
+
3924
+ http_http.createXDR = function (method, url) {
3925
+ return this.createRequest(http_xdomain_request, method, url);
3926
+ };
3927
+ /* harmony default export */ var web_http_http = (http_http);
3928
+
3929
+ // CONCATENATED MODULE: ./src/runtimes/web/runtime.ts
3930
+
3931
+
3932
+
3933
+
3934
+
3935
+
3936
+
3937
+
3938
+
3939
+
3940
+
3941
+
3942
+ var Runtime = {
3943
+ nextAuthCallbackID: 1,
3944
+ auth_callbacks: {},
3945
+ ScriptReceivers: ScriptReceivers,
3946
+ DependenciesReceivers: DependenciesReceivers,
3947
+ getDefaultStrategy: default_strategy,
3948
+ Transports: transports_transports,
3949
+ transportConnectionInitializer: transport_connection_initializer,
3950
+ HTTPFactory: web_http_http,
3951
+ TimelineTransport: jsonp_timeline,
3952
+ getXHRAPI: function () {
3953
+ return window.XMLHttpRequest;
3954
+ },
3955
+ getWebSocketAPI: function () {
3956
+ return window.WebSocket || window.MozWebSocket;
3957
+ },
3958
+ setup: function (PusherClass) {
3959
+ var _this = this;
3960
+ window.Pusher = PusherClass;
3961
+ var initializeOnDocumentBody = function () {
3962
+ _this.onDocumentBody(PusherClass.ready);
3963
+ };
3964
+ if (!window.JSON) {
3965
+ Dependencies.load('json2', {}, initializeOnDocumentBody);
3966
+ }
3967
+ else {
3968
+ initializeOnDocumentBody();
3969
+ }
3970
+ },
3971
+ getDocument: function () {
3972
+ return document;
3973
+ },
3974
+ getProtocol: function () {
3975
+ return this.getDocument().location.protocol;
3976
+ },
3977
+ getAuthorizers: function () {
3978
+ return { ajax: xhr_auth, jsonp: jsonp_auth };
3979
+ },
3980
+ onDocumentBody: function (callback) {
3981
+ var _this = this;
3982
+ if (document.body) {
3983
+ callback();
3984
+ }
3985
+ else {
3986
+ setTimeout(function () {
3987
+ _this.onDocumentBody(callback);
3988
+ }, 0);
3989
+ }
3990
+ },
3991
+ createJSONPRequest: function (url, data) {
3992
+ return new jsonp_request(url, data);
3993
+ },
3994
+ createScriptRequest: function (src) {
3995
+ return new script_request(src);
3996
+ },
3997
+ getLocalStorage: function () {
3998
+ try {
3999
+ return window.localStorage;
4000
+ }
4001
+ catch (e) {
4002
+ return undefined;
4003
+ }
4004
+ },
4005
+ createXHR: function () {
4006
+ if (this.getXHRAPI()) {
4007
+ return this.createXMLHttpRequest();
4008
+ }
4009
+ else {
4010
+ return this.createMicrosoftXHR();
4011
+ }
4012
+ },
4013
+ createXMLHttpRequest: function () {
4014
+ var Constructor = this.getXHRAPI();
4015
+ return new Constructor();
4016
+ },
4017
+ createMicrosoftXHR: function () {
4018
+ return new ActiveXObject('Microsoft.XMLHTTP');
4019
+ },
4020
+ getNetwork: function () {
4021
+ return net_info_Network;
4022
+ },
4023
+ createWebSocket: function (url) {
4024
+ var Constructor = this.getWebSocketAPI();
4025
+ return new Constructor(url);
4026
+ },
4027
+ createSocketRequest: function (method, url) {
4028
+ if (this.isXHRSupported()) {
4029
+ return this.HTTPFactory.createXHR(method, url);
4030
+ }
4031
+ else if (this.isXDRSupported(url.indexOf('https:') === 0)) {
4032
+ return this.HTTPFactory.createXDR(method, url);
4033
+ }
4034
+ else {
4035
+ throw 'Cross-origin HTTP requests are not supported';
4036
+ }
4037
+ },
4038
+ isXHRSupported: function () {
4039
+ var Constructor = this.getXHRAPI();
4040
+ return (Boolean(Constructor) && new Constructor().withCredentials !== undefined);
4041
+ },
4042
+ isXDRSupported: function (useTLS) {
4043
+ var protocol = useTLS ? 'https:' : 'http:';
4044
+ var documentProtocol = this.getProtocol();
4045
+ return (Boolean(window['XDomainRequest']) && documentProtocol === protocol);
4046
+ },
4047
+ addUnloadListener: function (listener) {
4048
+ if (window.addEventListener !== undefined) {
4049
+ window.addEventListener('unload', listener, false);
4050
+ }
4051
+ else if (window.attachEvent !== undefined) {
4052
+ window.attachEvent('onunload', listener);
4053
+ }
4054
+ },
4055
+ removeUnloadListener: function (listener) {
4056
+ if (window.addEventListener !== undefined) {
4057
+ window.removeEventListener('unload', listener, false);
4058
+ }
4059
+ else if (window.detachEvent !== undefined) {
4060
+ window.detachEvent('onunload', listener);
4061
+ }
4062
+ }
4063
+ };
4064
+ /* harmony default export */ var runtime = (Runtime);
4065
+
4066
+ // CONCATENATED MODULE: ./src/core/timeline/level.ts
4067
+ var TimelineLevel;
4068
+ (function (TimelineLevel) {
4069
+ TimelineLevel[TimelineLevel["ERROR"] = 3] = "ERROR";
4070
+ TimelineLevel[TimelineLevel["INFO"] = 6] = "INFO";
4071
+ TimelineLevel[TimelineLevel["DEBUG"] = 7] = "DEBUG";
4072
+ })(TimelineLevel || (TimelineLevel = {}));
4073
+ /* harmony default export */ var timeline_level = (TimelineLevel);
4074
+
4075
+ // CONCATENATED MODULE: ./src/core/timeline/timeline.ts
4076
+
4077
+
4078
+
4079
+ var timeline_Timeline = (function () {
4080
+ function Timeline(key, session, options) {
4081
+ this.key = key;
4082
+ this.session = session;
4083
+ this.events = [];
4084
+ this.options = options || {};
4085
+ this.sent = 0;
4086
+ this.uniqueID = 0;
4087
+ }
4088
+ Timeline.prototype.log = function (level, event) {
4089
+ if (level <= this.options.level) {
4090
+ this.events.push(extend({}, event, { timestamp: util.now() }));
4091
+ if (this.options.limit && this.events.length > this.options.limit) {
4092
+ this.events.shift();
4093
+ }
4094
+ }
4095
+ };
4096
+ Timeline.prototype.error = function (event) {
4097
+ this.log(timeline_level.ERROR, event);
4098
+ };
4099
+ Timeline.prototype.info = function (event) {
4100
+ this.log(timeline_level.INFO, event);
4101
+ };
4102
+ Timeline.prototype.debug = function (event) {
4103
+ this.log(timeline_level.DEBUG, event);
4104
+ };
4105
+ Timeline.prototype.isEmpty = function () {
4106
+ return this.events.length === 0;
4107
+ };
4108
+ Timeline.prototype.send = function (sendfn, callback) {
4109
+ var _this = this;
4110
+ var data = extend({
4111
+ session: this.session,
4112
+ bundle: this.sent + 1,
4113
+ key: this.key,
4114
+ lib: 'js',
4115
+ version: this.options.version,
4116
+ cluster: this.options.cluster,
4117
+ features: this.options.features,
4118
+ timeline: this.events
4119
+ }, this.options.params);
4120
+ this.events = [];
4121
+ sendfn(data, function (error, result) {
4122
+ if (!error) {
4123
+ _this.sent++;
4124
+ }
4125
+ if (callback) {
4126
+ callback(error, result);
4127
+ }
4128
+ });
4129
+ return true;
4130
+ };
4131
+ Timeline.prototype.generateUniqueID = function () {
4132
+ this.uniqueID++;
4133
+ return this.uniqueID;
4134
+ };
4135
+ return Timeline;
4136
+ }());
4137
+ /* harmony default export */ var timeline_timeline = (timeline_Timeline);
4138
+
4139
+ // CONCATENATED MODULE: ./src/core/strategies/transport_strategy.ts
4140
+
4141
+
4142
+
4143
+
4144
+ var transport_strategy_TransportStrategy = (function () {
4145
+ function TransportStrategy(name, priority, transport, options) {
4146
+ this.name = name;
4147
+ this.priority = priority;
4148
+ this.transport = transport;
4149
+ this.options = options || {};
4150
+ }
4151
+ TransportStrategy.prototype.isSupported = function () {
4152
+ return this.transport.isSupported({
4153
+ useTLS: this.options.useTLS
4154
+ });
4155
+ };
4156
+ TransportStrategy.prototype.connect = function (minPriority, callback) {
4157
+ var _this = this;
4158
+ if (!this.isSupported()) {
4159
+ return failAttempt(new UnsupportedStrategy(), callback);
4160
+ }
4161
+ else if (this.priority < minPriority) {
4162
+ return failAttempt(new TransportPriorityTooLow(), callback);
4163
+ }
4164
+ var connected = false;
4165
+ var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options);
4166
+ var handshake = null;
4167
+ var onInitialized = function () {
4168
+ transport.unbind('initialized', onInitialized);
4169
+ transport.connect();
4170
+ };
4171
+ var onOpen = function () {
4172
+ handshake = factory.createHandshake(transport, function (result) {
4173
+ connected = true;
4174
+ unbindListeners();
4175
+ callback(null, result);
4176
+ });
4177
+ };
4178
+ var onError = function (error) {
4179
+ unbindListeners();
4180
+ callback(error);
4181
+ };
4182
+ var onClosed = function () {
4183
+ unbindListeners();
4184
+ var serializedTransport;
4185
+ serializedTransport = safeJSONStringify(transport);
4186
+ callback(new TransportClosed(serializedTransport));
4187
+ };
4188
+ var unbindListeners = function () {
4189
+ transport.unbind('initialized', onInitialized);
4190
+ transport.unbind('open', onOpen);
4191
+ transport.unbind('error', onError);
4192
+ transport.unbind('closed', onClosed);
4193
+ };
4194
+ transport.bind('initialized', onInitialized);
4195
+ transport.bind('open', onOpen);
4196
+ transport.bind('error', onError);
4197
+ transport.bind('closed', onClosed);
4198
+ transport.initialize();
4199
+ return {
4200
+ abort: function () {
4201
+ if (connected) {
4202
+ return;
4203
+ }
4204
+ unbindListeners();
4205
+ if (handshake) {
4206
+ handshake.close();
4207
+ }
4208
+ else {
4209
+ transport.close();
4210
+ }
4211
+ },
4212
+ forceMinPriority: function (p) {
4213
+ if (connected) {
4214
+ return;
4215
+ }
4216
+ if (_this.priority < p) {
4217
+ if (handshake) {
4218
+ handshake.close();
4219
+ }
4220
+ else {
4221
+ transport.close();
4222
+ }
4223
+ }
4224
+ }
4225
+ };
4226
+ };
4227
+ return TransportStrategy;
4228
+ }());
4229
+ /* harmony default export */ var transport_strategy = (transport_strategy_TransportStrategy);
4230
+ function failAttempt(error, callback) {
4231
+ util.defer(function () {
4232
+ callback(error);
4233
+ });
4234
+ return {
4235
+ abort: function () { },
4236
+ forceMinPriority: function () { }
4237
+ };
4238
+ }
4239
+
4240
+ // CONCATENATED MODULE: ./src/core/strategies/strategy_builder.ts
4241
+
4242
+
4243
+
4244
+
4245
+
4246
+ var strategy_builder_Transports = runtime.Transports;
4247
+ var strategy_builder_defineTransport = function (config, name, type, priority, options, manager) {
4248
+ var transportClass = strategy_builder_Transports[type];
4249
+ if (!transportClass) {
4250
+ throw new UnsupportedTransport(type);
4251
+ }
4252
+ var enabled = (!config.enabledTransports ||
4253
+ arrayIndexOf(config.enabledTransports, name) !== -1) &&
4254
+ (!config.disabledTransports ||
4255
+ arrayIndexOf(config.disabledTransports, name) === -1);
4256
+ var transport;
4257
+ if (enabled) {
4258
+ options = Object.assign({ ignoreNullOrigin: config.ignoreNullOrigin }, options);
4259
+ transport = new transport_strategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, options);
4260
+ }
4261
+ else {
4262
+ transport = strategy_builder_UnsupportedStrategy;
4263
+ }
4264
+ return transport;
4265
+ };
4266
+ var strategy_builder_UnsupportedStrategy = {
4267
+ isSupported: function () {
4268
+ return false;
4269
+ },
4270
+ connect: function (_, callback) {
4271
+ var deferred = util.defer(function () {
4272
+ callback(new UnsupportedStrategy());
4273
+ });
4274
+ return {
4275
+ abort: function () {
4276
+ deferred.ensureAborted();
4277
+ },
4278
+ forceMinPriority: function () { }
4279
+ };
4280
+ }
4281
+ };
4282
+
4283
+ // CONCATENATED MODULE: ./src/core/config.ts
4284
+
4285
+
4286
+ function getConfig(opts) {
4287
+ var config = {
4288
+ activityTimeout: opts.activityTimeout || defaults.activityTimeout,
4289
+ authEndpoint: opts.authEndpoint || defaults.authEndpoint,
4290
+ authTransport: opts.authTransport || defaults.authTransport,
4291
+ cluster: opts.cluster || defaults.cluster,
4292
+ httpPath: opts.httpPath || defaults.httpPath,
4293
+ httpPort: opts.httpPort || defaults.httpPort,
4294
+ httpsPort: opts.httpsPort || defaults.httpsPort,
4295
+ pongTimeout: opts.pongTimeout || defaults.pongTimeout,
4296
+ statsHost: opts.statsHost || defaults.stats_host,
4297
+ unavailableTimeout: opts.unavailableTimeout || defaults.unavailableTimeout,
4298
+ wsPath: opts.wsPath || defaults.wsPath,
4299
+ wsPort: opts.wsPort || defaults.wsPort,
4300
+ wssPort: opts.wssPort || defaults.wssPort,
4301
+ enableStats: getEnableStatsConfig(opts),
4302
+ httpHost: getHttpHost(opts),
4303
+ useTLS: shouldUseTLS(opts),
4304
+ wsHost: getWebsocketHost(opts)
4305
+ };
4306
+ if ('auth' in opts)
4307
+ config.auth = opts.auth;
4308
+ if ('authorizer' in opts)
4309
+ config.authorizer = opts.authorizer;
4310
+ if ('disabledTransports' in opts)
4311
+ config.disabledTransports = opts.disabledTransports;
4312
+ if ('enabledTransports' in opts)
4313
+ config.enabledTransports = opts.enabledTransports;
4314
+ if ('ignoreNullOrigin' in opts)
4315
+ config.ignoreNullOrigin = opts.ignoreNullOrigin;
4316
+ if ('timelineParams' in opts)
4317
+ config.timelineParams = opts.timelineParams;
4318
+ if ('nacl' in opts) {
4319
+ config.nacl = opts.nacl;
4320
+ }
4321
+ return config;
4322
+ }
4323
+ function getHttpHost(opts) {
4324
+ if (opts.httpHost) {
4325
+ return opts.httpHost;
4326
+ }
4327
+ if (opts.cluster) {
4328
+ return "sockjs-" + opts.cluster + ".pusher.com";
4329
+ }
4330
+ return defaults.httpHost;
4331
+ }
4332
+ function getWebsocketHost(opts) {
4333
+ if (opts.wsHost) {
4334
+ return opts.wsHost;
4335
+ }
4336
+ if (opts.cluster) {
4337
+ return getWebsocketHostFromCluster(opts.cluster);
4338
+ }
4339
+ return getWebsocketHostFromCluster(defaults.cluster);
4340
+ }
4341
+ function getWebsocketHostFromCluster(cluster) {
4342
+ return "ws-" + cluster + ".pusher.com";
4343
+ }
4344
+ function shouldUseTLS(opts) {
4345
+ if (runtime.getProtocol() === 'https:') {
4346
+ return true;
4347
+ }
4348
+ else if (opts.forceTLS === false) {
4349
+ return false;
4350
+ }
4351
+ return true;
4352
+ }
4353
+ function getEnableStatsConfig(opts) {
4354
+ if ('enableStats' in opts) {
4355
+ return opts.enableStats;
4356
+ }
4357
+ if ('disableStats' in opts) {
4358
+ return !opts.disableStats;
4359
+ }
4360
+ return false;
4361
+ }
4362
+
4363
+ // CONCATENATED MODULE: ./src/core/pusher.ts
4364
+
4365
+
4366
+
4367
+
4368
+
4369
+
4370
+
4371
+
4372
+
4373
+
4374
+
4375
+
4376
+ var pusher_Pusher = (function () {
4377
+ function Pusher(app_key, options) {
4378
+ var _this = this;
4379
+ checkAppKey(app_key);
4380
+ options = options || {};
4381
+ if (!options.cluster && !(options.wsHost || options.httpHost)) {
4382
+ var suffix = url_store.buildLogSuffix('javascriptQuickStart');
4383
+ logger.warn("You should always specify a cluster when connecting. " + suffix);
4384
+ }
4385
+ if ('disableStats' in options) {
4386
+ logger.warn('The disableStats option is deprecated in favor of enableStats');
4387
+ }
4388
+ this.key = app_key;
4389
+ this.config = getConfig(options);
4390
+ this.channels = factory.createChannels();
4391
+ this.global_emitter = new dispatcher();
4392
+ this.sessionID = Math.floor(Math.random() * 1000000000);
4393
+ this.timeline = new timeline_timeline(this.key, this.sessionID, {
4394
+ cluster: this.config.cluster,
4395
+ features: Pusher.getClientFeatures(),
4396
+ params: this.config.timelineParams || {},
4397
+ limit: 50,
4398
+ level: timeline_level.INFO,
4399
+ version: defaults.VERSION
4400
+ });
4401
+ if (this.config.enableStats) {
4402
+ this.timelineSender = factory.createTimelineSender(this.timeline, {
4403
+ host: this.config.statsHost,
4404
+ path: '/timeline/v2/' + runtime.TimelineTransport.name
4405
+ });
4406
+ }
4407
+ var getStrategy = function (options) {
4408
+ return runtime.getDefaultStrategy(_this.config, options, strategy_builder_defineTransport);
4409
+ };
4410
+ this.connection = factory.createConnectionManager(this.key, {
4411
+ getStrategy: getStrategy,
4412
+ timeline: this.timeline,
4413
+ activityTimeout: this.config.activityTimeout,
4414
+ pongTimeout: this.config.pongTimeout,
4415
+ unavailableTimeout: this.config.unavailableTimeout,
4416
+ useTLS: Boolean(this.config.useTLS)
4417
+ });
4418
+ this.connection.bind('connected', function () {
4419
+ _this.subscribeAll();
4420
+ if (_this.timelineSender) {
4421
+ _this.timelineSender.send(_this.connection.isUsingTLS());
4422
+ }
4423
+ });
4424
+ this.connection.bind('message', function (event) {
4425
+ var eventName = event.event;
4426
+ var internal = eventName.indexOf('pusher_internal:') === 0;
4427
+ if (event.channel) {
4428
+ var channel = _this.channel(event.channel);
4429
+ if (channel) {
4430
+ channel.handleEvent(event);
4431
+ }
4432
+ }
4433
+ if (!internal) {
4434
+ _this.global_emitter.emit(event.event, event.data);
4435
+ }
4436
+ });
4437
+ this.connection.bind('connecting', function () {
4438
+ _this.channels.disconnect();
4439
+ });
4440
+ this.connection.bind('disconnected', function () {
4441
+ _this.channels.disconnect();
4442
+ });
4443
+ this.connection.bind('error', function (err) {
4444
+ logger.warn(err);
4445
+ });
4446
+ Pusher.instances.push(this);
4447
+ this.timeline.info({ instances: Pusher.instances.length });
4448
+ if (Pusher.isReady) {
4449
+ this.connect();
4450
+ }
4451
+ }
4452
+ Pusher.ready = function () {
4453
+ Pusher.isReady = true;
4454
+ for (var i = 0, l = Pusher.instances.length; i < l; i++) {
4455
+ Pusher.instances[i].connect();
4456
+ }
4457
+ };
4458
+ Pusher.getClientFeatures = function () {
4459
+ return keys(filterObject({ ws: runtime.Transports.ws }, function (t) {
4460
+ return t.isSupported({});
4461
+ }));
4462
+ };
4463
+ Pusher.prototype.channel = function (name) {
4464
+ return this.channels.find(name);
4465
+ };
4466
+ Pusher.prototype.allChannels = function () {
4467
+ return this.channels.all();
4468
+ };
4469
+ Pusher.prototype.connect = function () {
4470
+ this.connection.connect();
4471
+ if (this.timelineSender) {
4472
+ if (!this.timelineSenderTimer) {
4473
+ var usingTLS = this.connection.isUsingTLS();
4474
+ var timelineSender = this.timelineSender;
4475
+ this.timelineSenderTimer = new PeriodicTimer(60000, function () {
4476
+ timelineSender.send(usingTLS);
4477
+ });
4478
+ }
4479
+ }
4480
+ };
4481
+ Pusher.prototype.disconnect = function () {
4482
+ this.connection.disconnect();
4483
+ if (this.timelineSenderTimer) {
4484
+ this.timelineSenderTimer.ensureAborted();
4485
+ this.timelineSenderTimer = null;
4486
+ }
4487
+ };
4488
+ Pusher.prototype.bind = function (event_name, callback, context) {
4489
+ this.global_emitter.bind(event_name, callback, context);
4490
+ return this;
4491
+ };
4492
+ Pusher.prototype.unbind = function (event_name, callback, context) {
4493
+ this.global_emitter.unbind(event_name, callback, context);
4494
+ return this;
4495
+ };
4496
+ Pusher.prototype.bind_global = function (callback) {
4497
+ this.global_emitter.bind_global(callback);
4498
+ return this;
4499
+ };
4500
+ Pusher.prototype.unbind_global = function (callback) {
4501
+ this.global_emitter.unbind_global(callback);
4502
+ return this;
4503
+ };
4504
+ Pusher.prototype.unbind_all = function (callback) {
4505
+ this.global_emitter.unbind_all();
4506
+ return this;
4507
+ };
4508
+ Pusher.prototype.subscribeAll = function () {
4509
+ var channelName;
4510
+ for (channelName in this.channels.channels) {
4511
+ if (this.channels.channels.hasOwnProperty(channelName)) {
4512
+ this.subscribe(channelName);
4513
+ }
4514
+ }
4515
+ };
4516
+ Pusher.prototype.subscribe = function (channel_name) {
4517
+ var channel = this.channels.add(channel_name, this);
4518
+ if (channel.subscriptionPending && channel.subscriptionCancelled) {
4519
+ channel.reinstateSubscription();
4520
+ }
4521
+ else if (!channel.subscriptionPending &&
4522
+ this.connection.state === 'connected') {
4523
+ channel.subscribe();
4524
+ }
4525
+ return channel;
4526
+ };
4527
+ Pusher.prototype.unsubscribe = function (channel_name) {
4528
+ var channel = this.channels.find(channel_name);
4529
+ if (channel && channel.subscriptionPending) {
4530
+ channel.cancelSubscription();
4531
+ }
4532
+ else {
4533
+ channel = this.channels.remove(channel_name);
4534
+ if (channel && this.connection.state === 'connected') {
4535
+ channel.unsubscribe();
4536
+ }
4537
+ }
4538
+ };
4539
+ Pusher.prototype.send_event = function (event_name, data, channel) {
4540
+ return this.connection.send_event(event_name, data, channel);
4541
+ };
4542
+ Pusher.prototype.shouldUseTLS = function () {
4543
+ return this.config.useTLS;
4544
+ };
4545
+ Pusher.instances = [];
4546
+ Pusher.isReady = false;
4547
+ Pusher.logToConsole = false;
4548
+ Pusher.Runtime = runtime;
4549
+ Pusher.ScriptReceivers = runtime.ScriptReceivers;
4550
+ Pusher.DependenciesReceivers = runtime.DependenciesReceivers;
4551
+ Pusher.auth_callbacks = runtime.auth_callbacks;
4552
+ return Pusher;
4553
+ }());
4554
+ /* harmony default export */ var core_pusher = __webpack_exports__["default"] = (pusher_Pusher);
4555
+ function checkAppKey(key) {
4556
+ if (key === null || key === undefined) {
4557
+ throw 'You must pass your app key when you instantiate Pusher.';
4558
+ }
4559
+ }
4560
+ runtime.setup(pusher_Pusher);
4561
+
4562
+
4563
+ /***/ })
4564
+ /******/ ]);
4565
+ });