/* twilio-chat.js 2.2.0
The following license applies to all parts of this software except as
documented below.
Copyright (c) 2018, Twilio, inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. Neither the name of Twilio nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software includes javascript-state-machine under the following license.
Copyright (c) 2012, 2013, 2014, 2015, Jake Gordon and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
This software includes durational under the following license.
Copyright (c) 2014 Micheil Smith
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
This software includes loglevel under the following license.
Copyright (c) 2013 Tim Perry
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
This software includes q under the following license.
Copyright 2009–2014 Kristopher Michael Kowal. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
This software includes platform.js under the following license.
Copyright 2014 Benjamin Tan
Copyright 2011-2015 John-David Dalton
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;((t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Twilio||(t.Twilio={})).Chat=e()}}(function(){var d,e,t;return function s(o,a,u){function c(r,e){if(!a[r]){if(!o[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=a[r]={exports:{}};o[r][0].call(i.exports,function(e){var t=o[r][1][e];return c(t||e)},i,i.exports,s,o,a,u)}return a[r].exports}for(var l="function"==typeof require&&require,e=0;eidentity parameter");case 2:return e.abrupt("return",this.membersEntity.add(t));case 3:case"end":return e.stop()}},e,this)}))}},{key:"advanceLastConsumedMessageIndex",value:function(t){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((0,p.default)(t)){e.next=2;break}throw new Error("Channel.advanceLastConsumedMessageIndex requires an integral index parameter");case 2:return e.next=4,this._subscribeStreams();case 4:return e.abrupt("return",this.services.consumptionHorizon.advanceLastConsumedMessageIndexForChannel(this.sid,t,this.lastConsumedMessageIndex));case 5:case"end":return e.stop()}},e,this)}))}},{key:"decline",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.session.addCommand("declineInvitation",{channelSid:this.sid});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}},e,this)}))}},{key:"delete",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.session.addCommand("destroyChannel",{channelSid:this.sid});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}},e,this)}))}},{key:"getAttributes",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribe();case 2:return e.abrupt("return",this.attributes);case 3:case"end":return e.stop()}},e,this)}))}},{key:"getMessages",value:function(t,r,n){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===r||(0,p.default)(r)){e.next=2;break}throw new Error("Anchor should be a valid message index");case 2:return e.next=4,this._subscribeStreams();case 4:return e.abrupt("return",this.messagesEntity.getMessages(t,r,n));case 5:case"end":return e.stop()}},e,this)}))}},{key:"getMembers",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:return e.abrupt("return",this.membersEntity.getMembers());case 3:case"end":return e.stop()}},e,this)}))}},{key:"getMembersCount",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){var t,r,n;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.session.getSessionLinks();case 2:return t=e.sent,r=new k.UriBuilder(t.publicChannelsUrl).path(this.sid).build(),e.next=6,this.services.network.get(r);case 6:return n=e.sent,e.abrupt("return",n.body.members_count);case 8:case"end":return e.stop()}},e,this)}))}},{key:"getMessagesCount",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){var t,r,n;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.session.getSessionLinks();case 2:return t=e.sent,r=new k.UriBuilder(t.publicChannelsUrl).path(this.sid).build(),e.next=6,this.services.network.get(r);case 6:return n=e.sent,e.abrupt("return",n.body.messages_count);case 8:case"end":return e.stop()}},e,this)}))}},{key:"getUnconsumedMessagesCount",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){var t,r,n;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.session.getSessionLinks();case 2:return t=e.sent,r=new k.UriBuilder(t.myChannelsUrl).arg("ChannelSid",this.sid).build(),e.next=6,this.services.network.get(r);case 6:if(!(n=e.sent).body.channels.length){e.next=13;break}if(void 0===n.body.channels[0].unread_messages_count||null==n.body.channels[0].unread_messages_count){e.next=12;break}return e.abrupt("return",n.body.channels[0].unread_messages_count);case 12:return e.abrupt("return",null);case 13:throw new Error("Channel is not in user channels list");case 14:case"end":return e.stop()}},e,this)}))}},{key:"invite",value:function(t){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof t&&t.length){e.next=2;break}throw new Error("Channel.invite requires an identity parameter");case 2:return e.abrupt("return",this.membersEntity.invite(t));case 3:case"end":return e.stop()}},e,this)}))}},{key:"join",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.session.addCommand("joinChannelV2",{channelSid:this.sid});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}},e,this)}))}},{key:"leave",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("joined"!==this.state.status){e.next=3;break}return e.next=3,this.services.session.addCommand("leaveChannel",{channelSid:this.sid});case 3:return e.abrupt("return",this);case 4:case"end":return e.stop()}},e,this)}))}},{key:"removeMember",value:function(t){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&("string"==typeof t||t instanceof _.Member)){e.next=2;break}throw new Error("Channel.removeMember requires a member parameter.");case 2:return e.abrupt("return",this.membersEntity.remove("string"==typeof t?t:t.identity));case 3:case"end":return e.stop()}},e,this)}))}},{key:"sendMessage",value:function(n,i){return u(this,void 0,void 0,s.default.mark(function e(){var t,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof n){e.next=7;break}return e.next=3,this.messagesEntity.send(n,i);case 3:return t=e.sent,e.abrupt("return",t.messageId);case 7:return e.next=9,this.messagesEntity.sendMedia(n,i);case 9:return r=e.sent,e.abrupt("return",r.messageId);case 11:case"end":return e.stop()}},e,this)}))}},{key:"setAllMessagesConsumed",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){var t;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:return e.next=4,this.getMessages(1);case 4:if(!(0<(t=e.sent).items.length)){e.next=7;break}return e.abrupt("return",this.advanceLastConsumedMessageIndex(t.items[0].index));case 7:return e.abrupt("return",c.default.resolve(0));case 8:case"end":return e.stop()}},e,this)}))}},{key:"setNoMessagesConsumed",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:return e.abrupt("return",this.services.consumptionHorizon.updateLastConsumedMessageIndexForChannel(this.sid,null));case 3:case"end":return e.stop()}},e,this)}))}},{key:"typing",value:function(){return this.services.typingIndicator.send(this.sid)}},{key:"updateAttributes",value:function(t){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=4;break}throw new Error("Attributes can't be null");case 4:if(t.constructor===Object){e.next=6;break}throw new Error("Attributes must be a valid JSON object.");case 6:return e.next=8,this.services.session.addCommand("editAttributes",{channelSid:this.sid,attributes:(0,d.default)(t)});case 8:return e.abrupt("return",this);case 9:case"end":return e.stop()}},e,this)}))}},{key:"updateFriendlyName",value:function(t){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state.friendlyName===t){e.next=3;break}return e.next=3,this.services.session.addCommand("editFriendlyName",{channelSid:this.sid,friendlyName:t});case 3:return e.abrupt("return",this);case 4:case"end":return e.stop()}},e,this)}))}},{key:"updateLastConsumedMessageIndex",value:function(t){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((0,p.default)(t)||null===t){e.next=2;break}throw new Error('Incorrect argument "index": integer number or null expected');case 2:return e.next=4,this._subscribeStreams();case 4:return e.abrupt("return",this.services.consumptionHorizon.updateLastConsumedMessageIndexForChannel(this.sid,t));case 5:case"end":return e.stop()}},e,this)}))}},{key:"updateUniqueName",value:function(t){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state.uniqueName===t){e.next=3;break}return e.next=3,this.services.session.addCommand("editUniqueName",{channelSid:this.sid,uniqueName:t});case 3:return e.abrupt("return",this);case 4:case"end":return e.stop()}},e,this)}))}},{key:"getUserDescriptors",value:function(){return u(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.services.users.getChannelUserDescriptors(this.sid));case 1:case"end":return e.stop()}},e,this)}))}},{key:"status",get:function(){return this.state.status}},{key:"type",get:function(){return this.state.type}},{key:"uniqueName",get:function(){return this.state.uniqueName}},{key:"isPrivate",get:function(){return"private"===this.state.type}},{key:"friendlyName",get:function(){return this.state.friendlyName}},{key:"dateUpdated",get:function(){return this.state.dateUpdated}},{key:"dateCreated",get:function(){return this.state.dateCreated}},{key:"createdBy",get:function(){return this.state.createdBy}},{key:"attributes",get:function(){return this.state.attributes}},{key:"lastConsumedMessageIndex",get:function(){return this.state.lastConsumedMessageIndex}},{key:"lastMessage",get:function(){return this.state.lastMessage}}],[{key:"preprocessUpdate",value:function(t,r){try{"string"==typeof t.attributes?t.attributes=JSON.parse(t.attributes):t.attributes&&(0,d.default)(t.attributes)}catch(e){w.warn("Retrieved malformed attributes from the server for channel: "+r),t.attributes={}}try{t.dateCreated&&(t.dateCreated=new Date(t.dateCreated))}catch(e){w.warn("Retrieved malformed dateCreated from the server for channel: "+r),delete t.dateCreated}try{t.dateUpdated&&(t.dateUpdated=new Date(t.dateUpdated))}catch(e){w.warn("Retrieved malformed dateUpdated from the server for channel: "+r),delete t.dateUpdated}try{t.lastMessage&&t.lastMessage.timestamp&&(t.lastMessage.timestamp=new Date(t.lastMessage.timestamp))}catch(e){w.warn("Retrieved malformed lastMessage.timestamp from the server for channel: "+r),delete t.lastMessage.timestamp}}}]),f}(l.EventEmitter);r.Channel=S},{"./data/members":6,"./data/messages":7,"./logger":14,"./member":16,"./util":30,"babel-runtime/core-js/get-iterator":32,"babel-runtime/core-js/json/stringify":34,"babel-runtime/core-js/map":35,"babel-runtime/core-js/number/is-integer":36,"babel-runtime/core-js/object/get-prototype-of":42,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,"babel-runtime/helpers/inherits":53,"babel-runtime/helpers/possibleConstructorReturn":54,"babel-runtime/regenerator":57,events:214}],2:[function(e,t,r){"use strict";var n=s(e("babel-runtime/helpers/classCallCheck")),i=s(e("babel-runtime/helpers/createClass"));function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var o=e("./logger"),a=e("./channel"),u=new o.Logger;function c(e){try{return new Date(e)}catch(e){return null}}var l=function(){function r(e,t){(0,n.default)(this,r),this.client=e,(this.descriptor=t).sid?(this.sid=t.sid,this.channel=t.sid+".channel"):(this.sid=t.channel_sid,this.channel=t.channel_sid+".channel"),this.uniqueName=t.unique_name,this.friendlyName=t.friendly_name,this.attributes=function(e){try{return JSON.parse(e)}catch(e){u.warn("Failed to parse channel attributes",e)}return{}}(t.attributes),this.createdBy=t.created_by,this.dateCreated=c(t.date_created),this.dateUpdated=c(t.date_updated),this.messagesCount=t.messages_count,this.membersCount=t.members_count,this.type=t.type,this.isPrivate="private"==t.type,this.lastConsumedMessageIndex=t.last_consumed_message_index,t.status?this.status=a.filterStatus(t.status):this.status="unknown"}return(0,i.default)(r,[{key:"getChannel",value:function(){return this.client.getChannelBySid(this.sid)}}]),r}();r.ChannelDescriptor=l},{"./channel":1,"./logger":14,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51}],3:[function(e,t,r){"use strict";var s=l(e("babel-runtime/regenerator")),o=l(e("babel-runtime/helpers/extends")),n=l(e("babel-runtime/core-js/object/get-prototype-of")),i=l(e("babel-runtime/helpers/createClass")),a=l(e("babel-runtime/helpers/possibleConstructorReturn")),u=l(e("babel-runtime/helpers/inherits")),c=l(e("babel-runtime/helpers/classCallCheck")),f=l(e("babel-runtime/core-js/promise"));function l(e){return e&&e.__esModule?e:{default:e}}var h=function(s,o,a,u){return new(a||(a=f.default))(function(e,t){function r(e){try{i(u.next(e))}catch(e){t(e)}}function n(e){try{i(u.throw(e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(r,n)}i((u=u.apply(s,o||[])).next())})};Object.defineProperty(r,"__esModule",{value:!0});var d=e("events"),p=e("./logger"),m=e("./configuration"),v=e("./user");r.User=v.User;var b=e("./data/publicchannels"),y=e("./services/network"),_=e("./interfaces/notificationtypes"),g=e("./synclist"),k=e("twilsock"),w=e("twilio-notifications"),x=e("twilio-transport"),C=e("twilio-sync"),j=e("twilio-ems-client"),S=e("twilio-mcs-client"),E=e("./session"),T=e("./data/channels"),I=e("./data/users"),R=e("./services/typingindicator"),M=e("./services/consumptionhorizon"),P=e("./data/userchannels"),A=e("./pushnotification");r.PushNotification=A.PushNotification;var O=e("./util"),N=p.Logger.scope(""),D=e("./../package.json").version,U="A valid Twilio token should be provided",L=function e(){(0,c.default)(this,e)},F=function(e){function l(e,t){(0,c.default)(this,l);var r=(0,a.default)(this,(l.__proto__||(0,n.default)(l)).call(this));if(r.connectionState="connecting",r.sessionPromise=null,r.channelsPromise=null,r.version=D,r.parsePushNotification=l.parsePushNotification,r.options=t||{},r.options.disableDeepClone||(r.options=O.deepClone(r.options)),r.options.logLevel=r.options.logLevel||"error",r.options.productId="ip_messaging",r.options.Sync=r.options.Sync||{},r.options.Sync.enableSessionStorage||(r.options.Sync.enableSessionStorage=!1),!e)throw new Error(U);return N.setLevel(r.options.logLevel),r.services=new L,r.config=new m.Configuration(null,r.options),r.options.twilsockClient=r.options.twilsockClient||new k(e,r.options),r.options.transport=r.options.transport||new x.Transport(r.options.twilsockClient,r.options),r.options.emsClient=r.options.emsClient||new j.EmsClient(r.options),r.options.notificationsClient=r.options.notificationsClient||new w(e,r.options),r.options.syncClient=r.options.syncClient||new C.SyncClient(e,r.options),r.services.emsClient=r.options.emsClient,r.services.syncClient=r.options.syncClient,r.services.transport=r.options.transport,r.services.twilsockClient=r.options.twilsockClient,r.services.notificationClient=r.options.notificationsClient,r.services.session=new E.Session(r.services,r.config),r.sessionPromise=r.services.session.initialize(),r.services.network=new y.Network(r.config,r.services),r.services.users=new I.Users({session:r.services.session,network:r.services.network,syncClient:r.services.syncClient}),r.services.users.on("userSubscribed",r.emit.bind(r,"userSubscribed")),r.services.users.on("userUpdated",r.emit.bind(r,"userUpdated")),r.services.users.on("userUnsubscribed",r.emit.bind(r,"userUnsubscribed")),r.services.consumptionHorizon=new M.ConsumptionHorizon(r.services),r.services.typingIndicator=new R.TypingIndicator(r.config,{transport:r.services.transport,notificationClient:r.services.notificationClient},r.getChannelBySid.bind(r)),r.services.syncList=new g.SyncList(r.services),r.channels=new T.Channels(r.services),r.channelsPromise=r.sessionPromise.then(function(){return r.channels.on("channelAdded",r.emit.bind(r,"channelAdded")),r.channels.on("channelRemoved",r.emit.bind(r,"channelRemoved")),r.channels.on("channelInvited",r.emit.bind(r,"channelInvited")),r.channels.on("channelJoined",r.emit.bind(r,"channelJoined")),r.channels.on("channelLeft",r.emit.bind(r,"channelLeft")),r.channels.on("channelUpdated",r.emit.bind(r,"channelUpdated")),r.channels.on("memberJoined",r.emit.bind(r,"memberJoined")),r.channels.on("memberLeft",r.emit.bind(r,"memberLeft")),r.channels.on("memberUpdated",r.emit.bind(r,"memberUpdated")),r.channels.on("messageAdded",r.emit.bind(r,"messageAdded")),r.channels.on("messageUpdated",r.emit.bind(r,"messageUpdated")),r.channels.on("messageRemoved",r.emit.bind(r,"messageRemoved")),r.channels.on("typingStarted",r.emit.bind(r,"typingStarted")),r.channels.on("typingEnded",r.emit.bind(r,"typingEnded")),r.channels.fetchChannels()}).then(function(){return r.channels}),r.services.notificationClient.on("connectionStateChanged",function(e){var t=null;switch(e){case"connected":t="connected";break;case"rejected":case"denied":t="denied";break;case"disconnecting":t="disconnecting";break;case"disconnected":t="disconnected";break;default:t="connecting"}t!==r.connectionState&&(r.connectionState=t,r.emit("connectionStateChanged",r.connectionState))}),r.fpaToken=e,r}return(0,u.default)(l,e),(0,i.default)(l,[{key:"subscribeToPushNotifications",value:function(t){var r=this,n=[];return[_.NotificationTypes.NEW_MESSAGE,_.NotificationTypes.ADDED_TO_CHANNEL,_.NotificationTypes.INVITED_TO_CHANNEL,_.NotificationTypes.REMOVED_FROM_CHANNEL,_.NotificationTypes.TYPING_INDICATOR,_.NotificationTypes.CONSUMPTION_UPDATE].forEach(function(e){n.push(r.services.notificationClient.subscribe(e,t))}),f.default.all(n)}},{key:"unsubscribeFromPushNotifications",value:function(t){var r=this,n=[];return[_.NotificationTypes.NEW_MESSAGE,_.NotificationTypes.ADDED_TO_CHANNEL,_.NotificationTypes.INVITED_TO_CHANNEL,_.NotificationTypes.REMOVED_FROM_CHANNEL,_.NotificationTypes.TYPING_INDICATOR,_.NotificationTypes.CONSUMPTION_UPDATE].forEach(function(e){n.push(r.services.notificationClient.unsubscribe(e,t))}),f.default.all(n)}},{key:"initialize",value:function(){return h(this,void 0,void 0,s.default.mark(function e(){var t,r,n,i=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.emsClient.setToken(this.fpaToken);case 2:return t=e.sent,this.config.updateToken(t.token),e.next=6,this.sessionPromise;case 6:return l.supportedPushChannels.forEach(function(e){return i.subscribeToPushNotifications(e)}),e.next=9,this.services.session.getSessionLinks();case 9:return r=e.sent,this.services.publicChannels=new b.PublicChannels(this,this.services,r.publicChannelsUrl),this.services.userChannels=new P.UserChannels(this,this.services,r.myChannelsUrl),(n=(0,o.default)(this.options)).transport=null,this.services.mcsClient=new S.McsClient(this.config.token,r.mediaServiceUrl,n),e.next=17,this.services.typingIndicator.initialize();case 17:case"end":return e.stop()}},e,this)}))}},{key:"shutdown",value:function(){return h(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.twilsockClient.disconnect();case 2:case"end":return e.stop()}},e,this)}))}},{key:"updateToken",value:function(r){return h(this,void 0,void 0,s.default.mark(function e(){var t=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(N.info("updateToken"),r){e.next=3;break}throw new Error(U);case 3:if(r!==this.fpaToken){e.next=5;break}return e.abrupt("return",this);case 5:return e.abrupt("return",this.services.emsClient.setToken(r).then(function(e){if("NEW"===e.status)throw N.error("Can't extend token:",e.reason),new Error("Can't extend token:"+e.reason);return e.token}).then(function(e){return t.services.twilsockClient.updateToken(r).then(function(){return t.services.syncClient.updateToken(r)}).then(function(){return t.services.notificationClient.updateToken(r)}).then(function(){return t.services.mcsClient.updateToken(r)}).then(function(){return t.sessionPromise}).then(function(){return e})}).then(function(e){return t.config.updateToken(e),t.fpaToken=r,t}));case 6:case"end":return e.stop()}},e,this)}))}},{key:"getChannelBySid",value:function(r){return h(this,void 0,void 0,s.default.mark(function e(){var t=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r&&"string"==typeof r){e.next=2;break}throw new Error("Client.getChannelBySid requires a channelSid parameter");case 2:return e.abrupt("return",this.channels.syncListRead.promise.then(function(){return t.channels.getChannel(r).then(function(e){return e||t.services.publicChannels.getChannelBySid(r).then(function(e){return t.channels.pushChannel(e)})})}));case 3:case"end":return e.stop()}},e,this)}))}},{key:"getChannelByUniqueName",value:function(r){return h(this,void 0,void 0,s.default.mark(function e(){var t=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r&&"string"==typeof r){e.next=2;break}throw new Error("Client.getChannelByUniqueName requires a uniqueName parameter");case 2:return e.abrupt("return",this.channels.syncListRead.promise.then(function(){return t.services.publicChannels.getChannelByUniqueName(r).then(function(e){return t.channels.pushChannel(e)})}));case 3:case"end":return e.stop()}},e,this)}))}},{key:"getSubscribedChannels",value:function(t){return this.channelsPromise.then(function(e){return e.getChannels(t)})}},{key:"getLocalChannels",value:function(n){return this.channelsPromise.then(function(e){var t=[];e.channels.forEach(function(e){t.push(e)});var r="ascending";if(n&&n.order)if("descending"===n.order)r="descending";else if("ascending"!==n.order)throw new Error("Sorting order should be `ascending` or `descending`");if(n&&n.criteria)if("lastMessage"===n.criteria)t.sort(function(e,t){return l.compareChannelsByLastMessage(e,t,r)});else if("uniqueName"===n.criteria)t.sort(function(e,t){return l.compareChannelsByStringProperty(e.uniqueName,t.uniqueName,r)});else{if("friendlyName"!==n.criteria)throw new Error("Sorting criteria should be one of `lastMessage`, `uniqueName` or `friendlyName`");t.sort(function(e,t){return l.compareChannelsByStringProperty(e.friendlyName,t.friendlyName,r)})}return t})}},{key:"getPublicChannelDescriptors",value:function(){return this.services.publicChannels.getChannels()}},{key:"getUserChannelDescriptors",value:function(){return this.services.userChannels.getChannels()}},{key:"createChannel",value:function(t){return t=t||{},this.channelsPromise.then(function(e){return e.addChannel(t)})}},{key:"setPushRegistrationId",value:function(r,n){return h(this,void 0,void 0,s.default.mark(function e(){var t=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(-1!==l.supportedPushChannels.indexOf(r)){e.next=2;break}throw new Error("Invalid or unsupported channelType: "+r);case 2:return e.next=4,this.subscribeToPushNotifications(r).then(function(){return t.services.notificationClient.setPushRegistrationId(n,r)});case 4:case"end":return e.stop()}},e,this)}))}},{key:"unsetPushRegistrationId",value:function(t){return h(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(-1!==l.supportedPushChannels.indexOf(t)){e.next=2;break}throw new Error("Invalid or unsupported channelType: "+t);case 2:return e.next=4,this.unsubscribeFromPushNotifications(t);case 4:case"end":return e.stop()}},e,this)}))}},{key:"handlePushNotification",value:function(t){return h(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:N.debug("handlePushNotification, notificationPayload=",t),this.emit("pushNotification",l.parsePushNotification(t));case 2:case"end":return e.stop()}},e,this)}))}},{key:"getUser",value:function(e){return this.services.users.getUser(e)}},{key:"getUserDescriptor",value:function(t){return h(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.services.users.getUserDescriptor(t));case 1:case"end":return e.stop()}},e,this)}))}},{key:"getSubscribedUsers",value:function(){return h(this,void 0,void 0,s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.services.users.getSubscribedUsers());case 1:case"end":return e.stop()}},e,this)}))}},{key:"user",get:function(){return this.services.users.myself}},{key:"reachabilityEnabled",get:function(){return this.services.session.reachabilityEnabled}},{key:"token",get:function(){return this.config.token}}],[{key:"create",value:function(r,n){return h(this,void 0,void 0,s.default.mark(function e(){var t;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=new l(r,n),e.next=3,t.initialize();case 3:return e.abrupt("return",t);case 4:case"end":return e.stop()}},e,this)}))}},{key:"compareChannelsByLastMessage",value:function(e,t,r){if(e.lastMessage&&t.lastMessage){if(e.lastMessage.timestamp&&t.lastMessage.timestamp)return e.lastMessage.timestamp.getTime() must contain non-empty contentType and media");case 15:return e.next=17,this.services.mcsClient.post(r.contentType,r.media);case 17:t=e.sent;case 18:return e.abrupt("return",this.services.session.addCommand("sendMediaMessage",{channelSid:this.channel.sid,mediaSid:t.sid,attributes:(0,s.default)(i)}));case 19:case"end":return e.stop()}},e,this)}))}},{key:"getMessages",value:function(e,t,r){return t=void 0!==t?t:"end",r=r||"backwards",this._getMessages(e,t,r)}},{key:"wrapPaginator",value:function(t,r,n){var i=this,s="desc"===t,o=function(){return r.nextPage().then(function(e){return i.wrapPaginator(t,e,n)})},a=function(){return r.prevPage().then(function(e){return i.wrapPaginator(t,e,n)})};return n(r.items).then(function(e){return{items:e.sort(function(e,t){return e.index-t.index}),hasPrevPage:s?r.hasNextPage:r.hasPrevPage,hasNextPage:s?r.hasPrevPage:r.hasNextPage,prevPage:s?o:a,nextPage:s?a:o}})}},{key:"_upsertMessage",value:function(e,t){var r=this,n=this.messagesByIndex.get(e);if(n)return n;var i=new v.Message(this.channel,this.services,e,t);return this.messagesByIndex.set(i.index,i),i.on("updated",function(){return r.emit("messageUpdated",i)}),i}},{key:"_getMessages",value:function(t,r,e){var n=this;r=void 0!==r?r:"end",t=t||30;var i="backwards"===e?"desc":"asc";return this.messagesListPromise.then(function(e){return e.getItems({from:"end"!==r?r:void 0,pageSize:t,order:i})}).then(function(e){return n.wrapPaginator(i,e,function(e){return h.default.all(e.map(function(e){return n._upsertMessage(e.index,e.value)}))})})}}]),n}(p.EventEmitter);r.Messages=_},{"../logger":14,"../message":17,"babel-runtime/core-js/json/stringify":34,"babel-runtime/core-js/map":35,"babel-runtime/core-js/object/get-prototype-of":42,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,"babel-runtime/helpers/inherits":53,"babel-runtime/helpers/possibleConstructorReturn":54,"babel-runtime/regenerator":57,events:214,"isomorphic-form-data":216}],8:[function(e,t,r){"use strict";var s=a(e("babel-runtime/regenerator")),i=a(e("babel-runtime/helpers/classCallCheck")),o=a(e("babel-runtime/helpers/createClass")),n=a(e("babel-runtime/core-js/promise"));function a(e){return e&&e.__esModule?e:{default:e}}var u=function(s,o,a,u){return new(a||(a=n.default))(function(e,t){function r(e){try{i(u.next(e))}catch(e){t(e)}}function n(e){try{i(u.throw(e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(r,n)}i((u=u.apply(s,o||[])).next())})};Object.defineProperty(r,"__esModule",{value:!0});var c=e("../util/index"),l=e("../restpaginator"),f=e("../channeldescriptor"),h=function(){function n(e,t,r){(0,i.default)(this,n),this.client=e,this.services=t,this.url=r}return(0,o.default)(n,[{key:"getChannels",value:function(){var i=0=this.fifoStackMaxLength&&this.subscribedUsers.get(this.fifoStack.shift()).unsubscribe(),this.fifoStack.push(e.identity),this.subscribedUsers.set(e.identity,e),this.emit("userSubscribed",e))}},{key:"getUser",value:function(i){var s=1 is a required parameter for updateBody");case 2:return e.next=4,this.services.session.addCommand("editMessage",{channelSid:this.channel.sid,messageIdx:this.index.toString(),text:t});case 4:return e.abrupt("return",this);case 5:case"end":return e.stop()}},e,this)}))}},{key:"updateAttributes",value:function(t){return h(this,void 0,void 0,i.default.mark(function e(){return i.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==t){e.next=4;break}throw new Error("Attributes is a required parameter for updateAttributes");case 4:if(t.constructor===Object){e.next=6;break}throw new Error("Attributes must be a valid JSON object");case 6:return e.next=8,this.services.session.addCommand("editMessageAttributes",{channelSid:this.channel.sid,messageIdx:this.index,attributes:(0,n.default)(t)});case 8:return e.abrupt("return",this);case 9:case"end":return e.stop()}},e,this)}))}},{key:"sid",get:function(){return this.state.sid}},{key:"author",get:function(){return this.state.author}},{key:"body",get:function(){return"media"===this.type?null:this.state.body}},{key:"dateUpdated",get:function(){return this.state.dateUpdated}},{key:"index",get:function(){return this.state.index}},{key:"lastUpdatedBy",get:function(){return this.state.lastUpdatedBy}},{key:"timestamp",get:function(){return this.state.timestamp}},{key:"attributes",get:function(){return this.state.attributes}},{key:"type",get:function(){return this.state.type}},{key:"media",get:function(){return this.state.media}}]),s}(d.EventEmitter);r.Message=_},{"./logger":14,"./media":15,"./util/index":30,"babel-runtime/core-js/json/stringify":34,"babel-runtime/core-js/object/get-prototype-of":42,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,"babel-runtime/helpers/inherits":53,"babel-runtime/helpers/possibleConstructorReturn":54,"babel-runtime/regenerator":57,events:214}],18:[function(e,t,r){"use strict";var n,i=e("babel-runtime/helpers/classCallCheck"),s=(n=i)&&n.__esModule?n:{default:n};Object.defineProperty(r,"__esModule",{value:!0});r.PushNotification=function e(t){(0,s.default)(this,e),this.title=t.title||null,this.body=t.body||null,this.sound=t.sound||null,this.badge=t.badge||null,this.action=t.action||null,this.type=t.type||null,this.data=t.data||{}}},{"babel-runtime/helpers/classCallCheck":50}],19:[function(e,t,r){"use strict";var n=i(e("babel-runtime/core-js/promise")),s=i(e("babel-runtime/helpers/classCallCheck")),o=i(e("babel-runtime/helpers/createClass"));function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var a=function(){function i(e,t,r,n){(0,s.default)(this,i),this.state={prevToken:r,nextToken:n,source:t,items:e}}return(0,o.default)(i,[{key:"nextPage",value:function(){return this.hasNextPage?this.state.source(this.state.nextToken):n.default.reject(new Error("No next page"))}},{key:"prevPage",value:function(){return this.hasPrevPage?this.state.source(this.state.prevToken):n.default.reject(new Error("No previous page"))}},{key:"hasNextPage",get:function(){return!!this.state.nextToken}},{key:"hasPrevPage",get:function(){return!!this.state.prevToken}},{key:"items",get:function(){return this.state.items}}]),i}();r.RestPaginator=a},{"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51}],20:[function(e,t,r){"use strict";var a=o(e("babel-runtime/core-js/promise")),i=o(e("babel-runtime/core-js/map")),n=o(e("babel-runtime/helpers/createClass")),s=o(e("babel-runtime/helpers/classCallCheck"));function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var u=e("../sessionerror"),c=function(){function t(e){(0,s.default)(this,t),this.services=e,this.consumptionHorizonRequests=new i.default,this.consumptionHorizonUpdateTimer=null}return(0,n.default)(t,[{key:"getReportInterval",value:function(){return this.services.session.getConsumptionReportInterval().then(function(e){return 1e3*e.seconds})}},{key:"delayedSendConsumptionHorizon",value:function(e){var t=this;null===this.consumptionHorizonUpdateTimer&&(this.sendConsumptionReport(!0),this.consumptionHorizonUpdateTimer=setTimeout(function(){t.sendConsumptionReport(!1)},e))}},{key:"sendConsumptionReport",value:function(e){var t=this,r=[],n=new i.default;this.consumptionHorizonRequests.forEach(function(e,t){r.push(e.entry),n.set(t,e.promises)}),0=n?s.addPendingConsumptionHorizonRequest(r,o.entry,{resolve:e,reject:t}):s.addPendingConsumptionHorizonRequest(r,{channelSid:r,messageIdx:n},{resolve:e,reject:t}):null!==i&&nthis.cacheLifetime}},{key:"cleanupCache",value:function(){var e=!0,t=!1,r=void 0;try{for(var n,i=(0,c.default)(this.cache);!(e=(n=i.next()).done);e=!0){var s=(0,u.default)(n.value,2),o=s[0],a=s[1];this.isExpired(a.timestamp)&&this.cache.delete(o)}}catch(e){t=!0,r=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw r}}0===this.cache.size&&clearInterval(this.timer)}},{key:"pokeTimer",value:function(){var e=this;this.timer=this.timer||setInterval(function(){return e.cleanupCache()},2*this.cacheLifetime)}},{key:"executeWithRetry",value:function(e){var s=this,o=1Date.now()-this.typingTimeout?i.default.resolve():(this.sentUpdates.set(e,Date.now()),this._send(e))}},{key:"_send",value:function(e){var t=this;l.trace("Sending typing indicator");var r=this.config.typingIndicatorUri,n={"X-Twilio-Token":this.config.token,"Content-Type":"application/x-www-form-urlencoded"},i="ChannelSid="+e;return this.services.transport.post(r,n,i).then(function(e){e.body.hasOwnProperty("typing_timeout")&&(t.serviceTypingTimeout=1e3*e.body.typing_timeout)}).catch(function(e){throw l.error("Failed to send typing indicator:",e),e})}},{key:"typingTimeout",get:function(){return this.config.typingIndicatorTimeoutOverride||this.serviceTypingTimeout||this.config.typingIndicatorTimeoutDefault}}]),n}();r.TypingIndicator=f},{"../interfaces/notificationtypes":12,"../logger":14,"babel-runtime/core-js/map":35,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51}],23:[function(e,t,r){"use strict";var i=n(e("babel-runtime/regenerator")),s=n(e("babel-runtime/core-js/map")),o=n(e("babel-runtime/helpers/createClass")),u=n(e("babel-runtime/helpers/classCallCheck")),c=n(e("babel-runtime/core-js/promise"));function n(e){return e&&e.__esModule?e:{default:e}}var a=function(s,o,a,u){return new(a||(a=c.default))(function(e,t){function r(e){try{i(u.next(e))}catch(e){t(e)}}function n(e){try{i(u.throw(e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(r,n)}i((u=u.apply(s,o||[])).next())})};Object.defineProperty(r,"__esModule",{value:!0});var l=e("uuid"),f=e("platform"),h=e("durational"),d=e("./interfaces/responsecodes"),p=e("./logger"),m=e("./sessionerror"),v=e("./util/deferred"),b=e("./../package.json").version,y=p.Logger.scope("Session");var _=function(){function n(e,t){(0,u.default)(this,n);var r="undefined"!=typeof navigator?f.parse(navigator.userAgent):f;this.services=e,this.config=t,this.sessionInfo=new v.Deferred,this.currentContext={},this.pendingCommands=new s.default,this.sessionStreamPromise=null,this.endpointPlatform=["js",b,r.os,r.name,r.version].join("|")}return(0,o.default)(n,[{key:"handleContextUpdate",value:function(e){var t;(y.info("Session context updated"),y.debug("new session context:",e),this.currentContext=e,t=e,["identity","userInfo","links","myChannels","channels"].some(function(e){return!t.hasOwnProperty(e)}))||(y.info("new session context accepted"),this.sessionInfo.set(e))}},{key:"initialize",value:function(){var t=this,e={type:"IpMsgSession",apiVersion:"3",endpointPlatform:this.endpointPlatform};return this.sessionStreamPromise=this.services.syncClient.list({purpose:"com.twilio.rtd.ipmsg",context:e}).then(function(e){return y.info("Session created",e.sid),e.on("itemAdded",function(e){return t.processCommandResponse(e.item)}),e.on("itemUpdated",function(e){return t.processCommandResponse(e.item)}),e.on("contextUpdated",function(e){return t.handleContextUpdate(e.context)}),e}).catch(function(e){throw y.error("Failed to create session",e),e}),this.sessionStreamPromise}},{key:"addCommand",value:function(e,t){return this.processCommand(e,t)}},{key:"processCommand",value:function(n,i){var s=this,o=!(2>16&255,s[a++]=n>>8&255,s[a++]=255&n;2===i?(n=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,s[a++]=255&n):1===i&&(n=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,s[a++]=n>>8&255,s[a++]=255&n);return s},r.fromByteArray=function(e){for(var t,r=e.length,n=r%3,i="",s=[],o=0,a=r-n;o>2],i+=u[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="=");return s.push(i),s.join("")};for(var u=[],c=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,s=n.length;i>18&63]+u[i>>12&63]+u[i>>6&63]+u[63&i]);return s.join("")}c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},{}],65:[function(f,r,n){(function(O,a){!function(e){if("object"==typeof n&&void 0!==r)r.exports=e();else if("function"==typeof d&&d.amd)d([],e);else{var t;"undefined"!=typeof window?t=window:void 0!==a?t=a:"undefined"!=typeof self&&(t=self),t.Promise=e()}}(function(){var e,t,r;return function s(o,a,u){function c(r,e){if(!a[r]){if(!o[r]){var t="function"==typeof f&&f;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=a[r]={exports:{}};o[r][0].call(i.exports,function(e){var t=o[r][1][e];return c(t||e)},i,i.exports,s,o,a,u)}return a[r].exports}for(var l="function"==typeof f&&f,e=0;e, no stack trace)"}o.inherits(f,Error),f.prototype.uncycle=function(){var e=this._length;if(!(e<2)){for(var t=[],r={},n=0,i=this;void 0!==i;++n)t.push(i),i=i._parent;for(n=(e=this._length=n)-1;0<=n;--n){var s=t[n].stack;void 0===r[s]&&(r[s]=n)}for(n=0;n=s)return r[t]=e,void this._queue.push(t);null!==i&&(i[t]=e);var o=this._callback,a=this._promise._boundValue();this._promise._pushContext();var u=h(o).call(a,e,t,n);if(this._promise._popContext(),u===d)return this._reject(u.e);var c=f(u,this._promise);if(c instanceof l){if((c=c._target())._isPending())return 1<=s&&this._inFlight++,r[t]=p,c._proxyPromiseArray(this,t);if(!c._isFulfilled())return this._reject(c._reason());u=c._value()}r[t]=u}n<=++this._totalResolved&&(null!==i?this._filter(r,i):this._resolve(r))},c.prototype._drainQueue=function(){for(var e=this._queue,t=this._limit,r=this._values;0=this._length&&this._resolve(this._values)},e.prototype._promiseRejected=function(e,t){this._totalResolved++,this._reject(e)},e.prototype.shouldCopyValues=function(){return!0},e.prototype.getActualLength=function(e){return e},e}},{"./util.js":38}],25:[function(e,t,r){"use strict";var o=e("./util.js"),a=o.maybeWrapAsError,n=e("./errors.js"),i=n.TimeoutError,u=n.OperationalError,s=o.haveGetters,c=e("./es5.js");var l,f=/^(?:name|message|stack|cause)$/;function h(e){var t,r;if((r=e)instanceof Error&&c.getPrototypeOf(r)===Error.prototype){(t=new u(e)).name=e.name,t.message=e.message,t.stack=e.stack;for(var n=c.keys(e),i=0;i=this._length){for(var r={},n=this.length(),i=0,s=this.length();i>1},n.prototype.props=function(){return r(this)},n.props=function(e){return r(e)}}},{"./es5.js":14,"./util.js":38}],28:[function(e,t,r){"use strict";function n(e){this._capacity=e,this._length=0,this._front=0}n.prototype._willBeOverCapacity=function(e){return this._capacity=this._length&&this._resolve(this._values)},r.prototype._promiseFulfilled=function(e,t){var r=new n;r._bitField=268435456,r._settledValue=e,this._promiseResolved(t,r)},r.prototype._promiseRejected=function(e,t){var r=new n;r._bitField=134217728,r._settledValue=e,this._promiseResolved(t,r)},e.settle=function(e){return new r(e).promise()},e.prototype.settle=function(){return new r(this).promise()}}},{"./util.js":38}],33:[function(c,e,t){"use strict";e.exports=function(e,t,i){var r=c("./util.js"),n=c("./errors.js").RangeError,s=c("./errors.js").AggregateError,o=r.isArray;function a(e){this.constructor$(e),this._howMany=0,this._unwrap=!1,this._initialized=!1}function u(e,t){if((0|t)!==t||t<0)return i("expecting a positive integer\n\n See http://goo.gl/1wAmHx\n");var r=new a(e),n=r.promise();return r.setHowMany(t),r.init(),n}r.inherits(a,t),a.prototype._init=function(){if(this._initialized)if(0!==this._howMany){this._init$(void 0,-5);var e=o(this._values);!this._isResolved()&&e&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}else this._resolve([])},a.prototype.init=function(){this._initialized=!0,this._init()},a.prototype.setUnwrap=function(){this._unwrap=!0},a.prototype.howMany=function(){return this._howMany},a.prototype.setHowMany=function(e){this._howMany=e},a.prototype._promiseFulfilled=function(e){this._addFulfilled(e),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values))},a.prototype._promiseRejected=function(e){if(this._addRejected(e),this.howMany()>this._canPossiblyFulfill()){for(var t=new s,r=this.length();r=Date.now()},a.prototype._sanitizePriority=function(e){var t;return(t=~~e!==e?5:e)<0?0:9
* @license MIT
*/
"use strict";var n=e("base64-js"),s=e("ieee754");r.Buffer=f,r.SlowBuffer=function(e){+e!=e&&(e=0);return f.alloc(+e)},r.INSPECT_MAX_BYTES=50;var i=2147483647;function o(e){if(i>>1;case"base64":return O(e).length;default:if(n)return A(e).length;t=(""+t).toLowerCase(),n=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):2147483647=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=f.from(t,n)),f.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,n,i){var s,o=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a/=o=2,u/=2,r/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(s=r;s>>10&1023|55296),l=56320|1023&l),n.push(l),i+=f}return function(e){var t=e.length;if(t<=k)return String.fromCharCode.apply(String,e);var r="",n=0;for(;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return C(this,t,r);case"utf8":case"utf-8":return g(this,t,r);case"ascii":return w(this,t,r);case"latin1":case"binary":return x(this,t,r);case"base64":return _(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}.apply(this,arguments)},f.prototype.equals=function(e){if(!f.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===f.compare(this,e)},f.prototype.inspect=function(){var e="",t=r.INSPECT_MAX_BYTES;return 0t&&(e+=" ... ")),""},f.prototype.compare=function(e,t,r,n,i){if(!f.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(i<=n&&r<=t)return 0;if(i<=n)return-1;if(r<=t)return 1;if(this===e)return 0;for(var s=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),a=Math.min(s,o),u=this.slice(n,i),c=e.slice(t,r),l=0;l>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||ithis.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s,o,a,u,c,l,f,h,d,p=!1;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return h=t,d=r,N(A(e,(f=this).length-h),f,h,d);case"ascii":return y(this,e,t,r);case"latin1":case"binary":return y(this,e,t,r);case"base64":return u=this,c=t,l=r,N(O(e),u,c,l);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o=t,a=r,N(function(e,t){for(var r,n,i,s=[],o=0;o>8,i=r%256,s.push(i),s.push(n);return s}(e,(s=this).length-o),s,o,a);default:if(p)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),p=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var k=4096;function w(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;ie.length)throw new RangeError("Index out of range")}function T(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function I(e,t,r,n,i){return t=+t,r>>>=0,i||T(e,0,r,4),s.write(e,t,r,n,23,4),r+4}function R(e,t,r,n,i){return t=+t,r>>>=0,i||T(e,0,r,8),s.write(e,t,r,n,52,8),r+8}f.prototype.slice=function(e,t){var r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):r>>=0,t>>>=0,r||S(e,t,this.length);for(var n=this[e],i=1,s=0;++s>>=0,t>>>=0,r||S(e,t,this.length);for(var n=this[e+--t],i=1;0>>=0,t||S(e,1,this.length),this[e]},f.prototype.readUInt16LE=function(e,t){return e>>>=0,t||S(e,2,this.length),this[e]|this[e+1]<<8},f.prototype.readUInt16BE=function(e,t){return e>>>=0,t||S(e,2,this.length),this[e]<<8|this[e+1]},f.prototype.readUInt32LE=function(e,t){return e>>>=0,t||S(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},f.prototype.readUInt32BE=function(e,t){return e>>>=0,t||S(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},f.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||S(e,t,this.length);for(var n=this[e],i=1,s=0;++s>>=0,t>>>=0,r||S(e,t,this.length);for(var n=t,i=1,s=this[e+--n];0>>=0,t||S(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},f.prototype.readInt16LE=function(e,t){e>>>=0,t||S(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt16BE=function(e,t){e>>>=0,t||S(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt32LE=function(e,t){return e>>>=0,t||S(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},f.prototype.readInt32BE=function(e,t){return e>>>=0,t||S(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},f.prototype.readFloatLE=function(e,t){return e>>>=0,t||S(e,4,this.length),s.read(this,e,!0,23,4)},f.prototype.readFloatBE=function(e,t){return e>>>=0,t||S(e,4,this.length),s.read(this,e,!1,23,4)},f.prototype.readDoubleLE=function(e,t){return e>>>=0,t||S(e,8,this.length),s.read(this,e,!0,52,8)},f.prototype.readDoubleBE=function(e,t){return e>>>=0,t||S(e,8,this.length),s.read(this,e,!1,52,8)},f.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t>>>=0,r>>>=0,n)||E(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,n)||E(this,e,t,r,Math.pow(2,8*r)-1,0);var i=r-1,s=1;for(this[t+i]=255&e;0<=--i&&(s*=256);)this[t+i]=e/s&255;return t+r},f.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,1,255,0),this[t]=255&e,t+1},f.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},f.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);E(this,e,t,r,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s>0)-a&255;return t+r},f.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);E(this,e,t,r,i-1,-i)}var s=r-1,o=1,a=0;for(this[t+s]=255&e;0<=--s&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+r},f.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},f.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},f.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||E(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeFloatLE=function(e,t,r){return I(this,e,t,!0,r)},f.prototype.writeFloatBE=function(e,t,r){return I(this,e,t,!1,r)},f.prototype.writeDoubleLE=function(e,t,r){return R(this,e,t,!0,r)},f.prototype.writeDoubleBE=function(e,t,r){return R(this,e,t,!1,r)},f.prototype.copy=function(e,t,r,n){if(!f.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),0=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(s=t;s>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function O(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(M,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function N(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function D(e){return e instanceof ArrayBuffer||null!=e&&null!=e.constructor&&"ArrayBuffer"===e.constructor.name&&"number"==typeof e.byteLength}function U(e){return e!=e}},{"base64-js":64,ieee754:215}],72:[function(e,t,r){e("../../modules/es6.string.iterator"),e("../../modules/es6.array.from"),t.exports=e("../../modules/_core").Array.from},{"../../modules/_core":106,"../../modules/es6.array.from":180,"../../modules/es6.string.iterator":196}],73:[function(e,t,r){e("../modules/web.dom.iterable"),e("../modules/es6.string.iterator"),t.exports=e("../modules/core.get-iterator")},{"../modules/core.get-iterator":178,"../modules/es6.string.iterator":196,"../modules/web.dom.iterable":208}],74:[function(e,t,r){e("../modules/web.dom.iterable"),e("../modules/es6.string.iterator"),t.exports=e("../modules/core.is-iterable")},{"../modules/core.is-iterable":179,"../modules/es6.string.iterator":196,"../modules/web.dom.iterable":208}],75:[function(e,t,r){var n=e("../../modules/_core"),i=n.JSON||(n.JSON={stringify:JSON.stringify});t.exports=function(e){return i.stringify.apply(i,arguments)}},{"../../modules/_core":106}],76:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/es6.string.iterator"),e("../modules/web.dom.iterable"),e("../modules/es6.map"),e("../modules/es7.map.to-json"),e("../modules/es7.map.of"),e("../modules/es7.map.from"),t.exports=e("../modules/_core").Map},{"../modules/_core":106,"../modules/es6.map":182,"../modules/es6.object.to-string":192,"../modules/es6.string.iterator":196,"../modules/es7.map.from":198,"../modules/es7.map.of":199,"../modules/es7.map.to-json":200,"../modules/web.dom.iterable":208}],77:[function(e,t,r){e("../../modules/es6.number.is-integer"),t.exports=e("../../modules/_core").Number.isInteger},{"../../modules/_core":106,"../../modules/es6.number.is-integer":183}],78:[function(e,t,r){e("../../modules/es6.object.assign"),t.exports=e("../../modules/_core").Object.assign},{"../../modules/_core":106,"../../modules/es6.object.assign":184}],79:[function(e,t,r){e("../../modules/es6.object.create");var n=e("../../modules/_core").Object;t.exports=function(e,t){return n.create(e,t)}},{"../../modules/_core":106,"../../modules/es6.object.create":185}],80:[function(e,t,r){e("../../modules/es6.object.define-properties");var n=e("../../modules/_core").Object;t.exports=function(e,t){return n.defineProperties(e,t)}},{"../../modules/_core":106,"../../modules/es6.object.define-properties":186}],81:[function(e,t,r){e("../../modules/es6.object.define-property");var n=e("../../modules/_core").Object;t.exports=function(e,t,r){return n.defineProperty(e,t,r)}},{"../../modules/_core":106,"../../modules/es6.object.define-property":187}],82:[function(e,t,r){e("../../modules/es6.object.freeze"),t.exports=e("../../modules/_core").Object.freeze},{"../../modules/_core":106,"../../modules/es6.object.freeze":188}],83:[function(e,t,r){e("../../modules/es6.object.get-prototype-of"),t.exports=e("../../modules/_core").Object.getPrototypeOf},{"../../modules/_core":106,"../../modules/es6.object.get-prototype-of":189}],84:[function(e,t,r){e("../../modules/es6.object.keys"),t.exports=e("../../modules/_core").Object.keys},{"../../modules/_core":106,"../../modules/es6.object.keys":190}],85:[function(e,t,r){e("../../modules/es6.object.set-prototype-of"),t.exports=e("../../modules/_core").Object.setPrototypeOf},{"../../modules/_core":106,"../../modules/es6.object.set-prototype-of":191}],86:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/es6.string.iterator"),e("../modules/web.dom.iterable"),e("../modules/es6.promise"),e("../modules/es7.promise.finally"),e("../modules/es7.promise.try"),t.exports=e("../modules/_core").Promise},{"../modules/_core":106,"../modules/es6.object.to-string":192,"../modules/es6.promise":193,"../modules/es6.string.iterator":196,"../modules/es7.promise.finally":201,"../modules/es7.promise.try":202,"../modules/web.dom.iterable":208}],87:[function(e,t,r){e("../../modules/es6.reflect.construct"),t.exports=e("../../modules/_core").Reflect.construct},{"../../modules/_core":106,"../../modules/es6.reflect.construct":194}],88:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/es6.string.iterator"),e("../modules/web.dom.iterable"),e("../modules/es6.set"),e("../modules/es7.set.to-json"),e("../modules/es7.set.of"),e("../modules/es7.set.from"),t.exports=e("../modules/_core").Set},{"../modules/_core":106,"../modules/es6.object.to-string":192,"../modules/es6.set":195,"../modules/es6.string.iterator":196,"../modules/es7.set.from":203,"../modules/es7.set.of":204,"../modules/es7.set.to-json":205,"../modules/web.dom.iterable":208}],89:[function(e,t,r){e("../../modules/es6.symbol"),e("../../modules/es6.object.to-string"),e("../../modules/es7.symbol.async-iterator"),e("../../modules/es7.symbol.observable"),t.exports=e("../../modules/_core").Symbol},{"../../modules/_core":106,"../../modules/es6.object.to-string":192,"../../modules/es6.symbol":197,"../../modules/es7.symbol.async-iterator":206,"../../modules/es7.symbol.observable":207}],90:[function(e,t,r){e("../../modules/es6.string.iterator"),e("../../modules/web.dom.iterable"),t.exports=e("../../modules/_wks-ext").f("iterator")},{"../../modules/_wks-ext":175,"../../modules/es6.string.iterator":196,"../../modules/web.dom.iterable":208}],91:[function(e,t,r){t.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},{}],92:[function(e,t,r){t.exports=function(){}},{}],93:[function(e,t,r){t.exports=function(e,t,r,n){if(!(e instanceof t)||void 0!==n&&n in e)throw TypeError(r+": incorrect invocation!");return e}},{}],94:[function(e,t,r){var n=e("./_is-object");t.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},{"./_is-object":127}],95:[function(e,t,r){var n=e("./_for-of");t.exports=function(e,t){var r=[];return n(e,!1,r.push,r,t),r}},{"./_for-of":116}],96:[function(e,t,r){var u=e("./_to-iobject"),c=e("./_to-length"),l=e("./_to-absolute-index");t.exports=function(a){return function(e,t,r){var n,i=u(e),s=c(i.length),o=l(r,s);if(a&&t!=t){for(;oo;)s.call(e,n=i[o++])&&t.push(n);return t}},{"./_object-gops":145,"./_object-keys":148,"./_object-pie":149}],114:[function(e,t,r){var m=e("./_global"),v=e("./_core"),b=e("./_ctx"),y=e("./_hide"),_="prototype",g=function(e,t,r){var n,i,s,o=e&g.F,a=e&g.G,u=e&g.S,c=e&g.P,l=e&g.B,f=e&g.W,h=a?v:v[t]||(v[t]={}),d=h[_],p=a?m:u?m[t]:(m[t]||{})[_];for(n in a&&(r=t),r)(i=!o&&p&&void 0!==p[n])&&n in h||(s=i?p[n]:r[n],h[n]=a&&"function"!=typeof p[n]?r[n]:l&&i?b(s,m):f&&p[n]==s?function(n){var e=function(e,t,r){if(this instanceof n){switch(arguments.length){case 0:return new n;case 1:return new n(e);case 2:return new n(e,t)}return new n(e,t,r)}return n.apply(this,arguments)};return e[_]=n[_],e}(s):c&&"function"==typeof s?b(Function.call,s):s,c&&((h.virtual||(h.virtual={}))[n]=s,e&g.R&&d&&!d[n]&&y(d,n,s)))};g.F=1,g.G=2,g.S=4,g.P=8,g.B=16,g.W=32,g.U=64,g.R=128,t.exports=g},{"./_core":106,"./_ctx":108,"./_global":117,"./_hide":119}],115:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],116:[function(e,t,r){var h=e("./_ctx"),d=e("./_iter-call"),p=e("./_is-array-iter"),m=e("./_an-object"),v=e("./_to-length"),b=e("./core.get-iterator-method"),y={},_={};(r=t.exports=function(e,t,r,n,i){var s,o,a,u,c=i?function(){return e}:b(e),l=h(r,n,t?2:1),f=0;if("function"!=typeof c)throw TypeError(e+" is not iterable!");if(p(c)){for(s=v(e.length);fdocument.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l[c][o[r]];return l()};e.exports=Object.create||function(e,t){var r;return null!==e?(u[c]=i(e),r=new u,u[c]=null,r[a]=e):r=l(),void 0===t?r:s(r,t)}},{"./_an-object":94,"./_dom-create":111,"./_enum-bug-keys":112,"./_html":120,"./_object-dps":141,"./_shared-key":161}],140:[function(e,t,r){var n=e("./_an-object"),i=e("./_ie8-dom-define"),s=e("./_to-primitive"),o=Object.defineProperty;r.f=e("./_descriptors")?Object.defineProperty:function(e,t,r){if(n(e),t=s(t,!0),n(r),i)try{return o(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},{"./_an-object":94,"./_descriptors":110,"./_ie8-dom-define":121,"./_to-primitive":171}],141:[function(e,t,r){var o=e("./_object-dp"),a=e("./_an-object"),u=e("./_object-keys");t.exports=e("./_descriptors")?Object.defineProperties:function(e,t){a(e);for(var r,n=u(t),i=n.length,s=0;si;)o(n,r=t[i++])&&(~u(s,r)||s.push(r));return s}},{"./_array-includes":96,"./_has":118,"./_shared-key":161,"./_to-iobject":168}],148:[function(e,t,r){var n=e("./_object-keys-internal"),i=e("./_enum-bug-keys");t.exports=Object.keys||function(e){return n(e,i)}},{"./_enum-bug-keys":112,"./_object-keys-internal":147}],149:[function(e,t,r){r.f={}.propertyIsEnumerable},{}],150:[function(e,t,r){var i=e("./_export"),s=e("./_core"),o=e("./_fails");t.exports=function(e,t){var r=(s.Object||{})[e]||Object[e],n={};n[e]=t(r),i(i.S+i.F*o(function(){r(1)}),"Object",n)}},{"./_core":106,"./_export":114,"./_fails":115}],151:[function(e,t,r){t.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},{}],152:[function(e,t,r){var n=e("./_an-object"),i=e("./_is-object"),s=e("./_new-promise-capability");t.exports=function(e,t){if(n(e),i(t)&&t.constructor===e)return t;var r=s.f(e);return(0,r.resolve)(t),r.promise}},{"./_an-object":94,"./_is-object":127,"./_new-promise-capability":137}],153:[function(e,t,r){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],154:[function(e,t,r){var i=e("./_hide");t.exports=function(e,t,r){for(var n in t)r&&e[n]?e[n]=t[n]:i(e,n,t[n]);return e}},{"./_hide":119}],155:[function(e,t,r){t.exports=e("./_hide")},{"./_hide":119}],156:[function(e,t,r){"use strict";var n=e("./_export"),o=e("./_a-function"),a=e("./_ctx"),u=e("./_for-of");t.exports=function(e){n(n.S,e,{from:function(e){var t,r,n,i,s=arguments[1];return o(this),(t=void 0!==s)&&o(s),null==e?new this:(r=[],t?(n=0,i=a(s,arguments[2],2),u(e,!1,function(e){r.push(i(e,n++))})):u(e,!1,r.push,r),new this(r))}})}},{"./_a-function":91,"./_ctx":108,"./_export":114,"./_for-of":116}],157:[function(e,t,r){"use strict";var n=e("./_export");t.exports=function(e){n(n.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},{"./_export":114}],158:[function(t,e,r){var n=t("./_is-object"),i=t("./_an-object"),s=function(e,t){if(i(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,r,n){try{(n=t("./_ctx")(Function.call,t("./_object-gopd").f(Object.prototype,"__proto__").set,2))(e,[]),r=!(e instanceof Array)}catch(e){r=!0}return function(e,t){return s(e,t),r?e.__proto__=t:n(e,t),e}}({},!1):void 0),check:s}},{"./_an-object":94,"./_ctx":108,"./_is-object":127,"./_object-gopd":142}],159:[function(e,t,r){"use strict";var n=e("./_global"),i=e("./_core"),s=e("./_object-dp"),o=e("./_descriptors"),a=e("./_wks")("species");t.exports=function(e){var t="function"==typeof i[e]?i[e]:n[e];o&&t&&!t[a]&&s.f(t,a,{configurable:!0,get:function(){return this}})}},{"./_core":106,"./_descriptors":110,"./_global":117,"./_object-dp":140,"./_wks":176}],160:[function(e,t,r){var n=e("./_object-dp").f,i=e("./_has"),s=e("./_wks")("toStringTag");t.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},{"./_has":118,"./_object-dp":140,"./_wks":176}],161:[function(e,t,r){var n=e("./_shared")("keys"),i=e("./_uid");t.exports=function(e){return n[e]||(n[e]=i(e))}},{"./_shared":162,"./_uid":172}],162:[function(e,t,r){var n=e("./_global"),i="__core-js_shared__",s=n[i]||(n[i]={});t.exports=function(e){return s[e]||(s[e]={})}},{"./_global":117}],163:[function(e,t,r){var i=e("./_an-object"),s=e("./_a-function"),o=e("./_wks")("species");t.exports=function(e,t){var r,n=i(e).constructor;return void 0===n||null==(r=i(n)[o])?t:s(r)}},{"./_a-function":91,"./_an-object":94,"./_wks":176}],164:[function(e,t,r){var u=e("./_to-integer"),c=e("./_defined");t.exports=function(a){return function(e,t){var r,n,i=String(c(e)),s=u(t),o=i.length;return s<0||o<=s?a?"":void 0:(r=i.charCodeAt(s))<55296||56319r;)t.push(arguments[r++]);return b[++v]=function(){a("function"==typeof e?e:Function(e),t)},n(v),v},d=function(e){delete b[e]},"process"==e("./_cof")(f)?n=function(e){f.nextTick(o(_,e,1))}:m&&m.now?n=function(e){m.now(o(_,e,1))}:p?(s=(i=new p).port2,i.port1.onmessage=g,n=o(s.postMessage,s,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(n=function(e){l.postMessage(e+"","*")},l.addEventListener("message",g,!1)):n=y in c("script")?function(e){u.appendChild(c("script"))[y]=function(){u.removeChild(this),_.call(e)}}:function(e){setTimeout(o(_,e,1),0)}),t.exports={set:h,clear:d}},{"./_cof":102,"./_ctx":108,"./_dom-create":111,"./_global":117,"./_html":120,"./_invoke":122}],166:[function(e,t,r){var n=e("./_to-integer"),i=Math.max,s=Math.min;t.exports=function(e,t){return(e=n(e))<0?i(e+t,0):s(e,t)}},{"./_to-integer":167}],167:[function(e,t,r){var n=Math.ceil,i=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(0=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?r:"values"==t?e[r]:[r,e[r]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},{"./_add-to-unscopables":92,"./_iter-define":130,"./_iter-step":132,"./_iterators":133,"./_to-iobject":168}],182:[function(e,t,r){"use strict";var n=e("./_collection-strong"),i=e("./_validate-collection");t.exports=e("./_collection")("Map",function(e){return function(){return e(this,0e;)t(n[e++]);c._c=[],c._n=!1,r&&!c._h&&P(c)})}},P=function(s){b.call(u,function(){var e,t,r,n=s._v,i=A(s);if(i&&(e=g(function(){S?C.emit("unhandledRejection",n,s):(t=u.onunhandledrejection)?t({promise:s,reason:n}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",n)}),s._h=S||A(s)?2:1),s._a=void 0,i&&e.e)throw e.v})},A=function(e){return 1!==e._h&&0===(e._a||e._c).length},O=function(t){b.call(u,function(){var e;S?C.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})})},N=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),M(t,!0))},D=function(e){var r,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw x("Promise can't be resolved itself");(r=R(e))?y(function(){var t={_w:n,_d:!1};try{r.call(e,c(D,t,1),c(N,t,1))}catch(e){N.call(t,e)}}):(n._v=e,n._s=1,M(n,!1))}catch(e){N.call({_w:n,_d:!1},e)}}};I||(j=function(e){p(this,j,w,"_h"),d(e),n.call(this);try{e(c(D,this,1),c(N,this,1))}catch(e){N.call(this,e)}},(n=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r("./_redefine-all")(j.prototype,{then:function(e,t){var r=T(v(this,j));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=S?C.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&M(this,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),s=function(){var e=new n;this.promise=e,this.resolve=c(D,e,1),this.reject=c(N,e,1)},_.f=T=function(e){return e===j||e===o?new s(e):i(e)}),f(f.G+f.W+f.F*!I,{Promise:j}),r("./_set-to-string-tag")(j,w),r("./_set-species")(w),o=r("./_core")[w],f(f.S+f.F*!I,w,{reject:function(e){var t=T(this);return(0,t.reject)(e),t.promise}}),f(f.S+f.F*(a||!I),w,{resolve:function(e){return k(a&&this===o?j:this,e)}}),f(f.S+f.F*!(I&&r("./_iter-detect")(function(e){j.all(e).catch(E)})),w,{all:function(e){var o=this,t=T(o),a=t.resolve,u=t.reject,r=g(function(){var n=[],i=0,s=1;m(e,!1,function(e){var t=i++,r=!1;n.push(void 0),s++,o.resolve(e).then(function(e){r||(r=!0,n[t]=e,--s||a(n))},u)}),--s||a(n)});return r.e&&u(r.v),t.promise},race:function(e){var t=this,r=T(t),n=r.reject,i=g(function(){m(e,!1,function(e){t.resolve(e).then(r.resolve,n)})});return i.e&&n(i.v),r.promise}})},{"./_a-function":91,"./_an-instance":93,"./_classof":101,"./_core":106,"./_ctx":108,"./_export":114,"./_for-of":116,"./_global":117,"./_is-object":127,"./_iter-detect":131,"./_library":134,"./_microtask":136,"./_new-promise-capability":137,"./_perform":151,"./_promise-resolve":152,"./_redefine-all":154,"./_set-species":159,"./_set-to-string-tag":160,"./_species-constructor":163,"./_task":165,"./_wks":176}],194:[function(e,t,r){var n=e("./_export"),a=e("./_object-create"),u=e("./_a-function"),c=e("./_an-object"),l=e("./_is-object"),i=e("./_fails"),f=e("./_bind"),h=(e("./_global").Reflect||{}).construct,d=i(function(){function e(){}return!(h(function(){},[],e)instanceof e)}),p=!i(function(){h(function(){})});n(n.S+n.F*(d||p),"Reflect",{construct:function(e,t){u(e),c(t);var r=arguments.length<3?e:u(arguments[2]);if(p&&!d)return h(e,t,r);if(e==r){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var n=[null];return n.push.apply(n,t),new(f.apply(e,n))}var i=r.prototype,s=a(l(i)?i:Object.prototype),o=Function.apply.call(e,s,t);return l(o)?o:s}})},{"./_a-function":91,"./_an-object":94,"./_bind":100,"./_export":114,"./_fails":115,"./_global":117,"./_is-object":127,"./_object-create":139}],195:[function(e,t,r){"use strict";var n=e("./_collection-strong"),i=e("./_validate-collection");t.exports=e("./_collection")("Set",function(e){return function(){return e(this,0=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},{"./_iter-define":130,"./_string-at":164}],197:[function(e,t,r){"use strict";var n=e("./_global"),o=e("./_has"),i=e("./_descriptors"),s=e("./_export"),a=e("./_redefine"),u=e("./_meta").KEY,c=e("./_fails"),l=e("./_shared"),f=e("./_set-to-string-tag"),h=e("./_uid"),d=e("./_wks"),p=e("./_wks-ext"),m=e("./_wks-define"),v=e("./_enum-keys"),b=e("./_is-array"),y=e("./_an-object"),_=e("./_is-object"),g=e("./_to-iobject"),k=e("./_to-primitive"),w=e("./_property-desc"),x=e("./_object-create"),C=e("./_object-gopn-ext"),j=e("./_object-gopd"),S=e("./_object-dp"),E=e("./_object-keys"),T=j.f,I=S.f,R=C.f,M=n.Symbol,P=n.JSON,A=P&&P.stringify,O="prototype",N=d("_hidden"),D=d("toPrimitive"),U={}.propertyIsEnumerable,L=l("symbol-registry"),F=l("symbols"),q=l("op-symbols"),B=Object[O],z="function"==typeof M,W=n.QObject,H=!W||!W[O]||!W[O].findChild,V=i&&c(function(){return 7!=x(I({},"a",{get:function(){return I(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=T(B,t);n&&delete B[t],I(e,t,r),n&&e!==B&&I(B,t,n)}:I,G=function(e){var t=F[e]=x(M[O]);return t._k=e,t},J=z&&"symbol"==typeof M.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof M},Q=function(e,t,r){return e===B&&Q(q,t,r),y(e),t=k(t,!0),y(r),o(F,t)?(r.enumerable?(o(e,N)&&e[N][t]&&(e[N][t]=!1),r=x(r,{enumerable:w(0,!1)})):(o(e,N)||I(e,N,w(1,{})),e[N][t]=!0),V(e,t,r)):I(e,t,r)},K=function(e,t){y(e);for(var r,n=v(t=g(t)),i=0,s=n.length;ii;)o(F,t=r[i++])||t==N||t==u||n.push(t);return n},Z=function(e){for(var t,r=e===B,n=R(r?q:g(e)),i=[],s=0;n.length>s;)!o(F,t=n[s++])||r&&!o(B,t)||i.push(F[t]);return i};z||(a((M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=h(0te;)d(ee[te++]);for(var re=E(d.store),ne=0;re.length>ne;)m(re[ne++]);s(s.S+s.F*!z,"Symbol",{for:function(e){return o(L,e+="")?L[e]:L[e]=M(e)},keyFor:function(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var t in L)if(L[t]===e)return t},useSetter:function(){H=!0},useSimple:function(){H=!1}}),s(s.S+s.F*!z,"Object",{create:function(e,t){return void 0===t?x(e):K(x(e),t)},defineProperty:Q,defineProperties:K,getOwnPropertyDescriptor:X,getOwnPropertyNames:Y,getOwnPropertySymbols:Z}),P&&s(s.S+s.F*(!z||c(function(){var e=M();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))})),"JSON",{stringify:function(e){for(var t,r,n=[e],i=1;arguments.length>i;)n.push(arguments[i++]);if(r=t=n[1],(_(t)||void 0!==e)&&!J(e))return b(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!J(t))return t}),n[1]=t,A.apply(P,n)}}),M[O][D]||e("./_hide")(M[O],D,M[O].valueOf),f(M,"Symbol"),f(Math,"Math",!0),f(n.JSON,"JSON",!0)},{"./_an-object":94,"./_descriptors":110,"./_enum-keys":113,"./_export":114,"./_fails":115,"./_global":117,"./_has":118,"./_hide":119,"./_is-array":125,"./_is-object":127,"./_library":134,"./_meta":135,"./_object-create":139,"./_object-dp":140,"./_object-gopd":142,"./_object-gopn":144,"./_object-gopn-ext":143,"./_object-gops":145,"./_object-keys":148,"./_object-pie":149,"./_property-desc":153,"./_redefine":155,"./_set-to-string-tag":160,"./_shared":162,"./_to-iobject":168,"./_to-primitive":171,"./_uid":172,"./_wks":176,"./_wks-define":174,"./_wks-ext":175}],198:[function(e,t,r){e("./_set-collection-from")("Map")},{"./_set-collection-from":156}],199:[function(e,t,r){e("./_set-collection-of")("Map")},{"./_set-collection-of":157}],200:[function(e,t,r){var n=e("./_export");n(n.P+n.R,"Map",{toJSON:e("./_collection-to-json")("Map")})},{"./_collection-to-json":104,"./_export":114}],201:[function(e,t,r){"use strict";var n=e("./_export"),i=e("./_core"),s=e("./_global"),o=e("./_species-constructor"),a=e("./_promise-resolve");n(n.P+n.R,"Promise",{finally:function(t){var r=o(this,i.Promise||s.Promise),e="function"==typeof t;return this.then(e?function(e){return a(r,t()).then(function(){return e})}:t,e?function(e){return a(r,t()).then(function(){throw e})}:t)}})},{"./_core":106,"./_export":114,"./_global":117,"./_promise-resolve":152,"./_species-constructor":163}],202:[function(e,t,r){"use strict";var n=e("./_export"),i=e("./_new-promise-capability"),s=e("./_perform");n(n.S,"Promise",{try:function(e){var t=i.f(this),r=s(e);return(r.e?t.reject:t.resolve)(r.v),t.promise}})},{"./_export":114,"./_new-promise-capability":137,"./_perform":151}],203:[function(e,t,r){e("./_set-collection-from")("Set")},{"./_set-collection-from":156}],204:[function(e,t,r){e("./_set-collection-of")("Set")},{"./_set-collection-of":157}],205:[function(e,t,r){var n=e("./_export");n(n.P+n.R,"Set",{toJSON:e("./_collection-to-json")("Set")})},{"./_collection-to-json":104,"./_export":114}],206:[function(e,t,r){e("./_wks-define")("asyncIterator")},{"./_wks-define":174}],207:[function(e,t,r){e("./_wks-define")("observable")},{"./_wks-define":174}],208:[function(e,t,r){e("./es6.array.iterator");for(var n=e("./_global"),i=e("./_hide"),s=e("./_iterators"),o=e("./_wks")("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u>>16,this}function s(e,t){var r=parseInt(e,t||10);return this._low=65535&r,this._high=r>>>16,this}n.prototype.fromBits=r,n.prototype.fromNumber=i,n.prototype.fromString=s,n.prototype.toNumber=function(){return 65536*this._high+this._low},n.prototype.toString=function(e){return this.toNumber().toString(e||10)},n.prototype.add=function(e){var t=this._low+e._low,r=t>>>16;return r+=this._high+e._high,this._low=65535&t,this._high=65535&r,this},n.prototype.subtract=function(e){return this.add(e.clone().negate())},n.prototype.multiply=function(e){var t,r,n=this._high,i=this._low,s=e._high,o=e._low;return t=(r=i*o)>>>16,t+=n*o,t&=65535,t+=i*s,this._low=65535&r,this._high=65535&t,this},n.prototype.div=function(e){if(0==e._low&&0==e._high)throw Error("division by zero");if(0==e._high&&1==e._low)return this.remainder=new n(0),this;if(e.gt(this))return this.remainder=this.clone(),this._low=0,this._high=0,this;if(this.eq(e))return this.remainder=new n(0),this._low=1,this._high=0,this;for(var t=e.clone(),r=-1;!this.lt(t);)t.shiftLeft(1,!0),r++;for(this.remainder=this.clone(),this._low=0,this._high=0;0<=r;r--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),16<=r?this._high|=1<>>16)&65535,this},n.prototype.equals=n.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},n.prototype.greaterThan=n.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},n.prototype.lessThan=n.prototype.lt=function(e){return this._highe._high)&&this._low>e-16,this._high=0):16==e?(this._low=this._high,this._high=0):(this._low=this._low>>e|this._high<<16-e&65535,this._high>>=e),this},n.prototype.shiftLeft=n.prototype.shiftl=function(e,t){return 16>16-e,this._low=this._low<>>32-e,this._low=65535&t,this._high=t>>>16,this},n.prototype.rotateRight=n.prototype.rotr=function(e){var t=this._high<<16|this._low;return t=t>>>e|t<<32-e,this._low=65535&t,this._high=t>>>16,this},n.prototype.clone=function(){return new n(this._low,this._high)},void 0!==d&&d.amd?d([],function(){return n}):void 0!==t&&t.exports?t.exports=n:e.UINT32=n}(this)},{}],211:[function(e,t,r){!function(e){var a={16:u(Math.pow(16,5)),10:u(Math.pow(10,5)),2:u(Math.pow(2,5))},s={16:u(16),10:u(10),2:u(2)};function u(e,t,r,n){return this instanceof u?(this.remainder=null,"string"==typeof e?c.call(this,e,t):void 0===t?o.call(this,e):void i.apply(this,arguments)):new u(e,t,r,n)}function i(e,t,r,n){return void 0===r?(this._a00=65535&e,this._a16=e>>>16,this._a32=65535&t,this._a48=t>>>16):(this._a00=0|e,this._a16=0|t,this._a32=0|r,this._a48=0|n),this}function o(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function c(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var r=a[t]||new u(Math.pow(t,5)),n=0,i=e.length;n>>16,n=(r+=this._a16+e._a16)>>>16,i=(n+=this._a32+e._a32)>>>16;return i+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&r,this._a32=65535&n,this._a48=65535&i,this},u.prototype.subtract=function(e){return this.add(e.clone().negate())},u.prototype.multiply=function(e){var t=this._a00,r=this._a16,n=this._a32,i=this._a48,s=e._a00,o=e._a16,a=e._a32,u=t*s,c=u>>>16,l=(c+=t*o)>>>16;c&=65535,l+=(c+=r*s)>>>16;var f=(l+=t*a)>>>16;return l&=65535,f+=(l+=r*o)>>>16,l&=65535,f+=(l+=n*s)>>>16,f+=t*e._a48,f&=65535,f+=r*a,f&=65535,f+=n*o,f&=65535,f+=i*s,this._a00=65535&u,this._a16=65535&c,this._a32=65535&l,this._a48=65535&f,this},u.prototype.div=function(e){if(0==e._a16&&0==e._a32&&0==e._a48){if(0==e._a00)throw Error("division by zero");if(1==e._a00)return this.remainder=new u(0),this}if(e.gt(this))return this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0,this;if(this.eq(e))return this.remainder=new u(0),this._a00=1,this._a16=0,this._a32=0,this._a48=0,this;for(var t=e.clone(),r=-1;!this.lt(t);)t.shiftLeft(1,!0),r++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;0<=r;r--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),48<=r?this._a48|=1<>>16),this._a16=65535&e,e=(65535&~this._a32)+(e>>>16),this._a32=65535&e,this._a48=~this._a48+(e>>>16)&65535,this},u.prototype.equals=u.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},u.prototype.greaterThan=u.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},u.prototype.lessThan=u.prototype.lt=function(e){return this._a48e._a48)&&(this._a32e._a32)&&(this._a16e._a16)&&this._a00>e-48,this._a16=0,this._a32=0,this._a48=0):32<=e?(e-=32,this._a00=65535&(this._a32>>e|this._a48<<16-e),this._a16=this._a48>>e&65535,this._a32=0,this._a48=0):16<=e?(e-=16,this._a00=65535&(this._a16>>e|this._a32<<16-e),this._a16=65535&(this._a32>>e|this._a48<<16-e),this._a32=this._a48>>e&65535,this._a48=0):(this._a00=65535&(this._a00>>e|this._a16<<16-e),this._a16=65535&(this._a16>>e|this._a32<<16-e),this._a32=65535&(this._a32>>e|this._a48<<16-e),this._a48=this._a48>>e&65535),this},u.prototype.shiftLeft=u.prototype.shiftl=function(e,t){return 48<=(e%=64)?(this._a48=this._a00<>16-e,this._a32=this._a00<>16-e,this._a32=65535&(this._a16<>16-e),this._a16=this._a00<>16-e,this._a32=65535&(this._a32<>16-e),this._a16=65535&(this._a16<>16-e),this._a00=this._a00<>>32-e,s=n<>>32-e;return this._a00=65535&s,this._a16=s>>>16,this._a32=65535&i,this._a48=i>>>16,this},u.prototype.rotateRight=u.prototype.rotr=function(e){if(0==(e%=64))return this;if(32<=e){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var r=this._a48<<16|this._a32,n=this._a16<<16|this._a00,i=r>>>e|n<<32-e,s=n>>>e|r<<32-e;return this._a00=65535&s,this._a16=s>>>16,this._a32=65535&i,this._a48=i>>>16,this},u.prototype.clone=function(){return new u(this._a00,this._a16,this._a32,this._a48)},void 0!==d&&d.amd?d([],function(){return u}):void 0!==t&&t.exports?t.exports=u:e.UINT64=u}(this)},{}],212:[function(e,t,r){t.exports=e("./lib")},{"./lib":213}],213:[function(e,t,r){var n=/^PT(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?$/;function i(e){return void 0===e?0:parseInt(e,10)}r.fromSeconds=function(e){if("number"!=typeof e)throw new TypeError("Argument `seconds` must be a number");var t=e%60,r=(e-t)%3600;return{hours:(e-t-r)/3600,minutes:r/60,seconds:t}},r.fromString=function(e){if("string"!=typeof e)throw new TypeError("Argument `string` must be a string");var t=e.match(n);if(null===t||void 0===t[1]&&void 0===t[2]&&void 0===t[3])throw new Error('Could not parse "'+e+'" as a duration.');return{hours:i(t[1]),minutes:i(t[2]),seconds:i(t[3])}},r.toString=function(e){"number"==typeof e&&(e=r.fromSeconds(e));var t="PT";return 0r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.once=function(e,t){if(!u(t))throw TypeError("listener must be a function");var r=!1;function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var r,n,i,s;if(!u(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(i=(r=this._events[e]).length,n=-1,r===t||u(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(c(r)){for(s=i;0>1,l=-7,f=r?i-1:0,h=r?-1:1,d=e[t+f];for(f+=h,s=d&(1<<-l)-1,d>>=-l,l+=a;0>=-l,l+=n;0>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,p=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),2<=(t+=1<=o+f?h/u:h*Math.pow(2,1-f))*u&&(o++,u/=2),l<=o+f?(a=0,o=l):1<=o+f?(a=(t*u-1)*Math.pow(2,i),o+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));8<=i;e[r+d]=255&a,d+=p,a/=256,i-=8);for(o=o<Math.abs(l)){if(!(c.balanceFactor<-1||1=this.maxAttemptsCount)return this.cleanup(),this.emit("failed",new Error("Maximum attempt count limit reached")),void this.reject(new Error("Maximum attempt count reached"));var r=this.nextDelay(e);r=this.randomize(r),this.maxAttemptsTime&&this.startTimestamp+this.maxAttemptsTime=0.0.4 <0.0.5",type:"range"},"/var/lib/jenkins/jobs/twilio-chat.js/workspace"]],_from:"twilio-mcs-client@>=0.0.4 <0.0.5",_id:"twilio-mcs-client@0.0.4",_inCache:!0,_location:"/twilio-mcs-client",_nodeVersion:"8.4.0",_npmOperationalInternal:{host:"s3://npm-registry-packages",tmp:"tmp/twilio-mcs-client-0.0.4.tgz_1507280871206_0.1071092204656452"},_npmUser:{name:"twilio-ci",email:"mroberts+twilio-ci@twilio.com"},_npmVersion:"5.3.0",_phantomChildren:{},_requested:{raw:"twilio-mcs-client@^0.0.4",scope:null,escapedName:"twilio-mcs-client",name:"twilio-mcs-client",rawSpec:"^0.0.4",spec:">=0.0.4 <0.0.5",type:"range"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/twilio-mcs-client/-/twilio-mcs-client-0.0.4.tgz",_shasum:"369ccc8f1dfef9e914192dcd5d2c05377468a1da",_shrinkwrap:null,_spec:"twilio-mcs-client@^0.0.4",_where:"/var/lib/jenkins/jobs/twilio-chat.js/workspace",author:{name:"Twilio"},browser:"browser/index.js",dependencies:{"body-parser":"^1.18.2",dotenv:"^4.0.0","isomorphic-form-data":"^1.0.0",loglevel:"^1.5.0","operation-retrier":"^1.3.2",pug:"^2.0.0-rc.4","twilio-transport":"^0.1.4"},description:"Twilio Media Content Service client library",devDependencies:{"@types/chai":"^3.5.2","@types/chai-as-promised":"0.0.31","@types/chai-datetime":"0.0.30","@types/chai-string":"^1.1.30","@types/core-js":"^0.9.42","@types/form-data":"0.0.33","@types/mocha":"^2.2.43","@types/node":"^7.0.18","@types/sinon":"^2.3.5","@types/sinon-chai":"^2.7.27",async:"^2.5.0","async-test-tools":"^1.0.7","babel-eslint":"^7.2.3","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-istanbul":"^4.1.5","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-assign":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-require":"^1.0.1","babel-runtime":"^6.23.0",babelify:"^7.3.0",browserify:"^14.3.0",chai:"^3.5.0","chai-as-promised":"^6.0.0","chai-datetime":"^1.5.0","chai-string":"^1.3.0",cheerio:"^0.22.0",del:"^3.0.0",express:"^4.16.1",gulp:"^3.9.1","gulp-babel":"^6.1.2","gulp-derequire":"^2.1.0","gulp-insert":"^0.5.0","gulp-mocha":"^4.3.1","gulp-rename":"^1.2.2","gulp-tap":"^1.0.1","gulp-tslint":"^8.0.0","gulp-typescript":"^3.2.1","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8",gulpclass:"^0.1.2","ink-docstrap":"^1.3.0",jsdoc:"^3.5.3","jsdoc-strip-async-await":"^0.1.0",karma:"^1.7.0","karma-babel-preprocessor":"^6.0.1","karma-browserify":"^5.1.1","karma-browserstack-launcher":"^1.3.0","karma-chrome-launcher":"^2.2.0","karma-env-preprocessor":"^0.1.1","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.3","karma-sinon-chai":"^1.3.1","karma-sinon-ie":"^2.0.0","karma-typescript":"^3.0.7","loglevel-message-prefix":"^2.0.1",nyc:"^11.2.1",proxyquire:"^1.8.0",sinon:"^2.3.8","sinon-chai":"^2.14.0",t:"^0.5.1","ts-node":"^3.2.0",tslint:"^5.5.0",twilio:"^3.7.0",typescript:"^2.5.3","uglify-save-license":"^0.4.1","vinyl-buffer":"^1.0.0","vinyl-source-stream":"^1.1.0",watchify:"^3.9.0"},directories:{},dist:{integrity:"sha512-4NWzSInfENIP48G58gyN13E5XlqItX8hU93yVsMX+FrIvcpUS3A4snXko6NvIt1ZTMhG+sXrt6OF3Mx555tTPw==",shasum:"369ccc8f1dfef9e914192dcd5d2c05377468a1da",tarball:"https://registry.npmjs.org/twilio-mcs-client/-/twilio-mcs-client-0.0.4.tgz"},engines:{node:">=6"},gitHead:"339764692c93f2bd32b56889048ea7a05266abdd",license:"MIT",main:"lib/index.js",maintainers:[{name:"twilio-ci",email:"mroberts+twilio-ci@twilio.com"}],name:"twilio-mcs-client",optionalDependencies:{},readme:"ERROR: No README data found!",scripts:{start:"node app.js"},types:"./lib/client.d.ts",version:"0.0.4"}},{}],240:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=a(e("babel-runtime/core-js/promise")),d=a(e("babel-runtime/core-js/object/define-properties")),p=a(e("babel-runtime/core-js/object/get-prototype-of")),m=a(e("babel-runtime/helpers/classCallCheck")),i=a(e("babel-runtime/helpers/createClass")),v=a(e("babel-runtime/helpers/possibleConstructorReturn")),s=a(e("babel-runtime/helpers/inherits")),b=a(e("./configuration")),o=a(e("events")),y=a(e("./logger")),_=a(e("bottleneck")),g=a(e("./registrar")),k=a(e("twilsock")),w=a(e("twilio-transport")),x=e("twilio-ems-client");function a(e){return e&&e.__esModule?e:{default:e}}var u=function(e){function h(e,t){(0,m.default)(this,h);var r=(0,v.default)(this,(h.__proto__||(0,p.default)(h)).call(this));if(!e)throw new Error("Token is required for Notifications client");(t=t||{}).logLevel=t.logLevel||"error",y.default.setLevel(t.logLevel);var n=t.minTokenRefreshInterval||1e4,i=t.productId||"notifications";t.twilsockClient=t.twilsockClient||new k.default(e,t),t.transport=t.transport||new w.default(t.twilsockClient),t.emsClient=t.emsClient||new x.EMSClient(t);var s,o,a,u,c=t.twilsockClient,l=t.transport,f=new b.default(null,t);return(0,d.default)(r,{_config:{value:f},_emsClient:{value:t.emsClient},_registrar:{value:new g.default(i,l,c,f)},_twilsock:{value:c},_reliableTransportState:{value:{overall:!1,transport:!1,registration:!1,lastEmitted:null}},updateToken:{value:(s=r._updateToken.bind(r),o=1,a=n,u=new _.default(o,a,1,_.default.strategy.LEAK),function(){var e=Array.prototype.slice.call(arguments,0);return e.unshift(s),u.schedule.apply(u,e)}),enumerable:!0},connectionState:{get:function(){return"disconnected"===r._twilsock.state?"disconnected":"disconnecting"===r._twilsock.state?"disconnecting":"connected"===r._twilsock.state&&r._reliableTransportState.registration?"connected":"rejected"===r._twilsock.state?"denied":"connecting"}}}),r._emsClient.setToken(e).then(function(e){r._config.updateToken(e.token),r._registrar.updateToken()}).catch(function(e){y.default.warn("Failed to set token",e)}),r._onTransportStateChange(r._twilsock.connected),r._registrar.on("transportReady",function(e){r._onRegistrationStateChange(e?"registered":"")}),r._registrar.on("stateChanged",function(e){r._onRegistrationStateChange(e)}),r._registrar.on("needReliableTransport",r._onNeedReliableTransport.bind(r)),r._twilsock.on("message",function(e,t){return r._routeMessage(e,t)}),r._twilsock.on("connected",function(e){r._onTransportStateChange(!0),r._registrar.setNotificationId("twilsock",e)}),r._twilsock.on("disconnected",function(){r._onTransportStateChange(!1)}),r}return(0,s.default)(h,e),(0,i.default)(h,[{key:"_routeMessage",value:function(e,t){y.default.trace("Message arrived: ",e,t),this.emit("message",e,t)}},{key:"_onNeedReliableTransport",value:function(e){e?this._twilsock.connect():this._twilsock.disconnect()}},{key:"_onRegistrationStateChange",value:function(e){this._reliableTransportState.registration="registered"===e,this._updateTransportState()}},{key:"_onTransportStateChange",value:function(e){this._reliableTransportState.transport=e,this._updateTransportState()}},{key:"_updateTransportState",value:function(){var e=this._reliableTransportState.transport&&this._reliableTransportState.registration;this._reliableTransportState.overall!==e&&(this._reliableTransportState.overall=e,y.default.info("Transport ready "+e),this.emit("transportReady",e)),this._reliableTransportState.lastEmitted!==this.connectionState&&(this._reliableTransportState.lastEmitted=this.connectionState,this.emit("connectionStateChanged",this.connectionState))}},{key:"subscribe",value:function(e,t){return t=t||"twilsock",y.default.trace("Add subscriptions for message type: ",e,t),this._registrar.subscribe(e,t)}},{key:"unsubscribe",value:function(e,t){return t=t||"twilsock",y.default.trace("Remove subscriptions for message type: ",e,t),this._registrar.unsubscribe(e,t)}},{key:"handlePushNotification",value:function(e){y.default.warn("Push message passed, but no functionality implemented yet: "+e)}},{key:"setPushRegistrationId",value:function(e,t){this._registrar.setNotificationId(t||"gcm",e)}},{key:"_updateToken",value:function(e){var t=this;return y.default.info("authTokenUpdated"),this._fpaToken===e?n.default.resolve():(this._twilsock.updateToken(e),this._emsClient.setToken(e).then(function(e){return e.token}).then(function(e){t._config.updateToken(e),t._registrar.updateToken()}))}}]),h}(o.default);r.default=u,t.exports=r.default},{"./configuration":241,"./logger":243,"./registrar":245,"babel-runtime/core-js/object/define-properties":39,"babel-runtime/core-js/object/get-prototype-of":42,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,"babel-runtime/helpers/inherits":53,"babel-runtime/helpers/possibleConstructorReturn":54,bottleneck:69,events:214,"twilio-ems-client":229,"twilio-transport":273,twilsock:276}],241:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s=i(e("babel-runtime/core-js/object/define-properties")),o=i(e("babel-runtime/helpers/classCallCheck")),n=i(e("babel-runtime/helpers/createClass"));function i(e){return e&&e.__esModule?e:{default:e}}var a="https://ers.twilio.com",u="/v1/registrations",c=function(){function i(e,t){var r=this;(0,o.default)(this,i);var n=(t=(t||{}).Notification||{}).ersUri||a;(0,s.default)(this,{_registrarUri:{value:n+u},_token:{value:e,writable:!0},registrarUri:{get:function(){return r._registrarUri}},token:{get:function(){return r._token}}})}return(0,n.default)(i,[{key:"updateToken",value:function(e){this._token=e}}]),i}();r.default=c,t.exports=r.default},{"babel-runtime/core-js/object/define-properties":39,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51}],242:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,i=e("./client"),s=(n=i)&&n.__esModule?n:{default:n};r.default=s.default,t.exports=r.default},{"./client":240}],243:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=s(e("babel-runtime/core-js/array/from")),i=s(e("loglevel"));function s(e){return e&&e.__esModule?e:{default:e}}function o(e,t){return[e].concat((0,n.default)(t))}r.default={setLevel:function(e){i.default.setLevel(e)},trace:function(){i.default.trace.apply(null,o("Notify T:",arguments))},debug:function(){i.default.debug.apply(null,o("Notify D:",arguments))},info:function(){i.default.info.apply(null,o("Notify I:",arguments))},warn:function(){i.default.warn.apply(null,o("Notify W:",arguments))},error:function(){i.default.error.apply(null,o("Notify E:",arguments))}},t.exports=r.default},{"babel-runtime/core-js/array/from":31,loglevel:219}],244:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=v(e("babel-runtime/core-js/object/freeze")),i=v(e("babel-runtime/core-js/promise")),u=v(e("babel-runtime/core-js/set")),c=v(e("babel-runtime/core-js/object/define-properties")),l=v(e("babel-runtime/core-js/object/get-prototype-of")),f=v(e("babel-runtime/helpers/classCallCheck")),s=v(e("babel-runtime/helpers/createClass")),h=v(e("babel-runtime/helpers/possibleConstructorReturn")),o=v(e("babel-runtime/helpers/inherits")),a=v(e("events")),d=v(e("./logger")),p=v(e("javascript-state-machine")),m=v(e("backoff"));function v(e){return e&&e.__esModule?e:{default:e}}function b(e){var t=[];return e.forEach(function(e){return t.push(e)}),t}var y=function(e){function a(e,t,r,n){(0,f.default)(this,a);var i=(0,h.default)(this,(a.__proto__||(0,l.default)(a)).call(this)),s=p.default.create({initial:{state:"unregistered",event:"init",defer:!0},events:[{name:"userUpdate",from:["unregistered"],to:"registering"},{name:"userUpdate",from:["registered"],to:"unregistering"},{name:"registered",from:["registering","retrying"],to:"registered"},{name:"unregistered",from:["unregistering"],to:"unregistered"},{name:"retry",from:["retrying"],to:"retrying"},{name:"failure",from:["registering"],to:"retrying"},{name:"failure",from:["retrying"],to:"retrying"},{name:"failure",from:["unregistering"],to:"unregistered"}],callbacks:{onregistering:function(e,t,r,n){return i._register(n)},onunregistering:function(){return i._unregister()},onregistered:function(){return i._onRegistered()},onunregistered:function(){return i._onUnregistered()},onretrying:function(e,t,r,n){return i._initRetry(n)},onfailure:function(e,t,r,n){"retrying"===t&&i._initRetry(n)}}}),o=m.default.exponential({randomisationFactor:.2,initialDelay:2e3,maxDelay:12e4});return o.on("ready",function(){i._retry()}),(0,c.default)(i,{_transport:{value:t},_context:{value:e},_url:{value:r.registrarUri,writable:!1},_config:{value:r},_fsm:{value:s},_backoff:{value:o},_channelType:{value:n},_registrationId:{value:!1,writable:!0},_notificationId:{value:!1,writable:!0},_messageTypes:{value:new u.default,writable:!0},_pendingUpdate:{value:null,writable:!0}}),s.init(),i}return(0,o.default)(a,e),(0,s.default)(a,[{key:"setNotificationId",value:function(e){this._notificationId!==e&&(this._notificationId=e,this._updateRegistration())}},{key:"updateToken",value:function(){return this._updateRegistration()}},{key:"has",value:function(e){return this._messageTypes.has(e)}},{key:"subscribe",value:function(e){return this._messageTypes.has(e)?(d.default.debug("Message type already registered ",e),!1):(this._messageTypes.add(e),this._updateRegistration(),!0)}},{key:"unsubscribe",value:function(e){return!!this._messageTypes.has(e)&&(this._messageTypes.delete(e),0r?n.isValid?n.value:null:(this.items.set(e,new a(t,r)),t)}},{key:"delete",value:function(e,t){var r=this.items.get(e);(!r||r.revision=t}},{key:"get",value:function(e){var t=this.items.get(e);return t&&t.isValid?t.value:null}},{key:"has",value:function(e){var t=this.items.get(e);return t&&t.isValid}}]),e}();r.Cache=c,r.default=c},{"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,karibu:218}],248:[function(e,t,r){"use strict";var u=o(e("babel-runtime/regenerator")),d=o(e("babel-runtime/core-js/object/get-prototype-of")),p=o(e("babel-runtime/helpers/classCallCheck")),n=o(e("babel-runtime/helpers/createClass")),m=o(e("babel-runtime/helpers/possibleConstructorReturn")),i=o(e("babel-runtime/helpers/inherits")),s=o(e("babel-runtime/helpers/extends")),c=o(e("babel-runtime/core-js/promise"));function o(e){return e&&e.__esModule?e:{default:e}}var l=function(s,o,a,u){return new(a||(a=c.default))(function(e,t){function r(e){try{i(u.next(e))}catch(e){t(e)}}function n(e){try{i(u.throw(e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(r,n)}i((u=u.apply(s,o||[])).next())})};Object.defineProperty(r,"__esModule",{value:!0});var a=e("events"),f=e("xxhashjs"),v=e("twilsock"),b=e("twilio-transport"),y=e("twilio-ems-client"),_=e("twilio-notifications"),g=e("./utils"),k=e("./logger"),w=e("./configuration"),x=e("./subscriptions"),C=e("./router"),j=e("./network"),S=e("./syncdocument"),E=e("./synclist"),T=e("./syncmap"),I=e("./clientInfo"),R=e("./entitiesCache"),M=e("./services/storage"),P=e("./utils"),A=e("./utils/deferred"),O=e("./syncerror"),N=e("./streams/syncstream"),D="data_sync",U=e("../package.json").version;function L(e){return e._subscribe(),e}function F(e){if(e){if("string"==typeof e)return{id:e,mode:"open_or_create"};g.validateOptionalTtl(e.ttl);var t=e.mode||(e.id?"open_or_create":"create_new");return(0,s.default)({},e,{mode:t})}return{mode:"create_new"}}var h=function(e){function h(e){var t=1=n))break}}catch(e){o=!0,a=e}finally{try{!s&&c.return&&c.return()}finally{if(o)throw a}}return i}var t=e(this.subscriptions,this.persisted,"establish",this.maxBatchSize);if(0this.lastEventId?(this.descriptor.last_event_id=e.id,this.descriptor.revision=e.document_revision,this.descriptor.date_updated=e.date_created,this.descriptor.data=e.document_data,this.emit("updated",{value:e.document_data,isLocal:!1}),this.services.storage.update(this.type,this.sid,this.uniqueName,{last_event_id:e.id,revision:e.document_revision,date_updated:e.date_created,data:e.document_data})):d.default.trace("Document update skipped, current:",this.lastEventId,", remote:",e.id);break;case"document_removed":this.onRemoved(!1)}}},{key:"set",value:function(n,i){return h(this,void 0,void 0,o.default.mark(function e(){var t,r=this;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=i||{},m.validateOptionalTtl(t.ttl),e.abrupt("return",this.updateMergingQueue.squashAndAdd(t,function(e){return r._setUnconditionally(n,e.ttl)}));case 3:case"end":return e.stop()}},e,this)}))}},{key:"mutate",value:function(n,i){return h(this,void 0,void 0,o.default.mark(function e(){var t,r=this;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=i||{},m.validateOptionalTtl(t.ttl),e.abrupt("return",this.updateMergingQueue.add(t,function(e){return r._setWithIfMatch(n,e.ttl)}));case 3:case"end":return e.stop()}},e,this)}))}},{key:"update",value:function(t,r){return h(this,void 0,void 0,o.default.mark(function e(){return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mutate(function(e){return(0,n.default)(e,t)},r));case 1:case"end":return e.stop()}},e,this)}))}},{key:"setTtl",value:function(r){return h(this,void 0,void 0,o.default.mark(function e(){var t;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return m.validateMandatoryTtl(r),e.next=3,this._postUpdateToServer({ttl:r});case 3:t=e.sent,this.descriptor.date_expires=t.date_expires;case 5:case"end":return e.stop()}},e,this)}))}},{key:"_setUnconditionally",value:function(r,n){return h(this,void 0,void 0,o.default.mark(function e(){var t;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._postUpdateToServer({data:r,revision:void 0,ttl:n});case 2:return t=e.sent,this._handleSuccessfulUpdateResult(t),e.abrupt("return",this.value);case 5:case"end":return e.stop()}},e,this)}))}},{key:"_setWithIfMatch",value:function(i,s){return h(this,void 0,void 0,o.default.mark(function e(){var t,r,n;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t=i(m.deepClone(this.value)))){e.next=22;break}return r=this.revision,e.prev=3,e.next=6,this._postUpdateToServer({data:t,revision:r,ttl:s});case 6:return n=e.sent,this._handleSuccessfulUpdateResult(n),e.abrupt("return",this.value);case 11:if(e.prev=11,e.t0=e.catch(3),412!==e.t0.status){e.next=19;break}return e.next=16,this._softSync();case 16:return e.abrupt("return",this._setWithIfMatch(i));case 19:throw e.t0;case 20:e.next=23;break;case 22:return e.abrupt("return",this.value);case 23:case"end":return e.stop()}},e,this,[[3,11]])}))}},{key:"_handleSuccessfulUpdateResult",value:function(e){e.last_event_id>this.descriptor.last_event_id&&(this.descriptor.revision=e.revision,this.descriptor.data=e.data,this.descriptor.last_event_id=e.last_event_id,this.descriptor.date_expires=e.date_expires,this.descriptor.date_updated=new Date(e.date_updated),this.services.storage.update(this.type,this.sid,this.uniqueName,{last_event_id:e.last_event_id,revision:e.revision,date_updated:e.date_updated,data:e.data}),this.emit("updated",{value:this.value,isLocal:!0}))}},{key:"_postUpdateToServer",value:function(i){return h(this,void 0,void 0,o.default.mark(function e(){var t,r,n;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isDeleted){e.next=17;break}return t={data:i.data},"number"==typeof i.ttl&&(t.ttl=i.ttl),r=i.revision,e.prev=4,e.next=7,this.services.network.post(this.uri,t,r);case 7:return n=e.sent,e.abrupt("return",{revision:n.body.revision,data:i.data,last_event_id:n.body.last_event_id,date_updated:n.body.date_updated,date_expires:n.body.date_expires});case 11:throw e.prev=11,e.t0=e.catch(4),404===e.t0.status&&this.onRemoved(!1),e.t0;case 15:e.next=18;break;case 17:return e.abrupt("return",f.default.reject(new b.SyncError("The Document has been removed",404,54100)));case 18:case"end":return e.stop()}},e,this,[[4,11]])}))}},{key:"_softSync",value:function(){return h(this,void 0,void 0,o.default.mark(function e(){var r=this;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.services.network.get(this.uri).then(function(e){var t={type:"document_updated",id:e.body.last_event_id,document_revision:e.body.revision,document_data:e.body.data,date_created:e.body.date_updated};return r._update(t),r}).catch(function(e){404===e.status?r.onRemoved(!1):d.default.error("Can't get updates for "+r.sid+":",e)}));case 1:case"end":return e.stop()}},e,this)}))}},{key:"onRemoved",value:function(e){this.isDeleted||(this.isDeleted=!0,this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.emit("removed",{isLocal:e}))}},{key:"removeDocument",value:function(){return h(this,void 0,void 0,o.default.mark(function e(){return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isDeleted){e.next=6;break}return e.next=3,this.services.network.delete(this.uri);case 3:this.onRemoved(!0),e.next=7;break;case 6:return e.abrupt("return",f.default.reject(new b.SyncError("The Document has been removed",404,54100)));case 7:case"end":return e.stop()}},e,this)}))}},{key:"uri",get:function(){return this.descriptor.url}},{key:"revision",get:function(){return this.descriptor.revision}},{key:"lastEventId",get:function(){return this.descriptor.last_event_id}},{key:"dateExpires",get:function(){return this.descriptor.date_expires}},{key:"type",get:function(){return"document"}},{key:"sid",get:function(){return this.descriptor.sid}},{key:"value",get:function(){return this.descriptor.data}},{key:"dateUpdated",get:function(){return this.descriptor.date_updated}},{key:"uniqueName",get:function(){return this.descriptor.unique_name||null}}],[{key:"type",get:function(){return"document"}}]),i}(p.SyncEntity);r.SyncDocument=y,r.default=y},{"./entity":252,"./logger":255,"./mergingqueue":257,"./syncerror":266,"./utils":269,"babel-runtime/core-js/object/get-prototype-of":42,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,"babel-runtime/helpers/extends":52,"babel-runtime/helpers/inherits":53,"babel-runtime/helpers/possibleConstructorReturn":54,"babel-runtime/regenerator":57}],266:[function(e,t,r){"use strict";var s=i(e("babel-runtime/core-js/object/get-prototype-of")),o=i(e("babel-runtime/helpers/classCallCheck")),a=i(e("babel-runtime/helpers/possibleConstructorReturn")),n=i(e("babel-runtime/helpers/inherits"));function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var u=function(e){function i(e){var t=1this.descriptor.date_updated.getTime())&&(this.descriptor.date_updated=e,this.services.storage.update(this.type,this.sid,this.uniqueName,{date_updated:e}))}},{key:"_handleItemMutated",value:function(e,t,r,n,i,s,o,a,u){if(this.shouldIgnoreEvent(e,r))p.default.trace("Item ",e," update skipped, current:",this.lastEventId,", remote:",r);else{this._updateRootDateUpdated(s);var c=this.cache.get(e);if(c)c.lastEventId<=r&&(c.update(r,n,i,s),void 0!==o&&c.updateDateExpires(o),this.emitItemMutationEvent(c,u,!1));else{var l=new v.ListItem({index:e,uri:t,lastEventId:r,revision:n,value:i,dateUpdated:s,dateExpires:o});this.cache.store(e,l,r),this.emitItemMutationEvent(l,u,a)}}}},{key:"emitItemMutationEvent",value:function(e,t,r){var n=r?"itemAdded":"itemUpdated";this.emit(n,{item:e,isLocal:!t})}},{key:"_handleItemRemoved",value:function(e,t,r,n,i){this._updateRootDateUpdated(n),this.cache.delete(e,t),this.emit("itemRemoved",{index:e,isLocal:!i,value:r})}},{key:"_handleContextUpdate",value:function(e,t,r){this._updateRootDateUpdated(r),this._updateContextIfRequired(e,t)&&this.emit("contextUpdated",{context:e,isLocal:!1})}},{key:"_updateContextIfRequired",value:function(e,t){return!this.contextEventId||t>this.contextEventId?(this.context=e,this.contextEventId=t,!0):(p.default.trace("Context update skipped, current:",this.lastEventId,", remote:",t),!1)}},{key:"uri",get:function(){return this.descriptor.url}},{key:"revision",get:function(){return this.descriptor.revision}},{key:"lastEventId",get:function(){return this.descriptor.last_event_id}},{key:"links",get:function(){return this.descriptor.links}},{key:"dateExpires",get:function(){return this.descriptor.date_expires}},{key:"type",get:function(){return"list"}},{key:"sid",get:function(){return this.descriptor.sid}},{key:"uniqueName",get:function(){return this.descriptor.unique_name||null}},{key:"dateUpdated",get:function(){return this.descriptor.date_updated}}],[{key:"type",get:function(){return"list"}}]),i}(m.SyncEntity);r.SyncList=k,r.default=k},{"./cache":247,"./entity":252,"./listitem":254,"./logger":255,"./mergingqueue":257,"./paginator":259,"./syncerror":266,"./utils":269,"babel-runtime/core-js/object/get-prototype-of":42,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,"babel-runtime/helpers/extends":52,"babel-runtime/helpers/inherits":53,"babel-runtime/helpers/possibleConstructorReturn":54,"babel-runtime/regenerator":57}],268:[function(e,t,r){"use strict";var s=i(e("babel-runtime/helpers/extends")),l=i(e("babel-runtime/regenerator")),o=i(e("babel-runtime/core-js/object/get-prototype-of")),a=i(e("babel-runtime/helpers/classCallCheck")),n=i(e("babel-runtime/helpers/createClass")),u=i(e("babel-runtime/helpers/possibleConstructorReturn")),c=i(e("babel-runtime/helpers/inherits")),f=i(e("babel-runtime/core-js/promise"));function i(e){return e&&e.__esModule?e:{default:e}}var h=function(s,o,a,u){return new(a||(a=f.default))(function(e,t){function r(e){try{i(u.next(e))}catch(e){t(e)}}function n(e){try{i(u.throw(e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(r,n)}i((u=u.apply(s,o||[])).next())})};Object.defineProperty(r,"__esModule",{value:!0});var d=e("./utils"),p=e("./logger"),m=e("./entity"),v=e("./mapitem"),b=e("./paginator"),y=e("./cache"),_=e("./mergingqueue"),g=e("./syncerror"),k=function(e){function i(e,t,r){(0,a.default)(this,i);var n=(0,u.default)(this,(i.__proto__||(0,o.default)(i)).call(this,e,r));return n.updateMergingQueue=new _.NamespacedMergingQueue(function(e,t){return"number"==typeof t.ttl?{ttl:t.ttl}:e}),n.cache=new y.Cache,n.descriptor=t,n.descriptor.date_updated=new Date(n.descriptor.date_updated),t.items&&t.items.forEach(function(e){e.date_updated=new Date(e.date_updated),n.cache.store(e.key,new v.MapItem(e),e.last_event_id)}),n}return(0,c.default)(i,e),(0,n.default)(i,[{key:"set",value:function(n,i,s){return h(this,void 0,void 0,l.default.mark(function e(){var t,r=this;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=s||{},d.validateOptionalTtl(t.ttl),e.abrupt("return",this.updateMergingQueue.squashAndAdd(n,t,function(e){return r._putItemUnconditionally(n,i,e.ttl)}));case 3:case"end":return e.stop()}},e,this)}))}},{key:"get",value:function(t){return h(this,void 0,void 0,l.default.mark(function e(){return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.cache.has(t)){e.next=4;break}return e.abrupt("return",this.cache.get(t));case 4:return e.abrupt("return",this._getItemFromServer(t));case 5:case"end":return e.stop()}},e,this)}))}},{key:"_getItemFromServer",value:function(r){return h(this,void 0,void 0,l.default.mark(function e(){var t;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.queryItems({key:r});case 2:if(!((t=e.sent).items.length<1)){e.next=7;break}throw new g.SyncError("No item with key "+r+" found",404,54201);case 7:return e.abrupt("return",t.items[0]);case 8:case"end":return e.stop()}},e,this)}))}},{key:"mutate",value:function(n,i,s){return h(this,void 0,void 0,l.default.mark(function e(){var t,r=this;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=s||{},d.validateOptionalTtl(t.ttl),e.abrupt("return",this.updateMergingQueue.add(n,t,function(e){return r._putItemWithIfMatch(n,i,e.ttl)}));case 3:case"end":return e.stop()}},e,this)}))}},{key:"update",value:function(t,r,n){return h(this,void 0,void 0,l.default.mark(function e(){return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mutate(t,function(e){return(0,s.default)(e,r)},n));case 1:case"end":return e.stop()}},e,this)}))}},{key:"_putItemUnconditionally",value:function(n,i,s){return h(this,void 0,void 0,l.default.mark(function e(){var t,r;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._putItemToServer(n,i,void 0,s);case 2:return t=e.sent,r=t.item,this._handleItemMutated(r.key,r.url,r.last_event_id,r.revision,r.data,r.date_updated,r.date_expires,t.added,!1),e.abrupt("return",this.cache.get(r.key));case 6:case"end":return e.stop()}},e,this)}))}},{key:"_putItemWithIfMatch",value:function(o,a,u){return h(this,void 0,void 0,l.default.mark(function e(){var t,r,n,i,s;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(o).catch(function(e){if(404===e.status)return new v.MapItem({key:o,data:{},last_event_id:-1,revision:"-1",url:null,date_updated:null,date_expires:null});throw e});case 2:if(t=e.sent,!(r=a(d.deepClone(t.value)))){e.next=26;break}return n=t.revision,e.prev=6,e.next=9,this._putItemToServer(o,r,n,u);case 9:return i=e.sent,s=i.item,this._handleItemMutated(s.key,s.url,s.last_event_id,s.revision,s.data,s.date_updated,s.date_expires,i.added,!1),e.abrupt("return",this.cache.get(s.key));case 15:if(e.prev=15,e.t0=e.catch(6),412!==e.t0.status){e.next=23;break}return e.next=20,this._getItemFromServer(o);case 20:return e.abrupt("return",this._putItemWithIfMatch(o,a,u));case 23:throw e.t0;case 24:e.next=27;break;case 26:return e.abrupt("return",t);case 27:case"end":return e.stop()}},e,this,[[6,15]])}))}},{key:"_putItemToServer",value:function(o,a,u,c){return h(this,void 0,void 0,l.default.mark(function e(){var t,r,n,i,s;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=new d.UriBuilder(this.links.items).pathSegment(o).build(),r={data:a},"number"==typeof c&&(r.ttl=c),e.prev=3,e.next=6,this.services.network.put(t,r,u);case 6:return n=e.sent,(i=n.body).data=a,i.date_updated=new Date(i.date_updated),s=201===n.status.code,e.abrupt("return",{added:s,item:i});case 14:throw e.prev=14,e.t0=e.catch(3),404===e.t0.status&&this.onRemoved(!1),e.t0;case 18:case"end":return e.stop()}},e,this,[[3,14]])}))}},{key:"remove",value:function(n){return h(this,void 0,void 0,l.default.mark(function e(){var t,r;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==n){e.next=2;break}throw new Error("Key argument is invalid");case 2:return e.next=4,this.get(n);case 4:return t=e.sent,e.next=7,this.services.network.delete(t.uri);case 7:r=e.sent,this._handleItemRemoved(n,r.body.last_event_id,void 0,new Date(r.body.date_updated),!1);case 9:case"end":return e.stop()}},e,this)}))}},{key:"queryItems",value:function(o){return h(this,void 0,void 0,l.default.mark(function e(){var t,r,n,i,s=this;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=o||{},t=new d.UriBuilder(this.links.items).queryParam("From",o.from).queryParam("PageSize",o.limit).queryParam("Key",o.key).queryParam("PageToken",o.pageToken).queryParam("Order",o.order).build(),e.next=4,this.services.network.get(t);case 4:return r=e.sent,n=r.body.items.map(function(e){return e.date_updated=new Date(e.date_updated),s.cache.get(e.key)?s._handleItemMutated(e.key,e.url,e.last_event_id,e.revision,e.data,e.date_updated,e.date_expires,!1,!0):s.cache.store(e.key,new v.MapItem(e),e.last_event_id),s.cache.get(e.key)}),i=r.body.meta,e.abrupt("return",new b.Paginator(n,function(e){return s.queryItems({pageToken:e})},i.previous_token,i.next_token));case 8:case"end":return e.stop()}},e,this)}))}},{key:"getItems",value:function(t){return h(this,void 0,void 0,l.default.mark(function e(){return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=t||{},d.validatePageSize(t.pageSize),t.limit=t.pageSize||t.limit||50,t.order=t.order||"asc",e.abrupt("return",this.queryItems(t));case 5:case"end":return e.stop()}},e,this)}))}},{key:"forEach",value:function(i){var e=this;return new f.default(function(r,n){e.queryItems().then(function e(t){t.items.forEach(function(e){return i(e)}),t.hasNextPage?t.nextPage().then(e).catch(n):r()}).catch(n)})}},{key:"shouldIgnoreEvent",value:function(e,t){return this.cache.isKnown(e,t)}},{key:"_update",value:function(e,t){switch(e.date_created=new Date(e.date_created),e.type){case"map_item_added":case"map_item_updated":this._handleItemMutated(e.item_key,e.item_url,e.id,e.item_revision,e.item_data,e.date_created,void 0,"map_item_added"===e.type,!0);break;case"map_item_removed":this._handleItemRemoved(e.item_key,e.id,e.item_data,e.date_created,!0);break;case"map_removed":this.onRemoved(!1)}t&&this._advanceLastEventId(e.id,e.map_revision)}},{key:"_advanceLastEventId",value:function(e,t){this.lastEventIdthis.descriptor.date_updated.getTime())&&(this.descriptor.date_updated=e,this.services.storage.update(this.type,this.sid,this.uniqueName,{date_updated:e}))}},{key:"_handleItemMutated",value:function(e,t,r,n,i,s,o,a,u){if(this.shouldIgnoreEvent(e,r))p.default.trace("Item ",e," update skipped, current:",this.lastEventId,", remote:",r);else{this._updateRootDateUpdated(s);var c=this.cache.get(e);c?c.lastEventId<=r&&(c.update(r,n,i,s),void 0!==o&&c.updateDateExpires(o),this.emitItemMutationEvent(c,u,!1)):(c=new v.MapItem({key:e,url:t,last_event_id:r,revision:n,data:i,date_updated:s,date_expires:o}),this.cache.store(e,c,r),this.emitItemMutationEvent(c,u,a))}}},{key:"emitItemMutationEvent",value:function(e,t,r){var n=r?"itemAdded":"itemUpdated";this.emit(n,{item:e,isLocal:!t})}},{key:"_handleItemRemoved",value:function(e,t,r,n,i){this._updateRootDateUpdated(n),this.cache.delete(e,t),this.emit("itemRemoved",{key:e,isLocal:!i,value:r})}},{key:"onRemoved",value:function(e){this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.emit("removed",{isLocal:e})}},{key:"setTtl",value:function(n){return h(this,void 0,void 0,l.default.mark(function e(){var t,r;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return d.validateMandatoryTtl(n),e.prev=1,t={ttl:n},e.next=5,this.services.network.post(this.uri,t);case 5:r=e.sent,this.descriptor.date_expires=r.body.date_expires,e.next=13;break;case 9:throw e.prev=9,e.t0=e.catch(1),404===e.t0.status&&this.onRemoved(!1),e.t0;case 13:case"end":return e.stop()}},e,this,[[1,9]])}))}},{key:"setItemTtl",value:function(i,s){return h(this,void 0,void 0,l.default.mark(function e(){var t,r,n;return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return d.validateMandatoryTtl(s),e.next=3,this.get(i);case 3:return t=e.sent,r={ttl:s},e.next=7,this.services.network.post(t.uri,r);case 7:n=e.sent,t.updateDateExpires(n.body.date_expires);case 9:case"end":return e.stop()}},e,this)}))}},{key:"removeMap",value:function(){return h(this,void 0,void 0,l.default.mark(function e(){return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.network.delete(this.uri);case 2:this.onRemoved(!0);case 3:case"end":return e.stop()}},e,this)}))}},{key:"uri",get:function(){return this.descriptor.url}},{key:"links",get:function(){return this.descriptor.links}},{key:"revision",get:function(){return this.descriptor.revision}},{key:"lastEventId",get:function(){return this.descriptor.last_event_id}},{key:"dateExpires",get:function(){return this.descriptor.date_expires}},{key:"type",get:function(){return"map"}},{key:"sid",get:function(){return this.descriptor.sid}},{key:"uniqueName",get:function(){return this.descriptor.unique_name||null}},{key:"dateUpdated",get:function(){return this.descriptor.date_updated}}],[{key:"type",get:function(){return"map"}}]),i}(m.SyncEntity);r.SyncMap=k,r.default=k},{"./cache":247,"./entity":252,"./logger":255,"./mapitem":256,"./mergingqueue":257,"./paginator":259,"./syncerror":266,"./utils":269,"babel-runtime/core-js/object/get-prototype-of":42,"babel-runtime/core-js/promise":45,"babel-runtime/helpers/classCallCheck":50,"babel-runtime/helpers/createClass":51,"babel-runtime/helpers/extends":52,"babel-runtime/helpers/inherits":53,"babel-runtime/helpers/possibleConstructorReturn":54,"babel-runtime/regenerator":57}],269:[function(e,t,r){"use strict";var n=o(e("babel-runtime/helpers/classCallCheck")),i=o(e("babel-runtime/helpers/createClass")),s=o(e("babel-runtime/core-js/json/stringify"));function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var a=e("./syncerror");function u(e){return!isNaN(parseInt(e))&&isFinite(e)}function c(e){return u(e)&&0<=e}r.deepClone=function(e){return JSON.parse((0,s.default)(e))},r.validateOptionalTtl=function(e){if(void 0!==e&&!c(e))throw new a.default("Invalid TTL value, expected a positive integer, was '"+e+"'",400,54011)},r.validateMandatoryTtl=function(e){if(!c(e))throw new a.default("Invalid TTL value, expected a positive integer, was '"+e+"'",400,54011)},r.validatePageSize=function(e){var t;if(!(void 0===e||u(t=e)&&0=0.7.4 <0.8.0",type:"range"},"/var/lib/jenkins/jobs/twilio-chat.js/workspace"]],_from:"twilio-sync@>=0.7.4 <0.8.0",_id:"twilio-sync@0.7.4",_inCache:!0,_location:"/twilio-sync",_nodeVersion:"7.7.1",_npmOperationalInternal:{host:"s3://npm-registry-packages",tmp:"tmp/twilio-sync-0.7.4.tgz_1516105521077_0.08853570837527514"},_npmUser:{name:"twilio-ci",email:"mroberts+twilio-ci@twilio.com"},_npmVersion:"4.1.2",_phantomChildren:{},_requested:{raw:"twilio-sync@^0.7.4",scope:null,escapedName:"twilio-sync",name:"twilio-sync",rawSpec:"^0.7.4",spec:">=0.7.4 <0.8.0",type:"range"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/twilio-sync/-/twilio-sync-0.7.4.tgz",_shasum:"f890954bfd8b6d73d0ff0309d982cce9d212eee1",_shrinkwrap:null,_spec:"twilio-sync@^0.7.4",_where:"/var/lib/jenkins/jobs/twilio-chat.js/workspace",author:{name:"Twilio"},browser:"browser/index.js",dependencies:{"babel-runtime":"^6.23.0",karibu:"^1.0.1",loglevel:"^1.4.1","operation-retrier":"^1.1.2",platform:"^1.3.3",rfc6902:"^1.3.0","twilio-ems-client":"^0.2.6","twilio-notifications":"^0.4.4","twilio-transport":"^0.1.4",twilsock:"^0.3.5",uuid:"^3.0.1",xxhashjs:"^0.2.1"},description:"Twilio Sync client library",devDependencies:{"@types/chai":"^3.4.35","@types/chai-as-promised":"0.0.29","@types/loglevel":"^1.4.29","@types/mocha":"^2.2.39","@types/node":"^7.0.5","@types/sinon":"^2.3.3","@types/sinon-chai":"^2.7.27","async-test-tools":"^1.0.6","babel-cli":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-array-includes":"^2.0.3","babel-plugin-transform-object-assign":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.22.0",babelify:"^7.3.0",backoff:"^2.5.0",browserify:"^14.1.0",chai:"^3.5.0","chai-as-promised":"^6.0.0",cheerio:"^0.22.0",del:"^2.2.2",gulp:"^3.9.1","gulp-babel":"^6.1.2","gulp-derequire":"^2.1.0","gulp-exit":"0.0.2","gulp-insert":"^0.5.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-tap":"^0.1.3","gulp-tslint":"^7.1.0","gulp-typescript":"^3.1.5","gulp-uglify":"^2.0.1","gulp-util":"^3.0.8","ink-docstrap":"^1.3.0",isparta:"^4.0.0",jsdoc:"^3.4.3",jsonwebtoken:"^7.3.0",karma:"^1.5.0","karma-browserify":"^5.1.1","karma-browserstack-launcher":"^1.2.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.2","run-sequence":"^1.2.2",sinon:"^2.3.3","sinon-chai":"^2.8.0","ts-node":"^3.0.0",tslint:"^4.5.1",twilio:"^3.10.0",typescript:"2.2.1",underscore:"^1.8.3","vinyl-buffer":"^1.0.0","vinyl-source-stream":"^1.1.0",watchify:"^3.9.0"},directories:{},dist:{shasum:"f890954bfd8b6d73d0ff0309d982cce9d212eee1",tarball:"https://registry.npmjs.org/twilio-sync/-/twilio-sync-0.7.4.tgz"},engines:{node:">=6"},gitHead:"29cc7329e06175be1c71a1c8f1a00144ec336881",license:"MIT",main:"lib/index.js",maintainers:[{name:"schertkov",email:"schertkov@twilio.com"},{name:"twilio-ci",email:"mroberts+twilio-ci@twilio.com"}],name:"twilio-sync",optionalDependencies:{},readme:"ERROR: No README data found!",scripts:{prepare:"gulp build",test:"gulp unit-test"},version:"0.7.4"}},{}],272:[function(e,t,r){"use strict";var o=s(e("babel-runtime/core-js/json/stringify")),n=s(e("babel-runtime/core-js/promise")),i=s(e("babel-runtime/core-js/object/define-property"));function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var a=function(){function n(e,t){for(var r=0;r=s._concurrentHttpRequestLimit?new o.default(function(e,t){return s._requestQueue.push({sendingOptions:r,resolve:e,reject:t})}):(s._concurrentHttpRequestCount++,i().then(function(e){return s._concurrentHttpRequestCount--,s._processQueuedRequests(),e}).catch(function(e){throw s._concurrentHttpRequestCount--,s._processQueuedRequests(),e}))).then(S)}},{key:"_processQueuedRequests",value:function(){for(;0>",r),this.emit("stateChanged",this.state),this._isDeferredUpdate&&(this._isDeferredUpdate=!1,setTimeout(function(){n.updateToken()},0))}},{key:"_resetBackoff",value:function(){m.default.trace("_resetBackoff"),this._backoff=this._backoffDefault,this._backoff.reset()}},{key:"_modifyBackoff",value:function(e){var t=this;m.default.trace("_modifyBackoff",e);var r=e?e.backoff_policy:null;if(r){var n=r.reconnect_min_ms||2e3,i=r.reconnect_max_ms||12e4;m.default.debug("new backoff policy",n,i),this._backoff=b.default.exponential({randomisationFactor:.2,initialDelay:n,maxDelay:i}),this._backoff.on("ready",function(){t._retry()})}}},{key:"_startDisconnectTimer",value:function(){var e=this;m.default.trace("_startDisconnectTimer"),this._disconnectingTimer&&(clearTimeout(this._disconnectingTimer),this._disconnectingTimer=null),this._disconnectingTimer=setTimeout(function(){m.default.debug("disconnecting is timed out"),e._closeSocket()},3e3)}},{key:"_cancelDisconnectTimer",value:function(){m.default.trace("_cancelDisconnectTimer"),this._disconnectingTimer&&(clearTimeout(this._disconnectingTimer),this._disconnectingTimer=null)}},{key:"_processReply",value:function(e){m.default.debug("receive reply:",e);var t=this._activeRequests.get(e.id);if(t)switch(clearTimeout(t.timeout),this._activeRequests.delete(e.id),t.reqType){case"init":200<=e.status.code&&e.status.code<300?this._fsm.initSuccess(e.body):401===e.status.code||403===e.status.code?this._fsm.tokenRejected(e.status):(429===e.status.code&&this._modifyBackoff(e.body),this._fsm.initError(e.status));break;case"update":200<=e.status.code&&e.status.code<300?this._fsm.updateSuccess(e.body):401===e.status.code||403===e.status.code?this._fsm.tokenRejected(e.status):(429===e.status.code&&this._modifyBackoff(e.body),this._fsm.updateError(e.status));break;default:m.default.error("unexpected reply")}}},{key:"_storeRequest",value:function(e,t,r){var n=this;m.default.trace("_storeRequest");var i={reqType:t,timeout:setTimeout(function(){m.default.debug("request",t,": ",e,"is timed out"),"init"!==t&&"update"!==t&&m.default.error("unknown request type",t),n._closeSocket()},r)};this._activeRequests.set(e,i)}},{key:"_isConnected",value:function(){return this.state===r.state.CONNECTED&&this._socket&&1===this._socket.readyState}},{key:"_getState",value:function(){if(!this._fsm)return r.state.DISCONNECTED;switch(this._fsm.current){case"connecting":case"initialising":case"retrying":case"error":return r.state.CONNECTING;case"updating":case"connected":return r.state.CONNECTED;case"rejected":return r.state.REJECTED;case"disconnecting":case"waitSocketClosed":case"waitOffloadSocketClosed":return r.state.DISCONNECTING;case"disconnected":default:return r.state.DISCONNECTED}}},{key:"_initRetry",value:function(){m.default.trace("_initRetry"),this._backoff.backoff()}},{key:"_retry",value:function(){m.default.trace("_retry"),this._socket=null,this._activeToken=null,this._fsm.userRetry()}},{key:"_onConnected",value:function(){this.emit("connected")}},{key:"_finalizeSocket",value:function(){if(m.default.trace("_finalizeSocket"),this._stopWatchdogTimer(),this._onDisconnected(),this._disconnectedPromiseResolve){var e=this._disconnectedPromiseResolve;this._disconnectedPromiseResolve=null,e()}}},{key:"_onDisconnected",value:function(){this._socket=null,this._activeToken=null,this.emit("disconnected")}},{key:"_setupSocket",value:function(){m.default.trace("_setupSocket:",this._config.token);var a=this,e=this._config.twilsockUri;m.default.debug("try to connect to:",e);var t=new g(e);t.binaryType="arraybuffer",t.onopen=function(){m.default.info("socket opened"),a._fsm.socketConnected()},t.onclose=function(e){m.default.info("socket closed",e),a._fsm.socketClosed()},t.onerror=function(e){m.default.error("error: ",e)},t.onmessage=function(t){m.default.trace("data: ",t.data);var e=new Uint8Array(t.data),r=function(e){for(var t="",r=0;r>>((3&t)<<3)&255;return s}}},{}],286:[function(e,t,r){var p,m,v=e("./lib/rng"),b=e("./lib/bytesToUuid"),y=0,_=0;t.exports=function(e,t,r){var n=t&&r||0,i=t||[],s=(e=e||{}).node||p,o=void 0!==e.clockseq?e.clockseq:m;if(null==s||null==o){var a=v();null==s&&(s=p=[1|a[0],a[1],a[2],a[3],a[4],a[5]]),null==o&&(o=m=16383&(a[6]<<8|a[7]))}var u=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:_+1,l=u-y+(c-_)/1e4;if(l<0&&void 0===e.clockseq&&(o=o+1&16383),(l<0||y>>24&255,i[n++]=f>>>16&255,i[n++]=f>>>8&255,i[n++]=255&f;var h=u/4294967296*1e4&268435455;i[n++]=h>>>8&255,i[n++]=255&h,i[n++]=h>>>24&15|16,i[n++]=h>>>16&255,i[n++]=o>>>8|128,i[n++]=255&o;for(var d=0;d<6;++d)i[n+d]=s[d];return t||b(i)}},{"./lib/bytesToUuid":284,"./lib/rng":285}],287:[function(e,t,r){var o=e("./lib/rng"),a=e("./lib/bytesToUuid");t.exports=function(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var i=(e=e||{}).random||(e.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t)for(var s=0;s<16;++s)t[n+s]=i[s];return t||a(i)}},{"./lib/bytesToUuid":284,"./lib/rng":285}],288:[function(e,t,r){t.exports={h32:e("./xxhash"),h64:e("./xxhash64")}},{"./xxhash":289,"./xxhash64":290}],289:[function(r,n,e){(function(u){
/**
xxHash implementation in pure Javascript
Copyright (C) 2013, Pierre Curto
MIT license
*/
var a=r("cuint").UINT32;a.prototype.xxh_update=function(e,t){var r,n,i=l._low,s=l._high;r=(n=e*i)>>>16,r+=t*i,r&=65535,r+=e*s;var o=this._low+(65535&n),a=o>>>16,u=(a+=this._high+(65535&r))<<16|65535&o;a=(u=u<<13|u>>>19)>>>16,r=(n=(o=65535&u)*(i=c._low))>>>16,r+=a*i,r&=65535,r+=o*(s=c._high),this._low=65535&n,this._high=65535&r};var c=a("2654435761"),l=a("2246822519"),f=a("3266489917"),h=a("668265263"),d=a("374761393");function e(){return 2==arguments.length?new e(arguments[1]).update(arguments[0]).digest():this instanceof e?void t.call(this,arguments[0]):new e(arguments[0])}function t(e){return this.seed=e instanceof a?e.clone():a(e),this.v1=this.seed.clone().add(c).add(l),this.v2=this.seed.clone().add(l),this.v3=this.seed.clone(),this.v4=this.seed.clone().subtract(c),this.total_len=0,this.memsize=0,this.memory=null,this}e.prototype.init=t,e.prototype.update=function(e){var t,r="string"==typeof e;r&&(e=function(e){for(var t=[],r=0,n=e.length;r>6,128|63&i):i<55296||57344<=i?t.push(224|i>>12,128|i>>6&63,128|63&i):(r++,i=65536+((1023&i)<<10|1023&e.charCodeAt(r)),t.push(240|i>>18,128|i>>12&63,128|i>>6&63,128|63&i))}return new Uint8Array(t)}(e),r=!1,t=!0),"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&(t=!0,e=new Uint8Array(e));var n=0,i=e.length,s=n+i;if(0==i)return this;if(this.total_len+=i,0==this.memsize&&(this.memory=r?"":t?new Uint8Array(16):new u(16)),this.memsize+i<16)return r?this.memory+=e:t?this.memory.set(e.subarray(0,i),this.memsize):e.copy(this.memory,this.memsize,0,i),this.memsize+=i,this;if(0>6,128|63&i):i<55296||57344<=i?t.push(224|i>>12,128|i>>6&63,128|63&i):(r++,i=65536+((1023&i)<<10|1023&e.charCodeAt(r)),t.push(240|i>>18,128|i>>12&63,128|i>>6&63,128|63&i))}return new Uint8Array(t)}(e),r=!1,t=!0),"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&(t=!0,e=new Uint8Array(e));var n=0,i=e.length,s=n+i;if(0==i)return this;if(this.total_len+=i,0==this.memsize&&(this.memory=r?"":t?new Uint8Array(32):new c(32)),this.memsize+i<32)return r?this.memory+=e:t?this.memory.set(e.subarray(0,i),this.memsize):e.copy(this.memory,this.memsize,0,i),this.memsize+=i,this;if(0=6"}}},{}]},{},[3])(3)});