@twilio/conversations 3.0.0-rc.8 → 3.0.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +38 -28
  2. package/builds/browser.js +4327 -7903
  3. package/builds/browser.js.map +1 -1
  4. package/builds/lib.d.ts +629 -102
  5. package/builds/lib.js +4319 -7904
  6. package/builds/lib.js.map +1 -1
  7. package/builds/twilio-conversations.js +27540 -41958
  8. package/builds/twilio-conversations.min.js +200 -1
  9. package/dist/aggregated-delivery-receipt.js +10 -1
  10. package/dist/aggregated-delivery-receipt.js.map +1 -1
  11. package/dist/channel-metadata-client.js +192 -0
  12. package/dist/channel-metadata-client.js.map +1 -0
  13. package/dist/client.js +75 -123
  14. package/dist/client.js.map +1 -1
  15. package/dist/command-executor.js +81 -20
  16. package/dist/command-executor.js.map +1 -1
  17. package/dist/configuration.js +14 -3
  18. package/dist/configuration.js.map +1 -1
  19. package/dist/content-client.js +184 -0
  20. package/dist/content-client.js.map +1 -0
  21. package/dist/content-template.js +310 -0
  22. package/dist/content-template.js.map +1 -0
  23. package/dist/conversation.js +105 -22
  24. package/dist/conversation.js.map +1 -1
  25. package/dist/data/conversations.js +43 -5
  26. package/dist/data/conversations.js.map +1 -1
  27. package/dist/data/messages.js +26 -19
  28. package/dist/data/messages.js.map +1 -1
  29. package/dist/data/participants.js +15 -4
  30. package/dist/data/participants.js.map +1 -1
  31. package/dist/data/users.js +11 -2
  32. package/dist/data/users.js.map +1 -1
  33. package/dist/detailed-delivery-receipt.js +9 -0
  34. package/dist/detailed-delivery-receipt.js.map +1 -1
  35. package/dist/index.js +20 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/interfaces/notification-types.js +9 -0
  38. package/dist/interfaces/notification-types.js.map +1 -1
  39. package/dist/interfaces/{attributes.js → rules.js} +26 -7
  40. package/dist/interfaces/rules.js.map +1 -0
  41. package/dist/logger.js +9 -0
  42. package/dist/logger.js.map +1 -1
  43. package/dist/media.js +9 -0
  44. package/dist/media.js.map +1 -1
  45. package/dist/message-builder.js +77 -6
  46. package/dist/message-builder.js.map +1 -1
  47. package/dist/message.js +115 -22
  48. package/dist/message.js.map +1 -1
  49. package/dist/node_modules/quick-lru/index.js +265 -0
  50. package/dist/node_modules/quick-lru/index.js.map +1 -0
  51. package/dist/node_modules/tslib/tslib.es6.js +9 -0
  52. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  53. package/dist/packages/conversations/package.json.js +10 -1
  54. package/dist/packages/conversations/package.json.js.map +1 -1
  55. package/dist/participant.js +45 -36
  56. package/dist/participant.js.map +1 -1
  57. package/dist/push-notification.js +9 -0
  58. package/dist/push-notification.js.map +1 -1
  59. package/dist/rest-paginator.js +20 -11
  60. package/dist/rest-paginator.js.map +1 -1
  61. package/dist/services/network.js +110 -11
  62. package/dist/services/network.js.map +1 -1
  63. package/dist/services/typing-indicator.js +22 -5
  64. package/dist/services/typing-indicator.js.map +1 -1
  65. package/dist/unsent-message.js +9 -0
  66. package/dist/unsent-message.js.map +1 -1
  67. package/dist/user.js +20 -3
  68. package/dist/user.js.map +1 -1
  69. package/dist/util/deferred.js +9 -0
  70. package/dist/util/deferred.js.map +1 -1
  71. package/dist/util/index.js +9 -0
  72. package/dist/util/index.js.map +1 -1
  73. package/docs/.nojekyll +1 -0
  74. package/docs/assets/highlight.css +113 -0
  75. package/docs/assets/main.js +58 -0
  76. package/docs/assets/search.js +1 -0
  77. package/docs/assets/style.css +1279 -0
  78. package/docs/classes/AggregatedDeliveryReceipt.html +144 -3182
  79. package/docs/classes/CancellablePromise.html +224 -3209
  80. package/docs/classes/CancellationError.html +112 -0
  81. package/docs/classes/ChannelMetadata.html +67 -0
  82. package/docs/classes/Client.html +701 -4237
  83. package/docs/classes/ContentTemplate.html +97 -0
  84. package/docs/classes/ContentTemplateVariable.html +90 -0
  85. package/docs/classes/Conversation.html +768 -4352
  86. package/docs/classes/DetailedDeliveryReceipt.html +116 -3162
  87. package/docs/classes/Media.html +119 -3165
  88. package/docs/classes/Message.html +417 -3730
  89. package/docs/classes/MessageBuilder.html +208 -3274
  90. package/docs/classes/Participant.html +258 -3442
  91. package/docs/classes/PushNotification.html +101 -3129
  92. package/docs/classes/RestPaginator.html +120 -3158
  93. package/docs/classes/UnsentMessage.html +63 -3040
  94. package/docs/classes/User.html +209 -3347
  95. package/docs/index.html +146 -3502
  96. package/docs/interfaces/ClientOptions.html +66 -3033
  97. package/docs/interfaces/ConversationBindings.html +109 -3000
  98. package/docs/interfaces/ConversationEmailBinding.html +109 -3000
  99. package/docs/interfaces/ConversationLimits.html +87 -3097
  100. package/docs/interfaces/ConversationState.html +66 -3049
  101. package/docs/interfaces/ConversationUpdatedEventArgs.html +109 -3000
  102. package/docs/interfaces/CreateConversationOptions.html +73 -3065
  103. package/docs/interfaces/LastMessage.html +66 -3049
  104. package/docs/interfaces/Paginator.html +110 -3139
  105. package/docs/interfaces/ParticipantBindingOptions.html +110 -0
  106. package/docs/interfaces/ParticipantBindings.html +109 -3000
  107. package/docs/interfaces/ParticipantEmailBinding.html +109 -3000
  108. package/docs/interfaces/PushNotificationData.html +94 -3113
  109. package/docs/interfaces/SendEmailOptions.html +59 -3033
  110. package/docs/interfaces/SendMediaOptions.html +75 -3067
  111. package/docs/modules.html +180 -3509
  112. package/docs/types/ChannelType.html +106 -0
  113. package/docs/types/ConnectionState.html +115 -0
  114. package/docs/types/ContentData.html +106 -0
  115. package/docs/types/ContentDataAction.html +107 -0
  116. package/docs/types/ContentDataActionOther.html +121 -0
  117. package/docs/types/ContentDataActionPhone.html +128 -0
  118. package/docs/types/ContentDataActionReply.html +133 -0
  119. package/docs/types/ContentDataActionUrl.html +128 -0
  120. package/docs/types/ContentDataCallToAction.html +131 -0
  121. package/docs/types/ContentDataCard.html +137 -0
  122. package/docs/types/ContentDataListItem.html +121 -0
  123. package/docs/types/ContentDataListPicker.html +134 -0
  124. package/docs/types/ContentDataLocation.html +134 -0
  125. package/docs/types/ContentDataMedia.html +129 -0
  126. package/docs/types/ContentDataOther.html +121 -0
  127. package/docs/types/ContentDataQuickReply.html +131 -0
  128. package/docs/types/ContentDataReply.html +119 -0
  129. package/docs/types/ContentDataText.html +125 -0
  130. package/docs/types/ConversationStatus.html +107 -0
  131. package/docs/types/ConversationUpdateReason.html +106 -0
  132. package/docs/types/DeliveryAmount.html +106 -0
  133. package/docs/types/DeliveryStatus.html +106 -0
  134. package/docs/types/JSONArray.html +106 -0
  135. package/docs/types/JSONObject.html +111 -0
  136. package/docs/types/JSONValue.html +106 -0
  137. package/docs/types/LogLevel.html +106 -0
  138. package/docs/types/MediaCategory.html +106 -0
  139. package/docs/types/MessageType.html +106 -0
  140. package/docs/types/MessageUpdateReason.html +106 -0
  141. package/docs/types/NotificationLevel.html +109 -0
  142. package/docs/types/NotificationsChannelType.html +110 -0
  143. package/docs/types/ParticipantEmailLevel.html +108 -0
  144. package/docs/types/ParticipantType.html +107 -0
  145. package/docs/types/ParticipantUpdateReason.html +106 -0
  146. package/docs/types/PushNotificationType.html +106 -0
  147. package/docs/types/State.html +110 -0
  148. package/docs/types/UserUpdateReason.html +106 -0
  149. package/package.json +22 -17
  150. package/CHANGELOG.md +0 -501
  151. package/dist/interfaces/attributes.js.map +0 -1
  152. package/docs/assets/css/main.css +0 -2660
  153. package/docs/assets/images/icons.png +0 -0
  154. package/docs/assets/images/icons@2x.png +0 -0
  155. package/docs/assets/images/widgets.png +0 -0
  156. package/docs/assets/images/widgets@2x.png +0 -0
  157. package/docs/assets/js/main.js +0 -248
  158. package/docs/assets/js/search.js +0 -1
@@ -126,4 +126,203 @@ This software includes platform.js under the following license.
126
126
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
127
127
 
128
128
  */
129
- this.Twilio=this.Twilio||{},this.Twilio.Conversations=function(e){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function n(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}var r=function(e){return e&&e.Math==Math&&e},i=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a={},o=function(e){try{return!!e()}catch(e){return!0}},s=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),u={},c={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,f=l&&!c.call({1:2},1);u.f=f?function(e){var t=l(this,e);return!!t&&t.enumerable}:c;var d,p,h=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},v={}.toString,y=function(e){return v.call(e).slice(8,-1)},m=y,g="".split,b=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==m(e)?g.call(e,""):Object(e)}:Object,k=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},w=b,x=k,_=function(e){return w(x(e))},S=function(e){return"object"==typeof e?null!==e:"function"==typeof e},E=i,T=function(e){return"function"==typeof e?e:void 0},R=function(e,t){return arguments.length<2?T(E[e]):E[e]&&E[e][t]},I=R("navigator","userAgent")||"",C=i,O=I,P=C.process,A=C.Deno,j=P&&P.versions||A&&A.version,M=j&&j.v8;M?p=(d=M.split("."))[0]<4?1:d[0]+d[1]:O&&(!(d=O.match(/Edge\/(\d+)/))||d[1]>=74)&&(d=O.match(/Chrome\/(\d+)/))&&(p=d[1]);var L=p&&+p,N=L,U=o,D=!!Object.getOwnPropertySymbols&&!U((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&N&&N<41})),F=D&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,B=R,q=F?function(e){return"symbol"==typeof e}:function(e){var t=B("Symbol");return"function"==typeof t&&Object(e)instanceof t},z=S,W={exports:{}},G=i,$=function(e,t){try{Object.defineProperty(G,e,{value:t,configurable:!0,writable:!0})}catch(n){G[e]=t}return t},V=$,J="__core-js_shared__",K=i[J]||V(J,{}),H=K;(W.exports=function(e,t){return H[e]||(H[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.17.3",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var Y=k,Q=function(e){return Object(Y(e))},X=Q,Z={}.hasOwnProperty,ee=Object.hasOwn||function(e,t){return Z.call(X(e),t)},te=0,ne=Math.random(),re=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++te+ne).toString(36)},ie=i,ae=W.exports,oe=ee,se=re,ue=D,ce=F,le=ae("wks"),fe=ie.Symbol,de=ce?fe:fe&&fe.withoutSetter||se,pe=function(e){return oe(le,e)&&(ue||"string"==typeof le[e])||(ue&&oe(fe,e)?le[e]=fe[e]:le[e]=de("Symbol."+e)),le[e]},he=S,ve=q,ye=function(e,t){var n,r;if("string"===t&&"function"==typeof(n=e.toString)&&!z(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!z(r=n.call(e)))return r;if("string"!==t&&"function"==typeof(n=e.toString)&&!z(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},me=pe("toPrimitive"),ge=function(e,t){if(!he(e)||ve(e))return e;var n,r=e[me];if(void 0!==r){if(void 0===t&&(t="default"),n=r.call(e,t),!he(n)||ve(n))return n;throw TypeError("Can't convert object to primitive value")}return void 0===t&&(t="number"),ye(e,t)},be=ge,ke=q,we=function(e){var t=be(e,"string");return ke(t)?t:String(t)},xe=S,_e=i.document,Se=xe(_e)&&xe(_e.createElement),Ee=function(e){return Se?_e.createElement(e):{}},Te=Ee,Re=!s&&!o((function(){return 7!=Object.defineProperty(Te("div"),"a",{get:function(){return 7}}).a})),Ie=s,Ce=u,Oe=h,Pe=_,Ae=we,je=ee,Me=Re,Le=Object.getOwnPropertyDescriptor;a.f=Ie?Le:function(e,t){if(e=Pe(e),t=Ae(t),Me)try{return Le(e,t)}catch(e){}if(je(e,t))return Oe(!Ce.f.call(e,t),e[t])};var Ne={},Ue=S,De=function(e){if(!Ue(e))throw TypeError(String(e)+" is not an object");return e},Fe=s,Be=Re,qe=De,ze=we,We=Object.defineProperty;Ne.f=Fe?We:function(e,t,n){if(qe(e),t=ze(t),qe(n),Be)try{return We(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var Ge=Ne,$e=h,Ve=s?function(e,t,n){return Ge.f(e,t,$e(1,n))}:function(e,t,n){return e[t]=n,e},Je={exports:{}},Ke=K,He=Function.toString;"function"!=typeof Ke.inspectSource&&(Ke.inspectSource=function(e){return He.call(e)});var Ye,Qe,Xe,Ze=Ke.inspectSource,et=Ze,tt=i.WeakMap,nt="function"==typeof tt&&/native code/.test(et(tt)),rt=W.exports,it=re,at=rt("keys"),ot=function(e){return at[e]||(at[e]=it(e))},st={},ut=nt,ct=S,lt=Ve,ft=ee,dt=K,pt=ot,ht=st,vt="Object already initialized",yt=i.WeakMap;if(ut||dt.state){var mt=dt.state||(dt.state=new yt),gt=mt.get,bt=mt.has,kt=mt.set;Ye=function(e,t){if(bt.call(mt,e))throw new TypeError(vt);return t.facade=e,kt.call(mt,e,t),t},Qe=function(e){return gt.call(mt,e)||{}},Xe=function(e){return bt.call(mt,e)}}else{var wt=pt("state");ht[wt]=!0,Ye=function(e,t){if(ft(e,wt))throw new TypeError(vt);return t.facade=e,lt(e,wt,t),t},Qe=function(e){return ft(e,wt)?e[wt]:{}},Xe=function(e){return ft(e,wt)}}var xt={set:Ye,get:Qe,has:Xe,enforce:function(e){return Xe(e)?Qe(e):Ye(e,{})},getterFor:function(e){return function(t){var n;if(!ct(t)||(n=Qe(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},_t=i,St=Ve,Et=ee,Tt=$,Rt=Ze,It=xt.get,Ct=xt.enforce,Ot=String(String).split("String");(Je.exports=function(e,t,n,r){var i,a=!!r&&!!r.unsafe,o=!!r&&!!r.enumerable,s=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof t||Et(n,"name")||St(n,"name",t),(i=Ct(n)).source||(i.source=Ot.join("string"==typeof t?t:""))),e!==_t?(a?!s&&e[t]&&(o=!0):delete e[t],o?e[t]=n:St(e,t,n)):o?e[t]=n:Tt(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&It(this).source||Rt(this)}));var Pt={},At=Math.ceil,jt=Math.floor,Mt=function(e){return isNaN(e=+e)?0:(e>0?jt:At)(e)},Lt=Mt,Nt=Math.min,Ut=function(e){return e>0?Nt(Lt(e),9007199254740991):0},Dt=Mt,Ft=Math.max,Bt=Math.min,qt=function(e,t){var n=Dt(e);return n<0?Ft(n+t,0):Bt(n,t)},zt=_,Wt=Ut,Gt=qt,$t=function(e){return function(t,n,r){var i,a=zt(t),o=Wt(a.length),s=Gt(r,o);if(e&&n!=n){for(;o>s;)if((i=a[s++])!=i)return!0}else for(;o>s;s++)if((e||s in a)&&a[s]===n)return e||s||0;return!e&&-1}},Vt={includes:$t(!0),indexOf:$t(!1)},Jt=ee,Kt=_,Ht=Vt.indexOf,Yt=st,Qt=function(e,t){var n,r=Kt(e),i=0,a=[];for(n in r)!Jt(Yt,n)&&Jt(r,n)&&a.push(n);for(;t.length>i;)Jt(r,n=t[i++])&&(~Ht(a,n)||a.push(n));return a},Xt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Zt=Qt,en=Xt.concat("length","prototype");Pt.f=Object.getOwnPropertyNames||function(e){return Zt(e,en)};var tn={};tn.f=Object.getOwnPropertySymbols;var nn=Pt,rn=tn,an=De,on=R("Reflect","ownKeys")||function(e){var t=nn.f(an(e)),n=rn.f;return n?t.concat(n(e)):t},sn=ee,un=on,cn=a,ln=Ne,fn=function(e,t){for(var n=un(t),r=ln.f,i=cn.f,a=0;a<n.length;a++){var o=n[a];sn(e,o)||r(e,o,i(t,o))}},dn=o,pn=/#|\.prototype\./,hn=function(e,t){var n=yn[vn(e)];return n==gn||n!=mn&&("function"==typeof t?dn(t):!!t)},vn=hn.normalize=function(e){return String(e).replace(pn,".").toLowerCase()},yn=hn.data={},mn=hn.NATIVE="N",gn=hn.POLYFILL="P",bn=hn,kn=i,wn=a.f,xn=Ve,_n=Je.exports,Sn=$,En=fn,Tn=bn,Rn=function(e,t){var n,r,i,a,o,s=e.target,u=e.global,c=e.stat;if(n=u?kn:c?kn[s]||Sn(s,{}):(kn[s]||{}).prototype)for(r in t){if(a=t[r],i=e.noTargetGet?(o=wn(n,r))&&o.value:n[r],!Tn(u?r:s+(c?".":"#")+r,e.forced)&&void 0!==i){if(typeof a==typeof i)continue;En(a,i)}(e.sham||i&&i.sham)&&xn(a,"sham",!0),_n(n,r,a,e)}},In=Ne.f,Cn=ee,On=pe("toStringTag"),Pn=function(e,t,n){e&&!Cn(e=n?e:e.prototype,On)&&In(e,On,{configurable:!0,value:t})},An=i,jn=Pn;Rn({global:!0},{Reflect:{}}),jn(An.Reflect,"Reflect",!0);var Mn,Ln=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},Nn=Qt,Un=Xt,Dn=Object.keys||function(e){return Nn(e,Un)},Fn=Ne,Bn=De,qn=Dn,zn=s?Object.defineProperties:function(e,t){Bn(e);for(var n,r=qn(t),i=r.length,a=0;i>a;)Fn.f(e,n=r[a++],t[n]);return e},Wn=R("document","documentElement"),Gn=De,$n=zn,Vn=Xt,Jn=st,Kn=Wn,Hn=Ee,Yn=ot("IE_PROTO"),Qn=function(){},Xn=function(e){return"<script>"+e+"</"+"script>"},Zn=function(e){e.write(Xn("")),e.close();var t=e.parentWindow.Object;return e=null,t},er=function(){try{Mn=new ActiveXObject("htmlfile")}catch(e){}var e,t;er="undefined"!=typeof document?document.domain&&Mn?Zn(Mn):((t=Hn("iframe")).style.display="none",Kn.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(Xn("document.F=Object")),e.close(),e.F):Zn(Mn);for(var n=Vn.length;n--;)delete er.prototype[Vn[n]];return er()};Jn[Yn]=!0;var tr=Object.create||function(e,t){var n;return null!==e?(Qn.prototype=Gn(e),n=new Qn,Qn.prototype=null,n[Yn]=e):n=er(),void 0===t?n:$n(n,t)},nr=Ln,rr=S,ir=[].slice,ar={},or=function(e,t,n){if(!(t in ar)){for(var r=[],i=0;i<t;i++)r[i]="a["+i+"]";ar[t]=Function("C,a","return new C("+r.join(",")+")")}return ar[t](e,n)},sr=Function.bind||function(e){var t=nr(this),n=ir.call(arguments,1),r=function(){var i=n.concat(ir.call(arguments));return this instanceof r?or(t,i.length,i):t.apply(e,i)};return rr(t.prototype)&&(r.prototype=t.prototype),r},ur=Rn,cr=Ln,lr=De,fr=S,dr=tr,pr=sr,hr=o,vr=R("Reflect","construct"),yr=hr((function(){function e(){}return!(vr((function(){}),[],e)instanceof e)})),mr=!hr((function(){vr((function(){}))})),gr=yr||mr;ur({target:"Reflect",stat:!0,forced:gr,sham:gr},{construct:function(e,t){cr(e),lr(t);var n=arguments.length<3?e:cr(arguments[2]);if(mr&&!yr)return vr(e,t,n);if(e==n){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 r=[null];return r.push.apply(r,t),new(pr.apply(e,r))}var i=n.prototype,a=dr(fr(i)?i:Object.prototype),o=Function.apply.call(e,a,t);return fr(o)?o:a}});var br=Q,kr=Dn;Rn({target:"Object",stat:!0,forced:o((function(){kr(1)}))},{keys:function(e){return kr(br(e))}});var wr=y,xr=Array.isArray||function(e){return"Array"==wr(e)},_r=q,Sr=function(e){if(_r(e))throw TypeError("Cannot convert a Symbol value to a string");return String(e)},Er={},Tr=_,Rr=Pt.f,Ir={}.toString,Cr="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Er.f=function(e){return Cr&&"[object Window]"==Ir.call(e)?function(e){try{return Rr(e)}catch(e){return Cr.slice()}}(e):Rr(Tr(e))};var Or={},Pr=pe;Or.f=Pr;var Ar=i,jr=ee,Mr=Or,Lr=Ne.f,Nr=function(e){var t=Ar.Symbol||(Ar.Symbol={});jr(t,e)||Lr(t,e,{value:Mr.f(e)})},Ur=Ln,Dr=function(e,t,n){if(Ur(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},Fr=S,Br=xr,qr=pe("species"),zr=function(e){var t;return Br(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!Br(t.prototype)?Fr(t)&&null===(t=t[qr])&&(t=void 0):t=void 0),void 0===t?Array:t},Wr=function(e,t){return new(zr(e))(0===t?0:t)},Gr=Dr,$r=b,Vr=Q,Jr=Ut,Kr=Wr,Hr=[].push,Yr=function(e){var t=1==e,n=2==e,r=3==e,i=4==e,a=6==e,o=7==e,s=5==e||a;return function(u,c,l,f){for(var d,p,h=Vr(u),v=$r(h),y=Gr(c,l,3),m=Jr(v.length),g=0,b=f||Kr,k=t?b(u,m):n||o?b(u,0):void 0;m>g;g++)if((s||g in v)&&(p=y(d=v[g],g,h),e))if(t)k[g]=p;else if(p)switch(e){case 3:return!0;case 5:return d;case 6:return g;case 2:Hr.call(k,d)}else switch(e){case 4:return!1;case 7:Hr.call(k,d)}return a?-1:r||i?i:k}},Qr={forEach:Yr(0),map:Yr(1),filter:Yr(2),some:Yr(3),every:Yr(4),find:Yr(5),findIndex:Yr(6),filterReject:Yr(7)},Xr=Rn,Zr=i,ei=R,ti=s,ni=D,ri=o,ii=ee,ai=xr,oi=S,si=q,ui=De,ci=Q,li=_,fi=we,di=Sr,pi=h,hi=tr,vi=Dn,yi=Pt,mi=Er,gi=tn,bi=a,ki=Ne,wi=u,xi=Ve,_i=Je.exports,Si=W.exports,Ei=st,Ti=re,Ri=pe,Ii=Or,Ci=Nr,Oi=Pn,Pi=xt,Ai=Qr.forEach,ji=ot("hidden"),Mi="Symbol",Li=Ri("toPrimitive"),Ni=Pi.set,Ui=Pi.getterFor(Mi),Di=Object.prototype,Fi=Zr.Symbol,Bi=ei("JSON","stringify"),qi=bi.f,zi=ki.f,Wi=mi.f,Gi=wi.f,$i=Si("symbols"),Vi=Si("op-symbols"),Ji=Si("string-to-symbol-registry"),Ki=Si("symbol-to-string-registry"),Hi=Si("wks"),Yi=Zr.QObject,Qi=!Yi||!Yi.prototype||!Yi.prototype.findChild,Xi=ti&&ri((function(){return 7!=hi(zi({},"a",{get:function(){return zi(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=qi(Di,t);r&&delete Di[t],zi(e,t,n),r&&e!==Di&&zi(Di,t,r)}:zi,Zi=function(e,t){var n=$i[e]=hi(Fi.prototype);return Ni(n,{type:Mi,tag:e,description:t}),ti||(n.description=t),n},ea=function(e,t,n){e===Di&&ea(Vi,t,n),ui(e);var r=fi(t);return ui(n),ii($i,r)?(n.enumerable?(ii(e,ji)&&e[ji][r]&&(e[ji][r]=!1),n=hi(n,{enumerable:pi(0,!1)})):(ii(e,ji)||zi(e,ji,pi(1,{})),e[ji][r]=!0),Xi(e,r,n)):zi(e,r,n)},ta=function(e,t){ui(e);var n=li(t),r=vi(n).concat(aa(n));return Ai(r,(function(t){ti&&!na.call(n,t)||ea(e,t,n[t])})),e},na=function(e){var t=fi(e),n=Gi.call(this,t);return!(this===Di&&ii($i,t)&&!ii(Vi,t))&&(!(n||!ii(this,t)||!ii($i,t)||ii(this,ji)&&this[ji][t])||n)},ra=function(e,t){var n=li(e),r=fi(t);if(n!==Di||!ii($i,r)||ii(Vi,r)){var i=qi(n,r);return!i||!ii($i,r)||ii(n,ji)&&n[ji][r]||(i.enumerable=!0),i}},ia=function(e){var t=Wi(li(e)),n=[];return Ai(t,(function(e){ii($i,e)||ii(Ei,e)||n.push(e)})),n},aa=function(e){var t=e===Di,n=Wi(t?Vi:li(e)),r=[];return Ai(n,(function(e){!ii($i,e)||t&&!ii(Di,e)||r.push($i[e])})),r};(ni||(_i((Fi=function(){if(this instanceof Fi)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?di(arguments[0]):void 0,t=Ti(e),n=function(e){this===Di&&n.call(Vi,e),ii(this,ji)&&ii(this[ji],t)&&(this[ji][t]=!1),Xi(this,t,pi(1,e))};return ti&&Qi&&Xi(Di,t,{configurable:!0,set:n}),Zi(t,e)}).prototype,"toString",(function(){return Ui(this).tag})),_i(Fi,"withoutSetter",(function(e){return Zi(Ti(e),e)})),wi.f=na,ki.f=ea,bi.f=ra,yi.f=mi.f=ia,gi.f=aa,Ii.f=function(e){return Zi(Ri(e),e)},ti&&(zi(Fi.prototype,"description",{configurable:!0,get:function(){return Ui(this).description}}),_i(Di,"propertyIsEnumerable",na,{unsafe:!0}))),Xr({global:!0,wrap:!0,forced:!ni,sham:!ni},{Symbol:Fi}),Ai(vi(Hi),(function(e){Ci(e)})),Xr({target:Mi,stat:!0,forced:!ni},{for:function(e){var t=di(e);if(ii(Ji,t))return Ji[t];var n=Fi(t);return Ji[t]=n,Ki[n]=t,n},keyFor:function(e){if(!si(e))throw TypeError(e+" is not a symbol");if(ii(Ki,e))return Ki[e]},useSetter:function(){Qi=!0},useSimple:function(){Qi=!1}}),Xr({target:"Object",stat:!0,forced:!ni,sham:!ti},{create:function(e,t){return void 0===t?hi(e):ta(hi(e),t)},defineProperty:ea,defineProperties:ta,getOwnPropertyDescriptor:ra}),Xr({target:"Object",stat:!0,forced:!ni},{getOwnPropertyNames:ia,getOwnPropertySymbols:aa}),Xr({target:"Object",stat:!0,forced:ri((function(){gi.f(1)}))},{getOwnPropertySymbols:function(e){return gi.f(ci(e))}}),Bi)&&Xr({target:"JSON",stat:!0,forced:!ni||ri((function(){var e=Fi();return"[null]"!=Bi([e])||"{}"!=Bi({a:e})||"{}"!=Bi(Object(e))}))},{stringify:function(e,t,n){for(var r,i=[e],a=1;arguments.length>a;)i.push(arguments[a++]);if(r=t,(oi(t)||void 0!==e)&&!si(e))return ai(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!si(t))return t}),i[1]=t,Bi.apply(null,i)}});Fi.prototype[Li]||xi(Fi.prototype,Li,Fi.prototype.valueOf),Oi(Fi,Mi),Ei[ji]=!0;var oa=o,sa=L,ua=pe("species"),ca=function(e){return sa>=51||!oa((function(){var t=[];return(t.constructor={})[ua]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},la=Qr.filter;Rn({target:"Array",proto:!0,forced:!ca("filter")},{filter:function(e){return la(this,e,arguments.length>1?arguments[1]:void 0)}});var fa=Rn,da=o,pa=_,ha=a.f,va=s,ya=da((function(){ha(1)}));fa({target:"Object",stat:!0,forced:!va||ya,sham:!va},{getOwnPropertyDescriptor:function(e,t){return ha(pa(e),t)}});var ma=we,ga=Ne,ba=h,ka=function(e,t,n){var r=ma(t);r in e?ga.f(e,r,ba(0,n)):e[r]=n},wa=on,xa=_,_a=a,Sa=ka;function Ea(e,t,n,r,i,a,o){try{var s=e[a](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function Ta(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){Ea(a,r,i,o,s,"next",e)}function s(e){Ea(a,r,i,o,s,"throw",e)}o(void 0)}))}}function Ra(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ia(e,t){return(Ia=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ca(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ia(e,t)}function Oa(e){return(Oa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pa(e,t){if(t&&("object"===Oa(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Ra(e)}function Aa(e){return(Aa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ja(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ma(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function La(e,t,n){return t&&Ma(e.prototype,t),n&&Ma(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Na(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Rn({target:"Object",stat:!0,sham:!s},{getOwnPropertyDescriptors:function(e){for(var t,n,r=xa(e),i=_a.f,a=wa(r),o={},s=0;a.length>s;)void 0!==(n=i(r,t=a[s++]))&&Sa(o,t,n);return o}});var Ua={};Ua[pe("toStringTag")]="z";var Da="[object z]"===String(Ua),Fa=Da,Ba=y,qa=pe("toStringTag"),za="Arguments"==Ba(function(){return arguments}()),Wa=Fa?Ba:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),qa))?n:za?Ba(t):"Object"==(r=Ba(t))&&"function"==typeof t.callee?"Arguments":r},Ga=Wa,$a=Da?{}.toString:function(){return"[object "+Ga(this)+"]"},Va=Da,Ja=Je.exports,Ka=$a;Va||Ja(Object.prototype,"toString",Ka,{unsafe:!0});var Ha=i.Promise,Ya=Je.exports,Qa=function(e,t,n){for(var r in t)Ya(e,r,t[r],n);return e},Xa=S,Za=De,eo=function(e){if(!Xa(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},to=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return Za(n),eo(r),t?e.call(n,r):n.__proto__=r,n}}():void 0),no=R,ro=Ne,io=s,ao=pe("species"),oo=function(e){var t=no(e),n=ro.f;io&&t&&!t[ao]&&n(t,ao,{configurable:!0,get:function(){return this}})},so=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},uo={},co=uo,lo=pe("iterator"),fo=Array.prototype,po=function(e){return void 0!==e&&(co.Array===e||fo[lo]===e)},ho=Wa,vo=uo,yo=pe("iterator"),mo=function(e){if(null!=e)return e[yo]||e["@@iterator"]||vo[ho(e)]},go=De,bo=mo,ko=function(e,t){var n=arguments.length<2?bo(e):t;if("function"!=typeof n)throw TypeError(String(e)+" is not iterable");return go(n.call(e))},wo=De,xo=function(e,t,n){var r,i;wo(e);try{if(void 0===(r=e.return)){if("throw"===t)throw n;return n}r=r.call(e)}catch(e){i=!0,r=e}if("throw"===t)throw n;if(i)throw r;return wo(r),n},_o=De,So=po,Eo=Ut,To=Dr,Ro=ko,Io=mo,Co=xo,Oo=function(e,t){this.stopped=e,this.result=t},Po=function(e,t,n){var r,i,a,o,s,u,c,l=n&&n.that,f=!(!n||!n.AS_ENTRIES),d=!(!n||!n.IS_ITERATOR),p=!(!n||!n.INTERRUPTED),h=To(t,l,1+f+p),v=function(e){return r&&Co(r,"normal",e),new Oo(!0,e)},y=function(e){return f?(_o(e),p?h(e[0],e[1],v):h(e[0],e[1])):p?h(e,v):h(e)};if(d)r=e;else{if("function"!=typeof(i=Io(e)))throw TypeError("Target is not iterable");if(So(i)){for(a=0,o=Eo(e.length);o>a;a++)if((s=y(e[a]))&&s instanceof Oo)return s;return new Oo(!1)}r=Ro(e,i)}for(u=r.next;!(c=u.call(r)).done;){try{s=y(c.value)}catch(e){Co(r,"throw",e)}if("object"==typeof s&&s&&s instanceof Oo)return s}return new Oo(!1)},Ao=pe("iterator"),jo=!1;try{var Mo=0,Lo={next:function(){return{done:!!Mo++}},return:function(){jo=!0}};Lo[Ao]=function(){return this},Array.from(Lo,(function(){throw 2}))}catch(e){}var No,Uo,Do,Fo,Bo=function(e,t){if(!t&&!jo)return!1;var n=!1;try{var r={};r[Ao]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n},qo=De,zo=Ln,Wo=pe("species"),Go=function(e,t){var n,r=qo(e).constructor;return void 0===r||null==(n=qo(r)[Wo])?t:zo(n)},$o=/(?:ipad|iphone|ipod).*applewebkit/i.test(I),Vo="process"==y(i.process),Jo=i,Ko=o,Ho=Dr,Yo=Wn,Qo=Ee,Xo=$o,Zo=Vo,es=Jo.setImmediate,ts=Jo.clearImmediate,ns=Jo.process,rs=Jo.MessageChannel,is=Jo.Dispatch,as=0,os={},ss="onreadystatechange";try{No=Jo.location}catch(e){}var us=function(e){if(os.hasOwnProperty(e)){var t=os[e];delete os[e],t()}},cs=function(e){return function(){us(e)}},ls=function(e){us(e.data)},fs=function(e){Jo.postMessage(String(e),No.protocol+"//"+No.host)};es&&ts||(es=function(e){for(var t=[],n=arguments.length,r=1;n>r;)t.push(arguments[r++]);return os[++as]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},Uo(as),as},ts=function(e){delete os[e]},Zo?Uo=function(e){ns.nextTick(cs(e))}:is&&is.now?Uo=function(e){is.now(cs(e))}:rs&&!Xo?(Fo=(Do=new rs).port2,Do.port1.onmessage=ls,Uo=Ho(Fo.postMessage,Fo,1)):Jo.addEventListener&&"function"==typeof postMessage&&!Jo.importScripts&&No&&"file:"!==No.protocol&&!Ko(fs)?(Uo=fs,Jo.addEventListener("message",ls,!1)):Uo=ss in Qo("script")?function(e){Yo.appendChild(Qo("script")).onreadystatechange=function(){Yo.removeChild(this),us(e)}}:function(e){setTimeout(cs(e),0)});var ds,ps,hs,vs,ys,ms,gs,bs,ks={set:es,clear:ts},ws=i,xs=/ipad|iphone|ipod/i.test(I)&&void 0!==ws.Pebble,_s=/web0s(?!.*chrome)/i.test(I),Ss=i,Es=a.f,Ts=ks.set,Rs=$o,Is=xs,Cs=_s,Os=Vo,Ps=Ss.MutationObserver||Ss.WebKitMutationObserver,As=Ss.document,js=Ss.process,Ms=Ss.Promise,Ls=Es(Ss,"queueMicrotask"),Ns=Ls&&Ls.value;Ns||(ds=function(){var e,t;for(Os&&(e=js.domain)&&e.exit();ps;){t=ps.fn,ps=ps.next;try{t()}catch(e){throw ps?vs():hs=void 0,e}}hs=void 0,e&&e.enter()},Rs||Os||Cs||!Ps||!As?!Is&&Ms&&Ms.resolve?((gs=Ms.resolve(void 0)).constructor=Ms,bs=gs.then,vs=function(){bs.call(gs,ds)}):vs=Os?function(){js.nextTick(ds)}:function(){Ts.call(Ss,ds)}:(ys=!0,ms=As.createTextNode(""),new Ps(ds).observe(ms,{characterData:!0}),vs=function(){ms.data=ys=!ys}));var Us=Ns||function(e){var t={fn:e,next:void 0};hs&&(hs.next=t),ps||(ps=t,vs()),hs=t},Ds={},Fs=Ln,Bs=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=Fs(t),this.reject=Fs(n)};Ds.f=function(e){return new Bs(e)};var qs,zs,Ws,Gs,$s=De,Vs=S,Js=Ds,Ks=i,Hs="object"==typeof window,Ys=Rn,Qs=i,Xs=R,Zs=Ha,eu=Je.exports,tu=Qa,nu=to,ru=Pn,iu=oo,au=S,ou=Ln,su=so,uu=Ze,cu=Po,lu=Bo,fu=Go,du=ks.set,pu=Us,hu=function(e,t){if($s(e),Vs(t)&&t.constructor===e)return t;var n=Js.f(e);return(0,n.resolve)(t),n.promise},vu=function(e,t){var n=Ks.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},yu=Ds,mu=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},gu=xt,bu=bn,ku=Hs,wu=Vo,xu=L,_u=pe("species"),Su="Promise",Eu=gu.get,Tu=gu.set,Ru=gu.getterFor(Su),Iu=Zs&&Zs.prototype,Cu=Zs,Ou=Iu,Pu=Qs.TypeError,Au=Qs.document,ju=Qs.process,Mu=yu.f,Lu=Mu,Nu=!!(Au&&Au.createEvent&&Qs.dispatchEvent),Uu="function"==typeof PromiseRejectionEvent,Du="unhandledrejection",Fu=!1,Bu=bu(Su,(function(){var e=uu(Cu),t=e!==String(Cu);if(!t&&66===xu)return!0;if(xu>=51&&/native code/.test(e))return!1;var n=new Cu((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};return(n.constructor={})[_u]=r,!(Fu=n.then((function(){}))instanceof r)||!t&&ku&&!Uu})),qu=Bu||!lu((function(e){Cu.all(e).catch((function(){}))})),zu=function(e){var t;return!(!au(e)||"function"!=typeof(t=e.then))&&t},Wu=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;pu((function(){for(var r=e.value,i=1==e.state,a=0;n.length>a;){var o,s,u,c=n[a++],l=i?c.ok:c.fail,f=c.resolve,d=c.reject,p=c.domain;try{l?(i||(2===e.rejection&&Ju(e),e.rejection=1),!0===l?o=r:(p&&p.enter(),o=l(r),p&&(p.exit(),u=!0)),o===c.promise?d(Pu("Promise-chain cycle")):(s=zu(o))?s.call(o,f,d):f(o)):d(r)}catch(e){p&&!u&&p.exit(),d(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&$u(e)}))}},Gu=function(e,t,n){var r,i;Nu?((r=Au.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),Qs.dispatchEvent(r)):r={promise:t,reason:n},!Uu&&(i=Qs["on"+e])?i(r):e===Du&&vu("Unhandled promise rejection",n)},$u=function(e){du.call(Qs,(function(){var t,n=e.facade,r=e.value;if(Vu(e)&&(t=mu((function(){wu?ju.emit("unhandledRejection",r,n):Gu(Du,n,r)})),e.rejection=wu||Vu(e)?2:1,t.error))throw t.value}))},Vu=function(e){return 1!==e.rejection&&!e.parent},Ju=function(e){du.call(Qs,(function(){var t=e.facade;wu?ju.emit("rejectionHandled",t):Gu("rejectionhandled",t,e.value)}))},Ku=function(e,t,n){return function(r){e(t,r,n)}},Hu=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,Wu(e,!0))},Yu=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Pu("Promise can't be resolved itself");var r=zu(t);r?pu((function(){var n={done:!1};try{r.call(t,Ku(Yu,n,e),Ku(Hu,n,e))}catch(t){Hu(n,t,e)}})):(e.value=t,e.state=1,Wu(e,!1))}catch(t){Hu({done:!1},t,e)}}};if(Bu&&(Ou=(Cu=function(e){su(this,Cu,Su),ou(e),qs.call(this);var t=Eu(this);try{e(Ku(Yu,t),Ku(Hu,t))}catch(e){Hu(t,e)}}).prototype,(qs=function(e){Tu(this,{type:Su,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=tu(Ou,{then:function(e,t){var n=Ru(this),r=Mu(fu(this,Cu));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=wu?ju.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&Wu(n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),zs=function(){var e=new qs,t=Eu(e);this.promise=e,this.resolve=Ku(Yu,t),this.reject=Ku(Hu,t)},yu.f=Mu=function(e){return e===Cu||e===Ws?new zs(e):Lu(e)},"function"==typeof Zs&&Iu!==Object.prototype)){Gs=Iu.then,Fu||(eu(Iu,"then",(function(e,t){var n=this;return new Cu((function(e,t){Gs.call(n,e,t)})).then(e,t)}),{unsafe:!0}),eu(Iu,"catch",Ou.catch,{unsafe:!0}));try{delete Iu.constructor}catch(e){}nu&&nu(Iu,Ou)}Ys({global:!0,wrap:!0,forced:Bu},{Promise:Cu}),ru(Cu,Su,!1),iu(Su),Ws=Xs(Su),Ys({target:Su,stat:!0,forced:Bu},{reject:function(e){var t=Mu(this);return t.reject.call(void 0,e),t.promise}}),Ys({target:Su,stat:!0,forced:Bu},{resolve:function(e){return hu(this,e)}}),Ys({target:Su,stat:!0,forced:qu},{all:function(e){var t=this,n=Mu(t),r=n.resolve,i=n.reject,a=mu((function(){var n=ou(t.resolve),a=[],o=0,s=1;cu(e,(function(e){var u=o++,c=!1;a.push(void 0),s++,n.call(t,e).then((function(e){c||(c=!0,a[u]=e,--s||r(a))}),i)})),--s||r(a)}));return a.error&&i(a.value),n.promise},race:function(e){var t=this,n=Mu(t),r=n.reject,i=mu((function(){var i=ou(t.resolve);cu(e,(function(e){i.call(t,e).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var Qu=Qr.map;Rn({target:"Array",proto:!0,forced:!ca("map")},{map:function(e){return Qu(this,e,arguments.length>1?arguments[1]:void 0)}});var Xu={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Zu=Ee("span").classList,ec=Zu&&Zu.constructor&&Zu.constructor.prototype,tc=ec===Object.prototype?void 0:ec,nc=o,rc=function(e,t){var n=[][e];return!!n&&nc((function(){n.call(null,t||function(){throw 1},1)}))},ic=Qr.forEach,ac=i,oc=Xu,sc=tc,uc=rc("forEach")?[].forEach:function(e){return ic(this,e,arguments.length>1?arguments[1]:void 0)},cc=Ve,lc=function(e){if(e&&e.forEach!==uc)try{cc(e,"forEach",uc)}catch(t){e.forEach=uc}};for(var fc in oc)lc(ac[fc]&&ac[fc].prototype);lc(sc);var dc,pc=Object.prototype,hc=pc.hasOwnProperty,vc="function"==typeof Symbol?Symbol:{},yc=vc.iterator||"@@iterator",mc=vc.asyncIterator||"@@asyncIterator",gc=vc.toStringTag||"@@toStringTag";function bc(e,t,n,r){var i=t&&t.prototype instanceof Tc?t:Tc,a=Object.create(i.prototype),o=new Fc(r||[]);return a._invoke=function(e,t,n){var r=wc;return function(i,a){if(r===_c)throw new Error("Generator is already running");if(r===Sc){if("throw"===i)throw a;return qc()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=Nc(o,n);if(s){if(s===Ec)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===wc)throw r=Sc,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=_c;var u=kc(e,t,n);if("normal"===u.type){if(r=n.done?Sc:xc,u.arg===Ec)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=Sc,n.method="throw",n.arg=u.arg)}}}(e,n,o),a}function kc(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}var wc="suspendedStart",xc="suspendedYield",_c="executing",Sc="completed",Ec={};function Tc(){}function Rc(){}function Ic(){}var Cc={};Cc[yc]=function(){return this};var Oc=Object.getPrototypeOf,Pc=Oc&&Oc(Oc(Bc([])));Pc&&Pc!==pc&&hc.call(Pc,yc)&&(Cc=Pc);var Ac=Ic.prototype=Tc.prototype=Object.create(Cc);function jc(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function Mc(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===Rc||"GeneratorFunction"===(t.displayName||t.name))}function Lc(e,t){function n(r,i,a,o){var s=kc(e[r],e,i);if("throw"!==s.type){var u=s.arg,c=u.value;return c&&"object"===Oa(c)&&hc.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,o)}),(function(e){n("throw",e,a,o)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,o)}))}o(s.arg)}var r;this._invoke=function(e,i){function a(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(a,a):a()}}function Nc(e,t){var n=e.iterator[t.method];if(n===dc){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=dc,Nc(e,t),"throw"===t.method))return Ec;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return Ec}var r=kc(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,Ec;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=dc),t.delegate=null,Ec):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,Ec)}function Uc(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function Dc(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Fc(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(Uc,this),this.reset(!0)}function Bc(e){if(e){var t=e[yc];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(hc.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=dc,t.done=!0,t};return r.next=r}}return{next:qc}}function qc(){return{value:dc,done:!0}}Rc.prototype=Ac.constructor=Ic,Ic.constructor=Rc,Ic[gc]=Rc.displayName="GeneratorFunction",jc(Lc.prototype),Lc.prototype[mc]=function(){return this},jc(Ac),Ac[gc]="Generator",Ac[yc]=function(){return this},Ac.toString=function(){return"[object Generator]"},Fc.prototype={constructor:Fc,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=dc,this.done=!1,this.delegate=null,this.method="next",this.arg=dc,this.tryEntries.forEach(Dc),!e)for(var t in this)"t"===t.charAt(0)&&hc.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=dc)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=dc),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var o=hc.call(i,"catchLoc"),s=hc.call(i,"finallyLoc");if(o&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(o){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&hc.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,Ec):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),Ec},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),Dc(n),Ec}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;Dc(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:Bc(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=dc),Ec}};var zc={wrap:bc,isGeneratorFunction:Mc,AsyncIterator:Lc,mark:function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,Ic):(e.__proto__=Ic,gc in e||(e[gc]="GeneratorFunction")),e.prototype=Object.create(Ac),e},awrap:function(e){return{__await:e}},async:function(e,t,n,r,i){void 0===i&&(i=Promise);var a=new Lc(bc(e,t,n,r),i);return Mc(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},keys:function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},values:Bc},Wc=Object.freeze({__proto__:null,default:zc});function Gc(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":Oa(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function $c(e,t){if("object"===("undefined"==typeof Reflect?"undefined":Oa(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var Vc=Rn,Jc=o,Kc=xr,Hc=S,Yc=Q,Qc=Ut,Xc=ka,Zc=Wr,el=ca,tl=L,nl=pe("isConcatSpreadable"),rl=9007199254740991,il="Maximum allowed index exceeded",al=tl>=51||!Jc((function(){var e=[];return e[nl]=!1,e.concat()[0]!==e})),ol=el("concat"),sl=function(e){if(!Hc(e))return!1;var t=e[nl];return void 0!==t?!!t:Kc(e)};Vc({target:"Array",proto:!0,forced:!al||!ol},{concat:function(e){var t,n,r,i,a,o=Yc(this),s=Zc(o,0),u=0;for(t=-1,r=arguments.length;t<r;t++)if(sl(a=-1===t?o:arguments[t])){if(u+(i=Qc(a.length))>rl)throw TypeError(il);for(n=0;n<i;n++,u++)n in a&&Xc(s,u,a[n])}else{if(u>=rl)throw TypeError(il);Xc(s,u++,a)}return s.length=u,s}});var ul=De,cl=xo,ll=Dr,fl=Q,dl=function(e,t,n,r){try{return r?t(ul(n)[0],n[1]):t(n)}catch(t){cl(e,"throw",t)}},pl=po,hl=Ut,vl=ka,yl=ko,ml=mo,gl=function(e){var t,n,r,i,a,o,s=fl(e),u="function"==typeof this?this:Array,c=arguments.length,l=c>1?arguments[1]:void 0,f=void 0!==l,d=ml(s),p=0;if(f&&(l=ll(l,c>2?arguments[2]:void 0,2)),null==d||u==Array&&pl(d))for(n=new u(t=hl(s.length));t>p;p++)o=f?l(s[p],p):s[p],vl(n,p,o);else for(a=(i=yl(s,d)).next,n=new u;!(r=a.call(i)).done;p++)o=f?dl(i,l,[r.value,p],!0):r.value,vl(n,p,o);return n.length=p,n},bl=gl;Rn({target:"Array",stat:!0,forced:!Bo((function(e){Array.from(e)}))},{from:bl});var kl,wl,xl,_l=Mt,Sl=Sr,El=k,Tl=function(e){return function(t,n){var r,i,a=Sl(El(t)),o=_l(n),s=a.length;return o<0||o>=s?e?"":void 0:(r=a.charCodeAt(o))<55296||r>56319||o+1===s||(i=a.charCodeAt(o+1))<56320||i>57343?e?a.charAt(o):r:e?a.slice(o,o+2):i-56320+(r-55296<<10)+65536}},Rl={codeAt:Tl(!1),charAt:Tl(!0)},Il=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Cl=ee,Ol=Q,Pl=Il,Al=ot("IE_PROTO"),jl=Object.prototype,Ml=Pl?Object.getPrototypeOf:function(e){return e=Ol(e),Cl(e,Al)?e[Al]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?jl:null},Ll=o,Nl=Ml,Ul=Ve,Dl=pe("iterator"),Fl=!1;[].keys&&("next"in(xl=[].keys())?(wl=Nl(Nl(xl)))!==Object.prototype&&(kl=wl):Fl=!0),(null==kl||Ll((function(){var e={};return kl[Dl].call(e)!==e})))&&(kl={}),"function"!=typeof kl[Dl]&&Ul(kl,Dl,(function(){return this}));var Bl={IteratorPrototype:kl,BUGGY_SAFARI_ITERATORS:Fl},ql=Bl.IteratorPrototype,zl=tr,Wl=h,Gl=Pn,$l=uo,Vl=function(){return this},Jl=function(e,t,n){var r=t+" Iterator";return e.prototype=zl(ql,{next:Wl(1,n)}),Gl(e,r,!1),$l[r]=Vl,e},Kl=Rn,Hl=Jl,Yl=Ml,Ql=to,Xl=Pn,Zl=Ve,ef=Je.exports,tf=uo,nf=Bl.IteratorPrototype,rf=Bl.BUGGY_SAFARI_ITERATORS,af=pe("iterator"),of="keys",sf="values",uf="entries",cf=function(){return this},lf=function(e,t,n,r,i,a,o){Hl(n,t,r);var s,u,c,l=function(e){if(e===i&&v)return v;if(!rf&&e in p)return p[e];switch(e){case of:case sf:case uf:return function(){return new n(this,e)}}return function(){return new n(this)}},f=t+" Iterator",d=!1,p=e.prototype,h=p[af]||p["@@iterator"]||i&&p[i],v=!rf&&h||l(i),y="Array"==t&&p.entries||h;if(y&&(s=Yl(y.call(new e)))!==Object.prototype&&s.next&&(Yl(s)!==nf&&(Ql?Ql(s,nf):"function"!=typeof s[af]&&Zl(s,af,cf)),Xl(s,f,!0)),i==sf&&h&&h.name!==sf&&(d=!0,v=function(){return h.call(this)}),p[af]!==v&&Zl(p,af,v),tf[t]=v,i)if(u={values:l(sf),keys:a?v:l(of),entries:l(uf)},o)for(c in u)(rf||d||!(c in p))&&ef(p,c,u[c]);else Kl({target:t,proto:!0,forced:rf||d},u);return u},ff=Rl.charAt,df=Sr,pf=xt,hf=lf,vf="String Iterator",yf=pf.set,mf=pf.getterFor(vf);hf(String,"String",(function(e){yf(this,{type:vf,string:df(e),index:0})}),(function(){var e,t=mf(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=ff(n,r),t.index+=e.length,{value:e,done:!1})}));var gf,bf,kf,wf={exports:{}};function xf(e,t){return["".concat((new Date).toISOString()," Conversations ").concat(e,":")].concat(Array.from(t))}bf=t,kf=function(){var e=function(){},t="undefined",n=("undefined"==typeof window?"undefined":Oa(window))!==t&&Oa(window.navigator)!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"];function i(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function o(r){return"debug"===r&&(r="log"),("undefined"==typeof console?"undefined":Oa(console))!==t&&("trace"===r&&n?a:void 0!==console[r]?i(console,r):void 0!==console.log?i(console,"log"):e)}function s(t,n){for(var i=0;i<r.length;i++){var a=r[i];this[a]=i<t?e:this.methodFactory(a,t,n)}this.log=this.debug}function u(e,n,r){return function(){("undefined"==typeof console?"undefined":Oa(console))!==t&&(s.call(this,n,r),this[e].apply(this,arguments))}}function c(e,t,n){return o(e)||u.apply(this,arguments)}function l(e,n,i){var a,o=this,u="loglevel";function l(){var e;if(("undefined"==typeof window?"undefined":Oa(window))!==t&&u){try{e=window.localStorage[u]}catch(e){}if(Oa(e)===t)try{var n=window.document.cookie,r=n.indexOf(encodeURIComponent(u)+"=");-1!==r&&(e=/^([^;]+)/.exec(n.slice(r))[1])}catch(e){}return void 0===o.levels[e]&&(e=void 0),e}}"string"==typeof e?u+=":"+e:"symbol"===Oa(e)&&(u=void 0),o.name=e,o.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},o.methodFactory=i||c,o.getLevel=function(){return a},o.setLevel=function(n,i){if("string"==typeof n&&void 0!==o.levels[n.toUpperCase()]&&(n=o.levels[n.toUpperCase()]),!("number"==typeof n&&n>=0&&n<=o.levels.SILENT))throw"log.setLevel() called with invalid level: "+n;if(a=n,!1!==i&&function(e){var n=(r[e]||"silent").toUpperCase();if(("undefined"==typeof window?"undefined":Oa(window))!==t&&u){try{return void(window.localStorage[u]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(u)+"="+n+";"}catch(e){}}}(n),s.call(o,n,e),("undefined"==typeof console?"undefined":Oa(console))===t&&n<o.levels.SILENT)return"No console available for logging"},o.setDefaultLevel=function(e){l()||o.setLevel(e,!1)},o.enableAll=function(e){o.setLevel(o.levels.TRACE,e)},o.disableAll=function(e){o.setLevel(o.levels.SILENT,e)};var f=l();null==f&&(f=null==n?"WARN":n),o.setLevel(f,!1)}var f=new l,d={};f.getLogger=function(e){if("symbol"!==Oa(e)&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=d[e];return t||(t=d[e]=new l(e,f.getLevel(),f.methodFactory)),t};var p=("undefined"==typeof window?"undefined":Oa(window))!==t?window.log:void 0;return f.noConflict=function(){return("undefined"==typeof window?"undefined":Oa(window))!==t&&window.log===f&&(window.log=p),f},f.getLoggers=function(){return d},f.default=f,f},(gf=wf).exports?gf.exports=kf():bf.log=kf();var _f,Sf,Ef=wf.exports.getLogger("twilio-conversations"),Tf=function(){function e(t){Na(this,e),ja(this,"prefix",""),this.prefix=null!=t&&t.length>0?t+" ":""}return La(e,[{key:"setLevel",value:function(e){Ef.setLevel(e)}},{key:"trace",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.trace.apply(null,xf(this.prefix+"T",t))}},{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.debug.apply(null,xf(this.prefix+"D",t))}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.info.apply(null,xf(this.prefix+"I",t))}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.warn.apply(null,xf(this.prefix+"W",t))}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.error.apply(null,xf(this.prefix+"E",t))}}],[{key:"scope",value:function(t){return new e(t)}},{key:"setLevel",value:function(e){Ef.setLevel(e)}},{key:"trace",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.trace.apply(null,xf("T",t))}},{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.debug.apply(null,xf("D",t))}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.info.apply(null,xf("I",t))}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.warn.apply(null,xf("W",t))}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Ef.error.apply(null,xf("E",t))}}]),e}(),Rf={};Object.defineProperty(Rf,"__esModule",{value:!0});var If=["weeks","years","months","days","hours","minutes","seconds"],Cf=Rf.pattern=new RegExp("P(?:(\\d+(?:[\\.,]\\d+)?W)|(\\d+(?:[\\.,]\\d+)?Y)?(\\d+(?:[\\.,]\\d+)?M)?(\\d+(?:[\\.,]\\d+)?D)?(?:T(\\d+(?:[\\.,]\\d+)?H)?(\\d+(?:[\\.,]\\d+)?M)?(\\d+(?:[\\.,]\\d+)?S)?)?)"),Of=Sf=Rf.parse=function(e){return e.match(Cf).slice(1).reduce((function(e,t,n){return e[If[n]]=parseFloat(t)||0,e}),{})},Pf=Rf.end=function(e,t){var n=t?t.getTime():Date.now(),r=new Date(n);return r.setFullYear(r.getFullYear()+e.years),r.setMonth(r.getMonth()+e.months),r.setDate(r.getDate()+e.days),r.setHours(r.getHours()+e.hours),r.setMinutes(r.getMinutes()+e.minutes),r.setMilliseconds(r.getMilliseconds()+1e3*e.seconds),r.setDate(r.getDate()+7*e.weeks),r},Af=_f=Rf.toSeconds=function(e,t){var n=t?t.getTime():Date.now(),r=new Date(n);return(Pf(e,r).getTime()-r.getTime())/1e3};function jf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?jf(Object(n),!0).forEach((function(t){ja(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rf.default={end:Pf,toSeconds:Af,pattern:Cf,parse:Of};var Lf="PT5S",Nf="PT5S",Uf=La((function e(){var t,n,r,i,a,o,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0,c=arguments.length>2?arguments[2]:void 0;Na(this,e),ja(this,"typingIndicatorTimeoutDefault",5e3);var l=s.Chat||s.IPMessaging||s||{};this.productId=l.productId,this.links={myConversations:u.links.my_conversations,conversations:u.links.conversations,users:u.links.users,currentUser:u.links.current_user,typing:u.links.typing,mediaService:u.links.media_service,mediaSetService:u.links.media_set_service,messagesReceipts:u.links.messages_receipts},this.limits={mediaAttachmentsCountLimit:u.options.media_attachments_count_limit,mediaAttachmentSizeLimitInMb:u.options.media_attachment_size_limit_in_mb,mediaAttachmentsTotalSizeLimitInMb:u.options.media_attachments_total_size_limit_in_mb,emailHistoriesAllowedContentTypes:u.options.email_histories_allowed_mime_types,emailBodiesAllowedContentTypes:u.options.email_bodies_allowed_mime_types},this.typingIndicatorTimeoutOverride=l.typingIndicatorTimeoutOverride,this.backoffConfiguration=Mf({min:1e3,max:4e3,maxAttemptsCount:3},l.backoffConfigOverride),this.retryWhenThrottled=void 0===l.retryWhenThrottledOverride||l.retryWhenThrottledOverride,this.userInfosToSubscribe=null!==(t=null!==(n=l.userInfosToSubscribeOverride)&&void 0!==n?n:u.options.user_infos_to_subscribe)&&void 0!==t?t:100,this.reachabilityEnabled=u.options.reachability_enabled,this.userIdentity=u.identity,this.userInfo=u.sync_objects.my_user_info,this.myConversations=u.sync_objects.my_conversations;var f=null!==(r=null!==(i=l.httpCacheIntervalOverride)&&void 0!==i?i:u.options.http_cache_interval)&&void 0!==r?r:Lf;try{this.httpCacheInterval=_f(Sf(f))}catch(e){c.error("Failed to parse http cache interval ".concat(f,", using default value ").concat(Lf)),this.httpCacheInterval=_f(Sf(Lf))}var d=null!==(a=null!==(o=l.consumptionReportIntervalOverride)&&void 0!==o?o:u.options.consumption_report_interval)&&void 0!==a?a:Nf;try{this.consumptionReportInterval=_f(Sf(d))}catch(e){c.error("Failed to parse consumption report interval ".concat(d,", using default value ").concat(Nf)),this.consumptionReportInterval=_f(Sf(Nf))}})),Df=tr,Ff=Ne,Bf=pe("unscopables"),qf=Array.prototype;null==qf[Bf]&&Ff.f(qf,Bf,{configurable:!0,value:Df(null)});var zf=function(e){qf[Bf][e]=!0},Wf=_,Gf=zf,$f=uo,Vf=xt,Jf=lf,Kf="Array Iterator",Hf=Vf.set,Yf=Vf.getterFor(Kf),Qf=Jf(Array,"Array",(function(e,t){Hf(this,{type:Kf,target:Wf(e),index:0,kind:t})}),(function(){var e=Yf(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");$f.Arguments=$f.Array,Gf("keys"),Gf("values"),Gf("entries");var Xf=i,Zf=Xu,ed=tc,td=Qf,nd=Ve,rd=pe,id=rd("iterator"),ad=rd("toStringTag"),od=td.values,sd=function(e,t){if(e){if(e[id]!==od)try{nd(e,id,od)}catch(t){e[id]=od}if(e[ad]||nd(e,ad,t),Zf[t])for(var n in td)if(e[n]!==td[n])try{nd(e,n,td[n])}catch(t){e[n]=td[n]}}};for(var ud in Zf)sd(Xf[ud]&&Xf[ud].prototype,ud);sd(ed,"DOMTokenList");var cd=Rn,ld=o,fd=R("JSON","stringify"),dd=/[\uD800-\uDFFF]/g,pd=/^[\uD800-\uDBFF]$/,hd=/^[\uDC00-\uDFFF]$/,vd=function(e,t,n){var r=n.charAt(t-1),i=n.charAt(t+1);return pd.test(e)&&!hd.test(i)||hd.test(e)&&!pd.test(r)?"\\u"+e.charCodeAt(0).toString(16):e},yd=ld((function(){return'"\\udf06\\ud834"'!==fd("\udf06\ud834")||'"\\udead"'!==fd("\udead")}));fd&&cd({target:"JSON",stat:!0,forced:yd},{stringify:function(e,t,n){var r=fd.apply(null,arguments);return"string"==typeof r?r.replace(dd,vd):r}});var md=S,gd=to,bd=function(e,t,n){var r,i;return gd&&"function"==typeof(r=t.constructor)&&r!==n&&md(i=r.prototype)&&i!==n.prototype&&gd(e,i),e},kd=k,wd=Sr,xd="[\t\n\v\f\r                 \u2028\u2029\ufeff]",_d=RegExp("^"+xd+xd+"*"),Sd=RegExp(xd+xd+"*$"),Ed=function(e){return function(t){var n=wd(kd(t));return 1&e&&(n=n.replace(_d,"")),2&e&&(n=n.replace(Sd,"")),n}},Td={start:Ed(1),end:Ed(2),trim:Ed(3)},Rd=s,Id=i,Cd=bn,Od=Je.exports,Pd=ee,Ad=y,jd=bd,Md=q,Ld=ge,Nd=o,Ud=tr,Dd=Pt.f,Fd=a.f,Bd=Ne.f,qd=Td.trim,zd="Number",Wd=Id.Number,Gd=Wd.prototype,$d=Ad(Ud(Gd))==zd,Vd=function(e){if(Md(e))throw TypeError("Cannot convert a Symbol value to a number");var t,n,r,i,a,o,s,u,c=Ld(e,"number");if("string"==typeof c&&c.length>2)if(43===(t=(c=qd(c)).charCodeAt(0))||45===t){if(88===(n=c.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(c.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+c}for(o=(a=c.slice(2)).length,s=0;s<o;s++)if((u=a.charCodeAt(s))<48||u>i)return NaN;return parseInt(a,r)}return+c};if(Cd(zd,!Wd(" 0o1")||!Wd("0b1")||Wd("+0x1"))){for(var Jd,Kd=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof Kd&&($d?Nd((function(){Gd.valueOf.call(n)})):Ad(n)!=zd)?jd(new Wd(Vd(t)),n,Kd):Vd(t)},Hd=Rd?Dd(Wd):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),Yd=0;Hd.length>Yd;Yd++)Pd(Wd,Jd=Hd[Yd])&&!Pd(Kd,Jd)&&Bd(Kd,Jd,Fd(Wd,Jd));Kd.prototype=Gd,Gd.constructor=Kd,Od(Id,zd,Kd)}var Qd=De,Xd=function(){var e=Qd(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},Zd={},ep=o,tp=i.RegExp;Zd.UNSUPPORTED_Y=ep((function(){var e=tp("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),Zd.BROKEN_CARET=ep((function(){var e=tp("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var np,rp,ip=o,ap=i.RegExp,op=ip((function(){var e=ap(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)})),sp=o,up=i.RegExp,cp=sp((function(){var e=up("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),lp=Sr,fp=Xd,dp=Zd,pp=W.exports,hp=tr,vp=xt.get,yp=op,mp=cp,gp=RegExp.prototype.exec,bp=pp("native-string-replace",String.prototype.replace),kp=gp,wp=(np=/a/,rp=/b*/g,gp.call(np,"a"),gp.call(rp,"a"),0!==np.lastIndex||0!==rp.lastIndex),xp=dp.UNSUPPORTED_Y||dp.BROKEN_CARET,_p=void 0!==/()??/.exec("")[1];(wp||_p||xp||yp||mp)&&(kp=function(e){var t,n,r,i,a,o,s,u=this,c=vp(u),l=lp(e),f=c.raw;if(f)return f.lastIndex=u.lastIndex,t=kp.call(f,l),u.lastIndex=f.lastIndex,t;var d=c.groups,p=xp&&u.sticky,h=fp.call(u),v=u.source,y=0,m=l;if(p&&(-1===(h=h.replace("y","")).indexOf("g")&&(h+="g"),m=l.slice(u.lastIndex),u.lastIndex>0&&(!u.multiline||u.multiline&&"\n"!==l.charAt(u.lastIndex-1))&&(v="(?: "+v+")",m=" "+m,y++),n=new RegExp("^(?:"+v+")",h)),_p&&(n=new RegExp("^"+v+"$(?!\\s)",h)),wp&&(r=u.lastIndex),i=gp.call(p?n:u,m),p?i?(i.input=i.input.slice(y),i[0]=i[0].slice(y),i.index=u.lastIndex,u.lastIndex+=i[0].length):u.lastIndex=0:wp&&i&&(u.lastIndex=u.global?i.index+i[0].length:r),_p&&i&&i.length>1&&bp.call(i[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(i[a]=void 0)})),i&&d)for(i.groups=o=hp(null),a=0;a<d.length;a++)o[(s=d[a])[0]]=i[s[1]];return i});var Sp=kp;Rn({target:"RegExp",proto:!0,forced:/./.exec!==Sp},{exec:Sp});var Ep=Je.exports,Tp=Sp,Rp=o,Ip=pe,Cp=Ve,Op=Ip("species"),Pp=RegExp.prototype,Ap=function(e,t,n,r){var i=Ip(e),a=!Rp((function(){var t={};return t[i]=function(){return 7},7!=""[e](t)})),o=a&&!Rp((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[Op]=function(){return n},n.flags="",n[i]=/./[i]),n.exec=function(){return t=!0,null},n[i](""),!t}));if(!a||!o||n){var s=/./[i],u=t(i,""[e],(function(e,t,n,r,i){var o=t.exec;return o===Tp||o===Pp.exec?a&&!i?{done:!0,value:s.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}));Ep(String.prototype,e,u[0]),Ep(Pp,i,u[1])}r&&Cp(Pp[i],"sham",!0)},jp=Rl.charAt,Mp=function(e,t,n){return t+(n?jp(e,t).length:1)},Lp=Q,Np=Math.floor,Up="".replace,Dp=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Fp=/\$([$&'`]|\d{1,2})/g,Bp=y,qp=Sp,zp=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==Bp(e))throw TypeError("RegExp#exec called on incompatible receiver");return qp.call(e,t)},Wp=Ap,Gp=o,$p=De,Vp=Mt,Jp=Ut,Kp=Sr,Hp=k,Yp=Mp,Qp=function(e,t,n,r,i,a){var o=n+e.length,s=r.length,u=Fp;return void 0!==i&&(i=Lp(i),u=Dp),Up.call(a,u,(function(a,u){var c;switch(u.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(o);case"<":c=i[u.slice(1,-1)];break;default:var l=+u;if(0===l)return a;if(l>s){var f=Np(l/10);return 0===f?a:f<=s?void 0===r[f-1]?u.charAt(1):r[f-1]+u.charAt(1):a}c=r[l-1]}return void 0===c?"":c}))},Xp=zp,Zp=pe("replace"),eh=Math.max,th=Math.min,nh="$0"==="a".replace(/./,"$0"),rh=!!/./[Zp]&&""===/./[Zp]("a","$0");Wp("replace",(function(e,t,n){var r=rh?"$":"$0";return[function(e,n){var r=Hp(this),i=null==e?void 0:e[Zp];return void 0!==i?i.call(e,r,n):t.call(Kp(r),e,n)},function(e,i){var a=$p(this),o=Kp(e);if("string"==typeof i&&-1===i.indexOf(r)&&-1===i.indexOf("$<")){var s=n(t,a,o,i);if(s.done)return s.value}var u="function"==typeof i;u||(i=Kp(i));var c=a.global;if(c){var l=a.unicode;a.lastIndex=0}for(var f=[];;){var d=Xp(a,o);if(null===d)break;if(f.push(d),!c)break;""===Kp(d[0])&&(a.lastIndex=Yp(o,Jp(a.lastIndex),l))}for(var p,h="",v=0,y=0;y<f.length;y++){d=f[y];for(var m=Kp(d[0]),g=eh(th(Vp(d.index),o.length),0),b=[],k=1;k<d.length;k++)b.push(void 0===(p=d[k])?p:String(p));var w=d.groups;if(u){var x=[m].concat(b,g,o);void 0!==w&&x.push(w);var _=Kp(i.apply(void 0,x))}else _=Qp(m,o,g,b,w,i);g>=v&&(h+=o.slice(v,g)+_,v=g+m.length)}return h+o.slice(v)}]}),!!Gp((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}))||!nh||rh);var ih=Rn,ah=_,oh=[].join,sh=b!=Object,uh=rc("join",",");function ch(e){return JSON.parse(JSON.stringify(e))}function lh(e){return void 0===e||isNaN(Number(e))?null:Number(e)}function fh(e){try{return new Date(e)}catch(e){return null}}function dh(e,t,n){var r={};if(e)try{r=JSON.parse(e)}catch(e){n.warn(t,e)}return r}ih({target:"Array",proto:!0,forced:sh||!uh},{join:function(e){return oh.call(ah(this),void 0===e?",":e)}});var ph=function(){function e(t){Na(this,e),this.base=t.replace(/\/$/,""),this.args=[],this.paths=[]}return La(e,[{key:"arg",value:function(e,t){return void 0!==t&&this.args.push(encodeURIComponent(e)+"="+encodeURIComponent(t)),this}},{key:"path",value:function(e){return this.paths.push(encodeURIComponent(e)),this}},{key:"build",value:function(){var e=this.base;return this.paths.length&&(e+="/"+this.paths.join("/")),this.args.length&&(e+="?"+this.args.join("&")),e}}]),e}(),hh={},vh=Rn,yh=S,mh=xr,gh=qt,bh=Ut,kh=_,wh=ka,xh=pe,_h=ca("slice"),Sh=xh("species"),Eh=[].slice,Th=Math.max;vh({target:"Array",proto:!0,forced:!_h},{slice:function(e,t){var n,r,i,a=kh(this),o=bh(a.length),s=gh(e,o),u=gh(void 0===t?o:t,o);if(mh(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!mh(n.prototype)?yh(n)&&null===(n=n[Sh])&&(n=void 0):n=void 0,n===Array||void 0===n))return Eh.call(a,s,u);for(r=new(void 0===n?Array:n)(Th(u-s,0)),i=0;s<u;s++,i++)s in a&&wh(r,i,a[s]);return r.length=i,r}});var Rh=Rn,Ih=S,Ch=function(){var e=!1,t=/[ac]/;return t.exec=function(){return e=!0,/./.exec.apply(this,arguments)},!0===t.test("abc")&&e}(),Oh=/./.test;Rh({target:"RegExp",proto:!0,forced:!Ch},{test:function(e){if("function"!=typeof this.exec)return Oh.call(this,e);var t=this.exec(e);if(null!==t&&!Ih(t))throw new Error("RegExp exec method returned something other than an Object or null");return!!t}});var Ph=Rn,Ah=s,jh=i,Mh=ee,Lh=S,Nh=Ne.f,Uh=fn,Dh=jh.Symbol;if(Ah&&"function"==typeof Dh&&(!("description"in Dh.prototype)||void 0!==Dh().description)){var Fh={},Bh=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof Bh?new Dh(e):void 0===e?Dh():Dh(e);return""===e&&(Fh[t]=!0),t};Uh(Bh,Dh);var qh=Bh.prototype=Dh.prototype;qh.constructor=Bh;var zh=qh.toString,Wh="Symbol(test)"==String(Dh("test")),Gh=/^Symbol\((.*)\)[^)]+$/;Nh(qh,"description",{configurable:!0,get:function(){var e=Lh(this)?this.valueOf():this,t=zh.call(e);if(Mh(Fh,e))return"";var n=Wh?t.slice(7,-1):t.replace(Gh,"$1");return""===n?void 0:n}}),Ph({global:!0,forced:!0},{Symbol:Bh})}Nr("iterator");var $h={exports:{}};!function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}($h);var Vh=s,Jh=Ne.f,Kh=Function.prototype,Hh=Kh.toString,Yh=/^\s*function ([^ (]*)/,Qh="name";Vh&&!(Qh in Kh)&&Jh(Kh,Qh,{configurable:!0,get:function(){try{return Hh.call(this).match(Yh)[1]}catch(e){return""}}});var Xh={exports:{}},Zh={exports:{}};!function(e){e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports}(Zh);var ev={exports:{}};!function(e){e.exports=function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){s=!0,i=e}finally{try{o||null==n.return||n.return()}finally{if(s)throw i}}return a}},e.exports.__esModule=!0,e.exports.default=e.exports}(ev);var tv={exports:{}},nv={exports:{}};!function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.__esModule=!0,e.exports.default=e.exports}(nv),function(e){var t=nv.exports;e.exports=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports}(tv);var rv={exports:{}};!function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports}(rv),function(e){var t=Zh.exports,n=ev.exports,r=tv.exports,i=rv.exports;e.exports=function(e,a){return t(e)||n(e,a)||r(e,a)||i()},e.exports.__esModule=!0,e.exports.default=e.exports}(Xh);var iv={exports:{}},av={exports:{}};!function(e){var t=nv.exports;e.exports=function(e){if(Array.isArray(e))return t(e)},e.exports.__esModule=!0,e.exports.default=e.exports}(av);var ov={exports:{}};!function(e){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports}(ov);var sv={exports:{}};!function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports}(sv),function(e){var t=av.exports,n=ov.exports,r=tv.exports,i=sv.exports;e.exports=function(e){return t(e)||n(e)||r(e)||i()},e.exports.__esModule=!0,e.exports.default=e.exports}(iv);var uv={exports:{}};!function(e){function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports}(uv);var cv={exports:{}};!function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports}(cv);var lv={exports:{}},fv={exports:{}};!function(e){function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(fv),function(e){var t=fv.exports;e.exports=function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&t(e,n)},e.exports.__esModule=!0,e.exports.default=e.exports}(lv);var dv={exports:{}},pv={exports:{}};!function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports}(pv),function(e){var t=$h.exports.default,n=pv.exports;e.exports=function(e,r){if(r&&("object"===t(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return n(e)},e.exports.__esModule=!0,e.exports.default=e.exports}(dv);var hv={exports:{}};!function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(hv);var vv=Vt.includes,yv=zf;Rn({target:"Array",proto:!0},{includes:function(e){return vv(this,e,arguments.length>1?arguments[1]:void 0)}}),yv("includes");var mv=S,gv=Math.floor,bv=function(e){return!mv(e)&&isFinite(e)&&gv(e)===e};Rn({target:"Number",stat:!0},{isInteger:bv});var kv=s,wv=Dn,xv=_,_v=u.f,Sv=function(e){return function(t){for(var n,r=xv(t),i=wv(r),a=i.length,o=0,s=[];a>o;)n=i[o++],kv&&!_v.call(r,n)||s.push(e?[n,r[n]]:r[n]);return s}},Ev={entries:Sv(!0),values:Sv(!1)}.entries;Rn({target:"Object",stat:!0},{entries:function(e){return Ev(e)}}),Object.defineProperty(hh,"__esModule",{value:!0});var Tv=Xh.exports,Rv=iv.exports,Iv=uv.exports,Cv=cv.exports,Ov=lv.exports,Pv=dv.exports,Av=hv.exports;function jv(e){return e&&"object"===Oa(e)&&"default"in e?e:{default:e}}var Mv=jv($h.exports),Lv=jv(Tv),Nv=jv(Rv),Uv=jv(Iv),Dv=jv(Cv),Fv=jv(Ov),Bv=jv(Pv),qv=jv(Av),zv=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return{checks:t}};function Wv(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Gv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Gv(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function Gv(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var $v=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return zv((function(e){var n,r=!1,i=[],a=Wv(t);try{for(a.s();!(n=a.n()).done;){var o=n.value;"string"!=typeof o?(r=r||e instanceof o,i.push("an instance of ".concat(o.name))):(r=r||Mv.default(e)===o,i.push("of type ".concat(o)))}}catch(e){a.e(e)}finally{a.f()}return[r,i]}))};function Vv(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Jv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Jv(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function Jv(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Kv(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=qv.default(e);if(t){var i=qv.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Bv.default(this,n)}}function Hv(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Yv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Yv(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function Yv(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Qv=function(e,t){if(t.length>e.length)throw new Error("Expected at most ".concat(e.length," argument(s), but got ").concat(t.length));for(;t.length<e.length;)t.push(void 0);var n,r=Hv(t.entries());try{for(r.s();!(n=r.n()).done;){var i=Lv.default(n.value,2),a=i[0],o=i[1],s=ty(e[a],o),u=Lv.default(s,4),c=u[0],l=u[1],f=u[2],d=u[3];if(!c)throw new Error("Argument ".concat(a+1," is expected to be ").concat(f).concat(d," but got ").concat(l))}}catch(e){r.e(e)}finally{r.f()}},Xv=function(e){var t,n,r;(["undefined","boolean","number","bigint","string"].includes(Mv.default(e))&&(n="string"==typeof e?'"'.concat(e,'"'):"".concat(e)),"object"===Mv.default(e)&&"Object"!==(null==e||null===(t=e.constructor)||void 0===t?void 0:t.name))&&(n=null===e?"null":"instance of ".concat(null==e||null===(r=e.constructor)||void 0===r?void 0:r.name));return n||(n=Mv.default(e)),n},Zv=function(e){var t,n=[],r=Hv(e);try{for(r.s();!(t=r.n()).done;){var i=t.value;n.push(ey(i))}}catch(e){r.e(e)}finally{r.f()}return n},ey=function(e){var t,n=[],r=Hv(Array.isArray(e)?e:[e]);try{for(r.s();!(t=r.n()).done;){var i=t.value;"string"!=typeof i&&"function"!=typeof i?n.push(i):n.push($v(i))}}catch(e){r.e(e)}finally{r.f()}return n},ty=function(e,t){var n,r,i=[],a=!1,o=Hv(e);try{for(o.s();!(r=o.n()).done;){var s,u=Hv(r.value.checks);try{for(u.s();!(s=u.n()).done;){var c=(0,s.value)(t),l=Lv.default(c,3),f=l[0],d=l[1],p=l[2];a=a||f,!n&&p&&(n=p),d&&(i=[].concat(Nv.default(i),"string"==typeof d?[d]:Nv.default(d)))}}catch(e){u.e(e)}finally{u.f()}}}catch(e){o.e(e)}finally{o.f()}if(a)return[!0];var h=n||Xv(t),v=i.length-1;return[!1,h,v>0?"".concat(i.slice(0,v).join(", ")," or ").concat(i[v]):i.join(", "),v>1?";":","]};function ny(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return ry(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ry(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function ry(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var iy=zv((function(e){return["string"==typeof e&&e.length>0,"a non-empty string"]})),ay=zv((function(e){return["number"==typeof e&&Number.isInteger(e)&&e>=0,"a non-negative integer"]})),oy=zv((function(e){return["object"===Mv.default(e)&&null!==e&&!Array.isArray(e),"a pure object (non-null and non-array)"]}));function sy(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return uy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return uy(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function uy(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}hh.array=function(e,t){return zv((function(n){if(!Array.isArray(n))return[!1,"an array of ".concat(e)];var r,i=sy(n.entries());try{for(i.s();!(r=i.n()).done;){var a=Lv.default(r.value,2),o=a[0],s=a[1],u=ty(ey(t),s),c=Lv.default(u,3),l=c[0],f=c[1],d=c[2];if(!l)return[!1,"a valid array of ".concat(e," (index ").concat(o," should be ").concat(d,")"),"malformed array of ".concat(e," (index ").concat(o," is ").concat(f,")")]}}catch(e){i.e(e)}finally{i.f()}return[!0]}))};var cy=hh.custom=zv,ly=hh.literal=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return zv((function(e){var n,r=!1,i=[],a=Vv(t);try{for(a.s();!(n=a.n()).done;){var o=n.value;r=r||e===o,i.push("string"==typeof o?'"'.concat(o,'"'):"".concat(o))}}catch(e){a.e(e)}finally{a.f()}return[r,i]}))},fy=hh.nonEmptyArray=function(e,t){return zv((function(n){if(!Array.isArray(n)||n.length<1)return[!1,"a non-empty array of ".concat(e)];var r,i=ny(n.entries());try{for(i.s();!(r=i.n()).done;){var a=Lv.default(r.value,2),o=a[0],s=a[1],u=ty(ey(t),s),c=Lv.default(u,3),l=c[0],f=c[1],d=c[2];if(!l)return[!1,"a valid non-empty array of ".concat(e," (index ").concat(o," should be ").concat(d,")"),"malformed array of ".concat(e," (index ").concat(o," is ").concat(f,")")]}}catch(e){i.e(e)}finally{i.f()}return[!0]}))},dy=hh.nonEmptyString=iy,py=hh.nonNegativeInteger=ay,hy=hh.objectSchema=function(e,t){return zv((function(n){if("object"!==Mv.default(n)||null===n||Array.isArray(n))return[!1,"valid ".concat(e," (should be a pure object)")];for(var r=0,i=Object.entries(t);r<i.length;r++){var a=Lv.default(i[r],2),o=a[0],s=a[1],u=ty(ey(s),n[o]),c=Lv.default(u,3),l=c[0],f=c[1],d=c[2];if(!l)return[!1,"valid ".concat(e,' (key "').concat(o,'" should be ').concat(d,")"),"malformed ".concat(e,' (key "').concat(o,'" is ').concat(f,")")]}return[!0]}))},vy=hh.pureObject=oy;hh.runtimeTypeValidation=Qv,hh.stringifyReceivedType=Xv,hh.type=$v;var yy=hh.validateConstructorTypes=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=Zv(t);return function(e){return function(e){Fv.default(n,e);var t=Kv(n);function n(){Dv.default(this,n);for(var e=arguments.length,i=new Array(e),a=0;a<e;a++)i[a]=arguments[a];return Qv(r,i),t.call.apply(t,[this].concat(i))}return Uv.default(n)}(e)}},my=hh.validateTypes=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=Zv(t);return function(e,t,n){if("function"!=typeof n.value)throw new Error("The validateTypes decorator can only be applied to methods");var i=n.value;n.value=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Qv(r,t),i.apply(this,t)}}},gy=hh.validateTypesAsync=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=Zv(t);return function(e,t,n){if("function"!=typeof n.value)throw new Error("The validateTypesAsync decorator can only be applied to methods");var i=n.value;n.value=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];try{Qv(r,t)}catch(e){return Promise.reject(e)}return i.apply(this,t)}}},by=cy((function(e){return[["string","number","boolean","object"].includes(Oa(e)),"a JSON type"]})),ky=cy((function(e){return[["undefined","string","number","boolean","object"].includes(Oa(e)),"an optional JSON type"]})),wy={},xy={exports:{}},_y={exports:{}};!function(e){var t=hv.exports;e.exports=function(e,n){for(;!Object.prototype.hasOwnProperty.call(e,n)&&null!==(e=t(e)););return e},e.exports.__esModule=!0,e.exports.default=e.exports}(_y),function(e){var t=_y.exports;function n(){return"undefined"!=typeof Reflect&&Reflect.get?(e.exports=n=Reflect.get,e.exports.__esModule=!0,e.exports.default=e.exports):(e.exports=n=function(e,n,r){var i=t(e,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?e:r):a.value}},e.exports.__esModule=!0,e.exports.default=e.exports),n.apply(this,arguments)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(xy);var Sy={exports:{}};!function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports}(Sy),Object.defineProperty(wy,"__esModule",{value:!0});var Ey=cv.exports,Ty=uv.exports,Ry=pv.exports,Iy=xy.exports,Cy=lv.exports,Oy=dv.exports,Py=hv.exports,Ay=Sy.exports;function jy(e){return e&&"object"===Oa(e)&&"default"in e?e:{default:e}}var My=jy(iv.exports),Ly=jy(Ey),Ny=jy(Ty),Uy=jy(Ry),Dy=jy(Iy),Fy=jy(Cy),By=jy(Oy),qy=jy(Py),zy=jy(Ay);function Wy(){}function Gy(){Gy.init.call(this)}function $y(e){return void 0===e._maxListeners?Gy.defaultMaxListeners:e._maxListeners}function Vy(e,t,n){if(t)e.call(n);else for(var r=e.length,i=em(e,r),a=0;a<r;++a)i[a].call(n)}function Jy(e,t,n,r){if(t)e.call(n,r);else for(var i=e.length,a=em(e,i),o=0;o<i;++o)a[o].call(n,r)}function Ky(e,t,n,r,i){if(t)e.call(n,r,i);else for(var a=e.length,o=em(e,a),s=0;s<a;++s)o[s].call(n,r,i)}function Hy(e,t,n,r,i,a){if(t)e.call(n,r,i,a);else for(var o=e.length,s=em(e,o),u=0;u<o;++u)s[u].call(n,r,i,a)}function Yy(e,t,n,r){if(t)e.apply(n,r);else for(var i=e.length,a=em(e,i),o=0;o<i;++o)a[o].apply(n,r)}function Qy(e,t,n,r){var i,a,o,s;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((a=e._events)?(a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]):(a=e._events=new Wy,e._eventsCount=0),o){if("function"==typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),!o.warned&&(i=$y(e))&&i>0&&o.length>i){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=o.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else o=a[t]=n,++e._eventsCount;return e}function Xy(e,t,n){var r=!1;function i(){e.removeListener(t,i),r||(r=!0,n.apply(e,arguments))}return i.listener=n,i}function Zy(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function em(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}function tm(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=qy.default(e);if(t){var i=qy.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return By.default(this,n)}}Wy.prototype=Object.create(null),Gy.EventEmitter=Gy,Gy.usingDomains=!1,Gy.prototype.domain=void 0,Gy.prototype._events=void 0,Gy.prototype._maxListeners=void 0,Gy.defaultMaxListeners=10,Gy.init=function(){this.domain=null,Gy.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new Wy,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Gy.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},Gy.prototype.getMaxListeners=function(){return $y(this)},Gy.prototype.emit=function(e){var t,n,r,i,a,o,s,u="error"===e;if(o=this._events)u=u&&null==o.error;else if(!u)return!1;if(s=this.domain,u){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(n=o[e]))return!1;var l="function"==typeof n;switch(r=arguments.length){case 1:Vy(n,l,this);break;case 2:Jy(n,l,this,arguments[1]);break;case 3:Ky(n,l,this,arguments[1],arguments[2]);break;case 4:Hy(n,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(r-1),a=1;a<r;a++)i[a-1]=arguments[a];Yy(n,l,this,i)}return!0},Gy.prototype.addListener=function(e,t){return Qy(this,e,t,!1)},Gy.prototype.on=Gy.prototype.addListener,Gy.prototype.prependListener=function(e,t){return Qy(this,e,t,!0)},Gy.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,Xy(this,e,t)),this},Gy.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,Xy(this,e,t)),this},Gy.prototype.removeListener=function(e,t){var n,r,i,a,o;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new Wy:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,a=n.length;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new Wy,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,i=e.length;r<i;n+=1,r+=1)e[n]=e[r];e.pop()}(n,i);r.removeListener&&this.emit("removeListener",e,o||t)}return this},Gy.prototype.off=function(e,t){return this.removeListener(e,t)},Gy.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new Wy,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new Wy:delete n[e]),this;if(0===arguments.length){for(var r,i=Object.keys(n),a=0;a<i.length;++a)"removeListener"!==(r=i[a])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new Wy,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},Gy.prototype.listeners=function(e){var t,n=this._events;return n&&(t=n[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[]},Gy.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):Zy.call(e,t)},Gy.prototype.listenerCount=Zy,Gy.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var nm=function(e){Fy.default(n,e);var t=tm(n);function n(){var e;return Ly.default(this,n),e=t.call(this),zy.default(Uy.default(e),"eventHistory",new Map),e}return Ny.default(n,[{key:"on",value:function(e,t){return Dy.default(qy.default(n.prototype),"on",this).call(this,e,t)}},{key:"once",value:function(e,t){return Dy.default(qy.default(n.prototype),"once",this).call(this,e,t)}},{key:"off",value:function(e,t){return Dy.default(qy.default(n.prototype),"off",this).call(this,e,t)}},{key:"emit",value:function(e){for(var t,r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];return this.eventHistory.set(e,i),(t=Dy.default(qy.default(n.prototype),"emit",this)).call.apply(t,[this,e].concat(i))}},{key:"addListener",value:function(e,t){return Dy.default(qy.default(n.prototype),"addListener",this).call(this,e,t)}},{key:"removeListener",value:function(e,t){return Dy.default(qy.default(n.prototype),"removeListener",this).call(this,e,t)}},{key:"addListenerWithReplay",value:function(e,t){var n=this.eventHistory.get(e);return void 0!==n&&t.apply(void 0,My.default(n)),this.addListener(e,t)}},{key:"onWithReplay",value:function(e,t){return this.addListenerWithReplay(e,t)}},{key:"onceWithReplay",value:function(e,t){var r=this.eventHistory.get(e);return void 0!==r?(t.apply(void 0,My.default(r)),this):Dy.default(qy.default(n.prototype),"once",this).call(this,e,t)}}]),n}(Gy),rm=wy.ReplayEventEmitter=nm,im={exports:{}};!function(e,n){var r="__lodash_hash_undefined__",i=9007199254740991,a="[object Arguments]",o="[object Array]",s="[object Boolean]",u="[object Date]",c="[object Error]",l="[object Function]",f="[object Map]",d="[object Number]",p="[object Object]",h="[object Promise]",v="[object RegExp]",y="[object Set]",m="[object String]",g="[object Symbol]",b="[object WeakMap]",k="[object ArrayBuffer]",w="[object DataView]",x=/^\[object .+?Constructor\]$/,_=/^(?:0|[1-9]\d*)$/,S={};S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S[a]=S[o]=S[k]=S[s]=S[w]=S[u]=S[c]=S[l]=S[f]=S[d]=S[p]=S[v]=S[y]=S[m]=S[b]=!1;var E="object"==Oa(t)&&t&&t.Object===Object&&t,T="object"==("undefined"==typeof self?"undefined":Oa(self))&&self&&self.Object===Object&&self,R=E||T||Function("return this")(),I=n&&!n.nodeType&&n,C=I&&e&&!e.nodeType&&e,O=C&&C.exports===I,P=O&&E.process,A=function(){try{return P&&P.binding&&P.binding("util")}catch(e){}}(),j=A&&A.isTypedArray;function M(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function L(e,t){return e.has(t)}function N(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function U(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var D,F,B=Array.prototype,q=Function.prototype,z=Object.prototype,W=R["__core-js_shared__"],G=q.toString,$=z.hasOwnProperty,V=function(){var e=/[^.]+$/.exec(W&&W.keys&&W.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),J=z.toString,K=RegExp("^"+G.call($).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),H=O?R.Buffer:void 0,Y=R.Symbol,Q=R.Uint8Array,X=z.propertyIsEnumerable,Z=B.splice,ee=Y?Y.toStringTag:void 0,te=Object.getOwnPropertySymbols,ne=H?H.isBuffer:void 0,re=(D=Object.keys,F=Object,function(e){return D(F(e))}),ie=Ae(R,"DataView"),ae=Ae(R,"Map"),oe=Ae(R,"Promise"),se=Ae(R,"Set"),ue=Ae(R,"WeakMap"),ce=Ae(Object,"create"),le=Ne(ie),fe=Ne(ae),de=Ne(oe),pe=Ne(se),he=Ne(ue),ve=Y?Y.prototype:void 0,ye=ve?ve.valueOf:void 0;function me(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ge(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function be(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ke(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new be;++t<n;)this.add(e[t])}function we(e){var t=this.__data__=new ge(e);this.size=t.size}function xe(e,t){var n=Fe(e),r=!n&&De(e),i=!n&&!r&&Be(e),a=!n&&!r&&!i&&$e(e),o=n||r||i||a,s=o?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],u=s.length;for(var c in e)!t&&!$.call(e,c)||o&&("length"==c||i&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Le(c,u))||s.push(c);return s}function _e(e,t){for(var n=e.length;n--;)if(Ue(e[n][0],t))return n;return-1}function Se(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ee&&ee in Object(e)?function(e){var t=$.call(e,ee),n=e[ee];try{e[ee]=void 0;var r=!0}catch(e){}var i=J.call(e);r&&(t?e[ee]=n:delete e[ee]);return i}(e):function(e){return J.call(e)}(e)}function Ee(e){return Ge(e)&&Se(e)==a}function Te(e,t,n,r,i){return e===t||(null==e||null==t||!Ge(e)&&!Ge(t)?e!=e&&t!=t:function(e,t,n,r,i,l){var h=Fe(e),b=Fe(t),x=h?o:Me(e),_=b?o:Me(t),S=(x=x==a?p:x)==p,E=(_=_==a?p:_)==p,T=x==_;if(T&&Be(e)){if(!Be(t))return!1;h=!0,S=!1}if(T&&!S)return l||(l=new we),h||$e(e)?Ce(e,t,n,r,i,l):function(e,t,n,r,i,a,o){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case k:return!(e.byteLength!=t.byteLength||!a(new Q(e),new Q(t)));case s:case u:case d:return Ue(+e,+t);case c:return e.name==t.name&&e.message==t.message;case v:case m:return e==t+"";case f:var l=N;case y:var p=1&r;if(l||(l=U),e.size!=t.size&&!p)return!1;var h=o.get(e);if(h)return h==t;r|=2,o.set(e,t);var b=Ce(l(e),l(t),r,i,a,o);return o.delete(e),b;case g:if(ye)return ye.call(e)==ye.call(t)}return!1}(e,t,x,n,r,i,l);if(!(1&n)){var R=S&&$.call(e,"__wrapped__"),I=E&&$.call(t,"__wrapped__");if(R||I){var C=R?e.value():e,O=I?t.value():t;return l||(l=new we),i(C,O,n,r,l)}}if(!T)return!1;return l||(l=new we),function(e,t,n,r,i,a){var o=1&n,s=Oe(e),u=s.length,c=Oe(t).length;if(u!=c&&!o)return!1;var l=u;for(;l--;){var f=s[l];if(!(o?f in t:$.call(t,f)))return!1}var d=a.get(e);if(d&&a.get(t))return d==t;var p=!0;a.set(e,t),a.set(t,e);var h=o;for(;++l<u;){var v=e[f=s[l]],y=t[f];if(r)var m=o?r(y,v,f,t,e,a):r(v,y,f,e,t,a);if(!(void 0===m?v===y||i(v,y,n,r,a):m)){p=!1;break}h||(h="constructor"==f)}if(p&&!h){var g=e.constructor,b=t.constructor;g==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof b&&b instanceof b||(p=!1)}return a.delete(e),a.delete(t),p}(e,t,n,r,i,l)}(e,t,n,r,Te,i))}function Re(e){return!(!We(e)||function(e){return!!V&&V in e}(e))&&(qe(e)?K:x).test(Ne(e))}function Ie(e){if(n=(t=e)&&t.constructor,r="function"==typeof n&&n.prototype||z,t!==r)return re(e);var t,n,r,i=[];for(var a in Object(e))$.call(e,a)&&"constructor"!=a&&i.push(a);return i}function Ce(e,t,n,r,i,a){var o=1&n,s=e.length,u=t.length;if(s!=u&&!(o&&u>s))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var l=-1,f=!0,d=2&n?new ke:void 0;for(a.set(e,t),a.set(t,e);++l<s;){var p=e[l],h=t[l];if(r)var v=o?r(h,p,l,t,e,a):r(p,h,l,e,t,a);if(void 0!==v){if(v)continue;f=!1;break}if(d){if(!M(t,(function(e,t){if(!L(d,t)&&(p===e||i(p,e,n,r,a)))return d.push(t)}))){f=!1;break}}else if(p!==h&&!i(p,h,n,r,a)){f=!1;break}}return a.delete(e),a.delete(t),f}function Oe(e){return function(e,t,n){var r=t(e);return Fe(e)?r:function(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}(r,n(e))}(e,Ve,je)}function Pe(e,t){var n=e.__data__;return function(e){var t=Oa(e);return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function Ae(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Re(n)?n:void 0}me.prototype.clear=function(){this.__data__=ce?ce(null):{},this.size=0},me.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},me.prototype.get=function(e){var t=this.__data__;if(ce){var n=t[e];return n===r?void 0:n}return $.call(t,e)?t[e]:void 0},me.prototype.has=function(e){var t=this.__data__;return ce?void 0!==t[e]:$.call(t,e)},me.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ce&&void 0===t?r:t,this},ge.prototype.clear=function(){this.__data__=[],this.size=0},ge.prototype.delete=function(e){var t=this.__data__,n=_e(t,e);return!(n<0)&&(n==t.length-1?t.pop():Z.call(t,n,1),--this.size,!0)},ge.prototype.get=function(e){var t=this.__data__,n=_e(t,e);return n<0?void 0:t[n][1]},ge.prototype.has=function(e){return _e(this.__data__,e)>-1},ge.prototype.set=function(e,t){var n=this.__data__,r=_e(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},be.prototype.clear=function(){this.size=0,this.__data__={hash:new me,map:new(ae||ge),string:new me}},be.prototype.delete=function(e){var t=Pe(this,e).delete(e);return this.size-=t?1:0,t},be.prototype.get=function(e){return Pe(this,e).get(e)},be.prototype.has=function(e){return Pe(this,e).has(e)},be.prototype.set=function(e,t){var n=Pe(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},ke.prototype.add=ke.prototype.push=function(e){return this.__data__.set(e,r),this},ke.prototype.has=function(e){return this.__data__.has(e)},we.prototype.clear=function(){this.__data__=new ge,this.size=0},we.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},we.prototype.get=function(e){return this.__data__.get(e)},we.prototype.has=function(e){return this.__data__.has(e)},we.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ge){var r=n.__data__;if(!ae||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new be(r)}return n.set(e,t),this.size=n.size,this};var je=te?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}(te(e),(function(t){return X.call(e,t)})))}:function(){return[]},Me=Se;function Le(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||_.test(e))&&e>-1&&e%1==0&&e<t}function Ne(e){if(null!=e){try{return G.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Ue(e,t){return e===t||e!=e&&t!=t}(ie&&Me(new ie(new ArrayBuffer(1)))!=w||ae&&Me(new ae)!=f||oe&&Me(oe.resolve())!=h||se&&Me(new se)!=y||ue&&Me(new ue)!=b)&&(Me=function(e){var t=Se(e),n=t==p?e.constructor:void 0,r=n?Ne(n):"";if(r)switch(r){case le:return w;case fe:return f;case de:return h;case pe:return y;case he:return b}return t});var De=Ee(function(){return arguments}())?Ee:function(e){return Ge(e)&&$.call(e,"callee")&&!X.call(e,"callee")},Fe=Array.isArray;var Be=ne||function(){return!1};function qe(e){if(!We(e))return!1;var t=Se(e);return t==l||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function ze(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=i}function We(e){var t=Oa(e);return null!=e&&("object"==t||"function"==t)}function Ge(e){return null!=e&&"object"==Oa(e)}var $e=j?function(e){return function(t){return e(t)}}(j):function(e){return Ge(e)&&ze(e.length)&&!!S[Se(e)]};function Ve(e){return null!=(t=e)&&ze(t.length)&&!qe(t)?xe(e):Ie(e);var t}e.exports=function(e,t){return Te(e,t)}}(im,im.exports);var am=im.exports;function om(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}var sm=Tf.scope("User"),User=function(e){Ca(User,e);var t,n,r,i,a,o,s,u=om(User);function User(e,t,n,r){var i;return Na(this,User),ja(Ra(i=u.call(this)),"promiseToFetch",null),ja(Ra(i),"updated","updated"),ja(Ra(i),"userSubscribed","userSubscribed"),ja(Ra(i),"userUnsubscribed","userUnsubscribed"),i.services=r,i.subscribed="initializing",i.setMaxListeners(0),i.state={identity:e,entityName:t,friendlyName:null,attributes:{},online:null,notifiable:null},i._initializationPromise=new Promise((function(e){i._resolveInitializationPromise=e})),null!==n&&i._resolveInitialization(n,e,t,!1),i}return La(User,[{key:"identity",get:function(){return this.state.identity},set:function(e){this.state.identity=e}},{key:"entityName",set:function(e){this.state.entityName=e}},{key:"attributes",get:function(){return this.state.attributes}},{key:"friendlyName",get:function(){return this.state.friendlyName}},{key:"isOnline",get:function(){return this.state.online}},{key:"isNotifiable",get:function(){return this.state.notifiable}},{key:"isSubscribed",get:function(){return"subscribed"==this.subscribed}},{key:"_update",value:(s=Ta(zc.mark((function e(t,n){var r,i;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._initializationPromise;case 2:r=[],sm.debug("User for",this.state.identity,"updated:",t,n),e.t0=t,e.next="friendlyName"===e.t0?7:"attributes"===e.t0?9:"reachability"===e.t0?12:15;break;case 7:return this.state.friendlyName!==n.value&&(r.push("friendlyName"),this.state.friendlyName=n.value),e.abrupt("break",16);case 9:return i=dh(n.value,"Retrieved malformed attributes from the server for user: ".concat(this.state.identity),sm),am(this.state.attributes,i)||(this.state.attributes=i,r.push("attributes")),e.abrupt("break",16);case 12:return this.state.online!==n.online&&(this.state.online=n.online,r.push("reachabilityOnline")),this.state.notifiable!==n.notifiable&&(this.state.notifiable=n.notifiable,r.push("reachabilityNotifiable")),e.abrupt("break",16);case 15:return e.abrupt("return");case 16:r.length>0&&this.emit("updated",{user:this,updateReasons:r});case 17:case"end":return e.stop()}}),e,this)}))),function(e,t){return s.apply(this,arguments)})},{key:"_updateReachabilityInfo",value:(o=Ta(zc.mark((function e(t,n){var r=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._initializationPromise;case 2:if(this.configuration.reachabilityEnabled){e.next=4;break}return e.abrupt("return",Promise.resolve());case 4:return e.abrupt("return",t.get("reachability").then(n).catch((function(e){sm.warn("Failed to get reachability info for ",r.state.identity,e)})));case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"_fetch",value:(a=Ta(zc.mark((function e(){var t=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._initializationPromise;case 2:if(this.state.entityName){e.next=4;break}return e.abrupt("return",this);case 4:return this.promiseToFetch=this.services.syncClient.map({id:this.state.entityName,mode:"open_existing",includeItems:!0}).then((function(e){return t.entity=e,e.on("itemUpdated",(function(e){return sm.debug(t.state.entityName+" ("+t.state.identity+") itemUpdated: "+e.item.key),t._update(e.item.key,e.item.data)})),Promise.all([e.get("friendlyName").then((function(e){return t._update(e.key,e.data)})),e.get("attributes").then((function(e){return t._update(e.key,e.data)})),t._updateReachabilityInfo(e,(function(e){return t._update(e.key,e.data)}))])})).then((function(){return sm.debug("Fetched for",t.identity),t.subscribed="subscribed",t.emit("userSubscribed",t),t})).catch((function(e){throw t.promiseToFetch=null,e})),e.abrupt("return",this.promiseToFetch);case 6:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"_ensureFetched",value:(i=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._initializationPromise;case 2:return e.abrupt("return",this.promiseToFetch||this._fetch());case 3:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"updateAttributes",value:(r=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._initializationPromise;case 2:if("unsubscribed"!=this.subscribed){e.next=4;break}throw new Error("Can't modify unsubscribed object");case 4:return e.next=6,this.services.commandExecutor.mutateResource("post",this.links.self,{attributes:JSON.stringify(t)});case 6:return e.abrupt("return",this);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"updateFriendlyName",value:(n=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._initializationPromise;case 2:if("unsubscribed"!=this.subscribed){e.next=4;break}throw new Error("Can't modify unsubscribed object");case 4:return e.next=6,this.services.commandExecutor.mutateResource("post",this.links.self,{friendly_name:t});case 6:return e.abrupt("return",this);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"unsubscribe",value:(t=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._initializationPromise;case 2:if(!this.promiseToFetch){e.next=9;break}return e.next=5,this.promiseToFetch;case 5:this.entity.close(),this.promiseToFetch=null,this.subscribed="unsubscribed",this.emit("userUnsubscribed",this);case 9:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_resolveInitialization",value:function(e,t,n,r){this.configuration=e,this.identity=t,this.entityName=n,this.links={self:"".concat(this.configuration.links.users,"/").concat(this.identity)},this._resolveInitializationPromise(),r&&this.emit("updated",{user:this,updateReasons:["friendlyName","attributes","reachabilityOnline","reachabilityNotifiable"]})}}]),User}(rm);function um(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function cm(e,t){if(e){if("string"==typeof e)return um(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?um(e,t):void 0}}function lm(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){s=!0,i=e}finally{try{o||null==n.return||n.return()}finally{if(s)throw i}}return a}}(e,t)||cm(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}Gc([gy(by),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Promise)],User.prototype,"updateAttributes",null),Gc([gy(["string"]),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],User.prototype,"updateFriendlyName",null);var fm={exports:{}},dm=!o((function(){return Object.isExtensible(Object.preventExtensions({}))})),pm=Rn,hm=st,vm=S,ym=ee,mm=Ne.f,gm=Pt,bm=Er,km=dm,wm=!1,xm=re("meta"),_m=0,Sm=Object.isExtensible||function(){return!0},Em=function(e){mm(e,xm,{value:{objectID:"O"+_m++,weakData:{}}})},Tm=fm.exports={enable:function(){Tm.enable=function(){},wm=!0;var e=gm.f,t=[].splice,n={};n[xm]=1,e(n).length&&(gm.f=function(n){for(var r=e(n),i=0,a=r.length;i<a;i++)if(r[i]===xm){t.call(r,i,1);break}return r},pm({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:bm.f}))},fastKey:function(e,t){if(!vm(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!ym(e,xm)){if(!Sm(e))return"F";if(!t)return"E";Em(e)}return e[xm].objectID},getWeakData:function(e,t){if(!ym(e,xm)){if(!Sm(e))return!0;if(!t)return!1;Em(e)}return e[xm].weakData},onFreeze:function(e){return km&&wm&&Sm(e)&&!ym(e,xm)&&Em(e),e}};hm[xm]=!0;var Rm=Rn,Im=i,Cm=bn,Om=Je.exports,Pm=fm.exports,Am=Po,jm=so,Mm=S,Lm=o,Nm=Bo,Um=Pn,Dm=bd,Fm=function(e,t,n){var r=-1!==e.indexOf("Map"),i=-1!==e.indexOf("Weak"),a=r?"set":"add",o=Im[e],s=o&&o.prototype,u=o,c={},l=function(e){var t=s[e];Om(s,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(i&&!Mm(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return i&&!Mm(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(i&&!Mm(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(Cm(e,"function"!=typeof o||!(i||s.forEach&&!Lm((function(){(new o).entries().next()})))))u=n.getConstructor(t,e,r,a),Pm.enable();else if(Cm(e,!0)){var f=new u,d=f[a](i?{}:-0,1)!=f,p=Lm((function(){f.has(1)})),h=Nm((function(e){new o(e)})),v=!i&&Lm((function(){for(var e=new o,t=5;t--;)e[a](t,t);return!e.has(-0)}));h||((u=t((function(t,n){jm(t,u,e);var i=Dm(new o,t,u);return null!=n&&Am(n,i[a],{that:i,AS_ENTRIES:r}),i}))).prototype=s,s.constructor=u),(p||v)&&(l("delete"),l("has"),r&&l("get")),(v||d)&&l(a),i&&s.clear&&delete s.clear}return c[e]=u,Rm({global:!0,forced:u!=o},c),Um(u,e),i||n.setStrong(u,e,r),u},Bm=Ne.f,qm=tr,zm=Qa,Wm=Dr,Gm=so,$m=Po,Vm=lf,Jm=oo,Km=s,Hm=fm.exports.fastKey,Ym=xt.set,Qm=xt.getterFor,Xm={getConstructor:function(e,t,n,r){var i=e((function(e,a){Gm(e,i,t),Ym(e,{type:t,index:qm(null),first:void 0,last:void 0,size:0}),Km||(e.size=0),null!=a&&$m(a,e[r],{that:e,AS_ENTRIES:n})})),a=Qm(t),o=function(e,t,n){var r,i,o=a(e),u=s(e,t);return u?u.value=n:(o.last=u={index:i=Hm(t,!0),key:t,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=u),r&&(r.next=u),Km?o.size++:e.size++,"F"!==i&&(o.index[i]=u)),e},s=function(e,t){var n,r=a(e),i=Hm(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return zm(i.prototype,{clear:function(){for(var e=a(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,Km?e.size=0:this.size=0},delete:function(e){var t=this,n=a(t),r=s(t,e);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),Km?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=a(this),r=Wm(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!s(this,e)}}),zm(i.prototype,n?{get:function(e){var t=s(this,e);return t&&t.value},set:function(e,t){return o(this,0===e?0:e,t)}}:{add:function(e){return o(this,e=0===e?0:e,e)}}),Km&&Bm(i.prototype,"size",{get:function(){return a(this).size}}),i},setStrong:function(e,t,n){var r=t+" Iterator",i=Qm(t),a=Qm(r);Vm(e,t,(function(e,t){Ym(this,{type:r,target:e,state:i(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),Jm(t)}};Fm("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Xm);var Zm={};Object.defineProperty(Zm,"__esModule",{value:!0});var eg=uv.exports,tg=pv.exports,ng=lv.exports,rg=dv.exports,ig=hv.exports,ag=Sy.exports;function og(e){return e&&"object"===Oa(e)&&"default"in e?e:{default:e}}var sg=og(cv.exports),ug=og(eg),cg=og(tg),lg=og(ng),fg=og(rg),dg=og(ig),pg=og(ag);function hg(){}function vg(){vg.init.call(this)}function yg(e){return void 0===e._maxListeners?vg.defaultMaxListeners:e._maxListeners}function mg(e,t,n){if(t)e.call(n);else for(var r=e.length,i=Eg(e,r),a=0;a<r;++a)i[a].call(n)}function gg(e,t,n,r){if(t)e.call(n,r);else for(var i=e.length,a=Eg(e,i),o=0;o<i;++o)a[o].call(n,r)}function bg(e,t,n,r,i){if(t)e.call(n,r,i);else for(var a=e.length,o=Eg(e,a),s=0;s<a;++s)o[s].call(n,r,i)}function kg(e,t,n,r,i,a){if(t)e.call(n,r,i,a);else for(var o=e.length,s=Eg(e,o),u=0;u<o;++u)s[u].call(n,r,i,a)}function wg(e,t,n,r){if(t)e.apply(n,r);else for(var i=e.length,a=Eg(e,i),o=0;o<i;++o)a[o].apply(n,r)}function xg(e,t,n,r){var i,a,o,s;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((a=e._events)?(a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]):(a=e._events=new hg,e._eventsCount=0),o){if("function"==typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),!o.warned&&(i=yg(e))&&i>0&&o.length>i){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=o.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else o=a[t]=n,++e._eventsCount;return e}function _g(e,t,n){var r=!1;function i(){e.removeListener(t,i),r||(r=!0,n.apply(e,arguments))}return i.listener=n,i}function Sg(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function Eg(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}function Tg(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=dg.default(e);if(t){var i=dg.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return fg.default(this,n)}}hg.prototype=Object.create(null),vg.EventEmitter=vg,vg.usingDomains=!1,vg.prototype.domain=void 0,vg.prototype._events=void 0,vg.prototype._maxListeners=void 0,vg.defaultMaxListeners=10,vg.init=function(){this.domain=null,vg.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new hg,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},vg.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},vg.prototype.getMaxListeners=function(){return yg(this)},vg.prototype.emit=function(e){var t,n,r,i,a,o,s,u="error"===e;if(o=this._events)u=u&&null==o.error;else if(!u)return!1;if(s=this.domain,u){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(n=o[e]))return!1;var l="function"==typeof n;switch(r=arguments.length){case 1:mg(n,l,this);break;case 2:gg(n,l,this,arguments[1]);break;case 3:bg(n,l,this,arguments[1],arguments[2]);break;case 4:kg(n,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(r-1),a=1;a<r;a++)i[a-1]=arguments[a];wg(n,l,this,i)}return!0},vg.prototype.addListener=function(e,t){return xg(this,e,t,!1)},vg.prototype.on=vg.prototype.addListener,vg.prototype.prependListener=function(e,t){return xg(this,e,t,!0)},vg.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,_g(this,e,t)),this},vg.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,_g(this,e,t)),this},vg.prototype.removeListener=function(e,t){var n,r,i,a,o;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new hg:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,a=n.length;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new hg,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,i=e.length;r<i;n+=1,r+=1)e[n]=e[r];e.pop()}(n,i);r.removeListener&&this.emit("removeListener",e,o||t)}return this},vg.prototype.off=function(e,t){return this.removeListener(e,t)},vg.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new hg,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new hg:delete n[e]),this;if(0===arguments.length){for(var r,i=Object.keys(n),a=0;a<i.length;++a)"removeListener"!==(r=i[a])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new hg,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},vg.prototype.listeners=function(e){var t,n=this._events;return n&&(t=n[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[]},vg.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):Sg.call(e,t)},vg.prototype.listenerCount=Sg,vg.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var Rg=function(e){lg.default(n,e);var t=Tg(n);function n(e){var r;return sg.default(this,n),r=t.call(this),pg.default(cg.default(r),"timeout",null),pg.default(cg.default(r),"startTimestamp",-1),r.minDelay=e.min,r.maxDelay=e.max,r.initialDelay=e.initial||0,r.maxAttemptsCount=e.maxAttemptsCount||0,r.maxAttemptsTime=e.maxAttemptsTime||0,r.randomness=e.randomness||0,r.inProgress=!1,r.attemptNum=0,r.prevDelay=0,r.currDelay=0,r}return ug.default(n,[{key:"attempt",value:function(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.attemptNum++,this.emit("attempt",this)}},{key:"nextDelay",value:function(e){if("number"==typeof e)return this.prevDelay=0,this.currDelay=e,e;if(0==this.attemptNum)return this.initialDelay;if(1==this.attemptNum)return this.currDelay=this.minDelay,this.currDelay;this.prevDelay=this.currDelay;var t=this.currDelay+this.prevDelay;return this.maxDelay&&t>this.maxDelay&&(this.currDelay=this.maxDelay,t=this.maxDelay),this.currDelay=t,t}},{key:"randomize",value:function(e){var t=e*this.randomness,n=Math.round(Math.random()*t*2-t);return Math.max(0,e+n)}},{key:"scheduleAttempt",value:function(e){var t=this;if(this.maxAttemptsCount&&this.attemptNum>=this.maxAttemptsCount)return this.cleanup(),void this.emit("failed",new Error("Maximum attempt count limit reached"));var n=this.nextDelay(e);if(n=this.randomize(n),this.maxAttemptsTime&&this.startTimestamp+this.maxAttemptsTime<Date.now()+n)return this.cleanup(),void this.emit("failed",new Error("Maximum attempt time limit reached"));this.timeout=setTimeout((function(){return t.attempt()}),n)}},{key:"cleanup",value:function(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.inProgress=!1,this.attemptNum=0,this.prevDelay=0,this.currDelay=0}},{key:"start",value:function(){if(this.inProgress)throw new Error("Retrier is already in progress");this.inProgress=!0,this.startTimestamp=Date.now(),this.scheduleAttempt(this.initialDelay)}},{key:"cancel",value:function(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null,this.inProgress=!1,this.emit("cancelled"))}},{key:"succeeded",value:function(e){this.emit("succeeded",e)}},{key:"failed",value:function(e,t){if(this.timeout)throw new Error("Retrier attempt is already in progress");this.scheduleAttempt(t)}}]),n}(vg),Ig=function(e){lg.default(n,e);var t=Tg(n);function n(e){var r;return sg.default(this,n),r=t.call(this),pg.default(cg.default(r),"resolve",(function(){})),pg.default(cg.default(r),"reject",(function(){})),r.retrier=new Rg(e),r}return ug.default(n,[{key:"run",value:function(e){var t=this;return this.retrier.on("attempt",(function(){e().then((function(e){return t.retrier.succeeded(e)})).catch((function(e){return t.retrier.failed(e)}))})),this.retrier.on("succeeded",(function(e){return t.resolve(e)})),this.retrier.on("cancelled",(function(){return t.reject(new Error("Cancelled"))})),this.retrier.on("failed",(function(e){return t.reject(e)})),new Promise((function(e,n){t.resolve=e,t.reject=n,t.retrier.start()}))}},{key:"cancel",value:function(){this.retrier.cancel()}}]),n}(vg);function Cg(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=dg.default(e);if(t){var i=dg.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return fg.default(this,n)}}function Og(e){return null!=e}var Pg=function(e){lg.default(n,e);var t=Cg(n);function n(e){var r;sg.default(this,n),r=t.call(this),pg.default(cg.default(r),"backoffDelay",0),pg.default(cg.default(r),"nextBackoffDelay",0),pg.default(cg.default(r),"backoffNumber",0),pg.default(cg.default(r),"timeoutID",null),pg.default(cg.default(r),"maxNumberOfRetry",-1);var i=e=e||{},a=i.initialDelay,o=i.maxDelay,s=i.randomisationFactor,u=i.factor;if(Og(a)&&a<1)throw new Error("The initial timeout must be equal to or greater than 1.");if(Og(o)&&o<=1)throw new Error("The maximal timeout must be greater than 1.");if(Og(s)&&(s<0||s>1))throw new Error("The randomisation factor must be between 0 and 1.");if(Og(u)&&u<=1)throw new Error("Exponential factor should be greater than 1.");if(r.initialDelay=a||100,r.maxDelay=o||1e4,r.maxDelay<=r.initialDelay)throw new Error("The maximal backoff delay must be greater than the initial backoff delay.");return r.randomisationFactor=s||0,r.factor=u||2,r.reset(),r}return ug.default(n,[{key:"backoff",value:function(e){null==this.timeoutID&&(this.backoffNumber===this.maxNumberOfRetry?(this.emit("fail",e),this.reset()):(this.backoffDelay=this.next(),this.timeoutID=setTimeout(this.onBackoff.bind(this),this.backoffDelay),this.emit("backoff",this.backoffNumber,this.backoffDelay,e)))}},{key:"reset",value:function(){this.backoffDelay=0,this.nextBackoffDelay=this.initialDelay,this.backoffNumber=0,this.timeoutID&&clearTimeout(this.timeoutID),this.timeoutID=null}},{key:"failAfter",value:function(e){if(e<=0)throw new Error("Expected a maximum number of retry greater than 0 but got ".concat(e));this.maxNumberOfRetry=e}},{key:"next",value:function(){this.backoffDelay=Math.min(this.nextBackoffDelay,this.maxDelay),this.nextBackoffDelay=this.backoffDelay*this.factor;var e=1+Math.random()*this.randomisationFactor;return Math.min(this.maxDelay,Math.round(this.backoffDelay*e))}},{key:"onBackoff",value:function(){this.timeoutID=null,this.emit("ready",this.backoffNumber,this.backoffDelay),this.backoffNumber++}}],[{key:"exponential",value:function(e){return new n(e)}}]),n}(vg),Ag=Zm.AsyncRetrier=Ig;Zm.Backoff=Pg;var jg=Zm.Retrier=Rg;function Mg(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Lg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Lg(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function Lg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ng=function(){function e(t,n){Na(this,e),this.configuration=t,this.services=n,this.cache=new Map,this.cacheLifetime=100*this.configuration.httpCacheInterval,this.cleanupCache()}return La(e,[{key:"isExpired",value:function(e){return!this.cacheLifetime||Date.now()-e>this.cacheLifetime}},{key:"cleanupCache",value:function(){var e,t=Mg(this.cache);try{for(t.s();!(e=t.n()).done;){var n=lm(e.value,2),r=n[0],i=n[1];this.isExpired(i.timestamp)&&this.cache.delete(r)}}catch(e){t.e(e)}finally{t.f()}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 t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise((function(r,i){var a=[502,503,504];n&&a.push(429);var o=new jg(t.configuration.backoffConfiguration);o.on("attempt",(function(){e().then((function(e){return o.succeeded(e)})).catch((function(e){a.indexOf(e.status)>-1||"Twilsock disconnected"===e.message?o.failed(e):(o.removeAllListeners(),o.cancel(),i(e))}))})),o.on("succeeded",(function(e){r(e)})),o.on("cancelled",(function(e){return i(e)})),o.on("failed",(function(e){return i(e)})),o.start()}))}},{key:"get",value:function(){var e=Ta(zc.mark((function e(t){var n,r,i,a=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=this.cache.get(t))||this.isExpired(n.timestamp)){e.next=3;break}return e.abrupt("return",n.response);case 3:return r={},e.next=6,this.executeWithRetry((function(){return a.services.transport.get(t,r,a.configuration.productId)}),this.configuration.retryWhenThrottled);case 6:return i=e.sent,this.cache.set(t,{response:i,timestamp:Date.now()}),this.pokeTimer(),e.abrupt("return",i);case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()}]),e}(),Ug=La((function e(){Na(this,e)}));ja(Ug,"TYPING_INDICATOR","twilio.ipmsg.typing_indicator"),ja(Ug,"NEW_MESSAGE","twilio.conversations.new_message"),ja(Ug,"ADDED_TO_CONVERSATION","twilio.conversations.added_to_conversation"),ja(Ug,"REMOVED_FROM_CONVERSATION","twilio.conversations.removed_from_conversation"),ja(Ug,"CONSUMPTION_UPDATE","twilio.channel.consumption_update");var Dg={},Fg={exports:{}};!function(e){function t(e,t,n,r,i,a,o){try{var s=e[a](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(i,a){var o=e.apply(n,r);function s(e){t(o,i,a,s,u,"next",e)}function u(e){t(o,i,a,s,u,"throw",e)}s(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports}(Fg);var Bg=n(Wc),qg=Je.exports,zg=De,Wg=Sr,Gg=o,$g=Xd,Vg="toString",Jg=RegExp.prototype,Kg=Jg.toString,Hg=Gg((function(){return"/a/b"!=Kg.call({source:"a",flags:"b"})})),Yg=Kg.name!=Vg;(Hg||Yg)&&qg(RegExp.prototype,Vg,(function(){var e=zg(this),t=Wg(e.source),n=e.flags;return"/"+t+"/"+Wg(void 0===n&&e instanceof RegExp&&!("flags"in Jg)?$g.call(e):n)}),{unsafe:!0}),Fm("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Xm);var Qg={exports:{}};!function(e,t){var n;n=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=5)}([function(e,t,n){e.exports=function(e,t){var n,r,i;for(n=1;n<arguments.length;n++)for(i in r=arguments[n])r.hasOwnProperty(i)&&(e[i]=r[i]);return e}},function(e,t,n){var r=n(0);e.exports={build:function(e,t){var n,i,a,o=t.plugins;for(n=0,i=o.length;n<i;n++)(a=o[n]).methods&&r(e,a.methods),a.properties&&Object.defineProperties(e,a.properties)},hook:function(e,t,n){var r,i,a,o,s=e.config.plugins,u=[e.context];for(n&&(u=u.concat(n)),r=0,i=s.length;r<i;r++)o=s[r],(a=s[r][t])&&a.apply(o,u)}}},function(e,t,n){function r(e){if(0===e.length)return e;var t,n,r=e.split(/[_-]/);if(1===r.length&&r[0][0].toLowerCase()===r[0][0])return e;for(n=r[0].toLowerCase(),t=1;t<r.length;t++)n=n+r[t].charAt(0).toUpperCase()+r[t].substring(1).toLowerCase();return n}r.prepended=function(e,t){return e+(t=r(t))[0].toUpperCase()+t.substring(1)},e.exports=r},function(e,t,n){var r=n(0),i=n(2);function a(e,t){e=e||{},this.options=e,this.defaults=t.defaults,this.states=[],this.transitions=[],this.map={},this.lifecycle=this.configureLifecycle(),this.init=this.configureInitTransition(e.init),this.data=this.configureData(e.data),this.methods=this.configureMethods(e.methods),this.map[this.defaults.wildcard]={},this.configureTransitions(e.transitions||[]),this.plugins=this.configurePlugins(e.plugins,t.plugin)}r(a.prototype,{addState:function(e){this.map[e]||(this.states.push(e),this.addStateLifecycleNames(e),this.map[e]={})},addStateLifecycleNames:function(e){this.lifecycle.onEnter[e]=i.prepended("onEnter",e),this.lifecycle.onLeave[e]=i.prepended("onLeave",e),this.lifecycle.on[e]=i.prepended("on",e)},addTransition:function(e){this.transitions.indexOf(e)<0&&(this.transitions.push(e),this.addTransitionLifecycleNames(e))},addTransitionLifecycleNames:function(e){this.lifecycle.onBefore[e]=i.prepended("onBefore",e),this.lifecycle.onAfter[e]=i.prepended("onAfter",e),this.lifecycle.on[e]=i.prepended("on",e)},mapTransition:function(e){var t=e.name,n=e.from,r=e.to;return this.addState(n),"function"!=typeof r&&this.addState(r),this.addTransition(t),this.map[n][t]=e,e},configureLifecycle:function(){return{onBefore:{transition:"onBeforeTransition"},onAfter:{transition:"onAfterTransition"},onEnter:{state:"onEnterState"},onLeave:{state:"onLeaveState"},on:{transition:"onTransition"}}},configureInitTransition:function(e){return"string"==typeof e?this.mapTransition(r({},this.defaults.init,{to:e,active:!0})):"object"===Oa(e)?this.mapTransition(r({},this.defaults.init,e,{active:!0})):(this.addState(this.defaults.init.from),this.defaults.init)},configureData:function(e){return"function"==typeof e?e:"object"===Oa(e)?function(){return e}:function(){return{}}},configureMethods:function(e){return e||{}},configurePlugins:function(e,t){var n,r,i;for(n=0,r=(e=e||[]).length;n<r;n++)"function"==typeof(i=e[n])&&(e[n]=i=i()),i.configure&&i.configure(this);return e},configureTransitions:function(e){var t,n,r,i,a,o=this.defaults.wildcard;for(n=0;n<e.length;n++)for(r=e[n],i=Array.isArray(r.from)?r.from:[r.from||o],a=r.to||o,t=0;t<i.length;t++)this.mapTransition({name:r.name,from:i[t],to:a})},transitionFor:function(e,t){var n=this.defaults.wildcard;return this.map[e][t]||this.map[n][t]},transitionsFor:function(e){var t=this.defaults.wildcard;return Object.keys(this.map[e]).concat(Object.keys(this.map[t]))},allStates:function(){return this.states},allTransitions:function(){return this.transitions}}),e.exports=a},function(e,t,n){var r=n(0),i=n(6),a=n(1),o=[null,[]];function s(e,t){this.context=e,this.config=t,this.state=t.init.from,this.observers=[e]}r(s.prototype,{init:function(e){if(r(this.context,this.config.data.apply(this.context,e)),a.hook(this,"init"),this.config.init.active)return this.fire(this.config.init.name,[])},is:function(e){return Array.isArray(e)?e.indexOf(this.state)>=0:this.state===e},isPending:function(){return this.pending},can:function(e){return!this.isPending()&&!!this.seek(e)},cannot:function(e){return!this.can(e)},allStates:function(){return this.config.allStates()},allTransitions:function(){return this.config.allTransitions()},transitions:function(){return this.config.transitionsFor(this.state)},seek:function(e,t){var n=this.config.defaults.wildcard,r=this.config.transitionFor(this.state,e),i=r&&r.to;return"function"==typeof i?i.apply(this.context,t):i===n?this.state:i},fire:function(e,t){return this.transit(e,this.state,this.seek(e,t),t)},transit:function(e,t,n,r){var i=this.config.lifecycle,a=this.config.options.observeUnchangedState||t!==n;return n?this.isPending()?this.context.onPendingTransition(e,t,n):(this.config.addState(n),this.beginTransit(),r.unshift({transition:e,from:t,to:n,fsm:this.context}),this.observeEvents([this.observersForEvent(i.onBefore.transition),this.observersForEvent(i.onBefore[e]),a?this.observersForEvent(i.onLeave.state):o,a?this.observersForEvent(i.onLeave[t]):o,this.observersForEvent(i.on.transition),a?["doTransit",[this]]:o,a?this.observersForEvent(i.onEnter.state):o,a?this.observersForEvent(i.onEnter[n]):o,a?this.observersForEvent(i.on[n]):o,this.observersForEvent(i.onAfter.transition),this.observersForEvent(i.onAfter[e]),this.observersForEvent(i.on[e])],r)):this.context.onInvalidTransition(e,t,n)},beginTransit:function(){this.pending=!0},endTransit:function(e){return this.pending=!1,e},failTransit:function(e){throw this.pending=!1,e},doTransit:function(e){this.state=e.to},observe:function(e){if(2===e.length){var t={};t[e[0]]=e[1],this.observers.push(t)}else this.observers.push(e[0])},observersForEvent:function(e){for(var t,n=0,r=this.observers.length,i=[];n<r;n++)(t=this.observers[n])[e]&&i.push(t);return[e,i,!0]},observeEvents:function(e,t,n,r){if(0===e.length)return this.endTransit(void 0===r||r);var i=e[0][0],o=e[0][1],s=e[0][2];if(t[0].event=i,i&&s&&i!==n&&a.hook(this,"lifecycle",t),0===o.length)return e.shift(),this.observeEvents(e,t,i,r);var u=o.shift(),c=u[i].apply(u,t);return c&&"function"==typeof c.then?c.then(this.observeEvents.bind(this,e,t,i)).catch(this.failTransit.bind(this)):!1===c?this.endTransit(!1):this.observeEvents(e,t,i,c)},onInvalidTransition:function(e,t,n){throw new i("transition is invalid in current state",e,t,n,this.state)},onPendingTransition:function(e,t,n){throw new i("transition is invalid while previous transition is still in progress",e,t,n,this.state)}}),e.exports=s},function(e,t,n){var r=n(0),i=n(2),a=n(1),o=n(3),s=n(4),u={is:function(e){return this._fsm.is(e)},can:function(e){return this._fsm.can(e)},cannot:function(e){return this._fsm.cannot(e)},observe:function(){return this._fsm.observe(arguments)},transitions:function(){return this._fsm.transitions()},allTransitions:function(){return this._fsm.allTransitions()},allStates:function(){return this._fsm.allStates()},onInvalidTransition:function(e,t,n){return this._fsm.onInvalidTransition(e,t,n)},onPendingTransition:function(e,t,n){return this._fsm.onPendingTransition(e,t,n)}},c={state:{configurable:!1,enumerable:!0,get:function(){return this._fsm.state},set:function(e){throw Error("use transitions to change state")}}};function l(e){return f(this||{},e)}function f(e,t){return d(e,new o(t,l)),e._fsm(),e}function d(e,t){if("object"!==Oa(e)||Array.isArray(e))throw Error("StateMachine can only be applied to objects");a.build(e,t),Object.defineProperties(e,c),r(e,u),r(e,t.methods),t.allTransitions().forEach((function(t){e[i(t)]=function(){return this._fsm.fire(t,[].slice.call(arguments))}})),e._fsm=function(){this._fsm=new s(this,t),this._fsm.init(arguments)}}l.version="3.0.1",l.factory=function(){var e,t;"function"==typeof arguments[0]?(e=arguments[0],t=arguments[1]||{}):(e=function(){this._fsm.apply(this,arguments)},t=arguments[0]||{});var n=new o(t,l);return d(e.prototype,n),e.prototype._fsm.config=n,e},l.apply=f,l.defaults={wildcard:"*",init:{name:"init",from:"none"}},e.exports=l},function(e,t,n){e.exports=function(e,t,n,r,i){this.message=e,this.transition=t,this.from=n,this.to=r,this.current=i}}])},e.exports=n()}(Qg);var Xg={exports:{}},Zg="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(Zg){var eb=new Uint8Array(16);Xg.exports=function(){return Zg(eb),eb}}else{var tb=new Array(16);Xg.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),tb[t]=e>>>((3&t)<<3)&255;return tb}}for(var nb=[],rb=0;rb<256;++rb)nb[rb]=(rb+256).toString(16).substr(1);var ib,ab,ob=function(e,t){var n=t||0,r=nb;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("")},sb=Xg.exports,ub=ob,cb=0,lb=0;var fb=function(e,t,n){var r=t&&n||0,i=t||[],a=(e=e||{}).node||ib,o=void 0!==e.clockseq?e.clockseq:ab;if(null==a||null==o){var s=sb();null==a&&(a=ib=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==o&&(o=ab=16383&(s[6]<<8|s[7]))}var u=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:lb+1,l=u-cb+(c-lb)/1e4;if(l<0&&void 0===e.clockseq&&(o=o+1&16383),(l<0||u>cb)&&void 0===e.nsecs&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");cb=u,lb=c,ab=o;var f=(1e4*(268435455&(u+=122192928e5))+c)%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var d=u/4294967296*1e4&268435455;i[r++]=d>>>8&255,i[r++]=255&d,i[r++]=d>>>24&15|16,i[r++]=d>>>16&255,i[r++]=o>>>8|128,i[r++]=255&o;for(var p=0;p<6;++p)i[r+p]=a[p];return t||ub(i)},db=Xg.exports,pb=ob;var hb=fb,vb=function(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var i=(e=e||{}).random||(e.rng||db)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t)for(var a=0;a<16;++a)t[r+a]=i[a];return t||pb(i)},yb=vb;yb.v1=hb,yb.v4=vb;var mb,gb,bb,kb=yb,wb={exports:{}},xb="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,_b=xb,Sb=s,Eb=i,Tb=S,Rb=ee,Ib=Wa,Cb=Ve,Ob=Je.exports,Pb=Ne.f,Ab=Ml,jb=to,Mb=pe,Lb=re,Nb=Eb.Int8Array,Ub=Nb&&Nb.prototype,Db=Eb.Uint8ClampedArray,Fb=Db&&Db.prototype,Bb=Nb&&Ab(Nb),qb=Ub&&Ab(Ub),zb=Object.prototype,Wb=zb.isPrototypeOf,Gb=Mb("toStringTag"),$b=Lb("TYPED_ARRAY_TAG"),Vb=Lb("TYPED_ARRAY_CONSTRUCTOR"),Jb=_b&&!!jb&&"Opera"!==Ib(Eb.opera),Kb=!1,Hb={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Yb={BigInt64Array:8,BigUint64Array:8},Qb=function(e){if(!Tb(e))return!1;var t=Ib(e);return Rb(Hb,t)||Rb(Yb,t)};for(mb in Hb)(bb=(gb=Eb[mb])&&gb.prototype)?Cb(bb,Vb,gb):Jb=!1;for(mb in Yb)(bb=(gb=Eb[mb])&&gb.prototype)&&Cb(bb,Vb,gb);if((!Jb||"function"!=typeof Bb||Bb===Function.prototype)&&(Bb=function(){throw TypeError("Incorrect invocation")},Jb))for(mb in Hb)Eb[mb]&&jb(Eb[mb],Bb);if((!Jb||!qb||qb===zb)&&(qb=Bb.prototype,Jb))for(mb in Hb)Eb[mb]&&jb(Eb[mb].prototype,qb);if(Jb&&Ab(Fb)!==qb&&jb(Fb,qb),Sb&&!Rb(qb,Gb))for(mb in Kb=!0,Pb(qb,Gb,{get:function(){return Tb(this)?this[$b]:void 0}}),Hb)Eb[mb]&&Cb(Eb[mb],$b,mb);var Xb={NATIVE_ARRAY_BUFFER_VIEWS:Jb,TYPED_ARRAY_CONSTRUCTOR:Vb,TYPED_ARRAY_TAG:Kb&&$b,aTypedArray:function(e){if(Qb(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(jb&&!Wb.call(Bb,e))throw TypeError("Target is not a typed array constructor");return e},exportTypedArrayMethod:function(e,t,n){if(Sb){if(n)for(var r in Hb){var i=Eb[r];if(i&&Rb(i.prototype,e))try{delete i.prototype[e]}catch(e){}}qb[e]&&!n||Ob(qb,e,n?t:Jb&&Ub[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,i;if(Sb){if(jb){if(n)for(r in Hb)if((i=Eb[r])&&Rb(i,e))try{delete i[e]}catch(e){}if(Bb[e]&&!n)return;try{return Ob(Bb,e,n?t:Jb&&Bb[e]||t)}catch(e){}}for(r in Hb)!(i=Eb[r])||i[e]&&!n||Ob(i,e,t)}},isView:function(e){if(!Tb(e))return!1;var t=Ib(e);return"DataView"===t||Rb(Hb,t)||Rb(Yb,t)},isTypedArray:Qb,TypedArray:Bb,TypedArrayPrototype:qb},Zb=i,ek=o,tk=Bo,nk=Xb.NATIVE_ARRAY_BUFFER_VIEWS,rk=Zb.ArrayBuffer,ik=Zb.Int8Array,ak=!nk||!ek((function(){ik(1)}))||!ek((function(){new ik(-1)}))||!tk((function(e){new ik,new ik(null),new ik(1.5),new ik(e)}),!0)||ek((function(){return 1!==new ik(new rk(2),1,void 0).length})),ok=Mt,sk=Ut,uk=function(e){if(void 0===e)return 0;var t=ok(e),n=sk(t);if(t!==n)throw RangeError("Wrong length or index");return n},ck=Math.abs,lk=Math.pow,fk=Math.floor,dk=Math.log,pk=Math.LN2,hk=Q,vk=qt,yk=Ut,mk=function(e){for(var t=hk(this),n=yk(t.length),r=arguments.length,i=vk(r>1?arguments[1]:void 0,n),a=r>2?arguments[2]:void 0,o=void 0===a?n:vk(a,n);o>i;)t[i++]=e;return t},gk=i,bk=s,kk=xb,wk=Ve,xk=Qa,_k=o,Sk=so,Ek=Mt,Tk=Ut,Rk=uk,Ik={pack:function(e,t,n){var r,i,a,o=new Array(n),s=8*n-t-1,u=(1<<s)-1,c=u>>1,l=23===t?lk(2,-24)-lk(2,-77):0,f=e<0||0===e&&1/e<0?1:0,d=0;for((e=ck(e))!=e||e===1/0?(i=e!=e?1:0,r=u):(r=fk(dk(e)/pk),e*(a=lk(2,-r))<1&&(r--,a*=2),(e+=r+c>=1?l/a:l*lk(2,1-c))*a>=2&&(r++,a/=2),r+c>=u?(i=0,r=u):r+c>=1?(i=(e*a-1)*lk(2,t),r+=c):(i=e*lk(2,c-1)*lk(2,t),r=0));t>=8;o[d++]=255&i,i/=256,t-=8);for(r=r<<t|i,s+=t;s>0;o[d++]=255&r,r/=256,s-=8);return o[--d]|=128*f,o},unpack:function(e,t){var n,r=e.length,i=8*r-t-1,a=(1<<i)-1,o=a>>1,s=i-7,u=r-1,c=e[u--],l=127&c;for(c>>=7;s>0;l=256*l+e[u],u--,s-=8);for(n=l&(1<<-s)-1,l>>=-s,s+=t;s>0;n=256*n+e[u],u--,s-=8);if(0===l)l=1-o;else{if(l===a)return n?NaN:c?-1/0:1/0;n+=lk(2,t),l-=o}return(c?-1:1)*n*lk(2,l-t)}},Ck=Ml,Ok=to,Pk=Pt.f,Ak=Ne.f,jk=mk,Mk=Pn,Lk=xt.get,Nk=xt.set,Uk="ArrayBuffer",Dk="DataView",Fk="Wrong index",Bk=gk.ArrayBuffer,qk=Bk,zk=gk.DataView,Wk=zk&&zk.prototype,Gk=Object.prototype,$k=gk.RangeError,Vk=Ik.pack,Jk=Ik.unpack,Kk=function(e){return[255&e]},Hk=function(e){return[255&e,e>>8&255]},Yk=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Qk=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Xk=function(e){return Vk(e,23,4)},Zk=function(e){return Vk(e,52,8)},ew=function(e,t){Ak(e.prototype,t,{get:function(){return Lk(this)[t]}})},tw=function(e,t,n,r){var i=Rk(n),a=Lk(e);if(i+t>a.byteLength)throw $k(Fk);var o=Lk(a.buffer).bytes,s=i+a.byteOffset,u=o.slice(s,s+t);return r?u:u.reverse()},nw=function(e,t,n,r,i,a){var o=Rk(n),s=Lk(e);if(o+t>s.byteLength)throw $k(Fk);for(var u=Lk(s.buffer).bytes,c=o+s.byteOffset,l=r(+i),f=0;f<t;f++)u[c+f]=l[a?f:t-f-1]};if(kk){if(!_k((function(){Bk(1)}))||!_k((function(){new Bk(-1)}))||_k((function(){return new Bk,new Bk(1.5),new Bk(NaN),Bk.name!=Uk}))){for(var rw,iw=(qk=function(e){return Sk(this,qk),new Bk(Rk(e))}).prototype=Bk.prototype,aw=Pk(Bk),ow=0;aw.length>ow;)(rw=aw[ow++])in qk||wk(qk,rw,Bk[rw]);iw.constructor=qk}Ok&&Ck(Wk)!==Gk&&Ok(Wk,Gk);var sw=new zk(new qk(2)),uw=Wk.setInt8;sw.setInt8(0,2147483648),sw.setInt8(1,2147483649),!sw.getInt8(0)&&sw.getInt8(1)||xk(Wk,{setInt8:function(e,t){uw.call(this,e,t<<24>>24)},setUint8:function(e,t){uw.call(this,e,t<<24>>24)}},{unsafe:!0})}else qk=function(e){Sk(this,qk,Uk);var t=Rk(e);Nk(this,{bytes:jk.call(new Array(t),0),byteLength:t}),bk||(this.byteLength=t)},zk=function(e,t,n){Sk(this,zk,Dk),Sk(e,qk,Dk);var r=Lk(e).byteLength,i=Ek(t);if(i<0||i>r)throw $k("Wrong offset");if(i+(n=void 0===n?r-i:Tk(n))>r)throw $k("Wrong length");Nk(this,{buffer:e,byteLength:n,byteOffset:i}),bk||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},bk&&(ew(qk,"byteLength"),ew(zk,"buffer"),ew(zk,"byteLength"),ew(zk,"byteOffset")),xk(zk.prototype,{getInt8:function(e){return tw(this,1,e)[0]<<24>>24},getUint8:function(e){return tw(this,1,e)[0]},getInt16:function(e){var t=tw(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=tw(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return Qk(tw(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Qk(tw(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return Jk(tw(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return Jk(tw(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){nw(this,1,e,Kk,t)},setUint8:function(e,t){nw(this,1,e,Kk,t)},setInt16:function(e,t){nw(this,2,e,Hk,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){nw(this,2,e,Hk,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){nw(this,4,e,Yk,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){nw(this,4,e,Yk,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){nw(this,4,e,Xk,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){nw(this,8,e,Zk,t,arguments.length>2?arguments[2]:void 0)}});Mk(qk,Uk),Mk(zk,Dk);var cw={ArrayBuffer:qk,DataView:zk},lw=Mt,fw=function(e){var t=lw(e);if(t<0)throw RangeError("The argument can't be less than 0");return t},dw=function(e,t){var n=fw(e);if(n%t)throw RangeError("Wrong offset");return n},pw=Q,hw=Ut,vw=ko,yw=mo,mw=po,gw=Dr,bw=Xb.aTypedArrayConstructor,kw=Rn,ww=i,xw=s,_w=ak,Sw=Xb,Ew=cw,Tw=so,Rw=h,Iw=Ve,Cw=bv,Ow=Ut,Pw=uk,Aw=dw,jw=we,Mw=ee,Lw=Wa,Nw=S,Uw=q,Dw=tr,Fw=to,Bw=Pt.f,qw=function(e){var t,n,r,i,a,o,s=pw(e),u=arguments.length,c=u>1?arguments[1]:void 0,l=void 0!==c,f=yw(s);if(null!=f&&!mw(f))for(o=(a=vw(s,f)).next,s=[];!(i=o.call(a)).done;)s.push(i.value);for(l&&u>2&&(c=gw(c,arguments[2],2)),n=hw(s.length),r=new(bw(this))(n),t=0;n>t;t++)r[t]=l?c(s[t],t):s[t];return r},zw=Qr.forEach,Ww=oo,Gw=Ne,$w=a,Vw=bd,Jw=xt.get,Kw=xt.set,Hw=Gw.f,Yw=$w.f,Qw=Math.round,Xw=ww.RangeError,Zw=Ew.ArrayBuffer,ex=Ew.DataView,tx=Sw.NATIVE_ARRAY_BUFFER_VIEWS,nx=Sw.TYPED_ARRAY_CONSTRUCTOR,rx=Sw.TYPED_ARRAY_TAG,ix=Sw.TypedArray,ax=Sw.TypedArrayPrototype,ox=Sw.aTypedArrayConstructor,sx=Sw.isTypedArray,ux="BYTES_PER_ELEMENT",cx="Wrong length",lx=function(e,t){for(var n=0,r=t.length,i=new(ox(e))(r);r>n;)i[n]=t[n++];return i},fx=function(e,t){Hw(e,t,{get:function(){return Jw(this)[t]}})},dx=function(e){var t;return e instanceof Zw||"ArrayBuffer"==(t=Lw(e))||"SharedArrayBuffer"==t},px=function(e,t){return sx(e)&&!Uw(t)&&t in e&&Cw(+t)&&t>=0},hx=function(e,t){return t=jw(t),px(e,t)?Rw(2,e[t]):Yw(e,t)},vx=function(e,t,n){return t=jw(t),!(px(e,t)&&Nw(n)&&Mw(n,"value"))||Mw(n,"get")||Mw(n,"set")||n.configurable||Mw(n,"writable")&&!n.writable||Mw(n,"enumerable")&&!n.enumerable?Hw(e,t,n):(e[t]=n.value,e)};xw?(tx||($w.f=hx,Gw.f=vx,fx(ax,"buffer"),fx(ax,"byteOffset"),fx(ax,"byteLength"),fx(ax,"length")),kw({target:"Object",stat:!0,forced:!tx},{getOwnPropertyDescriptor:hx,defineProperty:vx}),wb.exports=function(e,t,n){var r=e.match(/\d+$/)[0]/8,i=e+(n?"Clamped":"")+"Array",a="get"+e,o="set"+e,s=ww[i],u=s,c=u&&u.prototype,l={},f=function(e,t){Hw(e,t,{get:function(){return function(e,t){var n=Jw(e);return n.view[a](t*r+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,i){var a=Jw(e);n&&(i=(i=Qw(i))<0?0:i>255?255:255&i),a.view[o](t*r+a.byteOffset,i,!0)}(this,t,e)},enumerable:!0})};tx?_w&&(u=t((function(e,t,n,a){return Tw(e,u,i),Vw(Nw(t)?dx(t)?void 0!==a?new s(t,Aw(n,r),a):void 0!==n?new s(t,Aw(n,r)):new s(t):sx(t)?lx(u,t):qw.call(u,t):new s(Pw(t)),e,u)})),Fw&&Fw(u,ix),zw(Bw(s),(function(e){e in u||Iw(u,e,s[e])})),u.prototype=c):(u=t((function(e,t,n,a){Tw(e,u,i);var o,s,c,l=0,d=0;if(Nw(t)){if(!dx(t))return sx(t)?lx(u,t):qw.call(u,t);o=t,d=Aw(n,r);var p=t.byteLength;if(void 0===a){if(p%r)throw Xw(cx);if((s=p-d)<0)throw Xw(cx)}else if((s=Ow(a)*r)+d>p)throw Xw(cx);c=s/r}else c=Pw(t),o=new Zw(s=c*r);for(Kw(e,{buffer:o,byteOffset:d,byteLength:s,length:c,view:new ex(o)});l<c;)f(e,l++)})),Fw&&Fw(u,ix),c=u.prototype=Dw(ax)),c.constructor!==u&&Iw(c,"constructor",u),Iw(c,nx,u),rx&&Iw(c,rx,i),l[i]=u,kw({global:!0,forced:u!=s,sham:!tx},l),ux in u||Iw(u,ux,r),ux in c||Iw(c,ux,r),Ww(i)}):wb.exports=function(){},(0,wb.exports)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var yx=Ut,mx=Mt,gx=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("at",(function(e){var t=gx(this),n=yx(t.length),r=mx(e),i=r>=0?r:n+r;return i<0||i>=n?void 0:t[i]}));var bx=Q,kx=qt,wx=Ut,xx=Math.min,_x=[].copyWithin||function(e,t){var n=bx(this),r=wx(n.length),i=kx(e,r),a=kx(t,r),o=arguments.length>2?arguments[2]:void 0,s=xx((void 0===o?r:kx(o,r))-a,r-i),u=1;for(a<i&&i<a+s&&(u=-1,a+=s-1,i+=s-1);s-- >0;)a in n?n[i]=n[a]:delete n[i],i+=u,a+=u;return n},Sx=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("copyWithin",(function(e,t){return _x.call(Sx(this),e,t,arguments.length>2?arguments[2]:void 0)}));var Ex=Qr.every,Tx=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("every",(function(e){return Ex(Tx(this),e,arguments.length>1?arguments[1]:void 0)}));var Rx=mk,Ix=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("fill",(function(e){return Rx.apply(Ix(this),arguments)}));var Cx=Go,Ox=Xb.TYPED_ARRAY_CONSTRUCTOR,Px=Xb.aTypedArrayConstructor,Ax=function(e){return Px(Cx(e,e[Ox]))},jx=function(e,t){for(var n=0,r=t.length,i=new e(r);r>n;)i[n]=t[n++];return i},Mx=Ax,Lx=Qr.filter,Nx=function(e,t){return jx(Mx(e),t)},Ux=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("filter",(function(e){var t=Lx(Ux(this),e,arguments.length>1?arguments[1]:void 0);return Nx(this,t)}));var Dx=Qr.find,Fx=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("find",(function(e){return Dx(Fx(this),e,arguments.length>1?arguments[1]:void 0)}));var Bx=Qr.findIndex,qx=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("findIndex",(function(e){return Bx(qx(this),e,arguments.length>1?arguments[1]:void 0)}));var zx=Qr.forEach,Wx=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("forEach",(function(e){zx(Wx(this),e,arguments.length>1?arguments[1]:void 0)}));var Gx=Vt.includes,$x=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("includes",(function(e){return Gx($x(this),e,arguments.length>1?arguments[1]:void 0)}));var Vx=Vt.indexOf,Jx=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("indexOf",(function(e){return Vx(Jx(this),e,arguments.length>1?arguments[1]:void 0)}));var Kx=i,Hx=Xb,Yx=Qf,Qx=pe("iterator"),Xx=Kx.Uint8Array,Zx=Yx.values,e_=Yx.keys,t_=Yx.entries,n_=Hx.aTypedArray,r_=Hx.exportTypedArrayMethod,i_=Xx&&Xx.prototype[Qx],a_=!!i_&&("values"==i_.name||null==i_.name),o_=function(){return Zx.call(n_(this))};r_("entries",(function(){return t_.call(n_(this))})),r_("keys",(function(){return e_.call(n_(this))})),r_("values",o_,!a_),r_(Qx,o_,!a_);var s_=Xb.aTypedArray,u_=[].join;(0,Xb.exportTypedArrayMethod)("join",(function(e){return u_.apply(s_(this),arguments)}));var c_=_,l_=Mt,f_=Ut,d_=rc,p_=Math.min,h_=[].lastIndexOf,v_=!!h_&&1/[1].lastIndexOf(1,-0)<0,y_=d_("lastIndexOf"),m_=v_||!y_?function(e){if(v_)return h_.apply(this,arguments)||0;var t=c_(this),n=f_(t.length),r=n-1;for(arguments.length>1&&(r=p_(r,l_(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:h_,g_=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("lastIndexOf",(function(e){return m_.apply(g_(this),arguments)}));var b_=Qr.map,k_=Ax,w_=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("map",(function(e){return b_(w_(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(k_(e))(t)}))}));var x_=Ln,__=Q,S_=b,E_=Ut,T_=function(e){return function(t,n,r,i){x_(n);var a=__(t),o=S_(a),s=E_(a.length),u=e?s-1:0,c=e?-1:1;if(r<2)for(;;){if(u in o){i=o[u],u+=c;break}if(u+=c,e?u<0:s<=u)throw TypeError("Reduce of empty array with no initial value")}for(;e?u>=0:s>u;u+=c)u in o&&(i=n(i,o[u],u,a));return i}},R_={left:T_(!1),right:T_(!0)},I_=R_.left,C_=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("reduce",(function(e){return I_(C_(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var O_=R_.right,P_=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("reduceRight",(function(e){return O_(P_(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var A_=Xb.aTypedArray,j_=Xb.exportTypedArrayMethod,M_=Math.floor;j_("reverse",(function(){for(var e,t=this,n=A_(t).length,r=M_(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e;return t}));var L_=Ut,N_=dw,U_=Q,D_=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("set",(function(e){D_(this);var t=N_(arguments.length>1?arguments[1]:void 0,1),n=this.length,r=U_(e),i=L_(r.length),a=0;if(i+t>n)throw RangeError("Wrong length");for(;a<i;)this[t+a]=r[a++]}),o((function(){new Int8Array(1).set({})})));var F_=Ax,B_=Xb.aTypedArray,q_=[].slice;(0,Xb.exportTypedArrayMethod)("slice",(function(e,t){for(var n=q_.call(B_(this),e,t),r=F_(this),i=0,a=n.length,o=new r(a);a>i;)o[i]=n[i++];return o}),o((function(){new Int8Array(1).slice()})));var z_=Qr.some,W_=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("some",(function(e){return z_(W_(this),e,arguments.length>1?arguments[1]:void 0)}));var G_=Math.floor,$_=function(e,t){var n=e.length,r=G_(n/2);return n<8?V_(e,t):J_($_(e.slice(0,r),t),$_(e.slice(r),t),t)},V_=function(e,t){for(var n,r,i=e.length,a=1;a<i;){for(r=a,n=e[a];r&&t(e[r-1],n)>0;)e[r]=e[--r];r!==a++&&(e[r]=n)}return e},J_=function(e,t,n){for(var r=e.length,i=t.length,a=0,o=0,s=[];a<r||o<i;)a<r&&o<i?s.push(n(e[a],t[o])<=0?e[a++]:t[o++]):s.push(a<r?e[a++]:t[o++]);return s},K_=$_,H_=I.match(/firefox\/(\d+)/i),Y_=!!H_&&+H_[1],Q_=/MSIE|Trident/.test(I),X_=I.match(/AppleWebKit\/(\d+)\./),Z_=!!X_&&+X_[1],eS=o,tS=Ln,nS=Ut,rS=K_,iS=Y_,aS=Q_,oS=L,sS=Z_,uS=Xb.aTypedArray,cS=Xb.exportTypedArrayMethod,lS=i.Uint16Array,fS=lS&&lS.prototype.sort,dS=!!fS&&!eS((function(){var e=new lS(2);e.sort(null),e.sort({})})),pS=!!fS&&!eS((function(){if(oS)return oS<74;if(iS)return iS<67;if(aS)return!0;if(sS)return sS<602;var e,t,n=new lS(516),r=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(n.sort((function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(n[e]!==r[e])return!0}));cS("sort",(function(e){var t=this;if(void 0!==e&&tS(e),pS)return fS.call(t,e);uS(t);var n,r=nS(t.length),i=Array(r);for(n=0;n<r;n++)i[n]=t[n];for(i=rS(t,function(e){return function(t,n){return void 0!==e?+e(t,n)||0:n!=n?-1:t!=t?1:0===t&&0===n?1/t>0&&1/n<0?1:-1:t>n}}(e)),n=0;n<r;n++)t[n]=i[n];return t}),!pS||dS);var hS=Ut,vS=qt,yS=Ax,mS=Xb.aTypedArray;(0,Xb.exportTypedArrayMethod)("subarray",(function(e,t){var n=mS(this),r=n.length,i=vS(e,r);return new(yS(n))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,hS((void 0===t?r:vS(t,r))-i))}));var gS=Xb,bS=o,kS=i.Int8Array,wS=gS.aTypedArray,xS=gS.exportTypedArrayMethod,_S=[].toLocaleString,SS=[].slice,ES=!!kS&&bS((function(){_S.call(new kS(1))}));xS("toLocaleString",(function(){return _S.apply(ES?SS.call(wS(this)):wS(this),arguments)}),bS((function(){return[1,2].toLocaleString()!=new kS([1,2]).toLocaleString()}))||!bS((function(){kS.prototype.toLocaleString.call([1,2])})));var TS=Xb.exportTypedArrayMethod,RS=o,IS=i.Uint8Array,CS=IS&&IS.prototype||{},OS=[].toString,PS=[].join;RS((function(){OS.call({})}))&&(OS=function(){return PS.call(this)});var AS=CS.toString!=OS;TS("toString",OS,AS);var jS=S,MS=y,LS=pe("match"),NS=function(e){var t;return jS(e)&&(void 0!==(t=e[LS])?!!t:"RegExp"==MS(e))},US=Ap,DS=NS,FS=De,BS=k,qS=Go,zS=Mp,WS=Ut,GS=Sr,$S=zp,VS=Sp,JS=o,KS=Zd.UNSUPPORTED_Y,HS=[].push,YS=Math.min,QS=4294967295;US("split",(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=GS(BS(this)),i=void 0===n?QS:n>>>0;if(0===i)return[];if(void 0===e)return[r];if(!DS(e))return t.call(r,e,i);for(var a,o,s,u=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),l=0,f=new RegExp(e.source,c+"g");(a=VS.call(f,r))&&!((o=f.lastIndex)>l&&(u.push(r.slice(l,a.index)),a.length>1&&a.index<r.length&&HS.apply(u,a.slice(1)),s=a[0].length,l=o,u.length>=i));)f.lastIndex===a.index&&f.lastIndex++;return l===r.length?!s&&f.test("")||u.push(""):u.push(r.slice(l)),u.length>i?u.slice(0,i):u}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var i=BS(this),a=null==t?void 0:t[e];return void 0!==a?a.call(t,i,n):r.call(GS(i),t,n)},function(e,i){var a=FS(this),o=GS(e),s=n(r,a,o,i,r!==t);if(s.done)return s.value;var u=qS(a,RegExp),c=a.unicode,l=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(KS?"g":"y"),f=new u(KS?"^(?:"+a.source+")":a,l),d=void 0===i?QS:i>>>0;if(0===d)return[];if(0===o.length)return null===$S(f,o)?[o]:[];for(var p=0,h=0,v=[];h<o.length;){f.lastIndex=KS?0:h;var y,m=$S(f,KS?o.slice(h):o);if(null===m||(y=YS(WS(f.lastIndex+(KS?h:0)),o.length))===p)h=zS(o,h,c);else{if(v.push(o.slice(p,h)),v.length===d)return v;for(var g=1;g<=m.length-1;g++)if(v.push(m[g]),v.length===d)return v;h=p=y}}return v.push(o.slice(p)),v}]}),!!JS((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),KS);var XS={exports:{}},ZS={exports:{}};!function(e){e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")},e.exports.__esModule=!0,e.exports.default=e.exports}(ZS);var eE={exports:{}},tE={exports:{}};!function(e){e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.__esModule=!0,e.exports.default=e.exports}(tE),function(e){var t=fv.exports,n=tE.exports;function r(i,a,o){return n()?(e.exports=r=Reflect.construct,e.exports.__esModule=!0,e.exports.default=e.exports):(e.exports=r=function(e,n,r){var i=[null];i.push.apply(i,n);var a=new(Function.bind.apply(e,i));return r&&t(a,r.prototype),a},e.exports.__esModule=!0,e.exports.default=e.exports),r.apply(null,arguments)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(eE),function(e){var t=hv.exports,n=fv.exports,r=ZS.exports,i=eE.exports;function a(o){var s="function"==typeof Map?new Map:void 0;return e.exports=a=function(e){if(null===e||!r(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==s){if(s.has(e))return s.get(e);s.set(e,a)}function a(){return i(e,arguments,t(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),n(a,e)},e.exports.__esModule=!0,e.exports.default=e.exports,a(o)}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports}(XS);var nE={exports:{}};!function(e,n){(function(){var r={function:!0,object:!0}["undefined"==typeof window?"undefined":Oa(window)]&&window||this,i=n,a=e&&!e.nodeType&&e,o=i&&a&&"object"==Oa(t)&&t;!o||o.global!==o&&o.window!==o&&o.self!==o||(r=o);var s=Math.pow(2,53)-1,u=/\bOpera/,c=Object.prototype,l=c.hasOwnProperty,f=c.toString;function d(e){return(e=String(e)).charAt(0).toUpperCase()+e.slice(1)}function p(e){return e=g(e),/^(?:webOS|i(?:OS|P))/.test(e)?e:d(e)}function h(e,t){for(var n in e)l.call(e,n)&&t(e[n],n,e)}function v(e){return null==e?d(e):f.call(e).slice(8,-1)}function y(e){return String(e).replace(/([ -])(?!$)/g,"$1?")}function m(e,t){var n=null;return function(e,t){var n=-1,r=e?e.length:0;if("number"==typeof r&&r>-1&&r<=s)for(;++n<r;)t(e[n],n,e);else h(e,t)}(e,(function(r,i){n=t(n,r,i,e)})),n}function g(e){return String(e).replace(/^ +| +$/g,"")}var b=function e(t){var n=r,i=t&&"object"==Oa(t)&&"String"!=v(t);i&&(n=t,t=null);var a=n.navigator||{},o=a.userAgent||"";t||(t=o);var s,c,l=i?!!a.likeChrome:/\bChrome\b/.test(t)&&!/internal|\n/i.test(f.toString()),d="Object",b=i?d:"ScriptBridgingProxyObject",k=i?d:"Environment",w=i&&n.java?"JavaPackage":v(n.java),x=i?d:"RuntimeObject",_=/\bJava/.test(w)&&n.java,S=_&&v(n.environment)==k,E=_?"a":"α",T=_?"b":"β",R=n.document||{},I=n.operamini||n.opera,C=u.test(C=i&&I?I["[[Class]]"]:v(I))?C:I=null,O=t,P=[],A=null,j=t==o,M=j&&I&&"function"==typeof I.version&&I.version(),L=m([{label:"EdgeHTML",pattern:"Edge"},"Trident",{label:"WebKit",pattern:"AppleWebKit"},"iCab","Presto","NetFront","Tasman","KHTML","Gecko"],(function(e,n){return e||RegExp("\\b"+(n.pattern||y(n))+"\\b","i").exec(t)&&(n.label||n)})),N=function(e){return m(e,(function(e,n){return e||RegExp("\\b"+(n.pattern||y(n))+"\\b","i").exec(t)&&(n.label||n)}))}(["Adobe AIR","Arora","Avant Browser","Breach","Camino","Electron","Epiphany","Fennec","Flock","Galeon","GreenBrowser","iCab","Iceweasel","K-Meleon","Konqueror","Lunascape","Maxthon",{label:"Microsoft Edge",pattern:"(?:Edge|Edg|EdgA|EdgiOS)"},"Midori","Nook Browser","PaleMoon","PhantomJS","Raven","Rekonq","RockMelt",{label:"Samsung Internet",pattern:"SamsungBrowser"},"SeaMonkey",{label:"Silk",pattern:"(?:Cloud9|Silk-Accelerated)"},"Sleipnir","SlimBrowser",{label:"SRWare Iron",pattern:"Iron"},"Sunrise","Swiftfox","Vivaldi","Waterfox","WebPositive",{label:"Yandex Browser",pattern:"YaBrowser"},{label:"UC Browser",pattern:"UCBrowser"},"Opera Mini",{label:"Opera Mini",pattern:"OPiOS"},"Opera",{label:"Opera",pattern:"OPR"},"Chromium","Chrome",{label:"Chrome",pattern:"(?:HeadlessChrome)"},{label:"Chrome Mobile",pattern:"(?:CriOS|CrMo)"},{label:"Firefox",pattern:"(?:Firefox|Minefield)"},{label:"Firefox for iOS",pattern:"FxiOS"},{label:"IE",pattern:"IEMobile"},{label:"IE",pattern:"MSIE"},"Safari"]),U=B([{label:"BlackBerry",pattern:"BB10"},"BlackBerry",{label:"Galaxy S",pattern:"GT-I9000"},{label:"Galaxy S2",pattern:"GT-I9100"},{label:"Galaxy S3",pattern:"GT-I9300"},{label:"Galaxy S4",pattern:"GT-I9500"},{label:"Galaxy S5",pattern:"SM-G900"},{label:"Galaxy S6",pattern:"SM-G920"},{label:"Galaxy S6 Edge",pattern:"SM-G925"},{label:"Galaxy S7",pattern:"SM-G930"},{label:"Galaxy S7 Edge",pattern:"SM-G935"},"Google TV","Lumia","iPad","iPod","iPhone","Kindle",{label:"Kindle Fire",pattern:"(?:Cloud9|Silk-Accelerated)"},"Nexus","Nook","PlayBook","PlayStation Vita","PlayStation","TouchPad","Transformer",{label:"Wii U",pattern:"WiiU"},"Wii","Xbox One",{label:"Xbox 360",pattern:"Xbox"},"Xoom"]),D=function(e){return m(e,(function(e,n,r){return e||(n[U]||n[/^[a-z]+(?: +[a-z]+\b)*/i.exec(U)]||RegExp("\\b"+y(r)+"(?:\\b|\\w*\\d)","i").exec(t))&&r}))}({Apple:{iPad:1,iPhone:1,iPod:1},Alcatel:{},Archos:{},Amazon:{Kindle:1,"Kindle Fire":1},Asus:{Transformer:1},"Barnes & Noble":{Nook:1},BlackBerry:{PlayBook:1},Google:{"Google TV":1,Nexus:1},HP:{TouchPad:1},HTC:{},Huawei:{},Lenovo:{},LG:{},Microsoft:{Xbox:1,"Xbox One":1},Motorola:{Xoom:1},Nintendo:{"Wii U":1,Wii:1},Nokia:{Lumia:1},Oppo:{},Samsung:{"Galaxy S":1,"Galaxy S2":1,"Galaxy S3":1,"Galaxy S4":1},Sony:{PlayStation:1,"PlayStation Vita":1},Xiaomi:{Mi:1,Redmi:1}}),F=function(e){return m(e,(function(e,n){var r=n.pattern||y(n);return!e&&(e=RegExp("\\b"+r+"(?:/[\\d.]+|[ \\w.]*)","i").exec(t))&&(e=function(e,t,n){var r={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"Server 2008 R2 / 7","6.0":"Server 2008 / Vista",5.2:"Server 2003 / XP 64-bit",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"};return t&&n&&/^Win/i.test(e)&&!/^Windows Phone /i.test(e)&&(r=r[/[\d.]+$/.exec(e)])&&(e="Windows "+r),e=String(e),t&&n&&(e=e.replace(RegExp(t,"i"),n)),p(e.replace(/ ce$/i," CE").replace(/\bhpw/i,"web").replace(/\bMacintosh\b/,"Mac OS").replace(/_PowerPC\b/i," OS").replace(/\b(OS X) [^ \d]+/i,"$1").replace(/\bMac (OS X)\b/,"$1").replace(/\/(\d)/," $1").replace(/_/g,".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i,"").replace(/\bx86\.64\b/gi,"x86_64").replace(/\b(Windows Phone) OS\b/,"$1").replace(/\b(Chrome OS \w+) [\d.]+\b/,"$1").split(" on ")[0])}(e,r,n.label||n)),e}))}(["Windows Phone","KaiOS","Android","CentOS",{label:"Chrome OS",pattern:"CrOS"},"Debian",{label:"DragonFly BSD",pattern:"DragonFly"},"Fedora","FreeBSD","Gentoo","Haiku","Kubuntu","Linux Mint","OpenBSD","Red Hat","SuSE","Ubuntu","Xubuntu","Cygwin","Symbian OS","hpwOS","webOS ","webOS","Tablet OS","Tizen","Linux","Mac OS X","Macintosh","Mac","Windows 98;","Windows "]);function B(e){return m(e,(function(e,n){var r=n.pattern||y(n);return!e&&(e=RegExp("\\b"+r+" *\\d+[.\\w_]*","i").exec(t)||RegExp("\\b"+r+" *\\w+-[\\w]*","i").exec(t)||RegExp("\\b"+r+"(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)","i").exec(t))&&((e=String(n.label&&!RegExp(r,"i").test(n.label)?n.label:e).split("/"))[1]&&!/[\d.]+/.test(e[0])&&(e[0]+=" "+e[1]),n=n.label||n,e=p(e[0].replace(RegExp(r,"i"),n).replace(RegExp("; *(?:"+n+"[_-])?","i")," ").replace(RegExp("("+n+")[-_.]?(\\w)","i"),"$1 $2"))),e}))}function q(e){return m(e,(function(e,n){return e||(RegExp(n+"(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)","i").exec(t)||0)[1]||null}))}if(L&&(L=[L]),/\bAndroid\b/.test(F)&&!U&&(s=/\bAndroid[^;]*;(.*?)(?:Build|\) AppleWebKit)\b/i.exec(t))&&(U=g(s[1]).replace(/^[a-z]{2}-[a-z]{2};\s*/i,"")||null),D&&!U?U=B([D]):D&&U&&(U=U.replace(RegExp("^("+y(D)+")[-_.\\s]","i"),D+" ").replace(RegExp("^("+y(D)+")[-_.]?(\\w)","i"),D+" $2")),(s=/\bGoogle TV\b/.exec(U))&&(U=s[0]),/\bSimulator\b/i.test(t)&&(U=(U?U+" ":"")+"Simulator"),"Opera Mini"==N&&/\bOPiOS\b/.test(t)&&P.push("running in Turbo/Uncompressed mode"),"IE"==N&&/\blike iPhone OS\b/.test(t)?(D=(s=e(t.replace(/like iPhone OS/,""))).manufacturer,U=s.product):/^iP/.test(U)?(N||(N="Safari"),F="iOS"+((s=/ OS ([\d_]+)/i.exec(t))?" "+s[1].replace(/_/g,"."):"")):"Konqueror"==N&&/^Linux\b/i.test(F)?F="Kubuntu":D&&"Google"!=D&&(/Chrome/.test(N)&&!/\bMobile Safari\b/i.test(t)||/\bVita\b/.test(U))||/\bAndroid\b/.test(F)&&/^Chrome/.test(N)&&/\bVersion\//i.test(t)?(N="Android Browser",F=/\bAndroid\b/.test(F)?F:"Android"):"Silk"==N?(/\bMobi/i.test(t)||(F="Android",P.unshift("desktop mode")),/Accelerated *= *true/i.test(t)&&P.unshift("accelerated")):"UC Browser"==N&&/\bUCWEB\b/.test(t)?P.push("speed mode"):"PaleMoon"==N&&(s=/\bFirefox\/([\d.]+)\b/.exec(t))?P.push("identifying as Firefox "+s[1]):"Firefox"==N&&(s=/\b(Mobile|Tablet|TV)\b/i.exec(t))?(F||(F="Firefox OS"),U||(U=s[1])):!N||(s=!/\bMinefield\b/i.test(t)&&/\b(?:Firefox|Safari)\b/.exec(N))?(N&&!U&&/[\/,]|^[^(]+?\)/.test(t.slice(t.indexOf(s+"/")+8))&&(N=null),(s=U||D||F)&&(U||D||/\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(F))&&(N=/[a-z]+(?: Hat)?/i.exec(/\bAndroid\b/.test(F)?F:s)+" Browser")):"Electron"==N&&(s=(/\bChrome\/([\d.]+)\b/.exec(t)||0)[1])&&P.push("Chromium "+s),M||(M=q(["(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$)|UCBrowser|YaBrowser)","Version",y(N),"(?:Firefox|Minefield|NetFront)"])),(s=("iCab"==L&&parseFloat(M)>3?"WebKit":/\bOpera\b/.test(N)&&(/\bOPR\b/.test(t)?"Blink":"Presto"))||/\b(?:Midori|Nook|Safari)\b/i.test(t)&&!/^(?:Trident|EdgeHTML)$/.test(L)&&"WebKit"||!L&&/\bMSIE\b/i.test(t)&&("Mac OS"==F?"Tasman":"Trident")||"WebKit"==L&&/\bPlayStation\b(?! Vita\b)/i.test(N)&&"NetFront")&&(L=[s]),"IE"==N&&(s=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(t)||0)[1])?(N+=" Mobile",F="Windows Phone "+(/\+$/.test(s)?s:s+".x"),P.unshift("desktop mode")):/\bWPDesktop\b/i.test(t)?(N="IE Mobile",F="Windows Phone 8.x",P.unshift("desktop mode"),M||(M=(/\brv:([\d.]+)/.exec(t)||0)[1])):"IE"!=N&&"Trident"==L&&(s=/\brv:([\d.]+)/.exec(t))&&(N&&P.push("identifying as "+N+(M?" "+M:"")),N="IE",M=s[1]),j){if(function(e,t){var n=null!=e?Oa(e[t]):"number";return!(/^(?:boolean|number|string|undefined)$/.test(n)||"object"==n&&!e[t])}(n,"global"))if(_&&(O=(s=_.lang.System).getProperty("os.arch"),F=F||s.getProperty("os.name")+" "+s.getProperty("os.version")),S){try{M=n.require("ringo/engine").version.join("."),N="RingoJS"}catch(e){(s=n.system)&&s.global.system==n.system&&(N="Narwhal",F||(F=s[0].os||null))}N||(N="Rhino")}else"object"==Oa(n.process)&&!n.process.browser&&(s=n.process)&&("object"==Oa(s.versions)&&("string"==typeof s.versions.electron?(P.push("Node "+s.versions.node),N="Electron",M=s.versions.electron):"string"==typeof s.versions.nw&&(P.push("Chromium "+M,"Node "+s.versions.node),N="NW.js",M=s.versions.nw)),N||(N="Node.js",O=s.arch,F=s.platform,M=(M=/[\d.]+/.exec(s.version))?M[0]:null));else v(s=n.runtime)==b?(N="Adobe AIR",F=s.flash.system.Capabilities.os):v(s=n.phantom)==x?(N="PhantomJS",M=(s=s.version||null)&&s.major+"."+s.minor+"."+s.patch):"number"==typeof R.documentMode&&(s=/\bTrident\/(\d+)/i.exec(t))?(M=[M,R.documentMode],(s=+s[1]+4)!=M[1]&&(P.push("IE "+M[1]+" mode"),L&&(L[1]=""),M[1]=s),M="IE"==N?String(M[1].toFixed(1)):M[0]):"number"==typeof R.documentMode&&/^(?:Chrome|Firefox)\b/.test(N)&&(P.push("masking as "+N+" "+M),N="IE",M="11.0",L=["Trident"],F="Windows");F=F&&p(F)}if(M&&(s=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(M)||/(?:alpha|beta)(?: ?\d)?/i.exec(t+";"+(j&&a.appMinorVersion))||/\bMinefield\b/i.test(t)&&"a")&&(A=/b/i.test(s)?"beta":"alpha",M=M.replace(RegExp(s+"\\+?$"),"")+("beta"==A?T:E)+(/\d+\+?/.exec(s)||"")),"Fennec"==N||"Firefox"==N&&/\b(?:Android|Firefox OS|KaiOS)\b/.test(F))N="Firefox Mobile";else if("Maxthon"==N&&M)M=M.replace(/\.[\d.]+/,".x");else if(/\bXbox\b/i.test(U))"Xbox 360"==U&&(F=null),"Xbox 360"==U&&/\bIEMobile\b/.test(t)&&P.unshift("mobile mode");else if(!/^(?:Chrome|IE|Opera)$/.test(N)&&(!N||U||/Browser|Mobi/.test(N))||"Windows CE"!=F&&!/Mobi/i.test(t))if("IE"==N&&j)try{null===n.external&&P.unshift("platform preview")}catch(e){P.unshift("embedded")}else(/\bBlackBerry\b/.test(U)||/\bBB10\b/.test(t))&&(s=(RegExp(U.replace(/ +/g," *")+"/([.\\d]+)","i").exec(t)||0)[1]||M)?(F=((s=[s,/BB10/.test(t)])[1]?(U=null,D="BlackBerry"):"Device Software")+" "+s[0],M=null):this!=h&&"Wii"!=U&&(j&&I||/Opera/.test(N)&&/\b(?:MSIE|Firefox)\b/i.test(t)||"Firefox"==N&&/\bOS X (?:\d+\.){2,}/.test(F)||"IE"==N&&(F&&!/^Win/.test(F)&&M>5.5||/\bWindows XP\b/.test(F)&&M>8||8==M&&!/\bTrident\b/.test(t)))&&!u.test(s=e.call(h,t.replace(u,"")+";"))&&s.name&&(s="ing as "+s.name+((s=s.version)?" "+s:""),u.test(N)?(/\bIE\b/.test(s)&&"Mac OS"==F&&(F=null),s="identify"+s):(s="mask"+s,N=C?p(C.replace(/([a-z])([A-Z])/g,"$1 $2")):"Opera",/\bIE\b/.test(s)&&(F=null),j||(M=null)),L=["Presto"],P.push(s));else N+=" Mobile";(s=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(t)||0)[1])&&(s=[parseFloat(s.replace(/\.(\d)$/,".0$1")),s],"Safari"==N&&"+"==s[1].slice(-1)?(N="WebKit Nightly",A="alpha",M=s[1].slice(0,-1)):M!=s[1]&&M!=(s[2]=(/\bSafari\/([\d.]+\+?)/i.exec(t)||0)[1])||(M=null),s[1]=(/\b(?:Headless)?Chrome\/([\d.]+)/i.exec(t)||0)[1],537.36==s[0]&&537.36==s[2]&&parseFloat(s[1])>=28&&"WebKit"==L&&(L=["Blink"]),j&&(l||s[1])?(L&&(L[1]="like Chrome"),s=s[1]||((s=s[0])<530?1:s<532?2:s<532.05?3:s<533?4:s<534.03?5:s<534.07?6:s<534.1?7:s<534.13?8:s<534.16?9:s<534.24?10:s<534.3?11:s<535.01?12:s<535.02?"13+":s<535.07?15:s<535.11?16:s<535.19?17:s<536.05?18:s<536.1?19:s<537.01?20:s<537.11?"21+":s<537.13?23:s<537.18?24:s<537.24?25:s<537.36?26:"Blink"!=L?"27":"28")):(L&&(L[1]="like Safari"),s=(s=s[0])<400?1:s<500?2:s<526?3:s<533?4:s<534?"4+":s<535?5:s<537?6:s<538?7:s<601?8:s<602?9:s<604?10:s<606?11:s<608?12:"12"),L&&(L[1]+=" "+(s+="number"==typeof s?".x":/[.+]/.test(s)?"":"+")),"Safari"==N&&(!M||parseInt(M)>45)?M=s:"Chrome"==N&&/\bHeadlessChrome/i.test(t)&&P.unshift("headless")),"Opera"==N&&(s=/\bzbov|zvav$/.exec(F))?(N+=" ",P.unshift("desktop mode"),"zvav"==s?(N+="Mini",M=null):N+="Mobile",F=F.replace(RegExp(" *"+s+"$"),"")):"Safari"==N&&/\bChrome\b/.exec(L&&L[1])?(P.unshift("desktop mode"),N="Chrome Mobile",M=null,/\bOS X\b/.test(F)?(D="Apple",F="iOS 4.3+"):F=null):/\bSRWare Iron\b/.test(N)&&!M&&(M=q("Chrome")),M&&0==M.indexOf(s=/[\d.]+$/.exec(F))&&t.indexOf("/"+s+"-")>-1&&(F=g(F.replace(s,""))),F&&-1!=F.indexOf(N)&&!RegExp(N+" OS").test(F)&&(F=F.replace(RegExp(" *"+y(N)+" *"),"")),L&&!/\b(?:Avant|Nook)\b/.test(N)&&(/Browser|Lunascape|Maxthon/.test(N)||"Safari"!=N&&/^iOS/.test(F)&&/\bSafari\b/.test(L[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(N)&&L[1])&&(s=L[L.length-1])&&P.push(s),P.length&&(P=["("+P.join("; ")+")"]),D&&U&&U.indexOf(D)<0&&P.push("on "+D),U&&P.push((/^on /.test(P[P.length-1])?"":"on ")+U),F&&(s=/ ([\d.+]+)$/.exec(F),c=s&&"/"==F.charAt(F.length-s[0].length-1),F={architecture:32,family:s&&!c?F.replace(s[0],""):F,version:s?s[1]:null,toString:function(){var e=this.version;return this.family+(e&&!c?" "+e:"")+(64==this.architecture?" 64-bit":"")}}),(s=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(O))&&!/\bi686\b/i.test(O)?(F&&(F.architecture=64,F.family=F.family.replace(RegExp(" *"+s),"")),N&&(/\bWOW64\b/i.test(t)||j&&/\w(?:86|32)$/.test(a.cpuClass||a.platform)&&!/\bWin64; x64\b/i.test(t))&&P.unshift("32-bit")):F&&/^OS X/.test(F.family)&&"Chrome"==N&&parseFloat(M)>=39&&(F.architecture=64),t||(t=null);var z={};return z.description=t,z.layout=L&&L[0],z.manufacturer=D,z.name=N,z.prerelease=A,z.product=U,z.ua=t,z.version=N&&M,z.os=F||{architecture:null,family:null,version:null,toString:function(){return"null"}},z.parse=e,z.toString=function(){return this.description||""},z.version&&P.unshift(M),z.name&&P.unshift(N),F&&N&&(F!=String(F).split(" ")[0]||F!=N.split(" ")[0]&&!U)&&P.push(U?"("+F+")":"on "+F),P.length&&(z.description=P.join(" ")),z}();i&&a?h(b,(function(e,t){i[t]=e})):r.platform=b}).call(t)}(nE,nE.exports);var rE=De,iE=Ut,aE=Sr,oE=k,sE=Mp,uE=zp;Ap("match",(function(e,t,n){return[function(t){var n=oE(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](aE(n))},function(e){var r=rE(this),i=aE(e),a=n(t,r,i);if(a.done)return a.value;if(!r.global)return uE(r,i);var o=r.unicode;r.lastIndex=0;for(var s,u=[],c=0;null!==(s=uE(r,i));){var l=aE(s[0]);u[c]=l,""===l&&(r.lastIndex=sE(i,iE(r.lastIndex),o)),c++}return 0===c?null:u}]}));var cE=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},lE=De,fE=k,dE=cE,pE=Sr,hE=zp;Ap("search",(function(e,t,n){return[function(t){var n=fE(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](pE(n))},function(e){var r=lE(this),i=pE(e),a=n(t,r,i);if(a.done)return a.value;var o=r.lastIndex;dE(o,0)||(r.lastIndex=0);var s=hE(r,i);return dE(r.lastIndex,o)||(r.lastIndex=o),null===s?-1:s.index}]}));var vE=Rn,yE=qt,mE=Mt,gE=Ut,bE=Q,kE=Wr,wE=ka,xE=ca("splice"),_E=Math.max,SE=Math.min,EE=9007199254740991,TE="Maximum allowed length exceeded";vE({target:"Array",proto:!0,forced:!xE},{splice:function(e,t){var n,r,i,a,o,s,u=bE(this),c=gE(u.length),l=yE(e,c),f=arguments.length;if(0===f?n=r=0:1===f?(n=0,r=c-l):(n=f-2,r=SE(_E(mE(t),0),c-l)),c+n-r>EE)throw TypeError(TE);for(i=kE(u,r),a=0;a<r;a++)(o=l+a)in u&&wE(i,a,u[o]);if(i.length=r,n<r){for(a=l;a<c-r;a++)s=a+n,(o=a+r)in u?u[s]=u[o]:delete u[s];for(a=c;a>c-r+n;a--)delete u[a-1]}else if(n>r)for(a=c-r;a>l;a--)s=a+n-1,(o=a+r-1)in u?u[s]=u[o]:delete u[s];for(a=0;a<n;a++)u[a+l]=arguments[a+2];return u.length=c-r+n,i}}),function(e){var t=void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};Object.defineProperty(e,"__esModule",{value:!0});var n=Fg.exports,r=pv.exports,i=xy.exports,a=lv.exports,o=dv.exports,s=hv.exports,u=uv.exports,c=cv.exports,l=Sy.exports,f=Bg,d=$h.exports,p=hh,h=wf.exports,v=Qg.exports,y=kb,m=XS.exports,g=Zm,b=wy,k=nE.exports;function w(e){return e&&"object"===Oa(e)&&"default"in e?e:{default:e}}function x(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var _=w(n),S=w(r),E=w(i),T=w(a),R=w(o),I=w(s),C=w(u),O=w(c),P=w(l),A=w(f),j=w(d),M=x(h),L=x(v),N=w(m),U=x(k);var D=M.getLogger("twilsock");function F(e,t){return["".concat((new Date).toISOString()," Twilsock ").concat(e,":")].concat(Array.from(t))}var B=new(function(){function e(t){O.default(this,e),P.default(this,"prefix",""),this.prefix=null!=t&&t.length>0?" "+t+":":""}return C.default(e,[{key:"setLevel",value:function(e){D.setLevel(e)}},{key:"trace",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.trace.apply(null,F("T",t))}},{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.debug.apply(null,F("D",t))}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.info.apply(null,F("I",t))}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.warn.apply(null,F("W",t))}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.error.apply(null,F("E",t))}}],[{key:"setLevel",value:function(e){D.setLevel(e)}},{key:"trace",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.trace.apply(null,F("T",t))}},{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.debug.apply(null,F("D",t))}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.info.apply(null,F("I",t))}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.warn.apply(null,F("W",t))}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];D.error.apply(null,F("E",t))}}]),e}())(""),q="0.13.0-rc.3",z=function(){function e(t,n,r){O.default(this,e),P.default(this,"confirmedCapabilities",new Set),this.activeGrant=n,this._token=t;var i=r.region||"us1",a="wss://tsock.".concat(i,".twilio.com/v3/wsconnect"),o=r.twilsock||r.Twilsock||{};this.url=o.uri||a,this._continuationToken=r.continuationToken?r.continuationToken:null,this.logLevel=r.logLevel?r.logLevel:"error",this.retryPolicy=r.retryPolicy?r.retryPolicy:{min:1e3,max:12e4,randomness:.2},this.clientMetadata=r.clientMetadata?r.clientMetadata:{},this.clientMetadata.ver=q,this.initRegistrations=r.initRegistrations?r.initRegistrations:null,this.tweaks=r.tweaks?r.tweaks:null}return C.default(e,[{key:"token",get:function(){return this._token}},{key:"continuationToken",get:function(){return this._continuationToken}},{key:"updateToken",value:function(e){this._token=e}},{key:"updateContinuationToken",value:function(e){this._continuationToken=e}}]),e}(),W=C.default((function e(t){O.default(this,e),this.id=t||"TM".concat(y.v4())}));function G(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var $=function(e){T.default(n,e);var t=G(n);function n(e,r,i,a,o){var s;return O.default(this,n),s=t.call(this),P.default(S.default(s),"method","init"),s.token=e,s.continuation_token=r,s.metadata=i,s.registrations=a,s.tweaks=o,s.capabilities=["client_update","offline_storage","telemetry.v1"],s}return C.default(n)}(W);function V(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var J=function(e){T.default(n,e);var t=V(n);function n(e,r,i,a,o,s,u){var c;return O.default(this,n),(c=t.call(this,e)).continuationToken=r,c.continuationTokenStatus=a,c.offlineStorage=o,c.initRegistrations=s,c.debugInfo=u,c.confirmedCapabilities=i,c}return C.default(n)}(W);function K(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var H=function(e){T.default(n,e);var t=K(n);function n(e){var r;return O.default(this,n),r=t.call(this),P.default(S.default(r),"method","update"),r.token=e,r}return C.default(n)}(W);function Y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var Message=function(e){T.default(Message,e);var t=Y(Message);function Message(e,n,r){var i;return O.default(this,Message),i=t.call(this),P.default(S.default(i),"method","message"),i.active_grant=e,i.payload_type=n,i.http_request=r,i}return C.default(Message)}(W);function Q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var X=function(e){T.default(n,e);var t=Q(n);function n(e){var r;return O.default(this,n),r=t.call(this,e),P.default(S.default(r),"method","reply"),P.default(S.default(r),"payload_type","application/json"),P.default(S.default(r),"status",{code:200,status:"OK"}),r}return C.default(n)}(W);function Z(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var ee=function(e){T.default(n,e);var t=Z(n);function n(){var e;return O.default(this,n),e=t.call(this),P.default(S.default(e),"method","close"),e}return C.default(n)}(W);function te(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var ne=C.default((function e(t,n,r,i,a,o){O.default(this,e),this.start=t,this.end=n,this.title=r,this.details=i,this.id=a,this.type=o})),re=function(e){T.default(n,e);var t=te(n);function n(e){var r;return O.default(this,n),r=t.call(this),P.default(S.default(r),"method","telemetry.v1"),r.events=e,r}return C.default(n)}(W);function ie(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(function(e,t){return String.fromCharCode(Number("0x"+t))})).length}function ae(e){var t=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(function(e,t){return String.fromCharCode(Number("0x"+t))})),n=new Uint8Array(t.length);return Array.prototype.forEach.call(t,(function(e,t){n[t]=e.charCodeAt(0)})),n}function oe(e){var t=Array.prototype.map.call(e,(function(e){return String.fromCharCode(e)})).join("").replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n}));return decodeURIComponent(t)}function se(e){return JSON.parse(oe(e))}var ue=function(){function e(){O.default(this,e)}return C.default(e,null,[{key:"parse",value:function(e){var t,n,r=new Uint8Array(e),i=function(e){for(var t="",n=0;n<e.length;++n){var r=String.fromCharCode(e[n]);if(t+=r,"\r"===r){n+=2;break}}var i=t.split(" ");return{size:n,protocol:i[0],version:i[1],headerSize:Number(i[2])}}(r);if("TWILSOCK"!==i.protocol||"V3.0"!==i.version)return B.error("unsupported protocol: ".concat(i.protocol," ver ").concat(i.version)),null;try{t=se(r.subarray(i.size,i.size+i.headerSize))}catch(t){return B.error("failed to parse message header",t,e),null}if(B.debug("message received: ",t.method),B.trace("message received: ",t),t.payload_size>0){var a=2+i.size+i.headerSize,o=t.payload_size;if(t.hasOwnProperty("payload_type")&&0!==t.payload_type.indexOf("application/json"))0===t.payload_type.indexOf("text/plain")&&(n=oe(r.subarray(a,a+o)));else try{n=se(r.subarray(a,a+o))}catch(t){return B.error("failed to parse message body",t,e),null}}return{method:t.method,header:t,payload:n}}},{key:"createPacket",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";e.payload_size=ie(t);var n=JSON.stringify(e),r="TWILSOCK V3.0 "+ie(n);B.debug("send request:",r+n+t);var i=ae(r+"\r\n"+n+"\r\n"+t);return i.buffer}}]),e}();function ce(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var le=function(e){T.default(n,e);var t=ce(n);function n(e){return O.default(this,n),t.call(this,e)}return C.default(n)}(N.default(Error));function fe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var de=function(e){T.default(n,e);var t=fe(n);function n(e,r){var i;return O.default(this,n),(i=t.call(this,e)).reply=r,i}return C.default(n)}(le);function pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function he(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pe(Object(n),!0).forEach((function(t){P.default(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ve(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var ye=function(e){T.default(n,e);var t=ve(n);function n(e){var r;return O.default(this,n),r=t.call(this),P.default(S.default(r),"newBackoff",null),P.default(S.default(r),"usedBackoff",null),P.default(S.default(r),"retrier",null),r.options=e?he({},e):{},r}return C.default(n,[{key:"inProgress",get:function(){return!!this.retrier}},{key:"start",value:function(){if(this.inProgress)throw new Error("Already waiting for next attempt, call finishAttempt(success : boolean) to finish it");this.createRetrier()}},{key:"stop",value:function(){this.cleanRetrier(),this.newBackoff=null,this.usedBackoff=null}},{key:"modifyBackoff",value:function(e){this.newBackoff=e}},{key:"attemptFailed",value:function(){if(!this.inProgress)throw new Error("No attempt is in progress");var e,t;this.newBackoff?!this.usedBackoff||this.usedBackoff<this.newBackoff?this.createRetrier():null===(e=this.retrier)||void 0===e||e.failed(new Error):null===(t=this.retrier)||void 0===t||t.failed(new Error)}},{key:"cancel",value:function(){var e;null===(e=this.retrier)||void 0===e||e.cancel()}},{key:"cleanRetrier",value:function(){var e,t;null===(e=this.retrier)||void 0===e||e.removeAllListeners(),null===(t=this.retrier)||void 0===t||t.cancel(),this.retrier=null}},{key:"getRetryPolicy",value:function(){var e=he({},this.options);return this.newBackoff&&(e.min=this.newBackoff,e.max=this.options.max&&this.options.max>this.newBackoff?this.options.max:this.newBackoff),e.maxAttemptsCount=this.options.maxAttemptsCount?this.options.maxAttemptsCount+1:void 0,e}},{key:"createRetrier",value:function(){var e=this;this.cleanRetrier();var t=this.getRetryPolicy();this.retrier=new g.Retrier(t),this.retrier.once("attempt",(function(){var t,n;null===(t=e.retrier)||void 0===t||t.on("attempt",(function(){return e.emit("attempt")})),null===(n=e.retrier)||void 0===n||n.failed(new Error("Skipping first attempt"))})),this.retrier.on("failed",(function(t){return e.emit("failed",t)})),this.usedBackoff=this.newBackoff,this.newBackoff=null,this.retrier.start()}}]),n}(b.ReplayEventEmitter);function me(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var ge=function(e){T.default(i,e);var t,n,r=me(i);function i(e,t,n){var a;O.default(this,i),a=r.call(this),P.default(S.default(a),"disconnectingTimer",null),P.default(S.default(a),"disconnectedPromiseResolve",null),P.default(S.default(a),"terminalStates",["disconnected","rejected"]),P.default(S.default(a),"tokenExpiredSasCode",20104),P.default(S.default(a),"terminationReason","Connection is not initialized"),a.websocket=e,a.websocket.on("connected",(function(){return a.fsm.socketConnected()})),a.websocket.on("disconnected",(function(){return a.fsm.socketClosed()})),a.websocket.on("message",(function(e){return a.onIncomingMessage(e)})),a.websocket.on("socketError",(function(e){a.emit("connectionError",{terminal:!1,message:"Socket error: ".concat(e.message),httpStatusCode:null,errorCode:null}),a.emit("stateChanged","retrying")})),a.transport=t,a.config=n,a.retrier=new ye(n.retryPolicy),a.retrier.on("attempt",(function(){return a.retry()})),a.retrier.on("failed",(function(e){B.warn("Retrying failed: ".concat(e.message)),a.disconnect()})),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",(function(){B.debug("Browser reported connectivity state: online"),a.resetBackoff(),a.fsm.systemOnline()})),window.addEventListener("offline",(function(){B.debug("Browser reported connectivity state: offline"),a.websocket.close(),a.fsm.socketClosed()})));var o=L.factory({init:"disconnected",transitions:[{name:"userConnect",from:["disconnected","rejected"],to:"connecting"},{name:"userConnect",from:["connecting","connected"]},{name:"userDisconnect",from:["connecting","initialising","connected","updating","retrying","rejected","waitSocketClosed","waitOffloadSocketClosed"],to:"disconnecting"},{name:"userRetry",from:["retrying"],to:"connecting"},{name:"socketConnected",from:["connecting"],to:"initialising"},{name:"socketClosed",from:["connecting","initialising","connected","updating","error","waitOffloadSocketClosed"],to:"retrying"},{name:"socketClosed",from:["disconnecting"],to:"disconnected"},{name:"socketClosed",from:["waitSocketClosed"],to:"disconnected"},{name:"socketClosed",from:["rejected"],to:"rejected"},{name:"initSuccess",from:["initialising"],to:"connected"},{name:"initError",from:["initialising"],to:"error"},{name:"tokenRejected",from:["initialising","updating"],to:"rejected"},{name:"protocolError",from:["initialising","connected","updating"],to:"error"},{name:"receiveClose",from:["initialising","connected","updating"],to:"waitSocketClosed"},{name:"receiveOffload",from:["initialising","connected","updating"],to:"waitOffloadSocketClosed"},{name:"unsupportedProtocol",from:["initialising","connected","updating"],to:"unsupported"},{name:"receiveFatalClose",from:["initialising","connected","updating"],to:"unsupported"},{name:"userUpdateToken",from:["disconnected","rejected","connecting","retrying"],to:"connecting"},{name:"userUpdateToken",from:["connected"],to:"updating"},{name:"updateSuccess",from:["updating"],to:"connected"},{name:"updateError",from:["updating"],to:"error"},{name:"userSend",from:["connected"],to:"connected"},{name:"systemOnline",from:["retrying"],to:"connecting"}],methods:{onConnecting:function(){a.setupSocket(),a.emit("connecting")},onEnterInitialising:function(){a.sendInit()},onLeaveInitialising:function(){a.cancelInit()},onEnterUpdating:function(){a.sendUpdate()},onLeaveUpdating:function(){a.cancelUpdate()},onEnterRetrying:function(){a.initRetry(),a.emit("connecting")},onEnterConnected:function(){a.resetBackoff(),a.onConnected()},onUserUpdateToken:function(){a.resetBackoff()},onTokenRejected:function(){a.resetBackoff(),a.closeSocket(!0),a.finalizeSocket()},onUserDisconnect:function(){a.closeSocket(!0)},onEnterDisconnecting:function(){a.startDisconnectTimer()},onLeaveDisconnecting:function(){a.cancelDisconnectTimer()},onEnterWaitSocketClosed:function(){a.startDisconnectTimer()},onLeaveWaitSocketClosed:function(){a.cancelDisconnectTimer()},onEnterWaitOffloadSocketClosed:function(){a.startDisconnectTimer()},onLeaveWaitOffloadSocketClosed:function(){a.cancelDisconnectTimer()},onDisconnected:function(){a.resetBackoff(),a.finalizeSocket()},onReceiveClose:function(){a.onCloseReceived()},onReceiveOffload:function(e,t){B.debug("onreceiveoffload: ",t),a.modifyBackoff(t.body),a.onCloseReceived()},onUnsupported:function(){a.closeSocket(!0),a.finalizeSocket()},onError:function(e,t){a.closeSocket(t),a.finalizeSocket()},onEnterState:function(e){"none"!==e.from&&a.changeState(e)},onInvalidTransition:function(e,t,n){B.warn("FSM: unexpected transition",t,n)}}});return a.fsm=new o,a}return C.default(i,[{key:"changeState",value:function(e){B.debug("FSM: ".concat(e.transition,": ").concat(e.from," --\x3e ").concat(e.to)),this.lastEmittedState!==this.state&&(this.lastEmittedState=this.state,this.emit("stateChanged",this.state))}},{key:"resetBackoff",value:function(){B.trace("resetBackoff"),this.retrier.stop()}},{key:"modifyBackoff",value:function(e){B.trace("modifyBackoff",e);var t=e?e.backoff_policy:null;t&&"number"==typeof t.reconnect_min_ms&&this.retrier.modifyBackoff(t.reconnect_min_ms)}},{key:"startDisconnectTimer",value:function(){var e=this;B.trace("startDisconnectTimer"),this.disconnectingTimer&&(clearTimeout(this.disconnectingTimer),this.disconnectingTimer=null),this.disconnectingTimer=setTimeout((function(){B.debug("disconnecting is timed out"),e.closeSocket(!0)}),3e3)}},{key:"cancelDisconnectTimer",value:function(){B.trace("cancelDisconnectTimer"),this.disconnectingTimer&&(clearTimeout(this.disconnectingTimer),this.disconnectingTimer=null)}},{key:"isConnected",get:function(){return"connected"===this.state&&this.websocket.isConnected}},{key:"state",get:function(){switch(this.fsm.state){case"connecting":case"initialising":case"retrying":case"error":return"connecting";case"updating":case"connected":return"connected";case"rejected":return"denied";case"disconnecting":case"waitSocketClosed":case"waitOffloadSocketClosed":return"disconnecting";case"disconnected":default:return"disconnected"}}},{key:"initRetry",value:function(){B.debug("initRetry"),this.retrier.inProgress?this.retrier.attemptFailed():this.retrier.start()}},{key:"retry",value:function(){"connecting"!=this.fsm.state?(B.trace("retry"),this.websocket.close(),this.fsm.userRetry()):B.trace("can\t retry as already connecting")}},{key:"onConnected",value:function(){this.emit("connected")}},{key:"finalizeSocket",value:function(){B.trace("finalizeSocket"),this.websocket.close(),this.emit("disconnected"),this.disconnectedPromiseResolve&&(this.disconnectedPromiseResolve(),this.disconnectedPromiseResolve=null)}},{key:"setupSocket",value:function(){B.trace("setupSocket:",this.config.token),this.emit("beforeConnect"),this.websocket.connect()}},{key:"onIncomingMessage",value:function(e){var t=ue.parse(e);if(t){var n=t.method,r=t.header,i=t.payload;if("reply"!==n&&this.confirmReceiving(r),"notification"===n)this.emit("message",r.message_type,i);else if("reply"===r.method)this.transport.processReply({id:r.id,status:r.status,header:r,body:i});else if("client_update"===r.method)"token_about_to_expire"===r.client_update_type&&this.emit("tokenAboutToExpire");else if("close"===r.method)if(308===r.status.code)B.debug("Connection has been offloaded"),this.fsm.receiveOffload({status:r.status.status,body:i});else if(406===r.status.code){var a="Server closed connection because can't parse protocol: ".concat(JSON.stringify(r.status));this.emitReplyConnectionError(a,r,!0),B.error(a),this.fsm.receiveFatalClose()}else 417===r.status.code?(B.error("Server closed connection because can't parse client reply: ".concat(JSON.stringify(r.status))),this.fsm.receiveFatalClose(r.status.status)):410===r.status.code?(B.warn("Server closed connection: ".concat(JSON.stringify(r.status))),this.fsm.receiveClose(r.status.status),this.emit("tokenExpired")):401===r.status.code?(B.error("Server closed connection: ".concat(JSON.stringify(r.status))),this.fsm.receiveClose(r.status.status)):(B.warn("unexpected message: ",r.status),this.fsm.receiveOffload({status:r.status.status,body:null}))}}},{key:"sendInit",value:(n=_.default(A.default.mark((function e(){var t,n;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return B.trace("sendInit"),e.prev=1,this.emit("beforeSendInit"),e.next=5,this.transport.sendInit();case 5:t=e.sent,this.config.updateContinuationToken(t.continuationToken),this.config.confirmedCapabilities=t.confirmedCapabilities,this.fsm.initSuccess(t),this.emit("initialized",t),this.emit("tokenUpdated"),e.next=17;break;case 13:e.prev=13,e.t0=e.catch(1),e.t0 instanceof de?(n=!1,B.warn("Init rejected by server: ".concat(JSON.stringify(e.t0.reply.status))),this.emit("sendInitFailed"),401===e.t0.reply.status.code||403===e.t0.reply.status.code?(n=!0,this.fsm.tokenRejected(e.t0.reply.status),e.t0.reply.status.errorCode===this.tokenExpiredSasCode&&this.emit("tokenExpired")):429===e.t0.reply.status.code?(this.modifyBackoff(e.t0.reply.body),this.fsm.initError(!0)):500===e.t0.reply.status.code?this.fsm.initError(!1):this.fsm.initError(!0),this.emitReplyConnectionError(e.t0.message,e.t0.reply,n)):(this.terminationReason=e.t0.message,this.emit("connectionError",{terminal:!0,message:"Unknown error during connection initialisation: ".concat(e.t0.message,"\n").concat(JSON.stringify(e.t0,null,2)),httpStatusCode:null,errorCode:null}),this.fsm.initError(!0)),this.emit("tokenUpdated",e.t0);case 17:case"end":return e.stop()}}),e,this,[[1,13]])}))),function(){return n.apply(this,arguments)})},{key:"sendUpdate",value:(t=_.default(A.default.mark((function e(){var t,n,r;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return B.trace("sendUpdate"),t=new H(this.config.token),e.prev=2,e.next=5,this.transport.sendWithReply(t);case 5:n=e.sent,this.fsm.updateSuccess(n.body),this.emit("tokenUpdated"),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(2),e.t0 instanceof de?(r=!1,B.warn("Token update rejected by server: ".concat(JSON.stringify(e.t0.reply.status))),401===e.t0.reply.status.code||403===e.t0.reply.status.code?(r=!0,this.fsm.tokenRejected(e.t0.reply.status),e.t0.reply.status.errorCode===this.tokenExpiredSasCode&&this.emit("tokenExpired")):429===e.t0.reply.status.code?(this.modifyBackoff(e.t0.reply.body),this.fsm.updateError(e.t0.reply.status)):this.fsm.updateError(e.t0.reply.status),this.emitReplyConnectionError(e.t0.message,e.t0.reply,r)):(this.emit("error",!1,e.t0.message,null,null),this.fsm.updateError(e.t0)),this.emit("tokenUpdated",e.t0);case 14:case"end":return e.stop()}}),e,this,[[2,10]])}))),function(){return t.apply(this,arguments)})},{key:"emitReplyConnectionError",value:function(e,t,n){var r=t.status&&t.status.description?t.status.description:e,i=t.status.code,a=t.status&&t.status.errorCode?t.status.errorCode:null;n&&(this.terminationReason=r),this.emit("connectionError",{terminal:n,message:"Connection error: ".concat(r),httpStatusCode:i,errorCode:a})}},{key:"cancelInit",value:function(){B.trace("cancelInit")}},{key:"cancelUpdate",value:function(){B.trace("cancelUpdate")}},{key:"confirmReceiving",value:function(e){B.trace("confirmReceiving");try{this.transport.send(new X(e.id))}catch(e){B.debug("failed to confirm packet receiving",e)}}},{key:"closeSocket",value:function(e){var t=this;B.trace("closeSocket (graceful: ".concat(e,")")),e&&this.transport.isConnected&&this.transport.sendClose(),this.websocket.close(),setTimeout((function(){return t.fsm.socketClosed()}),0)}},{key:"connect",value:function(){B.trace("connect"),this.fsm.userConnect()}},{key:"disconnect",value:function(){var e=this;return B.trace("disconnect"),this.fsm.is("disconnected")?Promise.resolve():new Promise((function(t){e.disconnectedPromiseResolve=t,e.fsm.userDisconnect()}))}},{key:"updateToken",value:function(e){var t=this;return B.trace("updateToken:",e),new Promise((function(e,n){t.once("tokenUpdated",(function(t){t?n(t):e()})),t.fsm.userUpdateToken()}))}},{key:"isTerminalState",get:function(){return-1!==this.terminalStates.indexOf(this.fsm.state)}},{key:"getTerminationReason",get:function(){return this.terminationReason}},{key:"onCloseReceived",value:function(){this.websocket.close()}}]),i}(b.ReplayEventEmitter),be=function(){function e(){O.default(this,e)}return C.default(e,null,[{key:"getMetadata",value:function(e){var t,n,r,i,a,o,s,u,c=e&&e.clientMetadata?e.clientMetadata:{},l={env:null!==(t=U.name)&&void 0!==t?t:"unknown",envv:null!==(n=U.version)&&void 0!==n?n:"unknown",os:null!==(r=null===(i=U.os)||void 0===i?void 0:i.family)&&void 0!==r?r:"unknown",osv:null!==(a=null===(o=U.os)||void 0===o?void 0:o.version)&&void 0!==a?a:"unknown",osa:null!==(s=null===(u=U.os)||void 0===u?void 0:u.architecture)&&void 0!==s?s:"unknown",sdk:"js-default"},f={};return["ver","env","envv","os","osv","osa","type","sdk","sdkv","dev","devv","devt","app","appv"].filter((function(e){return e in c||e in l})).forEach((function(e){return f[e]=e in c?c[e]:l[e]})),f}}]),e}();var ke=function(){function e(t,n){var r=this;O.default(this,e),this.config=n,this.activeRequests=new Map,this.channel=t,this.channel.on("reply",(function(e){return r.processReply(e)})),this.channel.on("disconnected",(function(){r.activeRequests.forEach((function(e){clearTimeout(e.timeout),e.reject(new le("disconnected"))})),r.activeRequests.clear()}))}var t;return C.default(e,[{key:"isConnected",get:function(){return this.channel.isConnected}},{key:"processReply",value:function(e){var t,n=this.activeRequests.get(e.id);n&&(clearTimeout(n.timeout),this.activeRequests.delete(e.id),(t=e.status.code)>=200&&t<300?n.resolve(e):(n.reject(new de("Transport failure: "+e.status.status,e)),B.trace("message rejected")))}},{key:"storeRequest",value:function(e,t,n){var r={resolve:t,reject:n,timeout:setTimeout((function(){B.trace("request",e,"is timed out"),n(new le("Twilsock: request timeout: "+e))}),3e4)};this.activeRequests.set(e,r)}},{key:"shutdown",value:function(){this.activeRequests.forEach((function(e){clearTimeout(e.timeout),e.reject(new le("Twilsock: request cancelled by user"))})),this.activeRequests.clear()}},{key:"sendInit",value:(t=_.default(A.default.mark((function e(){var t,n,r;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return B.trace("sendInit"),t=be.getMetadata(this.config),n=new $(this.config.token,this.config.continuationToken,t,this.config.initRegistrations,this.config.tweaks),e.next=5,this.sendWithReply(n);case 5:return r=e.sent,e.abrupt("return",new J(r.id,r.header.continuation_token,new Set(r.header.capabilities),r.header.continuation_token_status,r.header.offline_storage,r.header.init_registrations,r.header.debug_info));case 7:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"sendClose",value:function(){var e=new ee;this.send(e)}},{key:"sendWithReply",value:function(e,t){var n=this;return new Promise((function(r,i){var a=n.send(e,t);n.storeRequest(a,r,i)}))}},{key:"send",value:function(e,t){e.id=e.id||"TM".concat(y.v4());var n=ue.createPacket(e,function(e){switch(j.default(e)){case"undefined":return"";case"object":return JSON.stringify(e);default:return e}}(t));try{return this.channel.send(n),e.id}catch(t){throw B.debug("failed to send ",e,t),B.trace(t.stack),t}}}]),e}();function we(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var xe=function(e){T.default(r,e);var n=we(r);function r(e){var i;return O.default(this,r),i=n.call(this),P.default(S.default(i),"socket",null),i.url=e,i.url=e,i.WebSocket=t.WebSocket||t.MozWebSocket||{},i}return C.default(r,[{key:"isConnected",get:function(){return!!this.socket&&1===this.socket.readyState}},{key:"connect",value:function(){var e,t=this;B.trace("connecting to socket");try{e=new this.WebSocket(this.url)}catch(e){return B.debug("Socket error: ".concat(this.url)),void this.emit("socketError",e)}e.binaryType="arraybuffer",e.onopen=function(){B.debug("socket opened ".concat(t.url)),t.emit("connected")},e.onclose=function(e){B.debug("socket closed",e),t.emit("disconnected",e)},e.onerror=function(e){B.debug("Socket error:",e),t.emit("socketError",e)},e.onmessage=function(e){t.emit("message",e.data)},this.socket=e}},{key:"send",value:function(e){return this.socket&&this.socket.send(e)}},{key:"close",value:function(){if(B.trace("closing socket"),this.socket){this.socket.onopen=null,this.socket.onclose=null,this.socket.onerror=null,this.socket.onmessage=null;try{this.socket.close()}finally{}}}}]),r}(b.ReplayEventEmitter);function _e(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var Se=function(e){T.default(u,e);var t,n,r,i,a,o,s=_e(u);function u(e){var t;return O.default(this,u),(t=s.call(this)).transport=e,t.registrations=new Map,t.registrationsInProgress=new Map,t}return C.default(u,[{key:"putNotificationContext",value:(o=_.default(A.default.mark((function e(t,n){var r;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r={method:"put_notification_ctx",notification_ctx_id:t},e.next=3,this.transport.sendWithReply(r,n);case 3:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"deleteNotificationContext",value:(a=_.default(A.default.mark((function e(t){var n;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={method:"delete_notification_ctx",notification_ctx_id:t},e.next=3,this.transport.sendWithReply(n);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"updateRegistration",value:(i=_.default(A.default.mark((function e(t,n){var r,i;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return B.debug("update registration for context",t),(r=this.registrationsInProgress.get(t))||(r=new Set,this.registrationsInProgress.set(t,r)),i=y.v4(),r.add(i),e.prev=5,e.next=8,this.putNotificationContext(t,n);case 8:B.debug("registration attempt succeeded for context",n),r.delete(i),0===r.size&&(this.registrationsInProgress.delete(t),this.emit("registered",t)),e.next=19;break;case 13:e.prev=13,e.t0=e.catch(5),B.warn("registration attempt failed for context",n),B.debug(e.t0),r.delete(i),0===r.size&&(this.registrationsInProgress.delete(t),this.emit("registrationFailed",t,e.t0));case 19:case"end":return e.stop()}}),e,this,[[5,13]])}))),function(e,t){return i.apply(this,arguments)})},{key:"updateRegistrations",value:(r=_.default(A.default.mark((function e(){var t,n=this;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return B.trace("refreshing ".concat(this.registrations.size," registrations")),t=[],this.registrations.forEach((function(e,r){t.push(n.updateRegistration(r,e))})),e.next=5,Promise.all(t);case 5:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"setNotificationsContext",value:(n=_.default(A.default.mark((function e(t,n){return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&n){e.next=2;break}throw new le("Invalid arguments provided");case 2:return this.registrations.set(t,n),e.next=5,this.updateRegistration(t,n);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"removeNotificationsContext",value:(t=_.default(A.default.mark((function e(t){return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.registrations.has(t)){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,this.deleteNotificationContext(t);case 4:this.transport.isConnected&&this.registrations.delete(t);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),u}(b.ReplayEventEmitter);function Ee(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var Te=function(e){T.default(n,e);var t=Ee(n);function n(e,r,i){var a;return O.default(this,n),(a=t.call(this,r)).status=e,a.description=r,a.body=i,a}return C.default(n)}(le);function Re(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var Ie=function(e){T.default(n,e);var t=Re(n);function n(e){return O.default(this,n),t.call(this,e)}return C.default(n)}(le);function Ce(e,t){var n=function(e){var t=e.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)(\/[^?#]*)(\?[^#]*|)(#.*|)$/);if(t){var n={protocol:t[1],host:t[2],hostname:t[3],port:t[4],pathname:t[5],search:t[6],hash:t[7],params:{}};if(n.search.length>0){var r=n.search.substring(1);n.params=r.split("&").map((function(e){return e.split("=")})).reduce((function(e,t){return e.hasOwnProperty(t[0])?Array.isArray(e[t[0]])?e[t[0]].push(t[1]):e[t[0]]=[e[t[0]],t[1]]:e[t[0]]=t[1],e}),{})}return n}throw new le("Incorrect URI: "+e)}(t),r={method:e,host:n.host,path:n.pathname};return n.params&&(r.params=n.params),r}function Oe(e,t,n,r,i){return{to:Ce(e,t),headers:n,body:r,grant:i}}var Pe=function(){function e(t,n,r){O.default(this,e),this.config=r,this.transport=t,this.pendingMessages=[],this.twilsock=n}var t;return C.default(e,[{key:"saveMessage",value:function(e){var t=this;return new Promise((function(n,r){var i={message:e,resolve:n,reject:r,alreadyRejected:!1,timeout:setTimeout((function(){B.debug("request is timed out"),r(new le("request '".concat(e.to.method,"' to '").concat(e.to.host,"' timed out"))),i.alreadyRejected=!0}),2e4)};t.pendingMessages.push(i)}))}},{key:"sendPendingMessages",value:function(){for(var e=this,t=function(){var t=e.pendingMessages[0];if(!t.alreadyRejected)try{var n=t.message;e.actualSend(n).then((function(e){return t.resolve(e)})).catch((function(e){return t.reject(e)})),clearTimeout(t.timeout)}catch(e){return B.debug("Failed to send pending message",e),"break"}e.pendingMessages.splice(0,1)};this.pendingMessages.length>0;){if("break"===t())break}}},{key:"rejectPendingMessages",value:function(){var e=this;this.pendingMessages.forEach((function(t){t.reject(new Ie("Unable to connect: "+e.twilsock.getTerminationReason)),t.alreadyRejected=!0,clearTimeout(t.timeout)})),this.pendingMessages.splice(0,this.pendingMessages.length)}},{key:"actualSend",value:(t=_.default(A.default.mark((function e(t){var n,r,i,a,o,s,u,c;return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.to,i=t.headers,a=t.body,o=null!==(n=t.grant)&&void 0!==n?n:this.config.activeGrant,s={host:r.host,path:r.path,method:r.method,params:r.params,headers:i},u=new Message(o,i["Content-Type"]||"application/json",s),B.trace("Sending upstream message",u),e.next=9,this.transport.sendWithReply(u,a);case 9:if(c=e.sent,B.trace("Received upstream message response",c),!((f=c)&&f.header&&f.header.http_status)||(l=c.header.http_status.code)>=200&&l<300){e.next=13;break}throw new Te(c.header.http_status.code,c.header.http_status.status,c.body);case 13:return e.abrupt("return",{status:c.header.http_status,headers:c.header.http_headers,body:c.body});case 14:case"end":return e.stop()}var l,f}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"send",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(this.twilsock.isTerminalState)return Promise.reject(new Ie("Unable to connect: "+this.twilsock.getTerminationReason));var a=Oe(e,t,n,r,i);return this.twilsock.isConnected?this.actualSend(a):this.saveMessage(a)}}]),e}(),Ae=function(){function e(){var t=this;O.default(this,e),this._promise=new Promise((function(e,n){t._resolve=e,t._reject=n}))}return C.default(e,[{key:"promise",get:function(){return this._promise}},{key:"update",value:function(e){this._resolve(e)}},{key:"set",value:function(e){this._resolve(e)}},{key:"fail",value:function(e){this._reject(e)}}]),e}(),je=function(){function e(t){O.default(this,e),this.id=t}return C.default(e,null,[{key:"create",value:function(t){if(t instanceof Object&&"storage_id"in t)return new e(t.storage_id);throw new le('Field "storage_id" is missing')}}]),e}(),Me=function(){function e(){return O.default(this,e),P.default(this,"initializedFlag","twilio_twilsock_token_storage"),P.default(this,"tokenStoragePrefix","twilio_continuation_token_"),e._instance||(this.initialize(),e._instance=this),e._instance}return C.default(e,[{key:"sessionStorage",value:function(){try{return t.sessionStorage}catch(e){return null}}},{key:"window",value:function(){try{return t.window}catch(e){return null}}},{key:"storeToken",value:function(e,t){this.canStore()&&this.sessionStorage.setItem(this.getKeyName(t),e)}},{key:"getStoredToken",value:function(e){return this.canStore()?this.sessionStorage.getItem(this.getKeyName(e)):null}},{key:"initialize",value:function(){var e=this;if(this.canStore()){this.sessionStorage.getItem(this.initializedFlag)&&this.clear(),this.sessionStorage.setItem(this.initializedFlag,"true");var t=this.sessionStorage.removeItem;this.window.addEventListener("unload",(function(){t(e.initializedFlag)}))}}},{key:"clear",value:function(){if(this.canStore()){for(var e=[],t=0;t<this.sessionStorage.length;t++){var n=this.sessionStorage.key(t);n&&0===n.indexOf(this.tokenStoragePrefix)&&e.push(n)}var r=this.sessionStorage.removeItem;e.forEach((function(e){return r(e)})),r(this.initializedFlag)}}},{key:"getKeyName",value:function(e){return"".concat(this.tokenStoragePrefix).concat(e)}},{key:"canStore",value:function(){return!!(this.sessionStorage&&this.sessionStorage.length&&this.window)}}]),e}();P.default(Me,"_instance",null);var Le,Ne,Ue=new Me,De=function(){function e(t,n,r,i,a,o){O.default(this,e),this.title=t,this.details=n,this.start=r,this.type=a,this.id=o,this.end=i}return C.default(e,[{key:"toTelemetryEvent",value:function(){var e=new Date,t=this.start,n=this.end?this.end:e;if(n<t){var r=n;n=t,t=r}var i=t.getTime()-e.getTime(),a=n.getTime()-e.getTime();return new ne(i,a,this.title,this.details,this.id,this.type)}}]),e}();e.TelemetryPoint=void 0,(Le=e.TelemetryPoint||(e.TelemetryPoint={}))[Le.Start=0]="Start",Le[Le.End=1]="End",e.EventSendingLimitation=void 0,(Ne=e.EventSendingLimitation||(e.EventSendingLimitation={}))[Ne.MinEventsPortion=0]="MinEventsPortion",Ne[Ne.AnyEvents=1]="AnyEvents",Ne[Ne.AnyEventsIncludingUnfinished=2]="AnyEventsIncludingUnfinished";var Fe=function(){function t(e,n){O.default(this,t),P.default(this,"minEventsPortionToSend",50),P.default(this,"maxEventsPortionToSend",100),P.default(this,"pendingEvents",new Map),P.default(this,"readyEvents",[]),P.default(this,"hasInitializationFinished",!1),P.default(this,"_canSendTelemetry",!1),this.config=e,this.packetInterface=n}return C.default(t,[{key:"isTelemetryEnabled",get:function(){return this.config.confirmedCapabilities.has("telemetry.v1")}},{key:"canSendTelemetry",get:function(){return this._canSendTelemetry&&this.isTelemetryEnabled},set:function(t){B.debug("TelemetryTracker.canSendTelemetry: ".concat(t," TelemetryTracker.isTelemetryEnabled: ").concat(this.isTelemetryEnabled)),this._canSendTelemetry&&!t&&(this.pendingEvents.clear(),this.readyEvents=[]),this._canSendTelemetry=t,t&&this.sendTelemetry(e.EventSendingLimitation.AnyEvents),t&&!this.hasInitializationFinished&&(this.hasInitializationFinished=!0)}},{key:"addTelemetryEvent",value:function(e){!this.canSendTelemetry&&this.hasInitializationFinished||this.readyEvents.push(e)}},{key:"addPartialEvent",value:function(t,n,r){B.debug("Adding ".concat(r===e.TelemetryPoint.Start?"starting":"ending"," timepoint for '").concat(n,"' event"));var i=this.pendingEvents.has(n);if(r===e.TelemetryPoint.Start)i&&B.debug("Overwriting starting point for '".concat(n,"' event")),this.pendingEvents.set(n,t);else{if(!i)return void B.info("Could not find started event for '".concat(n,"' event"));this.addTelemetryEvent(this.merge(this.pendingEvents.get(n),t)),this.pendingEvents.delete(n)}}},{key:"getTelemetryToSend",value:function(t){return this.canSendTelemetry&&0!=this.readyEvents.length?t==e.EventSendingLimitation.MinEventsPortion&&this.readyEvents.length<this.minEventsPortionToSend?[]:this.getTelemetryPortion(t==e.EventSendingLimitation.AnyEventsIncludingUnfinished):[]}},{key:"getTelemetryPortion",value:function(e){var t=this,n=Math.min(this.readyEvents.length,this.maxEventsPortionToSend),r=this.readyEvents.splice(0,n);return e&&r.length<this.maxEventsPortionToSend&&this.pendingEvents.forEach((function(e,n){if(!(r.length>=t.maxEventsPortionToSend)){var i=t.pendingEvents.get(n);t.pendingEvents.delete(n),r.push(new De("[UNFINISHED] ".concat(i.title),i.details,i.start,null,i.type,i.id))}})),r}},{key:"merge",value:function(e,t){return new De(t.title?t.title:e.title,t.details?t.details:e.details,e.start,t.end,t.type?t.type:e.type,t.id?t.id:e.id)}},{key:"sendTelemetryIfMinimalPortionCollected",value:function(){this.sendTelemetry(e.EventSendingLimitation.MinEventsPortion)}},{key:"sendTelemetry",value:function(e){var t=this.getTelemetryToSend(e);if(0!==t.length)try{this.packetInterface.send(new re(t.map((function(e){return e.toTelemetryEvent()}))))}catch(e){B.debug("Error while sending ".concat(t.length," telemetry events due to ").concat(e,"; they will be resubmitted")),this.readyEvents=this.readyEvents.concat(t)}}}]),t}();function Be(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I.default(e);if(t){var i=I.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return R.default(this,n)}}var qe=C.default((function e(){O.default(this,e)}));P.default(qe,"TWILSOCK_CONNECT","twilsock.sdk.connect"),P.default(qe,"TWILSOCK_INIT","twilsock.sdk.init"),e.TwilsockClient=function(t){T.default(f,t);var n,r,i,a,o,s,u,c,l=Be(f);function f(t,n,r){var i;O.default(this,f),i=l.call(this),P.default(S.default(i),"version",q),P.default(S.default(i),"offlineStorageDeferred",new Ae),r.continuationToken=r.continuationToken?r.continuationToken:Ue.getStoredToken(n);var a=i.config=new z(t,n,r);B.setLevel(a.logLevel);var o=new xe(a.url),s=new ke(o,a);return i.channel=new ge(o,s,a),i.registrations=new Se(s),i.upstream=new Pe(s,i.channel,a),i.telemetryTracker=new Fe(a,s),i.channel.on("initialized",(function(){return i.telemetryTracker.canSendTelemetry=!0})),o.on("disconnected",(function(){return i.telemetryTracker.canSendTelemetry=!1})),i.registrations.on("registered",(function(e){return i.emit("registered",e)})),i.channel.on("message",(function(e,t){return setTimeout((function(){return i.emit("message",e,t)}),0)})),i.channel.on("stateChanged",(function(e){return setTimeout((function(){return i.emit("stateChanged",e)}),0)})),i.channel.on("connectionError",(function(e){return setTimeout((function(){return i.emit("connectionError",e)}),0)})),i.channel.on("tokenAboutToExpire",(function(){return setTimeout((function(){return i.emit("tokenAboutToExpire")}),0)})),i.channel.on("tokenExpired",(function(){return setTimeout((function(){return i.emit("tokenExpired")}),0)})),i.channel.on("connected",(function(){return i.registrations.updateRegistrations()})),i.channel.on("connected",(function(){return i.upstream.sendPendingMessages()})),i.channel.on("connected",(function(){return setTimeout((function(){return i.emit("connected")}),0)})),i.channel.on("beforeConnect",(function(){return i.telemetryTracker.addPartialEvent(new De("Establish WebSocket connection","",new Date),qe.TWILSOCK_CONNECT,e.TelemetryPoint.Start)})),i.channel.on("connected",(function(){return i.telemetryTracker.addPartialEvent(new De("Establish WebSocket connection","",new Date,new Date),qe.TWILSOCK_CONNECT,e.TelemetryPoint.End)})),i.channel.on("beforeSendInit",(function(){return i.telemetryTracker.addPartialEvent(new De("Send Twilsock init","",new Date),qe.TWILSOCK_INIT,e.TelemetryPoint.Start)})),i.channel.on("initialized",(function(){return i.telemetryTracker.addPartialEvent(new De("Send Twilsock init","Succeeded",new Date,new Date),qe.TWILSOCK_INIT,e.TelemetryPoint.End)})),i.channel.on("sendInitFailed",(function(){return i.telemetryTracker.addPartialEvent(new De("Send Twilsock init","Failed",new Date,new Date),qe.TWILSOCK_INIT,e.TelemetryPoint.End)})),i.channel.on("initialized",(function(e){i.handleStorageId(n,e),Ue.storeToken(e.continuationToken,n),setTimeout((function(){return i.emit("initialized",e)}),0)})),i.channel.on("disconnected",(function(){return setTimeout((function(){return i.emit("disconnected")}),0)})),i.channel.on("disconnected",(function(){return i.upstream.rejectPendingMessages()})),i.channel.on("disconnected",(function(){return i.offlineStorageDeferred.fail(new le("Client disconnected"))})),i.offlineStorageDeferred.promise.catch((function(){})),i}return C.default(f,[{key:"emit",value:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return B.debug("Emitting ".concat(e.toString(),"(").concat(r.map((function(e){return JSON.stringify(e)})).join(", "),")")),(t=E.default(I.default(f.prototype),"emit",this)).call.apply(t,[this,e].concat(r))}},{key:"handleStorageId",value:function(e,t){if(t.offlineStorage)if(t.offlineStorage.hasOwnProperty(e))try{this.offlineStorageDeferred.set(je.create(t.offlineStorage[e])),B.debug("Offline storage for '".concat(e,"' product: ").concat(JSON.stringify(t.offlineStorage[e]),"."))}catch(n){this.offlineStorageDeferred.fail(new le("Failed to parse offline storage for ".concat(e," ").concat(JSON.stringify(t.offlineStorage[e]),". ").concat(n,".")))}else this.offlineStorageDeferred.fail(new le("No offline storage id for '".concat(e,"' product: ").concat(JSON.stringify(t.offlineStorage))));else this.offlineStorageDeferred.fail(new le("No offline storage id"))}},{key:"storageId",value:function(){return this.offlineStorageDeferred.promise}},{key:"isConnected",get:function(){return this.channel.isConnected}},{key:"state",get:function(){return this.channel.state}},{key:"updateToken",value:(c=_.default(A.default.mark((function e(t){return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(B.trace("updating token '".concat(t,"'")),this.config.token!==t){e.next=3;break}return e.abrupt("return");case 3:return this.config.updateToken(t),e.next=6,this.channel.updateToken(t);case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"setNotificationsContext",value:(u=_.default(A.default.mark((function e(t,n){return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.registrations.setNotificationsContext(t,n);case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return u.apply(this,arguments)})},{key:"removeNotificationsContext",value:(s=_.default(A.default.mark((function e(t){return A.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.registrations.removeNotificationsContext(t);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"connect",value:function(){return this.channel.connect()}},{key:"disconnect",value:(o=_.default(A.default.mark((function t(){return A.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.telemetryTracker.sendTelemetry(e.EventSendingLimitation.AnyEventsIncludingUnfinished),t.next=3,this.channel.disconnect();case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t,this)}))),function(){return o.apply(this,arguments)})},{key:"get",value:(a=_.default(A.default.mark((function t(n,r,i){return A.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.telemetryTracker.sendTelemetry(e.EventSendingLimitation.AnyEvents),t.next=3,this.upstream.send("GET",n,r,void 0,i);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t,this)}))),function(e,t,n){return a.apply(this,arguments)})},{key:"post",value:(i=_.default(A.default.mark((function t(n,r,i,a){return A.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.telemetryTracker.sendTelemetry(e.EventSendingLimitation.AnyEvents),t.next=3,this.upstream.send("POST",n,r,i,a);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t,this)}))),function(e,t,n,r){return i.apply(this,arguments)})},{key:"put",value:(r=_.default(A.default.mark((function t(n,r,i,a){return A.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.telemetryTracker.sendTelemetry(e.EventSendingLimitation.AnyEvents),t.next=3,this.upstream.send("PUT",n,r,i,a);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t,this)}))),function(e,t,n,i){return r.apply(this,arguments)})},{key:"delete",value:(n=_.default(A.default.mark((function t(n,r,i,a){return A.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.telemetryTracker.sendTelemetry(e.EventSendingLimitation.AnyEvents),t.next=3,this.upstream.send("DELETE",n,r,i,a);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t,this)}))),function(e,t,r,i){return n.apply(this,arguments)})},{key:"addTelemetryEvent",value:function(e){this.telemetryTracker.addTelemetryEvent(e),this.telemetryTracker.sendTelemetryIfMinimalPortionCollected()}},{key:"addPartialTelemetryEvent",value:function(t,n,r){this.telemetryTracker.addPartialEvent(t,n,r),r===e.TelemetryPoint.End&&this.telemetryTracker.sendTelemetryIfMinimalPortionCollected()}}]),f}(b.ReplayEventEmitter),e.TwilsockClient=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":j.default(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}([p.validateConstructorTypes(p.nonEmptyString,p.nonEmptyString,[p.pureObject,"undefined",p.literal(null)]),function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":j.default(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:paramtypes",[String,String,Object])],e.TwilsockClient);var ze=function(){function e(t){O.default(this,e),this.product=t,this.type="ers",this.notification_protocol_version=0,this.message_types=[]}return C.default(e,[{key:"populateInitRegistrations",value:function(e){var t=new Set(this.message_types);for(var n in e)t.add(e[n]);this.message_types=Array.from(t)}}]),e}();e.InitRegistration=ze,e.TelemetryEventDescription=De,e.TelemetryTracker=Fe,e.TransportUnavailableError=Ie,e.Twilsock=e.TwilsockClient,e.TwilsockError=le}(Dg);var RE={},IE=s,CE=o,OE=Dn,PE=tn,AE=u,jE=Q,ME=b,LE=Object.assign,NE=Object.defineProperty,UE=!LE||CE((function(){if(IE&&1!==LE({b:1},LE(NE({},"a",{enumerable:!0,get:function(){NE(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=LE({},e)[n]||OE(LE({},t)).join("")!=r}))?function(e,t){for(var n=jE(e),r=arguments.length,i=1,a=PE.f,o=AE.f;r>i;)for(var s,u=ME(arguments[i++]),c=a?OE(u).concat(a(u)):OE(u),l=c.length,f=0;l>f;)s=c[f++],IE&&!o.call(u,s)||(n[s]=u[s]);return n}:LE,DE=UE;Rn({target:"Object",stat:!0,forced:Object.assign!==DE},{assign:DE}),function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Fg.exports,n=cv.exports,r=uv.exports,i=lv.exports,a=dv.exports,o=hv.exports,s=Bg,u=$h.exports,c=Dg,l=pv.exports,f=Sy.exports,d=Zm,p=Xh.exports,h=iv.exports,v=wf.exports,y=kb,m=hh;function g(e){return e&&"object"===Oa(e)&&"default"in e?e:{default:e}}function b(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var k=g(t),w=g(n),x=g(r),_=g(i),S=g(a),E=g(o),T=g(s),R=g(u),I=g(l),C=g(f),O=g(p),P=g(h),A=b(v),j=b(y);function M(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":R.default(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function L(e,t){if("object"===("undefined"==typeof Reflect?"undefined":R.default(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function N(){}function U(){U.init.call(this)}function D(e){return void 0===e._maxListeners?U.defaultMaxListeners:e._maxListeners}function F(e,t,n){if(t)e.call(n);else for(var r=e.length,i=J(e,r),a=0;a<r;++a)i[a].call(n)}function B(e,t,n,r){if(t)e.call(n,r);else for(var i=e.length,a=J(e,i),o=0;o<i;++o)a[o].call(n,r)}function q(e,t,n,r,i){if(t)e.call(n,r,i);else for(var a=e.length,o=J(e,a),s=0;s<a;++s)o[s].call(n,r,i)}function z(e,t,n,r,i,a){if(t)e.call(n,r,i,a);else for(var o=e.length,s=J(e,o),u=0;u<o;++u)s[u].call(n,r,i,a)}function W(e,t,n,r){if(t)e.apply(n,r);else for(var i=e.length,a=J(e,i),o=0;o<i;++o)a[o].apply(n,r)}function G(e,t,n,r){var i,a,o,s;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((a=e._events)?(a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]):(a=e._events=new N,e._eventsCount=0),o){if("function"==typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),!o.warned&&(i=D(e))&&i>0&&o.length>i){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=o.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else o=a[t]=n,++e._eventsCount;return e}function $(e,t,n){var r=!1;function i(){e.removeListener(t,i),r||(r=!0,n.apply(e,arguments))}return i.listener=n,i}function V(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function J(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}N.prototype=Object.create(null),U.EventEmitter=U,U.usingDomains=!1,U.prototype.domain=void 0,U.prototype._events=void 0,U.prototype._maxListeners=void 0,U.defaultMaxListeners=10,U.init=function(){this.domain=null,U.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new N,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},U.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},U.prototype.getMaxListeners=function(){return D(this)},U.prototype.emit=function(e){var t,n,r,i,a,o,s,u="error"===e;if(o=this._events)u=u&&null==o.error;else if(!u)return!1;if(s=this.domain,u){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(n=o[e]))return!1;var l="function"==typeof n;switch(r=arguments.length){case 1:F(n,l,this);break;case 2:B(n,l,this,arguments[1]);break;case 3:q(n,l,this,arguments[1],arguments[2]);break;case 4:z(n,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(r-1),a=1;a<r;a++)i[a-1]=arguments[a];W(n,l,this,i)}return!0},U.prototype.addListener=function(e,t){return G(this,e,t,!1)},U.prototype.on=U.prototype.addListener,U.prototype.prependListener=function(e,t){return G(this,e,t,!0)},U.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,$(this,e,t)),this},U.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,$(this,e,t)),this},U.prototype.removeListener=function(e,t){var n,r,i,a,o;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new N:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,a=n.length;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new N,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,i=e.length;r<i;n+=1,r+=1)e[n]=e[r];e.pop()}(n,i);r.removeListener&&this.emit("removeListener",e,o||t)}return this},U.prototype.off=function(e,t){return this.removeListener(e,t)},U.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new N,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new N:delete n[e]),this;if(0===arguments.length){for(var r,i=Object.keys(n),a=0;a<i.length;++a)"removeListener"!==(r=i[a])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new N,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},U.prototype.listeners=function(e){var t,n=this._events;return n&&(t=n[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[]},U.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):V.call(e,t)},U.prototype.listenerCount=V,U.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var K=A.getLogger("twilio-notificatiions");function H(e,t){return["".concat((new Date).toISOString()," Twilio.Notifications ").concat(e,":")].concat(Array.from(t))}var Y=new(function(){function e(){w.default(this,e)}return x.default(e,[{key:"setLevel",value:function(e){K.setLevel(e)}},{key:"trace",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];K.trace.apply(null,H("T",t))}},{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];K.debug.apply(null,H("D",t))}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];K.info.apply(null,H("I",t))}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];K.warn.apply(null,H("W",t))}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];K.error.apply(null,H("E",t))}}]),e}());function Q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E.default(e);if(t){var i=E.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return S.default(this,n)}}var X=x.default((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;w.default(this,e),this.token=t,this.notificationId=n,this.messageTypes=r}));function Z(e,t){var n=new Set;return e.notificationId!==t.notificationId&&n.add("notificationId"),e.token!==t.token&&n.add("token"),function(e,t){return[].concat(P.default(P.default(e).filter((function(e){return!t.has(e)}))),P.default(P.default(t).filter((function(t){return!e.has(t)}))))}(e.messageTypes,t.messageTypes).length>0&&n.add("messageType"),[n.size>0,n]}var ee=function(e){_.default(r,e);var t,n=Q(r);function r(e){var t;return w.default(this,r),t=n.call(this),C.default(I.default(t),"desiredState",new X),C.default(I.default(t),"currentState",new X),C.default(I.default(t),"_hasActiveAttempt",!1),t.channelType=e,t}return x.default(r,[{key:"setNotificationId",value:function(e){this.desiredState.notificationId=e}},{key:"isActive",value:function(){return""!==this.desiredState.notificationId}},{key:"subscribe",value:function(e){this.desiredState.messageTypes.has(e)?Y.debug("message type '".concat(e,"' for channel ").concat(this.channelType," is already registered")):this.desiredState.messageTypes.add(e)}},{key:"unsubscribe",value:function(e){this.desiredState.messageTypes.has(e)&&this.desiredState.messageTypes.delete(e)}},{key:"updateToken",value:function(e){this.desiredState.token=e}},{key:"commitChanges",value:(t=k.default(T.default.mark((function e(){var t,n,r,i,a,o;return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._hasActiveAttempt){e.next=3;break}throw Y.error("One registration attempt is already in progress"),new Error("One registration attempt is already in progress");case 3:if(t=Z(this.desiredState,this.currentState),n=O.default(t,2),r=n[0],i=n[1],r){e.next=6;break}return e.abrupt("return");case 6:if(this.currentState.notificationId||i.delete("notificationId"),Y.trace("Persisting ".concat(this.channelType," registration"),i,this.desiredState),e.prev=8,this._hasActiveAttempt=!0,(a=new X).token=this.desiredState.token,a.notificationId=this.desiredState.notificationId,a.messageTypes=new Set(this.desiredState.messageTypes),!(a.messageTypes.size>0)){e.next=24;break}return e.next=17,this.updateRegistration(a,i);case 17:o=e.sent,this.currentState.token=o.token,this.currentState.notificationId=o.notificationId,this.currentState.messageTypes=new Set(o.messageTypes),this.emit("stateChanged",this.channelType,"registered",this.currentState),e.next=30;break;case 24:return e.next=26,this.removeRegistration();case 26:this.currentState.token=a.token,this.currentState.notificationId=a.notificationId,this.currentState.messageTypes.clear(),this.emit("stateChanged",this.channelType,"unregistered",this.currentState);case 30:e.next=35;break;case 32:throw e.prev=32,e.t0=e.catch(8),e.t0;case 35:return e.prev=35,this._hasActiveAttempt=!1,e.finish(35);case 38:case"end":return e.stop()}}),e,this,[[8,32,35,38]])}))),function(){return t.apply(this,arguments)})}]),r}(U);function te(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E.default(e);if(t){var i=E.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return S.default(this,n)}}var ne={min:2e3,max:12e4,randomness:.2},re=function(e){_.default(a,e);var t,n,r,i=te(a);function a(e,t,n,r){var o;return w.default(this,a),o=i.call(this,e),C.default(I.default(o),"registrationId",null),o.context=t,o.twilsock=n,o.registrarUrl=r,o}return x.default(a,[{key:"updateRegistration",value:(r=k.default(T.default.mark((function e(t,n){var r,i,a,o,s,u=this;return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.has("notificationId")){e.next=3;break}return e.next=3,this.removeRegistration();case 3:if(t.notificationId&&t.notificationId.length){e.next=6;break}throw Y.error("No push notification ID for registration"),new Error("No push notification ID for registration");case 6:return Y.trace("Registering",this.channelType,t),r={endpoint_platform:this.context.platform,channel_type:this.channelType,version:this.context.protocolVersion.toString(),message_types:Array.from(t.messageTypes),data:{registration_id:t.notificationId}},i=this.context.productId,a="".concat(this.registrarUrl,"?productId=").concat(i),o={"Content-Type":"application/json"},Y.trace("Creating registration for channel ".concat(this.channelType)),e.prev=12,e.next=15,new d.AsyncRetrier(ne).run((function(){return u.twilsock.post(a,o,r,i)}));case 15:s=e.sent,this.registrationId=s.body.id,Y.debug("Registration created: ",s),e.next=24;break;case 20:throw e.prev=20,e.t0=e.catch(12),Y.error("Registration failed: ",e.t0),e.t0;case 24:return e.abrupt("return",t);case 25:case"end":return e.stop()}}),e,this,[[12,20]])}))),function(e,t){return r.apply(this,arguments)})},{key:"removeRegistration",value:(n=k.default(T.default.mark((function e(){var t,n,r,i=this;return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.registrationId){e.next=2;break}return e.abrupt("return");case 2:return t=this.context.productId,n="".concat(this.registrarUrl,"/").concat(this.registrationId,"?productId=").concat(t),r={"Content-Type":"application/json"},Y.trace("Removing registration for ".concat(this.channelType)),e.prev=6,e.next=9,new d.AsyncRetrier(Object.assign(ne,{maxAttemptsCount:3})).run((function(){return i.twilsock.delete(n,r,{},t)}));case 9:this.registrationId=null,this.currentState.notificationId="",Y.debug("Registration removed for ".concat(this.channelType)),e.next=18;break;case 14:throw e.prev=14,e.t0=e.catch(6),Y.error("Failed to remove registration ",this.channelType,e.t0),e.t0;case 18:case"end":return e.stop()}}),e,this,[[6,14]])}))),function(){return n.apply(this,arguments)})},{key:"sendDeviceRemoveRequest",value:(t=k.default(T.default.mark((function e(t){var n,r,i,a,o=this;return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(""!==t){e.next=2;break}throw new Error("Empty registration ID");case 2:return n=this.context.productId,r="".concat(this.registrarUrl,"?productId=").concat(n),i={"Content-Type":"application/json"},a={binding_type:this.channelType,address:t},e.prev=6,Y.trace("Removing old registrations for ".concat(this.channelType)),e.next=10,new d.AsyncRetrier(Object.assign(ne,{maxAttemptsCount:3})).run((function(){return o.twilsock.delete(r,i,a,n)}));case 10:this.registrationId=null,this.currentState.notificationId="",Y.debug("Registration removed for ".concat(this.channelType)),e.next=19;break;case 15:throw e.prev=15,e.t0=e.catch(6),Y.error("Failed to remove registration ",this.channelType,e.t0),e.t0;case 19:case"end":return e.stop()}}),e,this,[[6,15]])}))),function(e){return t.apply(this,arguments)})}]),a}(ee);function ie(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E.default(e);if(t){var i=E.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return S.default(this,n)}}var ae,oe=function(e){_.default(a,e);var t,n,r,i=ie(a);function a(e,t,n){var r;return w.default(this,a),r=i.call(this,"twilsock"),C.default(I.default(r),"contextId",j.v4()),r.productId=e,r.platform=t,r.twilsock=n,r}return x.default(a,[{key:"updateRegistration",value:(r=k.default(T.default.mark((function e(t,n){var r,i;return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.has("messageType")){e.next=2;break}return e.abrupt("return",t);case 2:return r=Array.from(t.messageTypes),i={product_id:this.productId,notification_protocol_version:4,endpoint_platform:this.platform,message_types:r},e.prev=4,e.next=7,this.twilsock.setNotificationsContext(this.contextId,i);case 7:e.next=13;break;case 9:throw e.prev=9,e.t0=e.catch(4),Y.error("Failed to update twilsock notification context: ".concat(e.t0)),e.t0;case 13:return e.abrupt("return",t);case 14:case"end":return e.stop()}}),e,this,[[4,9]])}))),function(e,t){return r.apply(this,arguments)})},{key:"removeRegistration",value:(n=k.default(T.default.mark((function e(){return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.twilsock.removeNotificationsContext(this.contextId);case 3:e.next=9;break;case 5:throw e.prev=5,e.t0=e.catch(0),Y.error("Failed to remove twilsock notification context: ".concat(e.t0)),e.t0;case 9:case"end":return e.stop()}}),e,this,[[0,5]])}))),function(){return n.apply(this,arguments)})},{key:"sendDeviceRemoveRequest",value:(t=k.default(T.default.mark((function e(t){return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),a}(ee);function se(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E.default(e);if(t){var i=E.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return S.default(this,n)}}var ue=m.literal("apn","fcm","twilsock");e.Notifications=ae=function(e){_.default(Client,e);var t,n,r,i=se(Client);function Client(e){var t,n,r,a,o,s,u,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w.default(this,Client),u=i.call(this),l.logLevel=null!==(t=l.logLevel)&&void 0!==t?t:"error",Y.setLevel(l.logLevel);var f=null!==(n=l.productId)&&void 0!==n?n:"notifications",d=!l.twilsockClient,p=l.twilsockClient=null!==(r=l.twilsockClient)&&void 0!==r?r:new c.TwilsockClient(e,f,l),h=null!==(a=l.notifications)&&void 0!==a?a:{},v=null!==(o=null!==(s=h.region)&&void 0!==s?s:l.region)&&void 0!==o?o:"us1",y="https://ers.".concat(v,".twilio.com/v1/registrations"),m=h.ersUrl||y;u.connectors=new Map;var g=ae._detectPlatform();return u.connectors.set("apn",new re("apn",{protocolVersion:4,productId:f,platform:g},p,m)),u.connectors.set("fcm",new re("fcm",{protocolVersion:3,productId:f,platform:g},p,m)),u.connectors.set("twilsock",new oe(f,g,p)),p.on("stateChanged",(function(e){return u.emit("transportState",e)})),u._connector("twilsock").on("stateChanged",(function(e,t,n){return u.emit("stateChanged",e,t,n)})),u._connector("apn").on("stateChanged",(function(e,t,n){return u.emit("stateChanged",e,t,n)})),u._connector("fcm").on("stateChanged",(function(e,t,n){return u.emit("stateChanged",e,t,n)})),p.on("message",(function(e,t){return u._routeMessage(e,t)})),u.updateToken(e),d&&(p.connect(),u.twilsock=p),u}return x.default(Client,[{key:"shutdown",value:(r=k.default(T.default.mark((function e(){return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.connectors.clear(),!this.twilsock){e.next=4;break}return e.next=4,this.twilsock.disconnect();case 4:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"setPushRegistrationId",value:function(e,t){Y.debug("Set ".concat(e," push registration id '").concat(t,"'")),this._connector(e).setNotificationId(t)}},{key:"subscribe",value:function(e,t){Y.debug("Add ".concat(e," subscriptions for message type ").concat(t)),this._connector(e).subscribe(t)}},{key:"unsubscribe",value:function(e,t){Y.debug("Remove ".concat(e," subscriptions for message type ").concat(t)),this._connector(e).unsubscribe(t)}},{key:"updateToken",value:function(e){this.connectors.forEach((function(t){return t.updateToken(e)}))}},{key:"commitChanges",value:(n=k.default(T.default.mark((function e(){var t;return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],this.connectors.forEach((function(e){e.isActive()&&t.push(e.commitChanges())})),e.next=4,Promise.all(t);case 4:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"removeRegistrations",value:(t=k.default(T.default.mark((function e(t,n){return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._connector(t).sendDeviceRemoveRequest(n);case 2:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"handlePushNotification",value:function(e){return{messageType:e.twi_message_type,payload:e.payload}}},{key:"_routeMessage",value:function(e,t){Y.debug("Notification message arrived: ",e,t),this.emit("message",e,t)}},{key:"_connector",value:function(e){var t=this.connectors.get(e);if(!t)throw new Error("Unknown channel type: ".concat(e));return t}}],[{key:"_detectPlatform",value:function(){var e="";return"undefined"!=typeof navigator?(e="unknown",void 0!==navigator.product&&(e=navigator.product),void 0!==navigator.userAgent&&(e=navigator.userAgent)):e="web",e.substring(0,128)}}]),Client}(U),M([m.validateTypes(ue,m.nonEmptyString),L("design:type",Function),L("design:paramtypes",[String,String]),L("design:returntype",void 0)],e.Notifications.prototype,"setPushRegistrationId",null),M([m.validateTypes(ue,m.nonEmptyString),L("design:type",Function),L("design:paramtypes",[String,String]),L("design:returntype",void 0)],e.Notifications.prototype,"subscribe",null),M([m.validateTypes(ue,m.nonEmptyString),L("design:type",Function),L("design:paramtypes",[String,String]),L("design:returntype",void 0)],e.Notifications.prototype,"unsubscribe",null),M([m.validateTypes(m.nonEmptyString),L("design:type",Function),L("design:paramtypes",[String]),L("design:returntype",void 0)],e.Notifications.prototype,"updateToken",null),M([m.validateTypesAsync(ue,m.nonEmptyString),L("design:type",Function),L("design:paramtypes",[String,String]),L("design:returntype",Promise)],e.Notifications.prototype,"removeRegistrations",null),e.Notifications=ae=M([m.validateConstructorTypes(m.nonEmptyString,[m.pureObject,"undefined",m.literal(null)]),L("design:paramtypes",[String,Object])],e.Notifications)}(RE);var FE={};Object.defineProperty(FE,"__esModule",{value:!0});var BE=Fg.exports,qE=cv.exports,zE=uv.exports,WE=pv.exports,GE=lv.exports,$E=dv.exports,VE=hv.exports,JE=Sy.exports,KE=Bg,HE=$h.exports,YE=hh,QE=Dg,XE=XS.exports,ZE=wf.exports,eT=Xh.exports,tT=Zm,nT=kb,rT=xy.exports,iT=wy,aT=nE.exports;function oT(e){return e&&"object"===Oa(e)&&"default"in e?e:{default:e}}function sT(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var uT=oT(BE),cT=oT(qE),lT=oT(zE),fT=oT(WE),dT=oT(GE),pT=oT($E),hT=oT(VE),vT=oT(JE),yT=oT(KE),mT=oT(HE),gT=oT(XE),bT=sT(ZE),kT=oT(eT),wT=sT(nT),xT=oT(rT),_T=sT(aT);function ST(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":mT.default(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function ET(e,t){if("object"===("undefined"==typeof Reflect?"undefined":mT.default(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var TT=function(){function e(t){cT.default(this,e),this.base=t,this.args=new Array,this.paths=new Array}return lT.default(e,[{key:"pathSegment",value:function(e){return this.paths.push(encodeURIComponent(e)),this}},{key:"queryParam",value:function(e,t){return void 0!==t&&this.args.push(encodeURIComponent(e)+"="+encodeURIComponent(t)),this}},{key:"build",value:function(){var e=this.base;return this.paths.length&&(e+="/"+this.paths.join("/")),this.args.length&&(e+="?"+this.args.join("&")),e}}]),e}();function RT(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}var IT=function(e){dT.default(n,e);var t=RT(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return cT.default(this,n),(r=t.call(this)).name=r.constructor.name,r.message="".concat(e," (status: ").concat(i,", code: ").concat(a,")"),r.status=i,r.code=a,r}return lT.default(n)}(gT.default(Error)),CT=function(e){dT.default(n,e);var t=RT(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3?arguments[3]:void 0;return cT.default(this,n),(r=t.call(this,e,i,a)).body=o,r}return lT.default(n)}(IT);function OT(e){return JSON.parse(JSON.stringify(e))}function PT(e){if(!(void 0===e||AT(e)))throw new IT("Invalid pageSize parameter. Expected a positive integer, was '".concat(e,"'."),400,20007)}function AT(e){return function(e){return!isNaN(parseInt(e))&&isFinite(e)}(e)&&e>0}var jT=bT.getLogger("twilio-sync");function MT(e,t){return["".concat((new Date).toISOString()," Sync ").concat(e,":")].concat(Array.from(t))}var LT=function(e){jT.setLevel(e)},NT=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];jT.trace.apply(null,MT("T",t))},UT=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];jT.debug.apply(null,MT("D",t))},DT=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];jT.warn.apply(null,MT("W",t))},FT=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];jT.error.apply(null,MT("E",t))},BT="/v4/Subscriptions",qT="/v3/Maps",zT="/v3/Lists",WT="/v3/Documents",GT="/v3/Streams",$T="/v3/Insights";function VT(e,t,n){return e&&void 0!==e[t]?e[t]:n}var JT=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};cT.default(this,e);var n=t.region||"us1",r="https://cds.".concat(n,".twilio.com"),i=t.cdsUri||r;this.settings={subscriptionsUri:i+BT,documentsUri:i+WT,listsUri:i+zT,mapsUri:i+qT,streamsUri:i+GT,insightsUri:i+$T,sessionStorageEnabled:VT(t.Sync,"enableSessionStorage",!0),productId:t.productId}}return lT.default(e,[{key:"subscriptionsUri",get:function(){return this.settings.subscriptionsUri}},{key:"documentsUri",get:function(){return this.settings.documentsUri}},{key:"listsUri",get:function(){return this.settings.listsUri}},{key:"mapsUri",get:function(){return this.settings.mapsUri}},{key:"streamsUri",get:function(){return this.settings.streamsUri}},{key:"insightsUri",get:function(){return this.settings.insightsUri}},{key:"backoffConfig",get:function(){return this.settings.backoffConfig||{}}},{key:"sessionStorageEnabled",get:function(){return this.settings.sessionStorageEnabled}},{key:"productId",get:function(){return this.settings.productId}}]),e}();function KT(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return HT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return HT(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function HT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var YT=function(){function e(t){cT.default(this,e),this.localObject=t,this.pendingCorrelationId=null,this.pendingAction=null,this.established=!1,this.retryCount=0}return lT.default(e,[{key:"sid",get:function(){return this.localObject.sid}},{key:"type",get:function(){return this.localObject.type}},{key:"lastEventId",get:function(){return this.localObject.lastEventId}},{key:"indexName",get:function(){return this.localObject.indexName}},{key:"queryString",get:function(){return this.localObject.queryString}},{key:"isEstablished",get:function(){return this.established}},{key:"update",value:function(e,t){this.localObject._update(e,t)}},{key:"updatePending",value:function(e,t){this.pendingAction=e,this.pendingCorrelationId=t}},{key:"reset",value:function(){this.updatePending(null,null),this.retryCount=0,this.established=!1,this.setSubscriptionState("none")}},{key:"markAsFailed",value:function(e){this.rejectedWithError=e.error,this.updatePending(null,null),this.localObject.reportFailure(new IT("Failed to subscribe on service events: ".concat(e.error.message),e.error.status,e.error.code))}},{key:"complete",value:function(e){this.updatePending(null,null),this.established=!0,this.localObject._advanceLastEventId(e)}},{key:"setSubscriptionState",value:function(e){this.localObject._setSubscriptionState(e)}}]),e}(),QT=function(){function e(t){var n=this;cT.default(this,e),vT.default(this,"isConnected",!1),vT.default(this,"maxBatchSize",100),vT.default(this,"subscriptionTtlTimer",null),vT.default(this,"pendingPokeReason",null),this.services=t,this.subscriptions=new Map,this.persisted=new Map,this.latestPokeResponseArrivalTimestampByCorrelationId=new Map;this.backoff=tT.Backoff.exponential(Object.assign({randomisationFactor:.2,initialDelay:100,maxDelay:12e4},this.services.config.backoffConfig)),this.backoff.on("ready",(function(){var e=n.getSubscriptionUpdateBatch(),t=e.action,r=e.subscriptions;t?n.applyNewSubscriptionUpdateBatch(t,r):(n.backoff.reset(),UT("All subscriptions resolved."))}))}var t;return lT.default(e,[{key:"getSubscriptionUpdateBatch",value:function(){function e(e,t,n,r){var i,a=[],o=KT(e);try{for(o.s();!(i=o.n()).done;){var s=kT.default(i.value,2),u=s[0],c=s[1];if(!t.get(u)&&n!==c.pendingAction&&!c.rejectedWithError&&(a.push(c),r&&a.length>=r))break}}catch(e){o.e(e)}finally{o.f()}return a}var t=e(this.subscriptions,this.persisted,"establish",this.maxBatchSize);if(t.length>0)return{action:"establish",subscriptions:t};var n=e(this.persisted,this.subscriptions,"cancel",this.maxBatchSize);return n.length>0?{action:"cancel",subscriptions:n}:{action:null,subscriptions:null}}},{key:"persist",value:function(){this.backoff.backoff()}},{key:"applyNewSubscriptionUpdateBatch",value:(t=uT.default(yT.default.mark((function e(t,n){var r,i,a,o,s,u,c,l,f,d,p,h,v=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isConnected){e.next=4;break}return UT("Twilsock connection (required for subscription) not ready; waiting…"),this.backoff.reset(),e.abrupt("return");case 4:n=this.processLocalActions(t,n),r=(new Date).getTime(),i=KT(n);try{for(i.s();!(a=i.n()).done;)o=a.value,this.recordActionAttemptOn(o,t,r)}catch(e){i.e(e)}finally{i.f()}return s=this.pendingPokeReason,this.pendingPokeReason=null,e.prev=10,e.next=13,this.request(t,r,s,n);case 13:u=e.sent,c=u.body.max_batch_size,!isNaN(parseInt(c))&&isFinite(c)&&c>0&&(this.maxBatchSize=c),this.subscriptionTtlTimer||(l=u.body.ttl_in_s,!isNaN(parseFloat(l))&&isFinite(l)&&l>0&&(this.subscriptionTtlTimer=setTimeout((function(){return v.onSubscriptionTtlElapsed()}),1e3*l))),"establish"===t&&(f=u.body.estimated_delivery_in_ms,!isNaN(parseFloat(f))&&isFinite(f)&&f>0?setTimeout((function(){return v.verifyPokeDelivery(r,f,n)}),f):FT("Invalid timeout: ".concat(f)),n.filter((function(e){return e.pendingCorrelationId===r})).forEach((function(e){return e.setSubscriptionState("response_in_flight")}))),this.backoff.reset(),e.next=26;break;case 21:e.prev=21,e.t0=e.catch(10),d=KT(n);try{for(d.s();!(p=d.n()).done;)h=p.value,this.recordActionFailureOn(h,t)}catch(e){d.e(e)}finally{d.f()}e.t0 instanceof QE.TransportUnavailableError?(UT("Twilsock connection (required for subscription) not ready (c:".concat(r,"); waiting…")),this.backoff.reset()):(UT("Failed an attempt to ".concat(t," subscriptions (c:").concat(r,"); retrying"),e.t0),this.persist());case 26:case"end":return e.stop()}}),e,this,[[10,21]])}))),function(e,n){return t.apply(this,arguments)})},{key:"verifyPokeDelivery",value:function(e,t,n){var r=this,i=this.latestPokeResponseArrivalTimestampByCorrelationId.get(e),a=i?(new Date).getTime()-i:t;a>=t?(n.filter((function(t){return t.pendingCorrelationId===e})).forEach((function(e){e.updatePending(null,null),e.retryCount++,r.persisted.delete(e.sid)})),this.persist(),this.latestPokeResponseArrivalTimestampByCorrelationId.delete(e)):setTimeout((function(){return r.verifyPokeDelivery(e,t,n)}),t-a)}},{key:"processLocalActions",value:function(e,t){return"cancel"===e?t.filter((function(e){return!e.rejectedWithError})):t}},{key:"recordActionAttemptOn",value:function(e,t,n){if(e.setSubscriptionState("request_in_flight"),"establish"===t)this.persisted.set(e.sid,e),e.updatePending(t,n);else{var r=this.persisted.get(e.sid);r&&r.updatePending(t,n)}}},{key:"recordActionFailureOn",value:function(e,t){e.setSubscriptionState("none"),e.updatePending(null,null),"establish"===t&&this.persisted.delete(e.sid)}},{key:"request",value:function(e,t,n,r){var i=r.map((function(t){return{object_sid:t.sid,object_type:t.type,last_event_id:"establish"===e?t.lastEventId:void 0,index_name:"establish"===e?t.indexName:void 0,query_string:"establish"===e?t.queryString:void 0}})),a=r.filter((function(e){return e.retryCount>0})).length;UT("Attempting '".concat(e,"' request (c:").concat(t,"):"),i);var o={event_protocol_version:4,action:e,correlation_id:t,retried_requests:a,ttl_in_s:-1,requests:i};return"ttl"===n&&(o.reason=n),this.services.network.post(this.services.config.subscriptionsUri,o)}},{key:"add",value:function(e,t){UT("Establishing intent to subscribe to ".concat(e));var n=this.subscriptions.get(e);n&&t&&n.lastEventId===t.lastEventId||(this.persisted.delete(e),this.subscriptions.set(e,new YT(t)),this.persist())}},{key:"remove",value:function(e){UT("Establishing intent to unsubscribe from ".concat(e)),this.subscriptions.delete(e)&&this.persist()}},{key:"acceptMessage",value:function(e,t){NT("Subscriptions received",e);var n=e.event_type,r=void 0!==e.events?e.events:[e.event],i=e.correlation_id;i&&this.latestPokeResponseArrivalTimestampByCorrelationId.set(i,(new Date).getTime());var a,o=KT(r);try{for(o.s();!(a=o.n()).done;){var s=a.value,u=void 0;switch(e.event_type){case"subscription_established":this.applySubscriptionEstablishedMessage(s,i);break;case"subscription_canceled":this.applySubscriptionCancelledMessage(s,i);break;case"subscription_failed":this.applySubscriptionFailedMessage(s,i);break;case(u=n.match(/^(?:map|list|document|stream|live_query)_/)||{}).input:var c=void 0;switch(u[0]){case"map_":c=s.map_sid;break;case"list_":c=s.list_sid;break;case"document_":c=s.document_sid;break;case"stream_":c=s.stream_sid;break;case"live_query_":c=s.query_id,t=!1,!0===e.strictly_ordered&&(t=!0);break;default:c=void 0}this.applyEventToSubscribedEntity(c,s,n,t);break;default:UT("Dropping unknown message type ".concat(n))}}}catch(e){o.e(e)}finally{o.f()}}},{key:"applySubscriptionEstablishedMessage",value:function(e,t){var n=e.object_sid,r=this.persisted.get(e.object_sid);r&&r.pendingCorrelationId===t?"interrupted"===e.replay_status?(UT("Event Replay for subscription to ".concat(n," (c:").concat(t,") interrupted; continuing eagerly.")),r.updatePending(null,null),this.persisted.delete(r.sid),this.backoff.reset()):"completed"===e.replay_status&&(UT("Event Replay for subscription to ".concat(n," (c:").concat(t,") completed. Subscription is ready.")),r.complete(e.last_event_id),this.persisted.set(e.object_sid,r),r.setSubscriptionState("established"),this.backoff.reset()):UT("Late message for ".concat(e.object_sid," (c:").concat(t,") dropped.")),this.persist()}},{key:"applySubscriptionCancelledMessage",value:function(e,t){var n=this.persisted.get(e.object_sid);n&&n.pendingCorrelationId===t?(n.updatePending(null,null),n.setSubscriptionState("none"),this.persisted.delete(e.object_sid)):UT("Late message for ".concat(e.object_sid," (c:").concat(t,") dropped.")),this.persist()}},{key:"applySubscriptionFailedMessage",value:function(e,t){var n=e.object_sid,r=this.subscriptions.get(n),i=this.persisted.get(n);r&&i?i.pendingCorrelationId===t&&(FT("Failed to subscribe on ".concat(i.sid),e.error),i.markAsFailed(e),i.setSubscriptionState("none")):!r&&i&&(this.persisted.delete(n),i.setSubscriptionState("none")),this.persist()}},{key:"applyEventToSubscribedEntity",value:function(e,t,n,r){if(e){var i;r=r||(i=this.persisted.get(e))&&i.isEstablished;var a=this.subscriptions.get(e);a?(t.type=n,a.update(t,r)):UT("Message dropped for SID '".concat(e,"', for which there is no subscription."))}}},{key:"onConnectionStateChanged",value:function(e){this.isConnected=e,e&&this.poke("reconnect")}},{key:"onSubscriptionTtlElapsed",value:function(){this.isConnected&&this.poke("ttl")}},{key:"poke",value:function(e){UT("Triggering event replay for all subscriptions, reason=".concat(e)),this.pendingPokeReason=e,this.subscriptionTtlTimer&&(clearTimeout(this.subscriptionTtlTimer),this.subscriptionTtlTimer=null);var t,n=[],r=KT(this.persisted.values());try{for(r.s();!(t=r.n()).done;){var i=t.value;i.reset(),i.rejectedWithError&&n.push(i)}}catch(e){r.e(e)}finally{r.f()}this.persisted.clear();for(var a=0,o=n;a<o.length;a++){var s=o[a];this.persisted.set(s.sid,s)}this.persist()}},{key:"shutdown",value:function(){this.backoff.reset(),this.subscriptions.clear()}}]),e}();function XT(e){if(e.body&&e.body.message)return e.body.message;switch(e.status){case 429:return"Throttled by server";case 404:return"Not found from server";default:return"Error from server"}}function ZT(e){return e.body?e.body.code:0}function eR(e){return 409===e.status?new CT(XT(e),e.status,ZT(e),e.body):e.status?new IT(XT(e),e.status,ZT(e)):e instanceof QE.TransportUnavailableError?e:new IT(e.message,0,0)}var tR=function(){function e(t,n,r){cT.default(this,e),this.clientInfo=t,this.config=n,this.transport=r}return lT.default(e,[{key:"createHeaders",value:function(){return{"Content-Type":"application/json","Twilio-Sync-Client-Info":JSON.stringify(this.clientInfo),"Twilio-Request-Id":"RQ"+wT.v4().replace(/-/g,"")}}},{key:"backoffConfig",value:function(){return Object.assign({min:4e3,max:6e4,maxAttemptsTime:9e4,randomness:.2},this.config.backoffConfig)}},{key:"executeWithRetry",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise((function(r,i){var a=[502,503,504];n&&a.push(429);var o=new tT.Retrier(t.backoffConfig());o.on("attempt",(function(){e().then((function(e){return o.succeeded(e)})).catch((function(e){if(a.includes(e.status)){var t=parseInt(e.headers?e.headers["Retry-After"]:null);o.failed(eR(e),isNaN(t)?null:1e3*t)}else"Twilsock disconnected"===e.message?o.failed(eR(e)):(o.removeAllListeners(),o.cancel(),i(eR(e)))}))})),o.on("succeeded",(function(e){r(e)})),o.on("cancelled",(function(e){return i(eR(e))})),o.on("failed",(function(e){return i(eR(e))})),o.start()}))}},{key:"get",value:function(e){var t=this,n=this.createHeaders();return UT("GET",e,"ID:",n["Twilio-Request-Id"]),this.executeWithRetry((function(){return t.transport.get(e,n,t.config.productId)}),!0)}},{key:"post",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=this.createHeaders();return null!=n&&(a["If-Match"]=n),UT("POST",e,"ID:",a["Twilio-Request-Id"]),this.executeWithRetry((function(){return r.transport.post(e,a,t,r.config.productId)}),i)}},{key:"put",value:function(e,t,n){var r=this,i=this.createHeaders();return null!=n&&(i["If-Match"]=n),UT("PUT",e,"ID:",i["Twilio-Request-Id"]),this.executeWithRetry((function(){return r.transport.put(e,i,t,r.config.productId)}),!1)}},{key:"delete",value:function(e){var t=this,n=this.createHeaders();return UT("DELETE",e,"ID:",n["Twilio-Request-Id"]),this.executeWithRetry((function(){return t.transport.delete(e,n,t.config.productId)}),!1)}}]),e}(),nR=function(){function e(t,n){cT.default(this,e),this.config=t,this.storageId=null;try{this.storage=n||sessionStorage}catch(e){}}return lT.default(e,[{key:"storageKey",value:function(e,t){return"".concat(this.storageId,"::").concat(e,"::").concat(t)}},{key:"isReady",get:function(){return this.config.sessionStorageEnabled&&!!this.storageId}},{key:"updateStorageId",value:function(e){this.storageId=e}},{key:"store",value:function(e,t,n){return this.isReady?this._store(this.storageKey(e,t),n):null}},{key:"read",value:function(e,t){return this.isReady?this._read(this.storageKey(e,t)):null}},{key:"remove",value:function(e,t,n){if(!this.isReady)return null;try{this.storage.removeItem(this.storageKey(e,t)),n&&this.storage.removeItem(this.storageKey(e,n))}catch(e){}}},{key:"update",value:function(e,t,n,r){if(!this.isReady)return null;this._apply(this.storageKey(e,t),r),n&&this._apply(this.storageKey(e,n),r)}},{key:"_store",value:function(e,t){try{this.storage.setItem(e,JSON.stringify(t))}catch(e){}}},{key:"_read",value:function(e){try{var t=this.storage.getItem(e);if(t)return JSON.parse(t)}catch(e){}return null}},{key:"_apply",value:function(e,t){var n=this._read(e);if(!n)return!1;this._store(e,Object.assign(n,t))}}]),e}();function rR(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return iR(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return iR(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function iR(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var aR=function(){function e(t,n){cT.default(this,e),this.services=t,this.removalHandler=n,this.subscriptionState="none",this._attachedListeners=new Map}return lT.default(e,[{key:"_advanceLastEventId",value:function(e,t){}},{key:"reportFailure",value:function(e){404===e.status?this.onRemoved(!1):this.broadcastEventToListeners("failure",e)}},{key:"_subscribe",value:function(){this.services.router._subscribe(this.sid,this)}},{key:"_unsubscribe",value:function(){this.services.router._unsubscribe(this.sid)}},{key:"_setSubscriptionState",value:function(e){this.subscriptionState=e,this.broadcastEventToListeners("_subscriptionStateChanged",e)}},{key:"close",value:function(){this._unsubscribe(),null!=this.removalHandler&&this.removalHandler(this.type,this.sid,this.uniqueName)}},{key:"attach",value:function(e){var t=e.listenerUuid;this._attachedListeners.get(t)||(this._attachedListeners.size||this._subscribe(),this._attachedListeners.set(t,e))}},{key:"detach",value:function(e){this._attachedListeners.delete(e),this._attachedListeners.size||this.close()}},{key:"broadcastEventToListeners",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i,a=rR(this._attachedListeners.values());try{for(a.s();!(i=a.n()).done;){var o=i.value;o.emit.apply(o,[e].concat(n))}}catch(e){a.e(e)}finally{a.f()}}}]),e}(),oR=function(){function e(t){cT.default(this,e),vT.default(this,"queuedRequests",[]),vT.default(this,"isRequestInFlight",!1),this.inputMergingFunction=t}return lT.default(e,[{key:"add",value:function(e,t){var n=this,r=new Promise((function(r,i){return n.queuedRequests.push({input:e,requestFunction:t,resolve:r,reject:i})}));return this.wakeupQueue(),r}},{key:"squashAndAdd",value:function(e,t){var n,r=this.queuedRequests;this.queuedRequests=[],r.length>0?(n=r.map((function(e){return e.input})).reduce(this.inputMergingFunction),n=this.inputMergingFunction(n,e)):n=e;var i=this.add(n,t);return r.forEach((function(e){return i.then(e.resolve,e.reject)})),i}},{key:"isEmpty",value:function(){return 0===this.queuedRequests.length&&!this.isRequestInFlight}},{key:"wakeupQueue",value:function(){var e=this;if(0!==this.queuedRequests.length&&!this.isRequestInFlight){var t=this.queuedRequests.shift();this.isRequestInFlight=!0,t.requestFunction(t.input).then(t.resolve,t.reject).then((function(t){e.isRequestInFlight=!1,e.wakeupQueue()}))}}}]),e}(),sR=function(){function e(t){cT.default(this,e),vT.default(this,"queueByNamespaceKey",new Map),this.inputReducer=t}var t,n,r;return lT.default(e,[{key:"add",value:(r=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.invokeQueueMethod(t,(function(e){return e.add(n,r)})));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"squashAndAdd",value:(n=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.invokeQueueMethod(t,(function(e){return e.squashAndAdd(n,r)})));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"invokeQueueMethod",value:(t=uT.default(yT.default.mark((function e(t,n){var r,i;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.queueByNamespaceKey.has(t)||this.queueByNamespaceKey.set(t,new oR(this.inputReducer)),r=this.queueByNamespaceKey.get(t),i=n(r),this.queueByNamespaceKey.get(t).isEmpty()&&this.queueByNamespaceKey.delete(t),e.abrupt("return",i);case 5:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),e}();function uR(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}var cR=function(e){dT.default(n,e);var t=uR(n);function n(){var e;return cT.default(this,n),(e=t.call(this)).closed=!1,e.uuid=nT.v4(),e}return lT.default(n,[{key:"listenerUuid",get:function(){return this.uuid}},{key:"close",value:function(){this.removeAllListeners(),this.closed=!0}},{key:"ensureNotClosed",value:function(){if(this.closed)throw new Error("Invalid operation on closed object")}}]),n}(iT.ReplayEventEmitter);function lR(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}var fR=function(e){dT.default(f,e);var t,n,r,i,a,o,s,u,c,l=lR(f);function f(e,t,n){var r;cT.default(this,f),r=l.call(this,e,n),vT.default(fT.default(r),"isDeleted",!1);return r.updateMergingQueue=new oR((function(e,t){return"number"==typeof t.ttl?{ttl:t.ttl}:e})),r.descriptor=t,r.descriptor.data=r.descriptor.data||{},r.descriptor.date_updated=new Date(r.descriptor.date_updated),r}return lT.default(f,[{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:"indexName",get:function(){}},{key:"queryString",get:function(){}},{key:"sid",get:function(){return this.descriptor.sid}},{key:"data",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:"_update",value:function(e){switch(e.date_created=new Date(e.date_created),e.type){case"document_updated":if(e.id<=this.lastEventId){NT("Document update skipped, current:",this.lastEventId,", remote:",e.id);break}var t=void 0!==this.descriptor.data?OT(this.descriptor.data):null;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.broadcastEventToListeners("updated",{data:e.document_data,isLocal:!1,previousData:t}),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});break;case"document_removed":this.onRemoved(!1)}}},{key:"set",value:(c=uT.default(yT.default.mark((function e(t,n){var r,i=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n||{},e.abrupt("return",this.updateMergingQueue.squashAndAdd(r,(function(e){return i._setUnconditionally(t,e.ttl)})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return c.apply(this,arguments)})},{key:"mutate",value:(u=uT.default(yT.default.mark((function e(t,n){var r,i=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n||{},e.abrupt("return",this.updateMergingQueue.add(r,(function(e){return i._setWithIfMatch(t,e.ttl)})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return u.apply(this,arguments)})},{key:"update",value:(s=uT.default(yT.default.mark((function e(t,n){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mutate((function(e){return Object.assign(e,t)}),n));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return s.apply(this,arguments)})},{key:"setTtl",value:(o=uT.default(yT.default.mark((function e(t){var n;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._postUpdateToServer({ttl:t});case 2:n=e.sent,this.descriptor.date_expires=n.date_expires;case 4:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"_setUnconditionally",value:(a=uT.default(yT.default.mark((function e(t,n){var r;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._postUpdateToServer({data:t,revision:void 0,ttl:n});case 2:return r=e.sent,this._handleSuccessfulUpdateResult(r),e.abrupt("return",this.descriptor.data);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"_setWithIfMatch",value:(i=uT.default(yT.default.mark((function e(t,n){var r,i,a;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=t(OT(this.descriptor.data)))){e.next=22;break}return i=this.revision,e.prev=3,e.next=6,this._postUpdateToServer({data:r,revision:i,ttl:n});case 6:return a=e.sent,this._handleSuccessfulUpdateResult(a),e.abrupt("return",this.descriptor.data);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(t));case 19:throw e.t0;case 20:e.next=23;break;case 22:return e.abrupt("return",this.descriptor.data);case 23:case"end":return e.stop()}}),e,this,[[3,11]])}))),function(e,t){return i.apply(this,arguments)})},{key:"_handleSuccessfulUpdateResult",value:function(e){if(!(e.last_event_id<=this.descriptor.last_event_id)){var t=void 0!==this.descriptor.data?OT(this.descriptor.data):null;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.broadcastEventToListeners("updated",{data:this.descriptor.data,isLocal:!0,previousData:t})}}},{key:"_postUpdateToServer",value:(r=uT.default(yT.default.mark((function e(t){var n,r,i;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isDeleted){e.next=17;break}return n={data:t.data},void 0!==t.ttl&&(n.ttl=t.ttl),r=t.revision,e.prev=4,e.next=7,this.services.network.post(this.uri,n,r);case 7:return i=e.sent,e.abrupt("return",{revision:i.body.revision,data:t.data,last_event_id:i.body.last_event_id,date_updated:i.body.date_updated,date_expires:i.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",Promise.reject(new IT("The Document has been removed",404,54100)));case 18:case"end":return e.stop()}}),e,this,[[4,11]])}))),function(e){return r.apply(this,arguments)})},{key:"_softSync",value:(n=uT.default(yT.default.mark((function e(){var t=this;return yT.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 n={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 t._update(n),t})).catch((function(e){404===e.status?t.onRemoved(!1):FT("Can't get updates for ".concat(t.sid,":"),e)})));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"onRemoved",value:function(e){if(!this.isDeleted){var t=void 0!==this.descriptor.data?OT(this.descriptor.data):null;this.isDeleted=!0,this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e,previousData:t})}}},{key:"removeDocument",value:(t=uT.default(yT.default.mark((function e(){return yT.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",Promise.reject(new IT("The Document has been removed",404,54100)));case 7:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}],[{key:"type",get:function(){return"document"}}]),f}(aR),dR=function(e){dT.default(s,e);var t,n,r,i,a,o=lR(s);function s(e){var t;return cT.default(this,s),(t=o.call(this)).syncDocumentImpl=e,t.syncDocumentImpl.attach(fT.default(t)),t}return lT.default(s,[{key:"uri",get:function(){return this.syncDocumentImpl.uri}},{key:"revision",get:function(){return this.syncDocumentImpl.revision}},{key:"lastEventId",get:function(){return this.syncDocumentImpl.lastEventId}},{key:"dateExpires",get:function(){return this.syncDocumentImpl.dateExpires}},{key:"type",get:function(){return fR.type}},{key:"sid",get:function(){return this.syncDocumentImpl.sid}},{key:"data",get:function(){return this.syncDocumentImpl.data}},{key:"dateUpdated",get:function(){return this.syncDocumentImpl.dateUpdated}},{key:"uniqueName",get:function(){return this.syncDocumentImpl.uniqueName}},{key:"set",value:(a=uT.default(yT.default.mark((function e(t,n){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncDocumentImpl.set(t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"mutate",value:(i=uT.default(yT.default.mark((function e(t,n){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncDocumentImpl.mutate(t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"update",value:(r=uT.default(yT.default.mark((function e(t,n){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncDocumentImpl.update(t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"setTtl",value:(n=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncDocumentImpl.setTtl(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"removeDocument",value:(t=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncDocumentImpl.removeDocument());case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"close",value:function(){xT.default(hT.default(s.prototype),"close",this).call(this),this.syncDocumentImpl.detach(this.listenerUuid)}}],[{key:"type",get:function(){return fR.type}}]),s}(cR);vT.default(dR,"removed","removed"),vT.default(dR,"updated","updated"),ST([YE.validateTypesAsync(YE.pureObject,["undefined",YE.objectSchema("document metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Object,Object]),ET("design:returntype",Promise)],dR.prototype,"set",null),ST([YE.validateTypesAsync("function",["undefined",YE.objectSchema("document metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Function,Object]),ET("design:returntype",Promise)],dR.prototype,"mutate",null),ST([YE.validateTypesAsync(YE.pureObject,["undefined",YE.objectSchema("document metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Object,Object]),ET("design:returntype",Promise)],dR.prototype,"update",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number]),ET("design:returntype",Promise)],dR.prototype,"setTtl",null);var pR=function(){function e(t){cT.default(this,e),this.descriptor=t}return lT.default(e,[{key:"uri",get:function(){return this.descriptor.uri}},{key:"revision",get:function(){return this.descriptor.revision}},{key:"lastEventId",get:function(){return this.descriptor.lastEventId}},{key:"dateUpdated",get:function(){return this.descriptor.dateUpdated}},{key:"dateExpires",get:function(){return this.descriptor.dateExpires}},{key:"index",get:function(){return this.descriptor.index}},{key:"data",get:function(){return this.descriptor.data}},{key:"update",value:function(e,t,n,r){return this.descriptor.lastEventId=e,this.descriptor.revision=t,this.descriptor.data=n,this.descriptor.dateUpdated=r,this}},{key:"updateDateExpires",value:function(e){this.descriptor.dateExpires=e}}]),e}(),Paginator=function(){function Paginator(e,t,n,r){cT.default(this,Paginator),this.prevToken=n,this.nextToken=r,this.items=e,this.source=t}var e,t;return lT.default(Paginator,[{key:"hasNextPage",get:function(){return!!this.nextToken}},{key:"hasPrevPage",get:function(){return!!this.prevToken}},{key:"nextPage",value:(t=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.hasNextPage){e.next=2;break}throw new Error("No next page");case 2:return e.abrupt("return",this.source(this.nextToken));case 3:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"prevPage",value:(e=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.hasPrevPage){e.next=2;break}throw new Error("No previous page");case 2:return e.abrupt("return",this.source(this.prevToken));case 3:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})}]),Paginator}();function hR(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return vR(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vR(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function vR(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var yR=function(){function e(t,n){cT.default(this,e),this.balanceFactor=0,this.key=t,this.value=n,this.parent=null,this.left=null,this.right=null}return lT.default(e,[{key:"isRoot",get:function(){return null===this.parent}},{key:"isLeaf",get:function(){return null===this.left&&null===this.right}},{key:"isLeftChild",get:function(){return this.parent.left===this}},{key:"update",value:function(e){this.value=e}},{key:"replace",value:function(e,t){e&&(this.left===t?this.left=t:this.right===t&&(this.right=t))}}]),e}(),mR=function(e){function t(e,n){cT.default(this,t),this.isLessThan=e||function(e,t){return e<t},this.isEqual=n||function(e,t){return e===t},this.root=null,this.count=null}return lT.default(t,[{key:"size",get:function(){return this.count}},{key:"clear",value:function(){this.root=null,this.count=0}},{key:"set",value:function(e,t){var n=this.getNode(e);n?n.update(t):this.insert(e,t)}},{key:"insert",value:function(e,t){var n=new yR(e,t);if(this.count++,this.root){for(var r=this.root;;)if(this.isLessThan(e,r.key)){if(!r.left){r.left=n;break}r=r.left}else{if(!r.right){r.right=n;break}r=r.right}for(n.parent=r,r=n;r.parent;){var i=r.parent,a=i.balanceFactor;if(r.isLeftChild?i.balanceFactor++:i.balanceFactor--,Math.abs(i.balanceFactor)<Math.abs(a))break;if(i.balanceFactor<-1||i.balanceFactor>1){this.rebalance(i);break}r=i}}else this.root=n}},{key:"get",value:function(e){for(var t=this.root;t;){if(this.isEqual(e,t.key))return t.value;t=this.isLessThan(e,t.key)?t.left:t.right}return null}},{key:"delete",value:function(e){var t=this.getNode(e);if(!t||t.key!==e)return null;var n=t.parent,r=t.left,i=t.right;if(!!r!=!!i){var a=r||i;n||a?n&&!a?this.root=a:(n.replace(t,null),this.rebalance(n)):this.root=null}else{for(var o=t.left;o.right;)o=o.right;if(t.left===o)t.isRoot?(this.root=o,o.parent=null):(t.isLeftChild?t.parent.left=o:t.parent.right=o,o.parent=t.parent),o.right=t.right,o.right.parent=o,o.balanceFactor=t.balanceFactor,t={parent:o,isLeftChild:!0};else{var s=o.parent,u=o.left;s.right=u,u&&(u.parent=s),t.isRoot?(this.root=o,o.parent=null):(t.isLeftChild?t.parent.left=o:t.parent.right=o,o.parent=t.parent),o.right=t.right,o.right.parent=o,o.left=t.left,o.left.parent=o,o.balanceFactor=t.balanceFactor,t={parent:s,isLeftChild:!1}}}for(this.count--;t.parent;){var c=t.parent,l=c.balanceFactor;if(t.isLeftChild?c.balanceFactor-=1:c.balanceFactor+=1,Math.abs(c.balanceFactor)>Math.abs(l)){if(!(c.balanceFactor<-1||c.balanceFactor>1))break;if(this.rebalance(c),0!==c.parent.balanceFactor)break;t=c.parent}else t=c}return null}},{key:"getNode",value:function(e){for(var t=this.root;t;){if(this.isEqual(e,t.key))return t;t=this.isLessThan(e,t.key)?t.left:t.right}return null}},{key:"rebalance",value:function(e){e.balanceFactor<0?e.right.balanceFactor>0?(this.rotateRight(e.right),this.rotateLeft(e)):this.rotateLeft(e):e.balanceFactor>0&&(e.left.balanceFactor<0?(this.rotateLeft(e.left),this.rotateRight(e)):this.rotateRight(e))}},{key:"rotateLeft",value:function(e){var t=e.right;e.right=t.left,null!==t.left&&(t.left.parent=e),t.parent=e.parent,null===t.parent?this.root=t:e.isLeftChild?t.parent.left=t:t.parent.right=t,t.left=e,e.parent=t,e.balanceFactor=e.balanceFactor+1-Math.min(t.balanceFactor,0),t.balanceFactor=t.balanceFactor+1-Math.max(e.balanceFactor,0)}},{key:"rotateRight",value:function(e){var t=e.left;e.left=t.right,null!==t.right&&(t.right.parent=e),t.parent=e.parent,null===t.parent?this.root=t:e.isLeftChild?t.parent.left=t:t.parent.right=t,t.right=e,e.parent=t,e.balanceFactor=e.balanceFactor-1-Math.min(t.balanceFactor,0),t.balanceFactor=t.balanceFactor-1-Math.max(e.balanceFactor,0)}},{key:e,value:yT.default.mark((function e(){var t,n,r;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=hR(this.getIterator()),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return r=n.value,e.next=7,r;case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))},{key:"getIterator",value:yT.default.mark((function e(){var t,n,r,i=arguments;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=i.length>0&&void 0!==i[0]?i[0]:null,n=this.root;case 2:if(!n){e.next=8;break}if(!this.isEqual(t,n.key)&&(null!==t||n.left)){e.next=5;break}return e.abrupt("break",8);case 5:n=this.isLessThan(t,n.key)||null===t?n.left:n.right,e.next=2;break;case 8:if(n){e.next=10;break}return e.abrupt("return",null);case 10:r=!0;case 11:if(!r){e.next=29;break}return e.next=14,[n.key,n.value];case 14:if(r=!1,!n.right){e.next=21;break}for(n=n.right;n.left;)n=n.left;r=!0,e.next=27;break;case 21:if(!n.parent){e.next=26;break}r=n.parent.left===n,n=n.parent,e.next=27;break;case 26:return e.abrupt("break",37);case 27:e.next=35;break;case 29:if(!n.parent){e.next=34;break}r=n.parent.left===n,n=n.parent,e.next=35;break;case 34:return e.abrupt("break",37);case 35:e.next=11;break;case 37:return e.abrupt("return",null);case 38:case"end":return e.stop()}}),e,this)}))},{key:"getReverseIterator",value:yT.default.mark((function e(){var t,n,r,i=arguments;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=i.length>0&&void 0!==i[0]?i[0]:null,n=this.root;case 2:if(!n){e.next=8;break}if(!this.isEqual(t,n.key)&&(null!==t||n.right)){e.next=5;break}return e.abrupt("break",8);case 5:n=this.isLessThan(t,n.key)&&null!==t?n.left:n.right,e.next=2;break;case 8:if(n){e.next=10;break}return e.abrupt("return",null);case 10:r=!0;case 11:if(!r){e.next=29;break}return e.next=14,[n.key,n.value];case 14:if(r=!1,!n.left){e.next=21;break}for(n=n.left;n.right;)n=n.right;r=!0,e.next=27;break;case 21:if(!n.parent){e.next=26;break}r=n.parent.right===n,n=n.parent,e.next=27;break;case 26:return e.abrupt("break",37);case 27:e.next=35;break;case 29:if(!n.parent){e.next=34;break}r=n.parent.right===n,n=n.parent,e.next=35;break;case 34:return e.abrupt("break",37);case 35:e.next=11;break;case 37:return e.abrupt("return",null);case 38:case"end":return e.stop()}}),e,this)}))}]),t}(Symbol.iterator);function gR(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return bR(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bR(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function bR(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var kR=function(){function e(t,n){cT.default(this,e),this.value=t,this.revision=n||0}return lT.default(e,[{key:"isValid",get:function(){return!0}}]),e}(),wR=function(){function e(t){cT.default(this,e),this.revision=t}return lT.default(e,[{key:"isValid",get:function(){return!1}}]),e}(),xR=function(){function e(){cT.default(this,e),this.items=new mR}return lT.default(e,[{key:"store",value:function(e,t,n){var r=this.items.get(e);return r&&r.revision>n?r.isValid?r.value:null:(this.items.set(e,new kR(t,n)),t)}},{key:"delete",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.items.get(e);(!r||r.revision<t||r&&!0===n)&&this.items.set(e,new wR(t))}},{key:"isKnown",value:function(e,t){var n=this.items.get(e);return n&&n.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}},{key:"forEach",value:function(e){if(this.items){var t,n=gR(this.items);try{for(n.s();!(t=n.n()).done;){var r=kT.default(t.value,2),i=r[0],a=r[1];a.isValid&&e(i,a.value)}}catch(e){n.e(e)}finally{n.f()}}}}]),e}();function _R(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}var SR=function(e){dT.default(y,e);var t,n,r,i,a,o,s,u,c,l,f,d,p,h,v=_R(y);function y(e,t,n){var r;cT.default(this,y);return(r=v.call(this,e,n)).updateMergingQueue=new sR((function(e,t){return"number"==typeof t.ttl?{ttl:t.ttl}:e})),r.cache=new xR,r.descriptor=t,r.descriptor.date_updated=new Date(r.descriptor.date_updated),r}return lT.default(y,[{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:"indexName",get:function(){}},{key:"queryString",get:function(){}},{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:"_addOrUpdateItemOnServer",value:(h=uT.default(yT.default.mark((function e(t,n,r,i){var a,o;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a={data:n},void 0!==i&&(a.ttl=i),e.next=4,this.services.network.post(t,a,r);case 4:return(o=e.sent).body.data=n,o.body.date_updated=new Date(o.body.date_updated),e.abrupt("return",o.body);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,n,r){return h.apply(this,arguments)})},{key:"push",value:(p=uT.default(yT.default.mark((function e(t,n){var r,i,a;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(n||{}).ttl,e.next=3,this._addOrUpdateItemOnServer(this.links.items,t,void 0,r);case 3:return i=e.sent,a=Number(i.index),this._handleItemMutated(a,i.url,i.last_event_id,i.revision,t,i.date_updated,i.date_expires,!0,!1),e.abrupt("return",this.cache.get(a));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t){return p.apply(this,arguments)})},{key:"set",value:(d=uT.default(yT.default.mark((function e(t,n,r){var i,a=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r||{},e.abrupt("return",this.updateMergingQueue.squashAndAdd(t,i,(function(e){return a._updateItemUnconditionally(t,n,e.ttl)})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return d.apply(this,arguments)})},{key:"_updateItemUnconditionally",value:(f=uT.default(yT.default.mark((function e(t,n,r){var i,a;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(t);case 2:return i=e.sent,e.next=5,this._addOrUpdateItemOnServer(i.uri,n,void 0,r);case 5:return a=e.sent,this._handleItemMutated(t,a.url,a.last_event_id,a.revision,a.data,a.date_updated,a.date_expires,!1,!1),e.abrupt("return",this.cache.get(t));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return f.apply(this,arguments)})},{key:"_updateItemWithIfMatch",value:(l=uT.default(yT.default.mark((function e(t,n,r){var i,a,o,s;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(t);case 2:if(i=e.sent,!(a=n(OT(i.data)))){e.next=25;break}return o=i.revision,e.prev=6,e.next=9,this._addOrUpdateItemOnServer(i.uri,a,o,r);case 9:return s=e.sent,this._handleItemMutated(t,s.url,s.last_event_id,s.revision,s.data,s.date_updated,s.date_expires,!1,!1),e.abrupt("return",this.cache.get(t));case 14:if(e.prev=14,e.t0=e.catch(6),412!==e.t0.status){e.next=22;break}return e.next=19,this._getItemFromServer(t);case 19:return e.abrupt("return",this._updateItemWithIfMatch(t,n,r));case 22:throw e.t0;case 23:e.next=26;break;case 25:return e.abrupt("return",i);case 26:case"end":return e.stop()}}),e,this,[[6,14]])}))),function(e,t,n){return l.apply(this,arguments)})},{key:"mutate",value:(c=uT.default(yT.default.mark((function e(t,n,r){var i,a=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r||{},e.abrupt("return",this.updateMergingQueue.add(t,i,(function(e){return a._updateItemWithIfMatch(t,n,e.ttl)})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return c.apply(this,arguments)})},{key:"update",value:(u=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mutate(t,(function(e){return Object.assign(e,n)}),r));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return u.apply(this,arguments)})},{key:"remove",value:(s=uT.default(yT.default.mark((function e(t){var n,r,i;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(t);case 2:return n=e.sent,r=OT(n.data),e.next=6,this.services.network.delete(n.uri);case 6:i=e.sent,this._handleItemRemoved(t,i.body.last_event_id,r,new Date(i.body.date_updated),!1);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"get",value:function(){var e=uT.default(yT.default.mark((function e(t){var n;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=this.cache.get(t))){e.next=5;break}return e.abrupt("return",n);case 5:return e.abrupt("return",this._getItemFromServer(t));case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"_getItemFromServer",value:(o=uT.default(yT.default.mark((function e(t){var n;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.queryItems({index:t});case 2:if(!((n=e.sent).items.length<1)){e.next=7;break}throw new IT("No item with index ".concat(t," found"),404,54151);case 7:return e.abrupt("return",n.items[0]);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"queryItems",value:function(){var e=uT.default(yT.default.mark((function e(t){var n,r,i,a,o=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=t||{},n=new TT(this.links.items).queryParam("From",t.from).queryParam("PageSize",t.limit).queryParam("Index",t.index).queryParam("PageToken",t.pageToken).queryParam("Order",t.order).build(),e.next=4,this.services.network.get(n);case 4:return r=e.sent,i=r.body.items.map((function(e){return e.date_updated=new Date(e.date_updated),o.cache.get(e.index)?o._handleItemMutated(e.index,e.url,e.last_event_id,e.revision,e.data,e.date_updated,e.date_expires,!1,!0):o.cache.store(Number(e.index),new pR({index:Number(e.index),uri:e.url,revision:e.revision,lastEventId:e.last_event_id,dateUpdated:e.date_updated,dateExpires:e.date_expires,data:e.data}),e.last_event_id),o.cache.get(e.index)})),a=r.body.meta,e.abrupt("return",new Paginator(i,(function(e){return o.queryItems({pageToken:e})}),a.previous_token,a.next_token));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"getItems",value:(a=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return PT((t=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)}))),function(e){return a.apply(this,arguments)})},{key:"getContext",value:(i=uT.default(yT.default.mark((function e(){var t;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.context){e.next=5;break}return e.next=3,this.services.network.get(this.links.context);case 3:t=e.sent,this._updateContextIfRequired(t.body.data,t.body.last_event_id);case 5:return e.abrupt("return",this.context);case 6:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"setTtl",value:(r=uT.default(yT.default.mark((function e(t){var n,r;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n={ttl:t},e.next=4,this.services.network.post(this.uri,n);case 4:r=e.sent,this.descriptor.date_expires=r.body.date_expires,e.next=12;break;case 8:throw e.prev=8,e.t0=e.catch(0),404===e.t0.status&&this.onRemoved(!1),e.t0;case 12:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e){return r.apply(this,arguments)})},{key:"setItemTtl",value:(n=uT.default(yT.default.mark((function e(t,n){var r,i,a;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(t);case 2:return r=e.sent,i={ttl:n},e.next=6,this.services.network.post(r.uri,i);case 6:a=e.sent,r.updateDateExpires(a.body.date_expires);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"removeList",value:(t=uT.default(yT.default.mark((function e(){return yT.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)}))),function(){return t.apply(this,arguments)})},{key:"onRemoved",value:function(e){this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e})}},{key:"shouldIgnoreEvent",value:function(e,t){return this.cache.isKnown(e,t)}},{key:"_update",value:function(e,t){var n=Number(e.item_index);switch(e.date_created=new Date(e.date_created),e.type){case"list_item_added":case"list_item_updated":this._handleItemMutated(n,e.item_url,e.id,e.item_revision,e.item_data,e.date_created,void 0,"list_item_added"===e.type,!0);break;case"list_item_removed":this._handleItemRemoved(n,e.id,e.item_data,e.date_created,!0);break;case"list_context_updated":this._handleContextUpdate(e.context_data,e.id,e.date_created);break;case"list_removed":this.onRemoved(!1)}t&&this._advanceLastEventId(e.id,e.list_revision)}},{key:"_advanceLastEventId",value:function(e,t){this.lastEventId<e&&(this.descriptor.last_event_id=e,t&&(this.descriptor.revision=t))}},{key:"_updateRootDateUpdated",value:function(e){(!this.descriptor.date_updated||e.getTime()>this.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,n,r,i,a,o,s,u){if(this.shouldIgnoreEvent(e,n))NT("Item ".concat(e," update skipped, current: ").concat(this.lastEventId,", remote: ").concat(n));else{this._updateRootDateUpdated(a);var c=this.cache.get(e);if(!c){var l=new pR({index:e,uri:t,lastEventId:n,revision:r,data:i,dateUpdated:a,dateExpires:o});return this.cache.store(e,l,n),void this.emitItemMutationEvent(l,u,s)}var f=OT(c.data);c.update(n,r,i,a),this.cache.store(e,c,n),void 0!==o&&c.updateDateExpires(o),this.emitItemMutationEvent(c,u,!1,f)}}},{key:"emitItemMutationEvent",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=n?"itemAdded":"itemUpdated",a={item:e,isLocal:!t};n||(a.previousItemData=r),this.broadcastEventToListeners(i,a)}},{key:"_handleItemRemoved",value:function(e,t,n,r,i){this._updateRootDateUpdated(r),this.cache.delete(e,t),this.broadcastEventToListeners("itemRemoved",{index:e,isLocal:!i,previousItemData:n})}},{key:"_handleContextUpdate",value:function(e,t,n){this._updateRootDateUpdated(n),this._updateContextIfRequired(e,t)&&this.broadcastEventToListeners("contextUpdated",{context:e,isLocal:!1})}},{key:"_updateContextIfRequired",value:function(e,t){return!this.contextEventId||t>this.contextEventId?(this.context=e,this.contextEventId=t,!0):(NT("Context update skipped, current:",this.lastEventId,", remote:",t),!1)}}],[{key:"type",get:function(){return"list"}}]),y}(aR),ER=function(e){dT.default(p,e);var t,n,r,i,a,o,s,u,c,l,f,d=_R(p);function p(e){var t;return cT.default(this,p),(t=d.call(this)).syncListImpl=e,t.syncListImpl.attach(fT.default(t)),t}return lT.default(p,[{key:"uri",get:function(){return this.syncListImpl.uri}},{key:"revision",get:function(){return this.syncListImpl.revision}},{key:"lastEventId",get:function(){return this.syncListImpl.lastEventId}},{key:"links",get:function(){return this.syncListImpl.links}},{key:"dateExpires",get:function(){return this.syncListImpl.dateExpires}},{key:"type",get:function(){return SR.type}},{key:"sid",get:function(){return this.syncListImpl.sid}},{key:"uniqueName",get:function(){return this.syncListImpl.uniqueName}},{key:"dateUpdated",get:function(){return this.syncListImpl.dateUpdated}},{key:"push",value:(f=uT.default(yT.default.mark((function e(t,n){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.push(t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return f.apply(this,arguments)})},{key:"set",value:(l=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.set(t,n,r));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return l.apply(this,arguments)})},{key:"mutate",value:(c=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.mutate(t,n,r));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return c.apply(this,arguments)})},{key:"update",value:(u=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.update(t,n,r));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return u.apply(this,arguments)})},{key:"remove",value:(s=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.remove(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"get",value:(o=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.get(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"getContext",value:(a=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.getContext());case 2:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getItems",value:(i=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.getItems(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"setTtl",value:(r=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.setTtl(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"setItemTtl",value:(n=uT.default(yT.default.mark((function e(t,n){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.setItemTtl(t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"removeList",value:(t=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncListImpl.removeList());case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"close",value:function(){xT.default(hT.default(p.prototype),"close",this).call(this),this.syncListImpl.detach(this.listenerUuid)}}],[{key:"type",get:function(){return SR.type}}]),p}(cR);vT.default(ER,"itemAdded","itemAdded"),vT.default(ER,"itemUpdated","itemUpdated"),vT.default(ER,"itemRemoved","itemRemoved"),vT.default(ER,"removed","removed"),ST([YE.validateTypesAsync(YE.pureObject,["undefined",YE.objectSchema("item metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Object,Object]),ET("design:returntype",Promise)],ER.prototype,"push",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger,YE.pureObject,["undefined",YE.objectSchema("item metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Number,Object,Object]),ET("design:returntype",Promise)],ER.prototype,"set",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger,"function",["undefined",YE.objectSchema("item metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Number,Function,Object]),ET("design:returntype",Promise)],ER.prototype,"mutate",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger,YE.pureObject,["undefined",YE.objectSchema("item metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Number,Object,Object]),ET("design:returntype",Promise)],ER.prototype,"update",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number]),ET("design:returntype",Promise)],ER.prototype,"remove",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number]),ET("design:returntype",Promise)],ER.prototype,"get",null),ST([YE.validateTypesAsync(["undefined",YE.objectSchema("query options",{from:[YE.nonNegativeInteger,"undefined"],pageSize:[YE.custom((function(e){return[AT(e),"a positive integer"]})),"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],ER.prototype,"getItems",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number]),ET("design:returntype",Promise)],ER.prototype,"setTtl",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger,YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number,Number]),ET("design:returntype",Promise)],ER.prototype,"setItemTtl",null);var TR=function(){function e(t){cT.default(this,e),this.descriptor=t}return lT.default(e,[{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:"key",get:function(){return this.descriptor.key}},{key:"data",get:function(){return this.descriptor.data}},{key:"dateUpdated",get:function(){return this.descriptor.date_updated}},{key:"update",value:function(e,t,n,r){return this.descriptor.last_event_id=e,this.descriptor.revision=t,this.descriptor.data=n,this.descriptor.date_updated=r,this}},{key:"updateDateExpires",value:function(e){this.descriptor.date_expires=e}}]),e}();function RR(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}var IR=function(e){dT.default(h,e);var t,n,r,i,a,o,s,u,c,l,f,d,p=RR(h);function h(e,t,n){var r;cT.default(this,h);return(r=p.call(this,e,n)).updateMergingQueue=new sR((function(e,t){return"number"==typeof t.ttl?{ttl:t.ttl}:e})),r.cache=new xR,r.descriptor=t,r.descriptor.date_updated=new Date(r.descriptor.date_updated),t.items&&t.items.forEach((function(e){e.date_updated=new Date(e.date_updated),r.cache.store(e.key,new TR(e),e.last_event_id)})),r}return lT.default(h,[{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:"indexName",get:function(){}},{key:"queryString",get:function(){}},{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:"set",value:(d=uT.default(yT.default.mark((function e(t,n,r){var i,a=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r||{},e.abrupt("return",this.updateMergingQueue.squashAndAdd(t,i,(function(e){return a._putItemUnconditionally(t,n,e.ttl)})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return d.apply(this,arguments)})},{key:"get",value:function(){var e=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=t){e.next=2;break}throw new IT("SyncMapItem key may not be empty",400,54209);case 2:if(!this.cache.has(t)){e.next=6;break}return e.abrupt("return",this.cache.get(t));case 6:return e.abrupt("return",this._getItemFromServer(t));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"_getItemFromServer",value:(f=uT.default(yT.default.mark((function e(t){var n;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.queryItems({key:t});case 2:if(!((n=e.sent).items.length<1)){e.next=7;break}throw new IT("The specified Map Item does not exist",404,54201);case 7:return e.abrupt("return",n.items[0]);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"mutate",value:(l=uT.default(yT.default.mark((function e(t,n,r){var i,a=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r||{},e.abrupt("return",this.updateMergingQueue.add(t,i,(function(e){return a._putItemWithIfMatch(t,n,e.ttl)})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return l.apply(this,arguments)})},{key:"update",value:(c=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mutate(t,(function(e){return Object.assign(e,n)}),r));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return c.apply(this,arguments)})},{key:"_putItemUnconditionally",value:(u=uT.default(yT.default.mark((function e(t,n,r){var i,a;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._putItemToServer(t,n,void 0,r);case 2:return i=e.sent,a=i.item,this._handleItemMutated(a.key,a.url,a.last_event_id,a.revision,a.data,a.date_updated,a.date_expires,i.added,!1),e.abrupt("return",this.cache.get(a.key));case 6:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return u.apply(this,arguments)})},{key:"_putItemWithIfMatch",value:(s=uT.default(yT.default.mark((function e(t,n,r){var i,a,o,s,u;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(t).catch((function(e){if(404===e.status)return new TR({key:t,data:{},last_event_id:-1,revision:"-1",url:null,date_updated:null,date_expires:null});throw e}));case 2:if(i=e.sent,!(a=n(OT(i.data)))){e.next=26;break}return o=i.revision,e.prev=6,e.next=9,this._putItemToServer(t,a,o,r);case 9:return s=e.sent,u=s.item,this._handleItemMutated(u.key,u.url,u.last_event_id,u.revision,u.data,u.date_updated,u.date_expires,s.added,!1),e.abrupt("return",this.cache.get(u.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(t);case 20:return e.abrupt("return",this._putItemWithIfMatch(t,n,r));case 23:throw e.t0;case 24:e.next=27;break;case 26:return e.abrupt("return",i);case 27:case"end":return e.stop()}}),e,this,[[6,15]])}))),function(e,t,n){return s.apply(this,arguments)})},{key:"_putItemToServer",value:(o=uT.default(yT.default.mark((function e(t,n,r,i){var a,o,s,u,c;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new TT(this.links.items).pathSegment(t).build(),o={data:n},void 0!==i&&(o.ttl=i),e.prev=3,e.next=6,this.services.network.put(a,o,r);case 6:return s=e.sent,(u=s.body).data=n,u.date_updated=new Date(u.date_updated),c=201===s.status.code,e.abrupt("return",{added:c,item:u});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]])}))),function(e,t,n,r){return o.apply(this,arguments)})},{key:"remove",value:(a=uT.default(yT.default.mark((function e(t){var n,r,i;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(t);case 2:return n=e.sent,r=OT(n.data),e.next=6,this.services.network.delete(n.uri);case 6:i=e.sent,this._handleItemRemoved(t,i.body.last_event_id,r,new Date(i.body.date_updated),!1);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"queryItems",value:function(){var e=uT.default(yT.default.mark((function e(t){var n,r,i,a,o=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=t||{},n=new TT(this.links.items).queryParam("From",t.from).queryParam("PageSize",t.limit).queryParam("Key",t.key).queryParam("PageToken",t.pageToken).queryParam("Order",t.order).build(),e.next=4,this.services.network.get(n);case 4:return r=e.sent,i=r.body.items.map((function(e){return e.date_updated=new Date(e.date_updated),o.cache.get(e.key)?o._handleItemMutated(e.key,e.url,e.last_event_id,e.revision,e.data,e.date_updated,e.date_expires,!1,!0):o.cache.store(e.key,new TR(e),e.last_event_id),o.cache.get(e.key)})),a=r.body.meta,e.abrupt("return",new Paginator(i,(function(e){return o.queryItems({pageToken:e})}),a.previous_token,a.next_token));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"getItems",value:(i=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return PT((t=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)}))),function(e){return i.apply(this,arguments)})},{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.lastEventId<e&&(this.descriptor.last_event_id=e,t&&(this.descriptor.revision=t))}},{key:"_updateRootDateUpdated",value:function(e){(!this.descriptor.date_updated||e.getTime()>this.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,n,r,i,a,o,s,u){if(this.shouldIgnoreEvent(e,n))NT("SyncMapItem ",e," update skipped, current:",this.lastEventId,", remote:",n);else{this._updateRootDateUpdated(a);var c=this.cache.get(e);if(!c){var l=new TR({key:e,url:t,last_event_id:n,revision:r,data:i,date_updated:a,date_expires:o});return this.cache.store(e,l,n),void this.emitItemMutationEvent(l,u,s)}var f=OT(c.data);c.update(n,r,i,a),this.cache.store(e,c,n),void 0!==o&&c.updateDateExpires(o),this.emitItemMutationEvent(c,u,!1,f)}}},{key:"emitItemMutationEvent",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=n?"itemAdded":"itemUpdated",a={item:e,isLocal:!t};n||(a.previousItemData=r),this.broadcastEventToListeners(i,a)}},{key:"_handleItemRemoved",value:function(e,t,n,r,i){this._updateRootDateUpdated(r),this.cache.delete(e,t),this.broadcastEventToListeners("itemRemoved",{key:e,isLocal:!i,previousItemData:n})}},{key:"onRemoved",value:function(e){this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e})}},{key:"setTtl",value:(r=uT.default(yT.default.mark((function e(t){var n,r;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n={ttl:t},e.next=4,this.services.network.post(this.uri,n);case 4:r=e.sent,this.descriptor.date_expires=r.body.date_expires,e.next=12;break;case 8:throw e.prev=8,e.t0=e.catch(0),404===e.t0.status&&this.onRemoved(!1),e.t0;case 12:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e){return r.apply(this,arguments)})},{key:"setItemTtl",value:(n=uT.default(yT.default.mark((function e(t,n){var r,i,a;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.get(t);case 2:return r=e.sent,i={ttl:n},e.next=6,this.services.network.post(r.uri,i);case 6:a=e.sent,r.updateDateExpires(a.body.date_expires);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"removeMap",value:(t=uT.default(yT.default.mark((function e(){return yT.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)}))),function(){return t.apply(this,arguments)})}],[{key:"type",get:function(){return"map"}}]),h}(aR),CR=function(e){dT.default(f,e);var t,n,r,i,a,o,s,u,c,l=RR(f);function f(e){var t;return cT.default(this,f),(t=l.call(this)).syncMapImpl=e,t.syncMapImpl.attach(fT.default(t)),t}return lT.default(f,[{key:"uri",get:function(){return this.syncMapImpl.uri}},{key:"links",get:function(){return this.syncMapImpl.links}},{key:"revision",get:function(){return this.syncMapImpl.revision}},{key:"lastEventId",get:function(){return this.syncMapImpl.lastEventId}},{key:"dateExpires",get:function(){return this.syncMapImpl.dateExpires}},{key:"type",get:function(){return IR.type}},{key:"sid",get:function(){return this.syncMapImpl.sid}},{key:"uniqueName",get:function(){return this.syncMapImpl.uniqueName}},{key:"dateUpdated",get:function(){return this.syncMapImpl.dateUpdated}},{key:"set",value:(c=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.set(t,n,r));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return c.apply(this,arguments)})},{key:"get",value:(u=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.get(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"mutate",value:(s=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.mutate(t,n,r));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return s.apply(this,arguments)})},{key:"update",value:(o=uT.default(yT.default.mark((function e(t,n,r){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.update(t,n,r));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return o.apply(this,arguments)})},{key:"remove",value:(a=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.remove(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"getItems",value:(i=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.getItems(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"setTtl",value:(r=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.setTtl(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"setItemTtl",value:(n=uT.default(yT.default.mark((function e(t,n){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncMapImpl.setItemTtl(t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"removeMap",value:(t=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.next=3,this.syncMapImpl.removeMap();case 3:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"close",value:function(){xT.default(hT.default(f.prototype),"close",this).call(this),this.syncMapImpl.detach(this.listenerUuid)}}],[{key:"type",get:function(){return IR.type}}]),f}(cR);function OR(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}vT.default(CR,"itemAdded","itemAdded"),vT.default(CR,"itemUpdated","itemUpdated"),vT.default(CR,"itemRemoved","itemRemoved"),vT.default(CR,"removed","removed"),ST([YE.validateTypesAsync("string",YE.pureObject,["undefined",YE.objectSchema("item metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[String,Object,Object]),ET("design:returntype",Promise)],CR.prototype,"set",null),ST([YE.validateTypesAsync("string"),ET("design:type",Function),ET("design:paramtypes",[String]),ET("design:returntype",Promise)],CR.prototype,"get",null),ST([YE.validateTypesAsync("string","function",["undefined",YE.objectSchema("item metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[String,Function,Object]),ET("design:returntype",Promise)],CR.prototype,"mutate",null),ST([YE.validateTypesAsync("string",YE.pureObject,["undefined",YE.objectSchema("item metadata",{ttl:[YE.nonNegativeInteger,"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[String,Object,Object]),ET("design:returntype",Promise)],CR.prototype,"update",null),ST([YE.validateTypesAsync("string"),ET("design:type",Function),ET("design:paramtypes",[String]),ET("design:returntype",Promise)],CR.prototype,"remove",null),ST([YE.validateTypesAsync(["undefined",YE.objectSchema("query options",{from:["string","undefined"],pageSize:[YE.custom((function(e){return[AT(e),"a positive integer"]})),"undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],CR.prototype,"getItems",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number]),ET("design:returntype",Promise)],CR.prototype,"setTtl",null),ST([YE.validateTypesAsync("string",YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[String,Number]),ET("design:returntype",Promise)],CR.prototype,"setItemTtl",null);var PR=function(e){dT.default(a,e);var t,n,r,i=OR(a);function a(e,t,n){var r;return cT.default(this,a),(r=i.call(this,e,n)).descriptor=t,r}return lT.default(a,[{key:"uri",get:function(){return this.descriptor.url}},{key:"links",get:function(){return this.descriptor.links}},{key:"dateExpires",get:function(){return this.descriptor.date_expires}},{key:"type",get:function(){return"stream"}},{key:"lastEventId",get:function(){return null}},{key:"indexName",get:function(){}},{key:"queryString",get:function(){}},{key:"sid",get:function(){return this.descriptor.sid}},{key:"uniqueName",get:function(){return this.descriptor.unique_name||null}},{key:"publishMessage",value:(r=uT.default(yT.default.mark((function e(t){var n,r,i,a;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={data:t},e.next=3,this.services.network.post(this.links.messages,n);case 3:return r=e.sent,i=r.body,a=this._handleMessagePublished(i.sid,t,!1),e.abrupt("return",a);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"setTtl",value:(n=uT.default(yT.default.mark((function e(t){var n,r;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n={ttl:t},e.next=4,this.services.network.post(this.uri,n);case 4:r=e.sent,this.descriptor.date_expires=r.body.date_expires,e.next=12;break;case 8:throw e.prev=8,e.t0=e.catch(0),404===e.t0.status&&this.onRemoved(!1),e.t0;case 12:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e){return n.apply(this,arguments)})},{key:"removeStream",value:(t=uT.default(yT.default.mark((function e(){return yT.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)}))),function(){return t.apply(this,arguments)})},{key:"_update",value:function(e){switch(e.type){case"stream_message_published":this._handleMessagePublished(e.message_sid,e.message_data,!0);break;case"stream_removed":this.onRemoved(!1)}}},{key:"_handleMessagePublished",value:function(e,t,n){var r={sid:e,data:t};return this.broadcastEventToListeners("messagePublished",{message:r,isLocal:!n}),r}},{key:"onRemoved",value:function(e){this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e})}}],[{key:"type",get:function(){return"stream"}}]),a}(aR);ST([YE.validateTypesAsync(YE.pureObject),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],PR.prototype,"publishMessage",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number]),ET("design:returntype",Promise)],PR.prototype,"setTtl",null);var AR=function(e){dT.default(a,e);var t,n,r,i=OR(a);function a(e){var t;return cT.default(this,a),(t=i.call(this)).syncStreamImpl=e,t.syncStreamImpl.attach(fT.default(t)),t}return lT.default(a,[{key:"uri",get:function(){return this.syncStreamImpl.uri}},{key:"links",get:function(){return this.syncStreamImpl.links}},{key:"dateExpires",get:function(){return this.syncStreamImpl.dateExpires}},{key:"type",get:function(){return PR.type}},{key:"lastEventId",get:function(){return null}},{key:"sid",get:function(){return this.syncStreamImpl.sid}},{key:"uniqueName",get:function(){return this.syncStreamImpl.uniqueName}},{key:"publishMessage",value:(r=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncStreamImpl.publishMessage(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"setTtl",value:(n=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncStreamImpl.setTtl(t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"removeStream",value:(t=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.ensureNotClosed(),e.abrupt("return",this.syncStreamImpl.removeStream());case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"close",value:function(){xT.default(hT.default(a.prototype),"close",this).call(this),this.syncStreamImpl.detach(this.listenerUuid)}}],[{key:"type",get:function(){return PR.type}}]),a}(cR);vT.default(AR,"messagePublished","messagePublished"),vT.default(AR,"removed","removed"),ST([YE.validateTypesAsync(YE.pureObject),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],AR.prototype,"publishMessage",null),ST([YE.validateTypesAsync(YE.nonNegativeInteger),ET("design:type",Function),ET("design:paramtypes",[Number]),ET("design:returntype",Promise)],AR.prototype,"setTtl",null);var jR=lT.default((function e(t){cT.default(this,e),this.sdk="js",this.sdkVer=t,this.os=_T.os.family,this.osVer=_T.os.version,this.pl=_T.name,this.plVer=_T.version})),MR=function(){function e(){cT.default(this,e),this.names=new Map,this.entities=new Map}return lT.default(e,[{key:"store",value:function(e){var t=this.entities.get(e.sid);return t||(this.entities.set(e.sid,e),e.uniqueName&&this.names.set(e.type+"::"+e.uniqueName,e.sid),e)}},{key:"getResolved",value:function(e,t){var n=this.names.get(t+"::"+e);return n?this.entities.get(n):null}},{key:"get",value:function(e,t){return this.entities.get(e)||this.getResolved(e,t)||null}},{key:"remove",value:function(e){var t=this.entities.get(e);t&&(this.entities.delete(e),t.uniqueName&&this.names.delete(t.type+"::"+t.uniqueName))}}]),e}();function LR(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}var NR=lT.default((function e(){cT.default(this,e)})),UR=function(e){dT.default(n,e);var t=LR(n);function n(e,r,i,a){var o;return cT.default(this,n),(o=t.call(this,r,i)).descriptor=e,o.cache=new xR,a&&a.forEach((function(e){o.cache.store(e.key,{key:e.key,value:e.data},e.revision)})),o}return lT.default(n,[{key:"sid",get:function(){return this.descriptor.sid}},{key:"uniqueName",get:function(){return null}},{key:"type",get:function(){return n.type}},{key:"lastEventId",get:function(){return this.descriptor.last_event_id}},{key:"indexName",get:function(){return this.descriptor.indexName}},{key:"queryString",get:function(){return this.descriptor.queryExpression}},{key:"queryUri",get:function(){return this.descriptor.queryUri}},{key:"liveQueryDescriptor",get:function(){return this.descriptor}},{key:"onRemoved",value:function(){}},{key:"getItems",value:function(){var e={};return this.cache.forEach((function(t,n){e[t]=n.value})),e}},{key:"_update",value:function(e,t){switch(e.type){case"live_query_item_updated":this.handleItemMutated(e.item_key,e.item_data,e.item_revision);break;case"live_query_item_removed":this.handleItemRemoved(e.item_key,e.item_revision);break;case"live_query_updated":this.handleBatchUpdate(e.items)}t&&this._advanceLastEventId(e.last_event_id)}},{key:"handleItemMutated",value:function(e,t,n){if(this.shouldIgnoreEvent(e,n))NT("Item ".concat(e," update skipped, revision: ").concat(n));else{var r={key:e,value:t};this.cache.store(e,r,n),this.broadcastEventToListeners("itemUpdated",r)}}},{key:"handleItemRemoved",value:function(e,t){var n=null===t;this.shouldIgnoreEvent(e,t)?NT("Item ".concat(e," delete skipped, revision: ").concat(t)):(this.cache.delete(e,t,n),this.broadcastEventToListeners("itemRemoved",{key:e}))}},{key:"handleBatchUpdate",value:function(e){var t=this,n={};for(var r in null!=e&&e.forEach((function(e){n[e.key]={data:e.data,revision:e.revision}})),this.cache.forEach((function(e,r){var i=n[e];null!=i?t.handleItemMutated(e,i.data,i.revision):t.handleItemRemoved(e,null),delete n[e]})),n)this.handleItemMutated(r,n[r].data,n[r].revision)}},{key:"shouldIgnoreEvent",value:function(e,t){return null!=e&&null!=t&&this.cache.isKnown(e,t)}},{key:"_advanceLastEventId",value:function(e,t){this.lastEventId<e&&(this.descriptor.last_event_id=e)}}],[{key:"type",get:function(){return"live_query"}}]),n}(aR);function DR(e){return FR.apply(this,arguments)}function FR(){return(FR=uT.default(yT.default.mark((function e(t){var n,r,i,a,o,s;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.network,r=t.queryString,i=t.uri,a=t.type,null!=r){e.next=3;break}throw new IT("Invalid query",400,54507);case 3:return o={query_string:r},a===BR.type&&(o.type=a),e.next=7,n.post(i,o,void 0,!0);case 7:return s=e.sent,e.abrupt("return",s.body);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var BR=function(e){dT.default(n,e);var t=LR(n);function n(e){var r;return cT.default(this,n),(r=t.call(this)).liveQueryImpl=e,r.liveQueryImpl.attach(fT.default(r)),r}return lT.default(n,[{key:"type",get:function(){return UR.type}},{key:"lastEventId",get:function(){return this.liveQueryImpl.lastEventId}},{key:"sid",get:function(){return this.liveQueryImpl.sid}},{key:"close",value:function(){xT.default(hT.default(n.prototype),"close",this).call(this),this.liveQueryImpl.detach(this.listenerUuid)}},{key:"getItems",value:function(){return this.ensureNotClosed(),this.liveQueryImpl.getItems()}}],[{key:"type",get:function(){return UR.type}}]),n}(cR);vT.default(BR,"itemUpdated","itemUpdated"),vT.default(BR,"itemRemoved","itemRemoved");var qR=function(e){dT.default(i,e);var t,n,r=LR(i);function i(e){var t;return cT.default(this,i),t=r.call(this),vT.default(fT.default(t),"queryExpression",null),vT.default(fT.default(t),"items",{}),Object.assign(fT.default(t),e),t.updateIndexName(e.indexName),t}return lT.default(i,[{key:"type",get:function(){return i.type}},{key:"search",value:(n=uT.default(yT.default.mark((function e(t){var n=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.items={},e.abrupt("return",DR({network:this.network,uri:this.queryUri,queryString:t}).then((function(e){n.queryExpression=t,e.items&&e.items.forEach((function(e){n.items[e.key]=e.data})),n.emit("searchResult",n.getItems())})).catch((function(e){throw FT("Error '".concat(e.message,"' while executing query '").concat(t,"'")),n.queryExpression=null,e})));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"subscribe",value:(t=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=this.queryExpression){e.next=2;break}return e.abrupt("return",Promise.reject(new IT("Invalid query",400,54507)));case 2:return e.abrupt("return",this.liveQueryCreator(this.indexName,this.queryExpression));case 3:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"getItems",value:function(){return this.items}},{key:"updateIndexName",value:function(e){this.indexName=e,this.queryUri=this.generateQueryUri(this.indexName)}},{key:"generateQueryUri",value:function(e){return new TT(this.insightsUri).pathSegment(e).pathSegment("Items").build()}}],[{key:"type",get:function(){return"instant_query"}}]),i}(iT.ReplayEventEmitter);vT.default(qR,"searchResult","searchResult"),ST([YE.validateTypesAsync("string"),ET("design:type",Function),ET("design:paramtypes",[String]),ET("design:returntype",Promise)],qR.prototype,"search",null),ST([YE.validateTypes(YE.nonEmptyString),ET("design:type",Function),ET("design:paramtypes",[String]),ET("design:returntype",void 0)],qR.prototype,"updateIndexName",null);function zR(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=hT.default(e);if(t){var i=hT.default(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return pT.default(this,n)}}function WR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function GR(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?WR(Object(n),!0).forEach((function(t){vT.default(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):WR(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var $R="data_sync",VR="4.0.0-rc.0";function JR(e){if(e){if("string"==typeof e)return{id:e,mode:"open_or_create"};var t=e.mode||(e.id?"open_or_create":"create_new");return GR(GR({},e),{},{mode:t})}return{mode:"create_new"}}var KR="com.twilio.rtd.cds.document",HR="com.twilio.rtd.cds.list",YR="com.twilio.rtd.cds.map",QR="twilio.sync.event",Client=function(e){dT.default(Client,e);var t,n,r,i,a,o,s,u,c,l,f,d,p,h,v,y=zR(Client);function Client(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(cT.default(this,Client),n=y.call(this),!e)throw new Error("Sync library needs a valid Twilio token to be passed");r.hasOwnProperty("logLevel")?LT(r.logLevel):LT("silent");var i=r.productId=r.productId||$R;r.clientMetadata=r.clientMetadata||{},r.clientMetadata.hasOwnProperty("type")||(r.clientMetadata.type="sync"),r.clientMetadata.hasOwnProperty("sdk")||(r.clientMetadata.sdk="JS",r.clientMetadata.sdkv=VR);var a=!r.twilsockClient;if(!r.initRegistrations){var o=new QE.InitRegistration(i);Client.populateInitRegistrations(o),r.initRegistrations=[o]}var s=r.twilsockClient=null!==(t=r.twilsockClient)&&void 0!==t?t:new QE.Twilsock(e,i,r);s.on("tokenAboutToExpire",(function(){return n.emit("tokenAboutToExpire")})),s.on("tokenExpired",(function(){return n.emit("tokenExpired")})),s.on("connectionError",(function(e){return n.emit("connectionError",e)})),s.onWithReplay("stateChanged",(function(e){n.emit("connectionStateChanged",e),n.services.subscriptions.onConnectionStateChanged("connected"===e)})),s.on("message",(function(e,t){return n._routeMessage(e,t)}));var u=new JT(r),c=new tR(new jR(VR),u,s),l=new nR(u);return n.services={config:u,twilsock:s,network:c,storage:l,router:fT.default(n),subscriptions:null},n.services.subscriptions=new QT(n.services),n.entities=new MR,a&&s.connect(),n}return lT.default(Client,[{key:"_routeMessage",value:function(e,t){switch(NT("Notification type:",e,"content:",t),e){case KR:case HR:case YR:this.services.subscriptions.acceptMessage(t,!1);break;case QR:this.services.subscriptions.acceptMessage(t,!0)}}},{key:"_subscribe",value:function(e,t){this.services.subscriptions.add(e,t)}},{key:"_unsubscribe",value:function(e){this.services.subscriptions.remove(e)}},{key:"connectionState",get:function(){return this.services.twilsock.state}},{key:"ensureReady",value:(v=uT.default(yT.default.mark((function e(){var t;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.services.config.sessionStorageEnabled){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,e.next=5,this.services.twilsock.storageId();case 5:t=e.sent,this.services.storage.updateStorageId(t.id),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),DT("Failed to initialize storage",e.t0);case 12:case"end":return e.stop()}}),e,this,[[2,9]])}))),function(){return v.apply(this,arguments)})},{key:"storeRootInSessionCache",value:function(e,t,n){if(this.services.config.sessionStorageEnabled&&t){var r=OT(n);e!==ER.type&&e!==CR.type||(r.last_event_id=null,delete r.items),this.services.storage.store(e,t,r)}}},{key:"readRootFromSessionCache",value:function(e,t){return this.services.config.sessionStorageEnabled&&t?this.services.storage.read(e,t):null}},{key:"_get",value:(h=uT.default(yT.default.mark((function e(t,n){var r,i,a,o=arguments;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=o.length>2&&void 0!==o[2]&&o[2],n){e.next=3;break}throw new IT("Cannot get entity without id",404);case 3:return i=new TT(t).pathSegment(n).queryParam("Include",r?"items":void 0).build(),e.next=6,this.services.network.get(i);case 6:return a=e.sent,e.abrupt("return",a.body);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return h.apply(this,arguments)})},{key:"_createDocument",value:function(e,t,n){var r={unique_name:e,data:t||{}};return void 0!==n&&(r.ttl=n),this.services.network.post(this.services.config.documentsUri,r).then((function(e){return e.body.data=r.data,e.body}))}},{key:"_getDocument",value:(p=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.readRootFromSessionCache(dR.type,t)||this._get(this.services.config.documentsUri,t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return p.apply(this,arguments)})},{key:"_createList",value:function(e,t,n,r){var i={unique_name:e,purpose:t,context:n};return void 0!==r&&(i.ttl=r),this.services.network.post(this.services.config.listsUri,i).then((function(e){return e.body}))}},{key:"_getList",value:(d=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.readRootFromSessionCache(ER.type,t)||this._get(this.services.config.listsUri,t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return d.apply(this,arguments)})},{key:"_createMap",value:function(e,t){var n={unique_name:e};return void 0!==t&&(n.ttl=t),this.services.network.post(this.services.config.mapsUri,n).then((function(e){return e.body}))}},{key:"_getMap",value:(f=uT.default(yT.default.mark((function e(t){var n,r=arguments;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]&&r[1],e.abrupt("return",this.readRootFromSessionCache(CR.type,t)||this._get(this.services.config.mapsUri,t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"_getStream",value:(l=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.readRootFromSessionCache(AR.type,t)||this._get(this.services.config.streamsUri,t,!1));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"_createStream",value:(c=uT.default(yT.default.mark((function e(t,n){var r,i;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r={unique_name:t},void 0!==n&&(r.ttl=n),e.next=4,this.services.network.post(this.services.config.streamsUri,r);case 4:return i=e.sent,e.abrupt("return",i.body);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return c.apply(this,arguments)})},{key:"_getLiveQuery",value:function(e){return this.readRootFromSessionCache(BR.type,e)}},{key:"getCached",value:function(e,t){return e&&this.entities.get(e,t)||null}},{key:"removeFromCacheAndSession",value:function(e,t,n){this.entities.remove(t),this.services.config.sessionStorageEnabled&&this.services.storage.remove(e,t,n)}},{key:"document",value:(u=uT.default(yT.default.mark((function e(t){var n,r,i,a,o=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ensureReady();case 2:if("create_new"!==(n=JR(t)).mode){e.next=9;break}return e.next=6,this._createDocument(n.id,n.data,n.ttl);case 6:r=e.sent,e.next=39;break;case 9:if(!(i=this.getCached(n.id,dR.type))){e.next=14;break}return e.abrupt("return",new dR(i));case 14:return e.prev=14,e.next=17,this._getDocument(n.id);case 17:r=e.sent,e.next=39;break;case 20:if(e.prev=20,e.t0=e.catch(14),404===e.t0.status&&"open_existing"!==n.mode){e.next=26;break}throw e.t0;case 26:return e.prev=26,e.next=29,this._createDocument(n.id,n.data,n.ttl);case 29:r=e.sent,e.next=39;break;case 32:if(e.prev=32,e.t1=e.catch(26),409!==e.t1.status){e.next=38;break}return e.abrupt("return",this.document(t));case 38:throw e.t1;case 39:return this.storeRootInSessionCache(dR.type,n.id,r),a=new fR(this.services,r,(function(e,t,n){return o.removeFromCacheAndSession(e,t,n)})),a=this.entities.store(a),e.abrupt("return",new dR(a));case 43:case"end":return e.stop()}}),e,this,[[14,20],[26,32]])}))),function(e){return u.apply(this,arguments)})},{key:"map",value:(s=uT.default(yT.default.mark((function e(t){var n,r,i,a,o=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ensureReady();case 2:if("create_new"!==(n=JR(t)).mode){e.next=9;break}return e.next=6,this._createMap(n.id,n.ttl);case 6:r=e.sent,e.next=39;break;case 9:if(!(i=this.getCached(n.id,CR.type))){e.next=14;break}return e.abrupt("return",new CR(i));case 14:return e.prev=14,e.next=17,this._getMap(n.id,n.includeItems);case 17:r=e.sent,e.next=39;break;case 20:if(e.prev=20,e.t0=e.catch(14),404===e.t0.status&&"open_existing"!==n.mode){e.next=26;break}throw e.t0;case 26:return e.prev=26,e.next=29,this._createMap(n.id,n.ttl);case 29:r=e.sent,e.next=39;break;case 32:if(e.prev=32,e.t1=e.catch(26),409!==e.t1.status){e.next=38;break}return e.abrupt("return",this.map(t));case 38:throw e.t1;case 39:return this.storeRootInSessionCache(CR.type,n.id,r),a=new IR(this.services,r,(function(e,t,n){return o.removeFromCacheAndSession(e,t,n)})),a=this.entities.store(a),e.abrupt("return",new CR(a));case 43:case"end":return e.stop()}}),e,this,[[14,20],[26,32]])}))),function(e){return s.apply(this,arguments)})},{key:"list",value:(o=uT.default(yT.default.mark((function e(t){var n,r,i,a,o=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ensureReady();case 2:if("create_new"!==(n=JR(t)).mode){e.next=9;break}return e.next=6,this._createList(n.id,n.purpose,n.context,n.ttl);case 6:r=e.sent,e.next=39;break;case 9:if(!(i=this.getCached(n.id,ER.type))){e.next=14;break}return e.abrupt("return",new ER(i));case 14:return e.prev=14,e.next=17,this._getList(n.id);case 17:r=e.sent,e.next=39;break;case 20:if(e.prev=20,e.t0=e.catch(14),404===e.t0.status&&"open_existing"!==n.mode){e.next=26;break}throw e.t0;case 26:return e.prev=26,e.next=29,this._createList(n.id,n.purpose,n.context,n.ttl);case 29:r=e.sent,e.next=39;break;case 32:if(e.prev=32,e.t1=e.catch(26),409!==e.t1.status){e.next=38;break}return e.abrupt("return",this.list(t));case 38:throw e.t1;case 39:return this.storeRootInSessionCache(ER.type,n.id,r),a=new SR(this.services,r,(function(e,t,n){return o.removeFromCacheAndSession(e,t,n)})),a=this.entities.store(a),e.abrupt("return",new ER(a));case 43:case"end":return e.stop()}}),e,this,[[14,20],[26,32]])}))),function(e){return o.apply(this,arguments)})},{key:"stream",value:(a=uT.default(yT.default.mark((function e(t){var n,r,i,a,o,s=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ensureReady();case 2:if("create_new"!==(n=JR(t)).mode){e.next=9;break}return e.next=6,this._createStream(n.id,n.ttl);case 6:r=e.sent,e.next=39;break;case 9:if(!(i=this.getCached(n.id,AR.type))){e.next=14;break}return e.abrupt("return",new AR(i));case 14:return e.prev=14,e.next=17,this._getStream(n.id);case 17:r=e.sent,e.next=39;break;case 20:if(e.prev=20,e.t0=e.catch(14),404===e.t0.status&&"open_existing"!==n.mode){e.next=26;break}throw e.t0;case 26:return e.prev=26,e.next=29,this._createStream(n.id,n.ttl);case 29:r=e.sent,e.next=39;break;case 32:if(e.prev=32,e.t1=e.catch(26),409!==e.t1.status){e.next=38;break}return e.abrupt("return",this.stream(t));case 38:throw e.t1;case 39:return this.storeRootInSessionCache(AR.type,n.id,r),a=function(e,t,n){return s.removeFromCacheAndSession(e,t,n)},o=new PR(this.services,r,a),o=this.entities.store(o),e.abrupt("return",new AR(o));case 44:case"end":return e.stop()}}),e,this,[[14,20],[26,32]])}))),function(e){return a.apply(this,arguments)})},{key:"shutdown",value:(i=uT.default(yT.default.mark((function e(){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.subscriptions.shutdown();case 2:return e.next=4,this.services.twilsock.disconnect();case 4:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"updateToken",value:(r=uT.default(yT.default.mark((function e(t){return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.services.twilsock.updateToken(t).catch((function(e){var t,n=null==e||null===(t=e.reply)||void 0===t?void 0:t.status;if(401===(null==n?void 0:n.code)&&"UNAUTHORIZED"===(null==n?void 0:n.status))throw new IT("Updated token was rejected by server",400,51130);throw e})));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"liveQuery",value:(n=uT.default(yT.default.mark((function e(t,n){var r,i,a,o,s,u=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ensureReady();case 2:return r=new TT(this.services.config.insightsUri).pathSegment(t).pathSegment("Items").build(),e.next=5,DR({network:this.services.network,uri:r,queryString:n,type:BR.type});case 5:return i=e.sent,(a=this.getCached(i.query_id,BR.type))||((o=this._getLiveQuery(i.query_id))||(o={indexName:t,queryExpression:n,sid:i.query_id,queryUri:r,last_event_id:i.last_event_id}),s=function(e,t,n){return u.removeFromCacheAndSession(e,t,n)},a=new UR(o,this.services,s,i.items)),this.storeRootInSessionCache(BR.type,i.query_id,a.liveQueryDescriptor),a=this.entities.store(a),e.abrupt("return",new BR(a));case 11:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"instantQuery",value:(t=uT.default(yT.default.mark((function e(t){var n,r=this;return yT.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ensureReady();case 2:return n=function(e,t){return r.liveQuery(e,t)},e.abrupt("return",new qR({indexName:t,network:this.services.network,insightsUri:this.services.config.insightsUri,liveQueryCreator:n}));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"populateInitRegistrations",value:function(e){e.populateInitRegistrations([QR,KR,HR,YR])}},{key:"version",get:function(){return VR}}]),Client}(iT.ReplayEventEmitter);vT.default(Client,"connectionStateChanged","connectionStateChanged"),vT.default(Client,"connectionError","connectionError"),vT.default(Client,"tokenAboutToExpire","tokenAboutToExpire"),vT.default(Client,"tokenExpired","tokenExpired"),ST([YE.validateTypesAsync(["undefined","string",YE.objectSchema("open document options",{id:["string","undefined"],mode:[YE.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[YE.nonNegativeInteger,"undefined"],data:[YE.pureObject,"undefined",YE.literal(null)]})]),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],Client.prototype,"document",null),ST([YE.validateTypesAsync(["undefined","string",YE.objectSchema("open map options",{id:["string","undefined"],mode:[YE.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[YE.nonNegativeInteger,"undefined"],data:[YE.pureObject,"undefined",YE.literal(null)],includeItems:["boolean","undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],Client.prototype,"map",null),ST([YE.validateTypesAsync(["undefined","string",YE.objectSchema("open list options",{id:["string","undefined"],mode:[YE.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[YE.nonNegativeInteger,"undefined"],data:[YE.pureObject,"undefined",YE.literal(null)],purpose:["string","undefined"],context:[YE.pureObject,"undefined"],includeItems:["boolean","undefined"]})]),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],Client.prototype,"list",null),ST([YE.validateTypesAsync(["undefined","string",YE.objectSchema("open stream options",{id:["string","undefined"],mode:[YE.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[YE.nonNegativeInteger,"undefined"],data:[YE.pureObject,"undefined",YE.literal(null)]})]),ET("design:type",Function),ET("design:paramtypes",[Object]),ET("design:returntype",Promise)],Client.prototype,"stream",null),ST([YE.validateTypesAsync(YE.nonEmptyString),ET("design:type",Function),ET("design:paramtypes",[String]),ET("design:returntype",Promise)],Client.prototype,"updateToken",null),ST([YE.validateTypesAsync(YE.nonEmptyString,"string"),ET("design:type",Function),ET("design:paramtypes",[String,String]),ET("design:returntype",Promise)],Client.prototype,"liveQuery",null),ST([YE.validateTypesAsync(YE.nonEmptyString),ET("design:type",Function),ET("design:paramtypes",[String]),ET("design:returntype",Promise)],Client.prototype,"instantQuery",null),FE.Client=Client,FE.InsightsItem=NR,FE.InstantQuery=qR,FE.LiveQuery=BR,FE.Paginator=Paginator;var XR=FE.SyncClient=Client;function ZR(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function eI(e,t,n){return(eI=ZR()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&Ia(i,n.prototype),i}).apply(null,arguments)}function tI(e){var t="function"==typeof Map?new Map:void 0;return(tI=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return eI(e,arguments,Aa(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Ia(r,e)})(e)}FE.SyncDocument=dR,FE.SyncList=ER,FE.SyncListItem=pR,FE.SyncMap=CR,FE.SyncMapItem=TR,FE.SyncStream=AR;var nI,rI={},iI=NS,aI=function(e){if(iI(e))throw TypeError("The method doesn't accept regular expressions");return e},oI=pe("match"),sI=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[oI]=!1,"/./"[e](t)}catch(e){}}return!1},uI=Rn,cI=a.f,lI=Ut,fI=Sr,dI=aI,pI=k,hI=sI,vI="".startsWith,yI=Math.min,mI=hI("startsWith");uI({target:"String",proto:!0,forced:!!(mI||(nI=cI(String.prototype,"startsWith"),!nI||nI.writable))&&!mI},{startsWith:function(e){var t=fI(pI(this));dI(e);var n=lI(yI(arguments.length>1?arguments[1]:void 0,t.length)),r=fI(e);return vI?vI.call(t,r,n):t.slice(n,n+r.length)===r}});var gI=R_.left,bI=L,kI=Vo;Rn({target:"Array",proto:!0,forced:!rc("reduce")||!kI&&bI>79&&bI<83},{reduce:function(e){return gI(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}});var wI=o,xI=pe("iterator"),_I=!wI((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[xI]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host})),SI=2147483647,EI=/[^\0-\u007E]/,TI=/[.\u3002\uFF0E\uFF61]/g,RI="Overflow: input needs wider integers to process",II=Math.floor,CI=String.fromCharCode,OI=function(e){return e+22+75*(e<26)},PI=function(e,t,n){var r=0;for(e=n?II(e/700):e>>1,e+=II(e/t);e>455;r+=36)e=II(e/35);return II(r+36*e/(e+38))},AI=function(e){var t,n,r=[],i=(e=function(e){for(var t=[],n=0,r=e.length;n<r;){var i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var a=e.charCodeAt(n++);56320==(64512&a)?t.push(((1023&i)<<10)+(1023&a)+65536):(t.push(i),n--)}else t.push(i)}return t}(e)).length,a=128,o=0,s=72;for(t=0;t<e.length;t++)(n=e[t])<128&&r.push(CI(n));var u=r.length,c=u;for(u&&r.push("-");c<i;){var l=SI;for(t=0;t<e.length;t++)(n=e[t])>=a&&n<l&&(l=n);var f=c+1;if(l-a>II((SI-o)/f))throw RangeError(RI);for(o+=(l-a)*f,a=l,t=0;t<e.length;t++){if((n=e[t])<a&&++o>SI)throw RangeError(RI);if(n==a){for(var d=o,p=36;;p+=36){var h=p<=s?1:p>=s+26?26:p-s;if(d<h)break;var v=d-h,y=36-h;r.push(CI(OI(h+v%y))),d=II(v/y)}r.push(CI(OI(d))),s=PI(o,f,c==u),o=0,++c}}++o,++a}return r.join("")},jI=Rn,MI=R,LI=_I,NI=Je.exports,UI=Qa,DI=Pn,FI=Jl,BI=xt,qI=so,zI=ee,WI=Dr,GI=Wa,$I=De,VI=S,JI=Sr,KI=tr,HI=h,YI=ko,QI=mo,XI=pe,ZI=MI("fetch"),eC=MI("Request"),tC=eC&&eC.prototype,nC=MI("Headers"),rC=XI("iterator"),iC="URLSearchParams",aC="URLSearchParamsIterator",oC=BI.set,sC=BI.getterFor(iC),uC=BI.getterFor(aC),cC=/\+/g,lC=Array(4),fC=function(e){return lC[e-1]||(lC[e-1]=RegExp("((?:%[\\da-f]{2}){"+e+"})","gi"))},dC=function(e){try{return decodeURIComponent(e)}catch(t){return e}},pC=function(e){var t=e.replace(cC," "),n=4;try{return decodeURIComponent(t)}catch(e){for(;n;)t=t.replace(fC(n--),dC);return t}},hC=/[!'()~]|%20/g,vC={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},yC=function(e){return vC[e]},mC=function(e){return encodeURIComponent(e).replace(hC,yC)},gC=function(e,t){if(t)for(var n,r,i=t.split("&"),a=0;a<i.length;)(n=i[a++]).length&&(r=n.split("="),e.push({key:pC(r.shift()),value:pC(r.join("="))}))},bC=function(e){this.entries.length=0,gC(this.entries,e)},kC=function(e,t){if(e<t)throw TypeError("Not enough arguments")},wC=FI((function(e,t){oC(this,{type:aC,iterator:YI(sC(e).entries),kind:t})}),"Iterator",(function(){var e=uC(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n})),xC=function(){qI(this,xC,iC);var e,t,n,r,i,a,o,s,u,c=arguments.length>0?arguments[0]:void 0,l=this,f=[];if(oC(l,{type:iC,entries:f,updateURL:function(){},updateSearchParams:bC}),void 0!==c)if(VI(c))if("function"==typeof(e=QI(c)))for(n=(t=YI(c,e)).next;!(r=n.call(t)).done;){if((o=(a=(i=YI($I(r.value))).next).call(i)).done||(s=a.call(i)).done||!a.call(i).done)throw TypeError("Expected sequence with length 2");f.push({key:JI(o.value),value:JI(s.value)})}else for(u in c)zI(c,u)&&f.push({key:u,value:JI(c[u])});else gC(f,"string"==typeof c?"?"===c.charAt(0)?c.slice(1):c:JI(c))},_C=xC.prototype;if(UI(_C,{append:function(e,t){kC(arguments.length,2);var n=sC(this);n.entries.push({key:JI(e),value:JI(t)}),n.updateURL()},delete:function(e){kC(arguments.length,1);for(var t=sC(this),n=t.entries,r=JI(e),i=0;i<n.length;)n[i].key===r?n.splice(i,1):i++;t.updateURL()},get:function(e){kC(arguments.length,1);for(var t=sC(this).entries,n=JI(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){kC(arguments.length,1);for(var t=sC(this).entries,n=JI(e),r=[],i=0;i<t.length;i++)t[i].key===n&&r.push(t[i].value);return r},has:function(e){kC(arguments.length,1);for(var t=sC(this).entries,n=JI(e),r=0;r<t.length;)if(t[r++].key===n)return!0;return!1},set:function(e,t){kC(arguments.length,1);for(var n,r=sC(this),i=r.entries,a=!1,o=JI(e),s=JI(t),u=0;u<i.length;u++)(n=i[u]).key===o&&(a?i.splice(u--,1):(a=!0,n.value=s));a||i.push({key:o,value:s}),r.updateURL()},sort:function(){var e,t,n,r=sC(this),i=r.entries,a=i.slice();for(i.length=0,n=0;n<a.length;n++){for(e=a[n],t=0;t<n;t++)if(i[t].key>e.key){i.splice(t,0,e);break}t===n&&i.push(e)}r.updateURL()},forEach:function(e){for(var t,n=sC(this).entries,r=WI(e,arguments.length>1?arguments[1]:void 0,3),i=0;i<n.length;)r((t=n[i++]).value,t.key,this)},keys:function(){return new wC(this,"keys")},values:function(){return new wC(this,"values")},entries:function(){return new wC(this,"entries")}},{enumerable:!0}),NI(_C,rC,_C.entries),NI(_C,"toString",(function(){for(var e,t=sC(this).entries,n=[],r=0;r<t.length;)e=t[r++],n.push(mC(e.key)+"="+mC(e.value));return n.join("&")}),{enumerable:!0}),DI(xC,iC),jI({global:!0,forced:!LI},{URLSearchParams:xC}),!LI&&"function"==typeof nC){var SC=function(e){if(VI(e)){var t,n=e.body;if(GI(n)===iC)return(t=e.headers?new nC(e.headers):new nC).has("content-type")||t.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),KI(e,{body:HI(0,String(n)),headers:HI(0,t)})}return e};if("function"==typeof ZI&&jI({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return ZI(e,arguments.length>1?SC(arguments[1]):{})}}),"function"==typeof eC){var EC=function(e){return qI(this,EC,"Request"),new eC(e,arguments.length>1?SC(arguments[1]):{})};tC.constructor=EC,EC.prototype=tC,jI({global:!0,forced:!0},{Request:EC})}}var TC,RC={URLSearchParams:xC,getState:sC},IC=Rn,CC=s,OC=_I,PC=i,AC=zn,jC=Je.exports,MC=so,LC=ee,NC=UE,UC=gl,DC=Rl.codeAt,FC=function(e){var t,n,r=[],i=e.toLowerCase().replace(TI,".").split(".");for(t=0;t<i.length;t++)n=i[t],r.push(EI.test(n)?"xn--"+AI(n):n);return r.join(".")},BC=Sr,qC=Pn,zC=RC,WC=xt,GC=PC.URL,$C=zC.URLSearchParams,VC=zC.getState,JC=WC.set,KC=WC.getterFor("URL"),HC=Math.floor,YC=Math.pow,QC="Invalid scheme",XC="Invalid host",ZC="Invalid port",eO=/[A-Za-z]/,tO=/[\d+-.A-Za-z]/,nO=/\d/,rO=/^0x/i,iO=/^[0-7]+$/,aO=/^\d+$/,oO=/^[\dA-Fa-f]+$/,sO=/[\0\t\n\r #%/:<>?@[\\\]^|]/,uO=/[\0\t\n\r #/:<>?@[\\\]^|]/,cO=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,lO=/[\t\n\r]/g,fO=function(e,t){var n,r,i;if("["==t.charAt(0)){if("]"!=t.charAt(t.length-1))return XC;if(!(n=pO(t.slice(1,-1))))return XC;e.host=n}else if(wO(e)){if(t=FC(t),sO.test(t))return XC;if(null===(n=dO(t)))return XC;e.host=n}else{if(uO.test(t))return XC;for(n="",r=UC(t),i=0;i<r.length;i++)n+=bO(r[i],vO);e.host=n}},dO=function(e){var t,n,r,i,a,o,s,u=e.split(".");if(u.length&&""==u[u.length-1]&&u.pop(),(t=u.length)>4)return e;for(n=[],r=0;r<t;r++){if(""==(i=u[r]))return e;if(a=10,i.length>1&&"0"==i.charAt(0)&&(a=rO.test(i)?16:8,i=i.slice(8==a?1:2)),""===i)o=0;else{if(!(10==a?aO:8==a?iO:oO).test(i))return e;o=parseInt(i,a)}n.push(o)}for(r=0;r<t;r++)if(o=n[r],r==t-1){if(o>=YC(256,5-t))return null}else if(o>255)return null;for(s=n.pop(),r=0;r<n.length;r++)s+=n[r]*YC(256,3-r);return s},pO=function(e){var t,n,r,i,a,o,s,u=[0,0,0,0,0,0,0,0],c=0,l=null,f=0,d=function(){return e.charAt(f)};if(":"==d()){if(":"!=e.charAt(1))return;f+=2,l=++c}for(;d();){if(8==c)return;if(":"!=d()){for(t=n=0;n<4&&oO.test(d());)t=16*t+parseInt(d(),16),f++,n++;if("."==d()){if(0==n)return;if(f-=n,c>6)return;for(r=0;d();){if(i=null,r>0){if(!("."==d()&&r<4))return;f++}if(!nO.test(d()))return;for(;nO.test(d());){if(a=parseInt(d(),10),null===i)i=a;else{if(0==i)return;i=10*i+a}if(i>255)return;f++}u[c]=256*u[c]+i,2!=++r&&4!=r||c++}if(4!=r)return;break}if(":"==d()){if(f++,!d())return}else if(d())return;u[c++]=t}else{if(null!==l)return;f++,l=++c}}if(null!==l)for(o=c-l,c=7;0!=c&&o>0;)s=u[c],u[c--]=u[l+o-1],u[l+--o]=s;else if(8!=c)return;return u},hO=function(e){var t,n,r,i;if("number"==typeof e){for(t=[],n=0;n<4;n++)t.unshift(e%256),e=HC(e/256);return t.join(".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,n=1,r=null,i=0,a=0;a<8;a++)0!==e[a]?(i>n&&(t=r,n=i),r=null,i=0):(null===r&&(r=a),++i);return i>n&&(t=r,n=i),t}(e),n=0;n<8;n++)i&&0===e[n]||(i&&(i=!1),r===n?(t+=n?":":"::",i=!0):(t+=e[n].toString(16),n<7&&(t+=":")));return"["+t+"]"}return e},vO={},yO=NC({},vO,{" ":1,'"':1,"<":1,">":1,"`":1}),mO=NC({},yO,{"#":1,"?":1,"{":1,"}":1}),gO=NC({},mO,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),bO=function(e,t){var n=DC(e,0);return n>32&&n<127&&!LC(t,e)?e:encodeURIComponent(e)},kO={ftp:21,file:null,http:80,https:443,ws:80,wss:443},wO=function(e){return LC(kO,e.scheme)},xO=function(e){return""!=e.username||""!=e.password},_O=function(e){return!e.host||e.cannotBeABaseURL||"file"==e.scheme},SO=function(e,t){var n;return 2==e.length&&eO.test(e.charAt(0))&&(":"==(n=e.charAt(1))||!t&&"|"==n)},EO=function(e){var t;return e.length>1&&SO(e.slice(0,2))&&(2==e.length||"/"===(t=e.charAt(2))||"\\"===t||"?"===t||"#"===t)},TO=function(e){var t=e.path,n=t.length;!n||"file"==e.scheme&&1==n&&SO(t[0],!0)||t.pop()},RO=function(e){return"."===e||"%2e"===e.toLowerCase()},IO={},CO={},OO={},PO={},AO={},jO={},MO={},LO={},NO={},UO={},DO={},FO={},BO={},qO={},zO={},WO={},GO={},$O={},VO={},JO={},KO={},HO=function(e,t,n,r){var i,a,o,s,u,c=n||IO,l=0,f="",d=!1,p=!1,h=!1;for(n||(e.scheme="",e.username="",e.password="",e.host=null,e.port=null,e.path=[],e.query=null,e.fragment=null,e.cannotBeABaseURL=!1,t=t.replace(cO,"")),t=t.replace(lO,""),i=UC(t);l<=i.length;){switch(a=i[l],c){case IO:if(!a||!eO.test(a)){if(n)return QC;c=OO;continue}f+=a.toLowerCase(),c=CO;break;case CO:if(a&&(tO.test(a)||"+"==a||"-"==a||"."==a))f+=a.toLowerCase();else{if(":"!=a){if(n)return QC;f="",c=OO,l=0;continue}if(n&&(wO(e)!=LC(kO,f)||"file"==f&&(xO(e)||null!==e.port)||"file"==e.scheme&&!e.host))return;if(e.scheme=f,n)return void(wO(e)&&kO[e.scheme]==e.port&&(e.port=null));f="","file"==e.scheme?c=qO:wO(e)&&r&&r.scheme==e.scheme?c=PO:wO(e)?c=LO:"/"==i[l+1]?(c=AO,l++):(e.cannotBeABaseURL=!0,e.path.push(""),c=VO)}break;case OO:if(!r||r.cannotBeABaseURL&&"#"!=a)return QC;if(r.cannotBeABaseURL&&"#"==a){e.scheme=r.scheme,e.path=r.path.slice(),e.query=r.query,e.fragment="",e.cannotBeABaseURL=!0,c=KO;break}c="file"==r.scheme?qO:jO;continue;case PO:if("/"!=a||"/"!=i[l+1]){c=jO;continue}c=NO,l++;break;case AO:if("/"==a){c=UO;break}c=$O;continue;case jO:if(e.scheme=r.scheme,a==TC)e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.query=r.query;else if("/"==a||"\\"==a&&wO(e))c=MO;else if("?"==a)e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.query="",c=JO;else{if("#"!=a){e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.path.pop(),c=$O;continue}e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.query=r.query,e.fragment="",c=KO}break;case MO:if(!wO(e)||"/"!=a&&"\\"!=a){if("/"!=a){e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,c=$O;continue}c=UO}else c=NO;break;case LO:if(c=NO,"/"!=a||"/"!=f.charAt(l+1))continue;l++;break;case NO:if("/"!=a&&"\\"!=a){c=UO;continue}break;case UO:if("@"==a){d&&(f="%40"+f),d=!0,o=UC(f);for(var v=0;v<o.length;v++){var y=o[v];if(":"!=y||h){var m=bO(y,gO);h?e.password+=m:e.username+=m}else h=!0}f=""}else if(a==TC||"/"==a||"?"==a||"#"==a||"\\"==a&&wO(e)){if(d&&""==f)return"Invalid authority";l-=UC(f).length+1,f="",c=DO}else f+=a;break;case DO:case FO:if(n&&"file"==e.scheme){c=WO;continue}if(":"!=a||p){if(a==TC||"/"==a||"?"==a||"#"==a||"\\"==a&&wO(e)){if(wO(e)&&""==f)return XC;if(n&&""==f&&(xO(e)||null!==e.port))return;if(s=fO(e,f))return s;if(f="",c=GO,n)return;continue}"["==a?p=!0:"]"==a&&(p=!1),f+=a}else{if(""==f)return XC;if(s=fO(e,f))return s;if(f="",c=BO,n==FO)return}break;case BO:if(!nO.test(a)){if(a==TC||"/"==a||"?"==a||"#"==a||"\\"==a&&wO(e)||n){if(""!=f){var g=parseInt(f,10);if(g>65535)return ZC;e.port=wO(e)&&g===kO[e.scheme]?null:g,f=""}if(n)return;c=GO;continue}return ZC}f+=a;break;case qO:if(e.scheme="file","/"==a||"\\"==a)c=zO;else{if(!r||"file"!=r.scheme){c=$O;continue}if(a==TC)e.host=r.host,e.path=r.path.slice(),e.query=r.query;else if("?"==a)e.host=r.host,e.path=r.path.slice(),e.query="",c=JO;else{if("#"!=a){EO(i.slice(l).join(""))||(e.host=r.host,e.path=r.path.slice(),TO(e)),c=$O;continue}e.host=r.host,e.path=r.path.slice(),e.query=r.query,e.fragment="",c=KO}}break;case zO:if("/"==a||"\\"==a){c=WO;break}r&&"file"==r.scheme&&!EO(i.slice(l).join(""))&&(SO(r.path[0],!0)?e.path.push(r.path[0]):e.host=r.host),c=$O;continue;case WO:if(a==TC||"/"==a||"\\"==a||"?"==a||"#"==a){if(!n&&SO(f))c=$O;else if(""==f){if(e.host="",n)return;c=GO}else{if(s=fO(e,f))return s;if("localhost"==e.host&&(e.host=""),n)return;f="",c=GO}continue}f+=a;break;case GO:if(wO(e)){if(c=$O,"/"!=a&&"\\"!=a)continue}else if(n||"?"!=a)if(n||"#"!=a){if(a!=TC&&(c=$O,"/"!=a))continue}else e.fragment="",c=KO;else e.query="",c=JO;break;case $O:if(a==TC||"/"==a||"\\"==a&&wO(e)||!n&&("?"==a||"#"==a)){if(".."===(u=(u=f).toLowerCase())||"%2e."===u||".%2e"===u||"%2e%2e"===u?(TO(e),"/"==a||"\\"==a&&wO(e)||e.path.push("")):RO(f)?"/"==a||"\\"==a&&wO(e)||e.path.push(""):("file"==e.scheme&&!e.path.length&&SO(f)&&(e.host&&(e.host=""),f=f.charAt(0)+":"),e.path.push(f)),f="","file"==e.scheme&&(a==TC||"?"==a||"#"==a))for(;e.path.length>1&&""===e.path[0];)e.path.shift();"?"==a?(e.query="",c=JO):"#"==a&&(e.fragment="",c=KO)}else f+=bO(a,mO);break;case VO:"?"==a?(e.query="",c=JO):"#"==a?(e.fragment="",c=KO):a!=TC&&(e.path[0]+=bO(a,vO));break;case JO:n||"#"!=a?a!=TC&&("'"==a&&wO(e)?e.query+="%27":e.query+="#"==a?"%23":bO(a,vO)):(e.fragment="",c=KO);break;case KO:a!=TC&&(e.fragment+=bO(a,yO))}l++}},YO=function(e){var t,n,r=MC(this,YO,"URL"),i=arguments.length>1?arguments[1]:void 0,a=BC(e),o=JC(r,{type:"URL"});if(void 0!==i)if(i instanceof YO)t=KC(i);else if(n=HO(t={},BC(i)))throw TypeError(n);if(n=HO(o,a,null,t))throw TypeError(n);var s=o.searchParams=new $C,u=VC(s);u.updateSearchParams(o.query),u.updateURL=function(){o.query=String(s)||null},CC||(r.href=XO.call(r),r.origin=ZO.call(r),r.protocol=eP.call(r),r.username=tP.call(r),r.password=nP.call(r),r.host=rP.call(r),r.hostname=iP.call(r),r.port=aP.call(r),r.pathname=oP.call(r),r.search=sP.call(r),r.searchParams=uP.call(r),r.hash=cP.call(r))},QO=YO.prototype,XO=function(){var e=KC(this),t=e.scheme,n=e.username,r=e.password,i=e.host,a=e.port,o=e.path,s=e.query,u=e.fragment,c=t+":";return null!==i?(c+="//",xO(e)&&(c+=n+(r?":"+r:"")+"@"),c+=hO(i),null!==a&&(c+=":"+a)):"file"==t&&(c+="//"),c+=e.cannotBeABaseURL?o[0]:o.length?"/"+o.join("/"):"",null!==s&&(c+="?"+s),null!==u&&(c+="#"+u),c},ZO=function(){var e=KC(this),t=e.scheme,n=e.port;if("blob"==t)try{return new YO(t.path[0]).origin}catch(e){return"null"}return"file"!=t&&wO(e)?t+"://"+hO(e.host)+(null!==n?":"+n:""):"null"},eP=function(){return KC(this).scheme+":"},tP=function(){return KC(this).username},nP=function(){return KC(this).password},rP=function(){var e=KC(this),t=e.host,n=e.port;return null===t?"":null===n?hO(t):hO(t)+":"+n},iP=function(){var e=KC(this).host;return null===e?"":hO(e)},aP=function(){var e=KC(this).port;return null===e?"":String(e)},oP=function(){var e=KC(this),t=e.path;return e.cannotBeABaseURL?t[0]:t.length?"/"+t.join("/"):""},sP=function(){var e=KC(this).query;return e?"?"+e:""},uP=function(){return KC(this).searchParams},cP=function(){var e=KC(this).fragment;return e?"#"+e:""},lP=function(e,t){return{get:e,set:t,configurable:!0,enumerable:!0}};if(CC&&AC(QO,{href:lP(XO,(function(e){var t=KC(this),n=BC(e),r=HO(t,n);if(r)throw TypeError(r);VC(t.searchParams).updateSearchParams(t.query)})),origin:lP(ZO),protocol:lP(eP,(function(e){var t=KC(this);HO(t,BC(e)+":",IO)})),username:lP(tP,(function(e){var t=KC(this),n=UC(BC(e));if(!_O(t)){t.username="";for(var r=0;r<n.length;r++)t.username+=bO(n[r],gO)}})),password:lP(nP,(function(e){var t=KC(this),n=UC(BC(e));if(!_O(t)){t.password="";for(var r=0;r<n.length;r++)t.password+=bO(n[r],gO)}})),host:lP(rP,(function(e){var t=KC(this);t.cannotBeABaseURL||HO(t,BC(e),DO)})),hostname:lP(iP,(function(e){var t=KC(this);t.cannotBeABaseURL||HO(t,BC(e),FO)})),port:lP(aP,(function(e){var t=KC(this);_O(t)||(""==(e=BC(e))?t.port=null:HO(t,e,BO))})),pathname:lP(oP,(function(e){var t=KC(this);t.cannotBeABaseURL||(t.path=[],HO(t,BC(e),GO))})),search:lP(sP,(function(e){var t=KC(this);""==(e=BC(e))?t.query=null:("?"==e.charAt(0)&&(e=e.slice(1)),t.query="",HO(t,e,JO)),VC(t.searchParams).updateSearchParams(t.query)})),searchParams:lP(uP),hash:lP(cP,(function(e){var t=KC(this);""!=(e=BC(e))?("#"==e.charAt(0)&&(e=e.slice(1)),t.fragment="",HO(t,e,KO)):t.fragment=null}))}),jC(QO,"toJSON",(function(){return XO.call(this)}),{enumerable:!0}),jC(QO,"toString",(function(){return XO.call(this)}),{enumerable:!0}),GC){var fP=GC.createObjectURL,dP=GC.revokeObjectURL;fP&&jC(YO,"createObjectURL",(function(e){return fP.apply(GC,arguments)})),dP&&jC(YO,"revokeObjectURL",(function(e){return dP.apply(GC,arguments)}))}function pP(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}function hP(e){return function(e){if(Array.isArray(e))return um(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||cm(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}qC(YO,"URL"),IC({global:!0,forced:!OC,sham:!CC},{URL:YO}),function(e){var t=void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};Object.defineProperty(e,"__esModule",{value:!0});var n=Sy.exports,r=Fg.exports,i=Bg,a=wf.exports,o=Zm,s=hh;function u(e){return e&&"object"===Oa(e)&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var l=u(n),f=u(r),d=u(i),p=c(a),h={exports:{}},v="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(v){var y=new Uint8Array(16);h.exports=function(){return v(y),y}}else{var m=new Array(16);h.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),m[t]=e>>>((3&t)<<3)&255;return m}}for(var g=[],b=0;b<256;++b)g[b]=(b+256).toString(16).substr(1);var k,w,x=function(e,t){var n=t||0,r=g;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("")},_=h.exports,S=x,E=0,T=0;var R=function(e,t,n){var r=t&&n||0,i=t||[],a=(e=e||{}).node||k,o=void 0!==e.clockseq?e.clockseq:w;if(null==a||null==o){var s=_();null==a&&(a=k=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==o&&(o=w=16383&(s[6]<<8|s[7]))}var u=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:T+1,l=u-E+(c-T)/1e4;if(l<0&&void 0===e.clockseq&&(o=o+1&16383),(l<0||u>E)&&void 0===e.nsecs&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");E=u,T=c,w=o;var f=(1e4*(268435455&(u+=122192928e5))+c)%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var d=u/4294967296*1e4&268435455;i[r++]=d>>>8&255,i[r++]=255&d,i[r++]=d>>>24&15|16,i[r++]=d>>>16&255,i[r++]=o>>>8|128,i[r++]=255&o;for(var p=0;p<6;++p)i[r+p]=a[p];return t||S(i)},I=h.exports,C=x;var O=R,P=function(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var i=(e=e||{}).random||(e.rng||I)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t)for(var a=0;a<16;++a)t[r+a]=i[a];return t||C(i)},A=P;A.v1=O,A.v4=P;var j=A,M=function(e){Ca(n,e);var t=pP(n);function n(e){var r;Na(this,n);var i,a=j.v4();return(r=t.call(this,(function(t,r){return i=r,e((function(e){n.cancellationMap.delete(a),t(e)}),(function(e){n.cancellationMap.delete(a),r(e)}),(function(e){n.cancellationMap.set(a,e)}))}))).id=a,r.rejectPromise=i,r}return La(n,[{key:"cancel",value:function(){var e=n.cancellationMap.get(this.id);return null==e||e(),this.rejectPromise&&(this.catch((function(){})),this.rejectPromise(new Error("Promise was cancelled"))),this}}]),n}(tI(Promise));function L(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":Oa(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function N(e,t){if("object"===("undefined"==typeof Reflect?"undefined":Oa(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function U(e,t){return["".concat((new Date).toISOString()," MCS Client ").concat(e,":")].concat(Array.from(t))}l.default(M,"cancellationMap",new Map);var D=function(){function e(t){Na(this,e),l.default(this,"prefix",""),this.prefix=null!=t&&t.length>0?t+" ":""}return La(e,[{key:"setLevel",value:function(e){p.setLevel(e)}},{key:"trace",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.trace.apply(null,U(this.prefix+"T",t))}},{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.debug.apply(null,U(this.prefix+"D",t))}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.info.apply(null,U(this.prefix+"I",t))}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.warn.apply(null,U(this.prefix+"W",t))}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.error.apply(null,U(this.prefix+"E",t))}}],[{key:"scope",value:function(t){return new e(t)}},{key:"setLevel",value:function(e){p.setLevel(e)}},{key:"trace",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.trace.apply(null,U("T",t))}},{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.debug.apply(null,U("D",t))}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.info.apply(null,U("I",t))}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.warn.apply(null,U("W",t))}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];p.error.apply(null,U("E",t))}}]),e}(),F=function(e,t){return"".concat((n=e,n.startsWith("http")?"":function(e){return"https://mcs.".concat(null!=e?e:"us1",".twilio.com")}(t))).concat(e);var n},B=function(){function e(t,n,r,i){var a,o,s,u,c,l;Na(this,e);var f=null!==(a=null!==(o=i.MCS)&&void 0!==o?o:i)&&void 0!==a?a:{};this.region=null!==(s=null!==(u=f.region)&&void 0!==u?u:i.region)&&void 0!==s?s:"us1",this.mediaUrl=F(n,this.region),this.mediaSetUrl=r?F(r):"".concat(this.mediaUrl,"Set"),this.token=t,this.retryWhenThrottledOverride=null===(c=f.retryWhenThrottledOverride)||void 0===c||c,this.backoffConfigOverride=null!==(l=f.backoffConfigOverride)&&void 0!==l?l:e.backoffConfigDefault}return La(e,[{key:"updateToken",value:function(e){this.token=e}}],[{key:"backoffConfigDefault",get:function(){return{min:1e3,max:4e3,maxAttemptsCount:3}}},{key:"retryWhenThrottledDefault",get:function(){return true}}]),e}(),Media=function(){function Media(e,t,n){Na(this,Media),this.config=e,this.network=t,this._update(n)}return La(Media,[{key:"sid",get:function(){return this.state.sid}},{key:"serviceSid",get:function(){return this.state.serviceSid}},{key:"dateCreated",get:function(){return this.state.dateCreated}},{key:"dateUpdated",get:function(){return this.state.dateUpdated}},{key:"contentType",get:function(){return this.state.contentType}},{key:"size",get:function(){return this.state.size}},{key:"fileName",get:function(){return this.state.filename}},{key:"filename",get:function(){return this.state.filename}},{key:"category",get:function(){return this.state.category}},{key:"getContentUrl",value:function(){var e=this;return new M(function(){var t=f.default(d.default.mark((function t(n,r,i){var a,o;return d.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.network.get("".concat(e.config.mediaUrl,"/").concat(e.sid)),i((function(){return a.cancel()})),t.prev=2,t.next=5,a;case 5:o=t.sent,e._update(o.body),n(e.state.contentDirectUrl),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(2),r(t.t0);case 13:case"end":return t.stop()}}),t,null,[[2,10]])})));return function(e,n,r){return t.apply(this,arguments)}}())}},{key:"_update",value:function(e){var t,n,r,i;this.state={sid:e.sid,serviceSid:e.service_sid,channelSid:e.channel_sid,messageSid:e.message_sid,dateCreated:e.date_created?new Date(e.date_created):null,dateUploadUpdated:e.date_upload_updated?new Date(e.date_upload_updated):null,dateUpdated:e.date_updated?new Date(e.date_updated):null,size:e.size,contentType:e.content_type,author:e.author,url:e.url,contentUrl:e.links.content,contentDirectUrl:null!==(t=e.links.content_direct_temporary)&&void 0!==t?t:null,filename:null!==(n=e.filename)&&void 0!==n?n:null,category:null!==(r=e.category)&&void 0!==r?r:"media",isMultipartUpstream:null!==(i=e.is_multipart_upstream)&&void 0!==i&&i}}}]),Media}(),q=function(e){Ca(n,e);var t=pP(n);function n(e,r,i,a,o){var s;return Na(this,n),(s=t.call(this,e)).code=r,s.body=i,s.status=a,s.headers=o,s}return La(n)}(tI(Error)),z=t.XMLHttpRequest||{};var W,G=function(){function e(){Na(this,e)}return La(e,[{key:"get",value:function(t,n){return e.request("GET",t,n)}},{key:"post",value:function(t,n,r){return e.request("POST",t,n,r)}}],[{key:"request",value:function(e,t,n,r){return new M((function(i,a,o){var s=new z,u=!1;for(var c in o((function(){s.abort(),u=!0})),s.open(e,t,!0),s.onreadystatechange=function(){if(4===s.readyState&&!u){var e,t=(e=s.getAllResponseHeaders())?e.split("\r\n").map((function(e){return e.split(": ")})).filter((function(e){return 2===e.length&&e[1].length>0})).reduce((function(e,t){return e[t[0]]=t[1],e}),{}):{},n=function(e){var t=e.getResponseHeader("Content-Type");if(!t||0!==t.indexOf("application/json")||0===e.responseText.length)return e.responseText;try{return JSON.parse(e.responseText)}catch(t){return e.responseText}}(s);if(200<=s.status&&s.status<300)i({status:s.status,headers:t,body:n});else{var r,o,c=null!==(r=s.statusText)&&void 0!==r?r:"NONE";o="string"==typeof n?n&&1===n.split("\n",2).length?n:"":JSON.stringify(n);var l="".concat(s.status,": [").concat(c,"] ").concat(o);a(new q(l,s.status,n,c,t))}}},n)s.setRequestHeader(c,n[c]),"Content-Type"===c&&"application/json"===n[c]&&(r=JSON.stringify(r));s.send(r)}))}}]),e}(),$=D.scope("Network"),V=function(){function e(t,n){Na(this,e),this.config=t,this.transport=n}return La(e,[{key:"backoffConfig",value:function(){return Object.assign(B.backoffConfigDefault,this.config.backoffConfigOverride)}},{key:"retryWhenThrottled",value:function(){var e,t;return null!==(e=null!==(t=this.config.retryWhenThrottledOverride)&&void 0!==t?t:B.retryWhenThrottledDefault)&&void 0!==e&&e}},{key:"executeWithRetry",value:function(e,t){var n=this;return new M(function(){var r=f.default(d.default.mark((function r(i,a,s){var u,c;return d.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:u=new o.Retrier(n.backoffConfig()),c=[502,503,504],t&&c.push(429),s((function(){u.cancel(),u.removeAllListeners()})),u.on("attempt",f.default(d.default.mark((function t(){var n,r;return d.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n=e(),s((function(){n.cancel(),u.cancel(),u.removeAllListeners()})),t.next=5,n;case 5:r=t.sent,u.succeeded(r),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),c.indexOf(t.t0.status)>-1||"Twilsock disconnected"===t.t0.message?u.failed(t.t0):(u.removeAllListeners(),u.cancel(),a(t.t0));case 12:case"end":return t.stop()}}),t,null,[[0,9]])})))),u.on("succeeded",(function(e){i(e)})),u.on("cancelled",(function(e){return a(e)})),u.on("failed",(function(e){return a(e)})),u.start();case 9:case"end":return r.stop()}}),r)})));return function(e,t,n){return r.apply(this,arguments)}}())}},{key:"get",value:function(e){var t=this;return new M(function(){var n=f.default(d.default.mark((function n(r,i,a){var o,s,u;return d.default.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o={"X-Twilio-Token":t.config.token},s=t.executeWithRetry((function(){return t.transport.get(e,o)}),t.retryWhenThrottled()),$.trace("sending GET request to ",e," headers ",o),a((function(){return s.cancel()})),n.prev=4,n.next=7,s;case 7:u=n.sent,$.trace("response",u),r(u),n.next=16;break;case 12:n.prev=12,n.t0=n.catch(4),$.debug("get() error ".concat(n.t0)),i(n.t0);case 16:case"end":return n.stop()}}),n,null,[[4,12]])})));return function(e,t,r){return n.apply(this,arguments)}}())}},{key:"post",value:function(e,n,r,i,a){var o=this,s={"X-Twilio-Token":this.config.token};"undefined"!=typeof FormData&&r instanceof FormData||!i||Object.assign(s,{"Content-Type":i});var u=new URL(e);return n&&u.searchParams.append("Category",n),a&&u.searchParams.append("Filename",a),new M(function(){var n=f.default(d.default.mark((function n(i,a,c){var l,f;return d.default.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return l=o.transport.post(u.href,s,r),c((function(){return l.cancel()})),$.trace("sending POST request to ".concat(e," with headers ").concat(s)),n.prev=3,n.next=6,l;case 6:f=n.sent,n.next=17;break;case 9:if(n.prev=9,n.t0=n.catch(3),!(void 0===t.XMLHttpRequest&&r instanceof FormData)){n.next=14;break}return a(new TypeError("Posting FormData supported only with browser engine's FormData")),n.abrupt("return");case 14:return $.debug("post() error ".concat(n.t0)),a(n.t0),n.abrupt("return");case 17:$.trace("response",f),i(f);case 19:case"end":return n.stop()}}),n,null,[[3,9]])})));return function(e,t,r){return n.apply(this,arguments)}}())}}]),e}(),J=D.scope("");e.default=(W=function(){function Client(e,t,n){var r,i;Na(this,Client);var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};this.options=a,this.options.logLevel=null!==(r=this.options.logLevel)&&void 0!==r?r:"silent",this.config=new B(e,t,n,this.options),J.setLevel(this.options.logLevel),this.options.transport=null!==(i=this.options.transport)&&void 0!==i?i:new G,this.transport=this.options.transport,this.network=new V(this.config,this.transport)}return La(Client,[{key:"updateToken",value:function(e){J.info("updateToken"),this.config.updateToken(e)}},{key:"get",value:function(e){var t=this;return new M(function(){var n=f.default(d.default.mark((function n(r,i,a){var o,s;return d.default.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o=t.network.get("".concat(t.config.mediaUrl,"/").concat(e)),a((function(){return o.cancel()})),n.prev=2,n.next=5,o;case 5:s=n.sent,r(new Media(t.config,t.network,s.body)),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(2),i(n.t0);case 12:case"end":return n.stop()}}),n,null,[[2,9]])})));return function(e,t,r){return n.apply(this,arguments)}}())}},{key:"post",value:function(e,t,n,r){var i=this;return new M(function(){var a=f.default(d.default.mark((function a(o,s,u){var c,l;return d.default.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return c=i.network.post(i.config.mediaUrl,null!=n?n:"media",t,e,r),u((function(){return c.cancel()})),a.prev=2,a.next=5,c;case 5:l=a.sent,o(new Media(i.config,i.network,l.body)),a.next=12;break;case 9:a.prev=9,a.t0=a.catch(2),s(a.t0);case 12:case"end":return a.stop()}}),a,null,[[2,9]])})));return function(e,t,n){return a.apply(this,arguments)}}())}},{key:"postFormData",value:function(e,t){var n=this;return new M(function(){var r=f.default(d.default.mark((function r(i,a,o){var s,u;return d.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return s=n.network.post(n.config.mediaUrl,null!=t?t:"media",e),o((function(){return s.cancel()})),r.prev=2,r.next=5,s;case 5:u=r.sent,i(new Media(n.config,n.network,u.body)),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(2),a(r.t0);case 12:case"end":return r.stop()}}),r,null,[[2,9]])})));return function(e,t,n){return r.apply(this,arguments)}}())}},{key:"mediaSetGet",value:function(e){var t=this;return new M(function(){var n=f.default(d.default.mark((function n(r,i,a){var o,s,u,c;return d.default.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o={command:"get",list:e.map((function(e){return{media_sid:e}}))},s=t.network.post("".concat(t.config.mediaSetUrl),null,o,"application/json"),a((function(){return s.cancel()})),n.prev=3,n.next=6,s;case 6:u=n.sent,c=u.body.map((function(e){if(200===e.code)return new Media(t.config,t.network,e.media_record);i("Failed to obtain detailed information about Media items (failed SID ".concat(e.media_record.sid,")"))})),r(c),n.next=14;break;case 11:n.prev=11,n.t0=n.catch(3),i(n.t0);case 14:case"end":return n.stop()}}),n,null,[[3,11]])})));return function(e,t,r){return n.apply(this,arguments)}}())}},{key:"mediaSetGetContentUrls",value:function(e){var t=this;return new M(function(){var n=f.default(d.default.mark((function n(r,i,a){var o,s,u,c;return d.default.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o={command:"get",list:e.map((function(e){return{media_sid:e}}))},s=t.network.post("".concat(t.config.mediaSetUrl),null,o,"application/json"),a((function(){return s.cancel()})),n.prev=3,n.next=6,s;case 6:u=n.sent,c=new Map,u.body.forEach((function(e){200===e.code?c.set(e.media_record.sid,e.media_record.links.content_direct_temporary):i("Failed to obtain detailed information about Media items (failed SID ".concat(e.media_record.sid,")"))})),r(c),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(3),i(n.t0);case 15:case"end":return n.stop()}}),n,null,[[3,12]])})));return function(e,t,r){return n.apply(this,arguments)}}())}}]),Client}(),l.default(W,"version","0.6.0-rc.5"),W),L([s.validateTypes(s.nonEmptyString),N("design:type",Function),N("design:paramtypes",[String]),N("design:returntype",void 0)],e.default.prototype,"updateToken",null),L([s.validateTypesAsync(s.nonEmptyString),N("design:type",Function),N("design:paramtypes",[String]),N("design:returntype",M)],e.default.prototype,"get",null),e.default=L([s.validateConstructorTypes(s.nonEmptyString,s.nonEmptyString,[s.nonEmptyString,s.literal(null)],[s.pureObject,"undefined"]),N("design:paramtypes",[String,String,Object,Object])],e.default),e.CancellablePromise=M,e.Client=e.default,e.McsClient=e.default,e.McsMedia=Media,e.Media=Media}(rI);var vP=oo,yP="ArrayBuffer",mP=cw.ArrayBuffer;function gP(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}Rn({global:!0,forced:i.ArrayBuffer!==mP},{ArrayBuffer:mP}),vP(yP);var bP=Tf.scope("Participant"),Participant=function(e){Ca(Participant,e);var t,n,r,i=gP(Participant);function Participant(e,t,n,r,a){var o,s,u;if(Na(this,Participant),(u=i.call(this)).conversation=n,u.links=r,u.services=a,u.state={attributes:dh(e.attributes,"Retrieved malformed attributes from the server for participant: "+t,bP),dateCreated:e.dateCreated?fh(e.dateCreated):null,dateUpdated:e.dateCreated?fh(e.dateUpdated):null,sid:t,typingTimeout:null,isTyping:!1,identity:e.identity,roleSid:null!==(o=e.roleSid)&&void 0!==o?o:"",lastReadMessageIndex:Number.isInteger(e.lastConsumedMessageIndex)?e.lastConsumedMessageIndex:null,lastReadTimestamp:e.lastConsumptionTimestamp?fh(e.lastConsumptionTimestamp):null,type:e.type||"chat",userInfo:e.userInfo,bindings:null!==(s=e.bindings)&&void 0!==s?s:{}},!e.identity&&!e.type)throw new Error("Received invalid Participant object from server: Missing identity or type of Participant.");return u}return La(Participant,[{key:"sid",get:function(){return this.state.sid}},{key:"attributes",get:function(){return this.state.attributes}},{key:"dateCreated",get:function(){return this.state.dateCreated}},{key:"dateUpdated",get:function(){return this.state.dateUpdated}},{key:"identity",get:function(){return this.state.identity}},{key:"isTyping",get:function(){return this.state.isTyping}},{key:"lastReadMessageIndex",get:function(){return this.state.lastReadMessageIndex}},{key:"lastReadTimestamp",get:function(){return this.state.lastReadTimestamp}},{key:"roleSid",get:function(){return this.state.roleSid}},{key:"type",get:function(){return this.state.type}},{key:"bindings",get:function(){var e;return null!==(e=this.state.bindings)&&void 0!==e?e:{}}},{key:"_startTyping",value:function(e){var t=this;return this.state.typingTimeout&&clearTimeout(this.state.typingTimeout),this.state.isTyping=!0,this.emit("typingStarted",this),this.conversation.emit("typingStarted",this),this.state.typingTimeout=Number(setTimeout((function(){return t._endTyping()}),e)),this}},{key:"_endTyping",value:function(){this.state.typingTimeout&&(this.state.isTyping=!1,this.emit("typingEnded",this),this.conversation.emit("typingEnded",this),clearInterval(this.state.typingTimeout),this.state.typingTimeout=null)}},{key:"_update",value:function(e){var t=[],n=dh(e.attributes,"Retrieved malformed attributes from the server for participant: "+this.state.sid,bP);e.attributes&&!am(this.state.attributes,n)&&(this.state.attributes=n,t.push("attributes"));var r=fh(e.dateUpdated);e.dateUpdated&&(null==r?void 0:r.getTime())!==(this.state.dateUpdated&&this.state.dateUpdated.getTime())&&(this.state.dateUpdated=r,t.push("dateUpdated"));var i=fh(e.dateCreated);if(e.dateCreated&&(null==i?void 0:i.getTime())!==(this.state.dateCreated&&this.state.dateCreated.getTime())&&(this.state.dateCreated=i,t.push("dateCreated")),e.roleSid&&this.state.roleSid!==e.roleSid&&(this.state.roleSid=e.roleSid,t.push("roleSid")),!Number.isInteger(e.lastConsumedMessageIndex)&&null!==e.lastConsumedMessageIndex||this.state.lastReadMessageIndex===e.lastConsumedMessageIndex||(this.state.lastReadMessageIndex=e.lastConsumedMessageIndex,t.push("lastReadMessageIndex")),e.lastConsumptionTimestamp){var a=new Date(e.lastConsumptionTimestamp);this.state.lastReadTimestamp&&this.state.lastReadTimestamp.getTime()===a.getTime()||(this.state.lastReadTimestamp=a,t.push("lastReadTimestamp"))}return e.bindings&&!am(this.state.bindings,e.bindings)&&(this.state.bindings=e.bindings,t.push("bindings")),t.length>0&&this.emit("updated",{participant:this,updateReasons:t}),this}},{key:"getUser",value:(r=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("chat"==this.type){e.next=2;break}throw new Error("Getting User is not supported for this Participant type: "+this.type);case 2:return e.abrupt("return",this.services.users.getUser(this.state.identity,this.state.userInfo));case 3:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"remove",value:(n=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.conversation.removeParticipant(this));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"updateAttributes",value:(t=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.commandExecutor.mutateResource("post",this.links.self,{attributes:JSON.stringify(t)});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),Participant}(rm);function kP(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}ja(Participant,"typingStarted","typingStarted"),ja(Participant,"typingEnded","typingEnded"),ja(Participant,"updated","updated"),Gc([gy(by),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Promise)],Participant.prototype,"updateAttributes",null);var wP=Tf.scope("Participants"),xP=function(e){Ca(l,e);var t,n,r,i,a,o,s,u,c=kP(l);function l(e,t,n,r,i){var a;return Na(this,l),ja(Ra(a=c.call(this)),"rosterEntityPromise",null),a.conversation=e,a.participants=t,a.links=n,a.configuration=r,a.services=i,a}return La(l,[{key:"unsubscribe",value:(u=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.rosterEntityPromise){e.next=6;break}return e.next=3,this.rosterEntityPromise;case 3:e.sent.close(),this.rosterEntityPromise=null;case 6:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"subscribe",value:function(e){var t=this;return this.rosterEntityPromise=this.rosterEntityPromise||this.services.syncClient.map({id:e,mode:"open_existing"}).then((function(e){e.on("itemAdded",(function(e){wP.debug(t.conversation.sid+" itemAdded: "+e.item.key),t.upsertParticipant(e.item.key,e.item.data).then((function(e){t.emit("participantJoined",e)}))})),e.on("itemRemoved",(function(e){wP.debug(t.conversation.sid+" itemRemoved: "+e.key);var n=e.key;if(t.participants.has(n)){var r=t.participants.get(n);t.participants.delete(n),r&&t.emit("participantLeft",r)}})),e.on("itemUpdated",(function(e){wP.debug(t.conversation.sid+" itemUpdated: "+e.item.key),t.upsertParticipant(e.item.key,e.item.data)}));var n=[];return e.getItems().then((function e(r){return r.items.forEach((function(e){n.push(t.upsertParticipant(e.key,e.data))})),r.hasNextPage?r.nextPage().then(e):null})).then((function(){return Promise.all(n)})).then((function(){return e}))})).catch((function(e){throw t.rosterEntityPromise=null,"disconnected"!=t.services.syncClient.connectionState&&wP.error("Failed to get roster object for conversation",t.conversation.sid,e),wP.debug("ERROR: Failed to get roster object for conversation",t.conversation.sid,e),e}))}},{key:"upsertParticipantFromResponse",value:(s=Ta(zc.mark((function e(t){var n,r,i,a,o,s,u,c;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sid,i=t.attributes,a=t.date_created,o=t.date_updated,s=t.identity,u=t.role_sid,c=t.messaging_binding,e.next=3,this.upsertParticipant(r,{attributes:i,dateCreated:new Date(a),dateUpdated:new Date(o),identity:s,roleSid:u,lastConsumedMessageIndex:null,lastConsumptionTimestamp:null,type:null!==(n=null==c?void 0:c.type)&&void 0!==n?n:"chat"});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"upsertParticipant",value:(o=Ta(zc.mark((function e(t,n){var r,i,a=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=this.participants.get(t))){e.next=3;break}return e.abrupt("return",r._update(n));case 3:return i={self:"".concat(this.links.participants,"/").concat(t)},r=new Participant(n,t,this.conversation,i,this.services),this.participants.set(t,r),r.on("updated",(function(e){return a.emit("participantUpdated",e)})),e.abrupt("return",r);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"getParticipants",value:(a=Ta(zc.mark((function e(){var t=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.rosterEntityPromise?this.rosterEntityPromise.then((function(){var e=[];return t.participants.forEach((function(t){return e.push(t)})),e})):[]);case 1:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getParticipantBySid",value:(i=Ta(zc.mark((function e(t){var n=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.rosterEntityPromise?this.rosterEntityPromise.then((function(){var e=n.participants.get(t);if(!e)throw new Error("Participant with SID "+t+" was not found");return e})):null);case 1:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"getParticipantByIdentity",value:(r=Ta(zc.mark((function e(t){var n,r=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=null,e.abrupt("return",this.rosterEntityPromise?this.rosterEntityPromise.then((function(){if(r.participants.forEach((function(e){e.identity===t&&(n=e)})),!n)throw new Error("Participant with identity "+t+" was not found");return n})):null);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"add",value:(n=Ta(zc.mark((function e(t,n){var r;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.commandExecutor.mutateResource("post",this.links.participants,{identity:t,attributes:void 0!==n?JSON.stringify(n):void 0});case 2:return r=e.sent,e.next=5,this.upsertParticipantFromResponse(r);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"addNonChatParticipant",value:(t=Ta(zc.mark((function e(t,n){var r,i,a,o,s,u=arguments;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=u.length>2&&void 0!==u[2]?u[2]:{},o=u.length>3&&void 0!==u[3]?u[3]:{},e.next=4,this.services.commandExecutor.mutateResource("post",this.links.participants,{attributes:void 0!==a?JSON.stringify(a):void 0,messaging_binding:{address:n,proxy_address:t,name:null==o||null===(r=o.email)||void 0===r?void 0:r.name,level:null==o||null===(i=o.email)||void 0===i?void 0:i.level}});case 4:return s=e.sent,e.next=7,this.upsertParticipantFromResponse(s);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"remove",value:function(e){return this.services.commandExecutor.mutateResource("delete","".concat(this.links.participants,"/").concat(e))}}]),l}(rm),_P=Rn,SP=Ln,EP=Q,TP=Ut,RP=Sr,IP=o,CP=K_,OP=rc,PP=Y_,AP=Q_,jP=L,MP=Z_,LP=[],NP=LP.sort,UP=IP((function(){LP.sort(void 0)})),DP=IP((function(){LP.sort(null)})),FP=OP("sort"),BP=!IP((function(){if(jP)return jP<70;if(!(PP&&PP>3)){if(AP)return!0;if(MP)return MP<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)LP.push({k:t+r,v:n})}for(LP.sort((function(e,t){return t.v-e.v})),r=0;r<LP.length;r++)t=LP[r].k.charAt(0),i.charAt(i.length-1)!==t&&(i+=t);return"DGBEFHACIJK"!==i}}));_P({target:"Array",proto:!0,forced:UP||!DP||!FP||!BP},{sort:function(e){void 0!==e&&SP(e);var t=EP(this);if(BP)return void 0===e?NP.call(t):NP.call(t,e);var n,r,i=[],a=TP(t.length);for(r=0;r<a;r++)r in t&&i.push(t[r]);for(n=(i=CP(i,function(e){return function(t,n){return void 0===n?-1:void 0===t?1:void 0!==e?+e(t,n)||0:RP(t)>RP(n)?1:-1}}(e))).length,r=0;r<n;)t[r]=i[r++];for(;r<a;)delete t[r++];return t}});var qP=aI,zP=k,WP=Sr;Rn({target:"String",proto:!0,forced:!sI("includes")},{includes:function(e){return!!~WP(zP(this)).indexOf(WP(qP(e)),arguments.length>1?arguments[1]:void 0)}});var Media=function(){function Media(e,t){Na(this,Media),ja(this,"mcsMedia",null),this.services=t,e instanceof rI.McsMedia&&(this.mcsMedia=e),this.state={sid:e.sid,category:e.category,filename:e.filename,contentType:e.contentType,size:e.size}}return La(Media,[{key:"sid",get:function(){return this.state.sid}},{key:"filename",get:function(){return this.state.filename}},{key:"contentType",get:function(){return this.state.contentType}},{key:"size",get:function(){return this.state.size}},{key:"category",get:function(){return this.state.category}},{key:"getContentTemporaryUrl",value:function(){var e=this;return new rI.CancellablePromise(function(){var t=Ta(zc.mark((function t(n,r,i){var a,o,s,u;return zc.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=e._fetchMcsMedia(),s=null===(a=e.mcsMedia)||void 0===a?void 0:a.getContentUrl(),i((function(){o.cancel(),s&&s.cancel()})),t.prev=3,e.mcsMedia){t.next=9;break}return t.next=7,o;case 7:u=t.sent,s=u.getContentUrl();case 9:if(t.t0=n,!s){t.next=16;break}return t.next=13,s;case 13:t.t1=t.sent,t.next=17;break;case 16:t.t1=null;case 17:t.t2=t.t1,(0,t.t0)(t.t2),t.next=24;break;case 21:t.prev=21,t.t3=t.catch(3),r(t.t3);case 24:case"end":return t.stop()}}),t,null,[[3,21]])})));return function(e,n,r){return t.apply(this,arguments)}}())}},{key:"_fetchMcsMedia",value:function(){var e=this;return new rI.CancellablePromise(function(){var t=Ta(zc.mark((function t(n,r,i){var a;return zc.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.services.mcsClient.get(e.state.sid),!e.services.mcsClient){t.next=14;break}return i((function(){return a.cancel()})),t.prev=3,t.next=6,a;case 6:e.mcsMedia=t.sent,n(e.mcsMedia),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(3),r(t.t0);case 13:return t.abrupt("return");case 14:r(new Error("Media Content Service is unavailable"));case 15:case"end":return t.stop()}}),t,null,[[3,10]])})));return function(e,n,r){return t.apply(this,arguments)}}())}}]),Media}(),AggregatedDeliveryReceipt=function(){function AggregatedDeliveryReceipt(e){Na(this,AggregatedDeliveryReceipt),this.state=e}return La(AggregatedDeliveryReceipt,[{key:"total",get:function(){return this.state.total}},{key:"sent",get:function(){return this.state.sent}},{key:"delivered",get:function(){return this.state.delivered}},{key:"read",get:function(){return this.state.read}},{key:"undelivered",get:function(){return this.state.undelivered}},{key:"failed",get:function(){return this.state.failed}},{key:"_update",value:function(e){this.state=e}},{key:"_isEquals",value:function(e){var t=this.total===e.total,n=this.sent===e.sent,r=this.delivered===e.delivered,i=this.read===e.read,a=this.undelivered===e.undelivered,o=this.failed===e.failed;return t&&n&&r&&i&&a&&o}}]),AggregatedDeliveryReceipt}(),GP=function(){function e(t,n,r,i){Na(this,e),this.state={prevToken:r,nextToken:i,source:n,items:t}}return La(e,[{key:"hasNextPage",get:function(){return!!this.state.nextToken}},{key:"hasPrevPage",get:function(){return!!this.state.prevToken}},{key:"items",get:function(){return this.state.items}},{key:"nextPage",value:function(){return this.hasNextPage?this.state.source(this.state.nextToken):Promise.reject(new Error("No next page"))}},{key:"prevPage",value:function(){return this.hasPrevPage?this.state.source(this.state.prevToken):Promise.reject(new Error("No previous page"))}}]),e}(),DetailedDeliveryReceipt=La((function DetailedDeliveryReceipt(e){Na(this,DetailedDeliveryReceipt),this.sid=e.sid,this.messageSid=e.message_sid,this.conversationSid=e.conversation_sid,this.channelMessageSid=e.channel_message_sid,this.participantSid=e.participant_sid,this.status=e.status||"queued",this.errorCode=e.error_code||0,this.dateCreated=e.date_created,this.dateUpdated=e.date_updated}));function $P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function VP(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$P(Object(n),!0).forEach((function(t){ja(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function JP(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}var KP=Tf.scope("Message"),Message=function(e){Ca(Message,e);var t,n,r,i,a,o,s=JP(Message);function Message(e,t,n,r,i,a){var o,u,c,l,f;return Na(this,Message),(f=s.call(this)).conversation=n,f.links=r,f.configuration=i,f.services=a,f.state={sid:t.sid,index:e,author:t.author,subject:t.subject,body:null!==(o=t.text)&&void 0!==o?o:null,timestamp:t.timestamp?new Date(t.timestamp):null,dateUpdated:t.dateUpdated?new Date(t.dateUpdated):null,lastUpdatedBy:null!==(u=t.lastUpdatedBy)&&void 0!==u?u:null,attributes:dh(t.attributes,"Got malformed attributes for the message ".concat(t.sid),KP),type:null!==(c=t.type)&&void 0!==c?c:"text",media:"media"===t.type&&t.media?new Media(t.media,f.services):null,medias:"media"===t.type&&t.medias?t.medias.map((function(e){return new Media(e,f.services)})):"media"===t.type&&t.media&&!t.medias?[new Media(VP(VP({},t.media),{},{category:"media"}),f.services)]:null,participantSid:null!==(l=t.memberSid)&&void 0!==l?l:null,aggregatedDeliveryReceipt:t.delivery?new AggregatedDeliveryReceipt(t.delivery):null},f}return La(Message,[{key:"sid",get:function(){return this.state.sid}},{key:"author",get:function(){return this.state.author}},{key:"subject",get:function(){return this.state.subject}},{key:"body",get:function(){return 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:"dateCreated",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}},{key:"attachedMedia",get:function(){return this.getMediaByCategories(["media"])}},{key:"participantSid",get:function(){return this.state.participantSid}},{key:"aggregatedDeliveryReceipt",get:function(){return this.state.aggregatedDeliveryReceipt}},{key:"getMediaByCategories",value:function(e){var t;return(null!==(t=this.state.medias)&&void 0!==t?t:[]).filter((function(t){return e.includes(t.category)}))}},{key:"getEmailBody",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"text/plain";return null!==(e=null===(t=this.getMediaByCategories(["body"]))||void 0===t?void 0:t.filter((function(e){return e.contentType==n})).shift())&&void 0!==e?e:null}},{key:"getEmailHistory",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"text/plain";return null!==(e=null===(t=this.getMediaByCategories(["history"]))||void 0===t?void 0:t.filter((function(e){return e.contentType==n})).shift())&&void 0!==e?e:null}},{key:"_update",value:function(e){var t=[];!e.text&&"string"!=typeof e.text||e.text===this.state.body||(this.state.body=e.text,t.push("body")),e.subject&&e.subject!==this.state.subject&&(this.state.subject=e.subject,t.push("subject")),e.lastUpdatedBy&&e.lastUpdatedBy!==this.state.lastUpdatedBy&&(this.state.lastUpdatedBy=e.lastUpdatedBy,t.push("lastUpdatedBy")),e.author&&e.author!==this.state.author&&(this.state.author=e.author,t.push("author")),e.dateUpdated&&new Date(e.dateUpdated).getTime()!==(this.state.dateUpdated&&this.state.dateUpdated.getTime())&&(this.state.dateUpdated=new Date(e.dateUpdated),t.push("dateUpdated")),e.timestamp&&new Date(e.timestamp).getTime()!==(this.state.timestamp&&this.state.timestamp.getTime())&&(this.state.timestamp=new Date(e.timestamp),t.push("dateCreated"));var n=dh(e.attributes,"Got malformed attributes for the message ".concat(this.sid),KP);am(this.state.attributes,n)||(this.state.attributes=n,t.push("attributes"));var r=e.delivery,i=this.state.aggregatedDeliveryReceipt;!!(r&&r.total&&r.delivered&&r.failed&&r.read&&r.sent&&r.undelivered)&&(i?i._isEquals(r)||(i._update(r),t.push("deliveryReceipt")):(this.state.aggregatedDeliveryReceipt=new AggregatedDeliveryReceipt(r),t.push("deliveryReceipt"))),t.length>0&&this.emit("updated",{message:this,updateReasons:t})}},{key:"getParticipant",value:(o=Ta(zc.mark((function e(){var t,n,r=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=null,!this.state.participantSid){e.next=5;break}return e.next=4,this.conversation.getParticipantBySid(this.state.participantSid).catch((function(){return KP.debug('Participant with sid "'.concat(r.participantSid,'" not found for message ').concat(r.sid)),null}));case 4:t=e.sent;case 5:if(t||!this.state.author){e.next=9;break}return e.next=8,this.conversation.getParticipantByIdentity(this.state.author).catch((function(){return KP.debug('Participant with identity "'.concat(r.author,'" not found for message ').concat(r.sid)),null}));case 8:t=e.sent;case 9:if(!t){e.next=11;break}return e.abrupt("return",t);case 11:throw n="Participant with ",this.state.participantSid&&(n+="SID '"+this.state.participantSid+"' "),this.state.author&&(this.state.participantSid&&(n+="or "),n+="identity '"+this.state.author+"' "),"Participant with "===n&&(n="Participant "),n+="was not found",new Error(n);case 17:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"getDetailedDeliveryReceipts",value:(a=Ta(zc.mark((function e(){var t,n;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getDetailedDeliveryReceiptsPaginator();case 2:t=e.sent,n=[];case 4:if(n=[].concat(hP(n),hP(t.items)),t.hasNextPage){e.next=8;break}return e.abrupt("break",13);case 8:return e.next=10,t.nextPage();case 10:t=e.sent,e.next=4;break;case 13:return e.abrupt("return",n);case 14:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"remove",value:(i=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.commandExecutor.mutateResource("delete",this.links.self);case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"updateBody",value:(r=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.commandExecutor.mutateResource("post",this.links.self,{body:t});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"updateAttributes",value:(n=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.commandExecutor.mutateResource("post",this.links.self,{attributes:void 0!==t?JSON.stringify(t):void 0});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"getTemporaryContentUrlsForMedia",value:function(e){var t=e.map((function(e){return e.sid}));return this.getTemporaryContentUrlsForMediaSids(t)}},{key:"getTemporaryContentUrlsForMediaSids",value:function(e){var t=this;return new rI.CancellablePromise(function(){var n=Ta(zc.mark((function n(r,i,a){var o,s;return zc.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(o=t.services.mcsClient.mediaSetGetContentUrls(null!=e?e:[]),t.services.mcsClient&&e){n.next=4;break}return i(new Error("Media Content Service is unavailable")),n.abrupt("return");case 4:return a((function(){o.cancel()})),n.prev=5,n.next=8,o;case 8:s=n.sent,r(s),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(5),i(n.t0);case 15:case"end":return n.stop()}}),n,null,[[5,12]])})));return function(e,t,r){return n.apply(this,arguments)}}())}},{key:"getTemporaryContentUrlsForAttachedMedia",value:function(){var e,t=this.attachedMedia,n=null!==(e=null==t?void 0:t.map((function(e){return e.sid})))&&void 0!==e?e:[];return this.getTemporaryContentUrlsForMediaSids(n)}},{key:"_getDetailedDeliveryReceiptsPaginator",value:(t=Ta(zc.mark((function e(t){var n,r,i,a=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.configuration.links.messagesReceipts.replace("%s",this.conversation.sid).replace("%s",this.sid),r=new ph(n).arg("PageToken",null==t?void 0:t.pageToken).arg("PageSize",null==t?void 0:t.pageSize).build(),e.next=4,this.services.network.get(r);case 4:return i=e.sent,e.abrupt("return",new GP(i.body.delivery_receipts.map((function(e){return new DetailedDeliveryReceipt(e)})),(function(e,t){return a._getDetailedDeliveryReceiptsPaginator({pageToken:e,pageSize:t})}),i.body.meta.previous_token,i.body.meta.next_token));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),Message}(rm);function HP(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return YP(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return YP(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function YP(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function QP(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}ja(Message,"updated","updated"),Gc([my([dy,"undefined"]),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Media)],Message.prototype,"getEmailBody",null),Gc([my([dy,"undefined"]),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Media)],Message.prototype,"getEmailHistory",null),Gc([gy("string"),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],Message.prototype,"updateBody",null),Gc([gy(by),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Promise)],Message.prototype,"updateAttributes",null),Gc([gy(fy("media",Media)),$c("design:type",Function),$c("design:paramtypes",[Array]),$c("design:returntype",rI.CancellablePromise)],Message.prototype,"getTemporaryContentUrlsForMedia",null),Gc([gy(fy("strings","string")),$c("design:type",Function),$c("design:paramtypes",[Array]),$c("design:returntype",rI.CancellablePromise)],Message.prototype,"getTemporaryContentUrlsForMediaSids",null);var XP=Tf.scope("Messages"),ZP=function(e){Ca(u,e);var t,n,r,i,a,o,s=QP(u);function u(e,t,n){var r;return Na(this,u),(r=s.call(this)).conversation=e,r.configuration=t,r.services=n,r.messagesByIndex=new Map,r.messagesListPromise=null,r}return La(u,[{key:"subscribe",value:(o=Ta(zc.mark((function e(t){var n,r=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.messagesListPromise){e.next=2;break}return e.abrupt("return",this.messagesListPromise);case 2:return this.messagesListPromise=this.services.syncClient.list({id:t,mode:"open_existing"}),e.prev=3,e.next=6,this.messagesListPromise;case 6:return(n=e.sent).on("itemAdded",(function(e){XP.debug("".concat(r.conversation.sid," itemAdded: ").concat(e.item.index));var t={self:"".concat(r.conversation._links.messages,"/").concat(e.item.data.sid),conversation:r.conversation._links.self,messages_receipts:"".concat(r.conversation._links.messages,"/").concat(e.item.data.sid,"/Receipts")},n=new Message(e.item.index,e.item.data,r.conversation,t,r.configuration,r.services);r.messagesByIndex.has(n.index)?XP.debug("Message arrived, but is already known and ignored",r.conversation.sid,n.index):(r.messagesByIndex.set(n.index,n),n.on("updated",(function(e){return r.emit("messageUpdated",e)})),r.emit("messageAdded",n))})),n.on("itemRemoved",(function(e){XP.debug("#{this.conversation.sid} itemRemoved: ".concat(e.index));var t=e.index;if(r.messagesByIndex.has(t)){var n=r.messagesByIndex.get(t);if(!n)return;r.messagesByIndex.delete(n.index),n.removeAllListeners("updated"),r.emit("messageRemoved",n)}})),n.on("itemUpdated",(function(e){XP.debug("".concat(r.conversation.sid," itemUpdated: ").concat(e.item.index));var t=r.messagesByIndex.get(e.item.index);t&&t._update(e.item.data)})),e.abrupt("return",n);case 13:throw e.prev=13,e.t0=e.catch(3),this.messagesListPromise=null,"disconnected"!==this.services.syncClient.connectionState&&XP.error("Failed to get messages object for conversation",this.conversation.sid,e.t0),XP.debug("ERROR: Failed to get messages object for conversation",this.conversation.sid,e.t0),e.t0;case 19:case"end":return e.stop()}}),e,this,[[3,13]])}))),function(e){return o.apply(this,arguments)})},{key:"unsubscribe",value:(a=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.messagesListPromise){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,this.messagesListPromise;case 4:e.sent.close(),this.messagesListPromise=null;case 7:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"sendV2",value:function(e){var t=this;return XP.debug("Sending message V2",e.mediaContent,e.attributes,e.emailOptions),new rI.CancellablePromise(function(){var n=Ta(zc.mark((function n(r,i,a){var o,s,u,c,l,f,d,p,h,v,y,m;return zc.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:s=[],u=[],a((function(){u.forEach((function(e){return e.cancel()}))})),c=HP(e.mediaContent),n.prev=4,c.s();case 6:if((l=c.n()).done){n.next=25;break}return f=lm(l.value,2),d=f[0],p=f[1],n.prev=8,XP.debug("Adding media to a message as ".concat(p instanceof FormData?"FormData":"SendMediaOptions"),p),y=p instanceof FormData?t.services.mcsClient.postFormData(p,d):t.services.mcsClient.post(null!==(h=p.contentType)&&void 0!==h?h:"",null!==(v=p.media)&&void 0!==v?v:"",d,p.filename),u.push(y),n.t0=s,n.next=15,y;case 15:n.t1=n.sent,n.t0.push.call(n.t0,n.t1),n.next=23;break;case 19:return n.prev=19,n.t2=n.catch(8),i(n.t2),n.abrupt("return");case 23:n.next=6;break;case 25:n.next=30;break;case 27:n.prev=27,n.t3=n.catch(4),c.e(n.t3);case 30:return n.prev=30,c.f(),n.finish(30);case 33:return m=t.services.commandExecutor.mutateResource("post",t.conversation._links.messages,{body:e.text,subject:null===(o=e.emailOptions)||void 0===o?void 0:o.subject,media_sids:s.map((function(e){return e.sid})),attributes:void 0!==e.attributes?JSON.stringify(e.attributes):void 0}),n.prev=34,n.t4=r,n.next=38,m;case 38:n.t5=n.sent,(0,n.t4)(n.t5),n.next=45;break;case 42:n.prev=42,n.t6=n.catch(34),i(n.t6);case 45:case"end":return n.stop()}}),n,null,[[4,27,30,33],[8,19],[34,42]])})));return function(e,t,r){return n.apply(this,arguments)}}())}},{key:"send",value:(i=Ta(zc.mark((function e(t){var n,r,i=arguments;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},r=i.length>2?i[2]:void 0,XP.debug("Sending text message",t,n,r),e.abrupt("return",this.services.commandExecutor.mutateResource("post",this.conversation._links.messages,{body:null!=t?t:"",attributes:void 0!==n?JSON.stringify(n):void 0,subject:null==r?void 0:r.subject}));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"sendMedia",value:(r=Ta(zc.mark((function e(t){var n,r,i,a,o,s=arguments;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=s.length>1&&void 0!==s[1]?s[1]:{},a=s.length>2?s[2]:void 0,XP.debug("Sending media message",t,i,a),XP.debug("Sending media message as ".concat(t instanceof FormData?"FormData":"SendMediaOptions"),t,i),!(t instanceof FormData)){e.next=10;break}return e.next=7,this.services.mcsClient.postFormData(t);case 7:e.t0=e.sent,e.next=13;break;case 10:return e.next=12,this.services.mcsClient.post(null!==(n=t.contentType)&&void 0!==n?n:"",null!==(r=t.media)&&void 0!==r?r:"","media",t.filename);case 12:e.t0=e.sent;case 13:return o=e.t0,e.next=16,this.services.commandExecutor.mutateResource("post",this.conversation._links.messages,{media_sids:[o.sid],attributes:void 0!==i?JSON.stringify(i):void 0});case 16:return e.abrupt("return",e.sent);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getMessages",value:(n=Ta(zc.mark((function e(t,n){var r,i=arguments;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>2&&void 0!==i[2]?i[2]:"backwards",e.abrupt("return",this._getMessages(t,n,r));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"_wrapPaginator",value:function(e,t,n){var r=this,i="desc"===e,a=function(){return t.nextPage().then((function(t){return r._wrapPaginator(e,t,n)}))},o=function(){return t.prevPage().then((function(t){return r._wrapPaginator(e,t,n)}))};return n(t.items).then((function(e){return{items:e.sort((function(e,t){return e.index-t.index})),hasPrevPage:i?t.hasNextPage:t.hasPrevPage,hasNextPage:i?t.hasPrevPage:t.hasNextPage,prevPage:i?a:o,nextPage:i?o:a}}))}},{key:"_upsertMessage",value:function(e,t){var n=this,r=this.messagesByIndex.get(e);if(r)return r;var i={self:"".concat(this.conversation._links.messages,"/").concat(t.sid),conversation:this.conversation._links.self,messages_receipts:"".concat(this.conversation._links.messages,"/").concat(t.sid,"/Receipts")},a=new Message(e,t,this.conversation,i,this.configuration,this.services);return this.messagesByIndex.set(a.index,a),a.on("updated",(function(e){return n.emit("messageUpdated",e)})),a}},{key:"_getMessages",value:(t=Ta(zc.mark((function e(){var t,n,r,i,a,o,s=this,u=arguments;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=u.length>0&&void 0!==u[0]?u[0]:30,n=u.length>1&&void 0!==u[1]?u[1]:"end",r=u.length>2&&void 0!==u[2]?u[2]:"forward",i="backwards"===r?"desc":"asc",e.next=6,this.messagesListPromise;case 6:return a=e.sent,e.next=9,null==a?void 0:a.getItems({from:"end"!==n?n:void 0,pageSize:t,order:i,limit:t});case 9:return o=e.sent,e.next=12,this._wrapPaginator(i,o,(function(e){return Promise.all(e.map((function(e){return s._upsertMessage(e.index,e.data)})))}));case 12:return e.abrupt("return",e.sent);case 13:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),u}(rm),eA=function(){function e(t){Na(this,e),ja(this,"attributes",{}),ja(this,"mediaContent",[]),ja(this,"emailOptions",{}),this.messagesEntity=t}return La(e,[{key:"send",value:function(){var e=this;return new rI.CancellablePromise(function(){var t=Ta(zc.mark((function t(n,r,i){var a,o;return zc.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.messagesEntity.sendV2(e),i((function(){return a.cancel()})),t.prev=2,t.next=5,a;case 5:o=t.sent,n(lh(o.index)),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),r(t.t0);case 12:case"end":return t.stop()}}),t,null,[[2,9]])})));return function(e,n,r){return t.apply(this,arguments)}}())}}]),e}(),tA=function(){function e(t,n){Na(this,e),this.limits=t,this.message=new eA(n),this.emailBodies=new Map,this.emailHistories=new Map}return La(e,[{key:"setBody",value:function(e){return this.message.text=e,this}},{key:"setSubject",value:function(e){return this.message.emailOptions.subject=e,this}},{key:"setAttributes",value:function(e){return this.message.attributes=e,this}},{key:"setEmailBody",value:function(e,t){return this.emailBodies.set(e,t),this}},{key:"setEmailHistory",value:function(e,t){return this.emailHistories.set(e,t),this}},{key:"addMedia",value:function(e){if("undefined"==typeof FormData&&e instanceof FormData)throw new Error("Could not add FormData content whilst not in a browser");if(!(e instanceof FormData)){var t=e;if(!t.contentType||!t.media)throw new Error("Media content in SendMediaOptions must contain non-empty contentType and media")}return this.message.mediaContent.push(["media",e]),this}},{key:"build",value:function(){var e=this;if(this.emailBodies.forEach((function(t,n){if(!e.limits.emailBodiesAllowedContentTypes.includes(n))throw new Error("Unsupported email body content type ".concat(n))})),this.emailHistories.forEach((function(t,n){if(!e.limits.emailHistoriesAllowedContentTypes.includes(n))throw new Error("Unsupported email history content type ".concat(n))})),this.emailBodies.size>this.limits.emailBodiesAllowedContentTypes.length)throw new Error("Too many email bodies attached to the message (".concat(this.emailBodies.size," > ").concat(this.limits.emailBodiesAllowedContentTypes.length,")"));if(this.emailHistories.size>this.limits.emailHistoriesAllowedContentTypes.length)throw new Error("Too many email histories attached to the message (".concat(this.emailHistories.size," > ").concat(this.limits.emailHistoriesAllowedContentTypes.length,")"));if(this.message.mediaContent.length>this.limits.mediaAttachmentsCountLimit)throw new Error("Too many media attachments in the message (".concat(this.message.mediaContent.length," > ").concat(this.limits.mediaAttachmentsCountLimit,")"));return this.emailBodies.forEach((function(t){e.message.mediaContent.push(["body",t])})),this.emailHistories.forEach((function(t){e.message.mediaContent.push(["history",t])})),this.message}},{key:"buildAndSend",value:function(){return this.build().send()}},{key:"getPayloadContentType",value:function(e){return"undefined"!=typeof FormData&&e instanceof FormData?e.get("Content-Type"):e.contentType}}]),e}();function nA(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return rA(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rA(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function rA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function iA(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}var aA={lastMessage:"lastMessage",attributes:"attributes",createdBy:"createdBy",dateCreated:"dateCreated",dateUpdated:"dateUpdated",friendlyName:"friendlyName",lastConsumedMessageIndex:"lastConsumedMessageIndex",notificationLevel:"notificationLevel",sid:"sid",status:"status",uniqueName:"uniqueName",state:"state",bindings:"bindings"},Conversation=function(e){Ca(Conversation,e);var t,n,r,i,a,o,s,u,c,l,f,d,p,h,v,y,m,g,b,k,w,x,_,S,E,T,R,I=iA(Conversation);function Conversation(e,t,n,r,i){var a,o,s;Na(this,Conversation),(s=I.call(this)).sid=t,s._links=n,s._configuration=r,s._services=i,s._entityName=e.channel,s._internalState={uniqueName:e.uniqueName||null,status:"notParticipating",attributes:null!==(a=e.attributes)&&void 0!==a?a:{},createdBy:e.createdBy,dateCreated:fh(e.dateCreated),dateUpdated:fh(e.dateUpdated),friendlyName:e.friendlyName||null,lastReadMessageIndex:Number.isInteger(e.lastConsumedMessageIndex)?e.lastConsumedMessageIndex:null,bindings:null!==(o=e.bindings)&&void 0!==o?o:{}},e.notificationLevel&&(s._internalState.notificationLevel=e.notificationLevel);var u={participants:s._links.participants};return s._participants=new Map,s._participantsEntity=new xP(Ra(s),s._participants,u,s._configuration,s._services),s._participantsEntity.on("participantJoined",(function(e){return s.emit("participantJoined",e)})),s._participantsEntity.on("participantLeft",(function(e){return s.emit("participantLeft",e)})),s._participantsEntity.on("participantUpdated",(function(e){return s.emit("participantUpdated",e)})),s._messagesEntity=new ZP(Ra(s),r,i),s._messagesEntity.on("messageAdded",(function(e){return s._onMessageAdded(e)})),s._messagesEntity.on("messageUpdated",(function(e){return s.emit("messageUpdated",e)})),s._messagesEntity.on("messageRemoved",(function(e){return s.emit("messageRemoved",e)})),s}return La(Conversation,[{key:"uniqueName",get:function(){return this._internalState.uniqueName}},{key:"status",get:function(){return this._internalState.status}},{key:"friendlyName",get:function(){return this._internalState.friendlyName}},{key:"dateUpdated",get:function(){return this._internalState.dateUpdated}},{key:"dateCreated",get:function(){return this._internalState.dateCreated}},{key:"createdBy",get:function(){var e;return null!==(e=this._internalState.createdBy)&&void 0!==e?e:""}},{key:"attributes",get:function(){return this._internalState.attributes}},{key:"lastReadMessageIndex",get:function(){return this._internalState.lastReadMessageIndex}},{key:"lastMessage",get:function(){var e;return null!==(e=this._internalState.lastMessage)&&void 0!==e?e:void 0}},{key:"notificationLevel",get:function(){var e;return null!==(e=this._internalState.notificationLevel)&&void 0!==e?e:"default"}},{key:"bindings",get:function(){return this._internalState.bindings}},{key:"limits",get:function(){return this._configuration.limits}},{key:"state",get:function(){return this._internalState.state}},{key:"_statusSource",get:function(){return this._dataSource}},{key:"add",value:(R=Ta(zc.mark((function e(t,n){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this._participantsEntity.add(t,null!=n?n:{}));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return R.apply(this,arguments)})},{key:"addNonChatParticipant",value:(T=Ta(zc.mark((function e(t,n){var r,i,a=arguments;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=a.length>2&&void 0!==a[2]?a[2]:{},i=a.length>3&&void 0!==a[3]?a[3]:{},e.abrupt("return",this._participantsEntity.addNonChatParticipant(t,n,null!=r?r:{},null!=i?i:{}));case 3:case"end":return e.stop()}}),e,this)}))),function(e,t){return T.apply(this,arguments)})},{key:"advanceLastReadMessageIndex",value:(E=Ta(zc.mark((function e(t){var n;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:if(!(t<(null!==(n=this.lastReadMessageIndex)&&void 0!==n?n:0))){e.next=6;break}return e.next=5,this._setLastReadMessageIndex(this.lastReadMessageIndex);case 5:return e.abrupt("return",e.sent);case 6:return e.next=8,this._setLastReadMessageIndex(t);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return E.apply(this,arguments)})},{key:"delete",value:(S=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._services.commandExecutor.mutateResource("delete",this._links.self);case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}}),e,this)}))),function(){return S.apply(this,arguments)})},{key:"getAttributes",value:(_=Ta(zc.mark((function e(){return zc.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)}))),function(){return _.apply(this,arguments)})},{key:"getMessages",value:(x=Ta(zc.mark((function e(t,n,r){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:return e.abrupt("return",this._messagesEntity.getMessages(t,n,r));case 3:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return x.apply(this,arguments)})},{key:"getParticipants",value:(w=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:return e.abrupt("return",this._participantsEntity.getParticipants());case 3:case"end":return e.stop()}}),e,this)}))),function(){return w.apply(this,arguments)})},{key:"getParticipantsCount",value:(k=Ta(zc.mark((function e(){var t,n,r;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new ph(this._configuration.links.conversations).path(this.sid).build(),e.next=3,this._services.network.get(n);case 3:return r=e.sent,e.abrupt("return",null!==(t=r.body.participants_count)&&void 0!==t?t:0);case 5:case"end":return e.stop()}}),e,this)}))),function(){return k.apply(this,arguments)})},{key:"getParticipantBySid",value:(b=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this._participantsEntity.getParticipantBySid(t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return b.apply(this,arguments)})},{key:"getParticipantByIdentity",value:(g=Ta(zc.mark((function e(){var t,n=arguments;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:"",e.abrupt("return",this._participantsEntity.getParticipantByIdentity(null!=t?t:""));case 2:case"end":return e.stop()}}),e,this)}))),function(){return g.apply(this,arguments)})},{key:"getMessagesCount",value:(m=Ta(zc.mark((function e(){var t,n,r;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new ph(this._configuration.links.conversations).path(this.sid).build(),e.next=3,this._services.network.get(n);case 3:return r=e.sent,e.abrupt("return",null!==(t=r.body.messages_count)&&void 0!==t?t:0);case 5:case"end":return e.stop()}}),e,this)}))),function(){return m.apply(this,arguments)})},{key:"getUnreadMessagesCount",value:(y=Ta(zc.mark((function e(){var t,n,r;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=new ph(this._configuration.links.myConversations).path(this.sid).build(),e.next=3,this._services.network.get(t);case 3:if((n=e.sent).body.conversation_sid===this.sid){e.next=6;break}throw new Error("Conversation was not found in the user conversations list");case 6:if("number"!=typeof(r=n.body.unread_messages_count)){e.next=9;break}return e.abrupt("return",r);case 9:return e.abrupt("return",null);case 10:case"end":return e.stop()}}),e,this)}))),function(){return y.apply(this,arguments)})},{key:"join",value:(v=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._services.commandExecutor.mutateResource("post",this._links.participants,{identity:this._configuration.userIdentity});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}}),e,this)}))),function(){return v.apply(this,arguments)})},{key:"leave",value:(h=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("joined"!==this._internalState.status){e.next=3;break}return e.next=3,this._services.commandExecutor.mutateResource("delete","".concat(this._links.participants,"/").concat(this._configuration.userIdentity));case 3:return e.abrupt("return",this);case 4:case"end":return e.stop()}}),e,this)}))),function(){return h.apply(this,arguments)})},{key:"removeParticipant",value:(p=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._participantsEntity.remove("string"==typeof t?t:t.sid);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return p.apply(this,arguments)})},{key:"sendMessage",value:(d=Ta(zc.mark((function e(t,n,r){var i,a,o,s;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof t&&null!==t){e.next=5;break}return e.next=3,this._messagesEntity.send(t,n,r);case 3:return o=e.sent,e.abrupt("return",null!==(a=lh(o.index))&&void 0!==a?a:0);case 5:return e.next=7,this._messagesEntity.sendMedia(t,n,r);case 7:return s=e.sent,e.abrupt("return",null!==(i=lh(s.index))&&void 0!==i?i:0);case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return d.apply(this,arguments)})},{key:"prepareMessage",value:function(){return new tA(this.limits,this._messagesEntity)}},{key:"setAllMessagesRead",value:(f=Ta(zc.mark((function e(){var t;return zc.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(!((t=e.sent).items.length>0)){e.next=7;break}return e.abrupt("return",this.advanceLastReadMessageIndex(t.items[0].index));case 7:return e.abrupt("return",0);case 8:case"end":return e.stop()}}),e,this)}))),function(){return f.apply(this,arguments)})},{key:"setAllMessagesUnread",value:(l=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:return e.next=4,this._setLastReadMessageIndex(null);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)}))),function(){return l.apply(this,arguments)})},{key:"setUserNotificationLevel",value:(c=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._services.commandExecutor.mutateResource("post","".concat(this._configuration.links.myConversations,"/").concat(this.sid),{notification_level:t});case 2:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"typing",value:function(){return this._services.typingIndicator.send(this.sid)}},{key:"updateAttributes",value:(u=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._services.commandExecutor.mutateResource("post",this._links.self,{attributes:void 0!==t?JSON.stringify(t):void 0});case 2:return e.abrupt("return",this);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"updateFriendlyName",value:(s=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._internalState.friendlyName===t){e.next=3;break}return e.next=3,this._services.commandExecutor.mutateResource("post",this._links.self,{friendly_name:t});case 3:return e.abrupt("return",this);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"updateLastReadMessageIndex",value:(o=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._subscribeStreams();case 2:return e.abrupt("return",this._setLastReadMessageIndex(t));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"updateUniqueName",value:(a=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._internalState.uniqueName===t){e.next=4;break}return t||(t=""),e.next=4,this._services.commandExecutor.mutateResource("post",this._links.self,{unique_name:t});case 4:return e.abrupt("return",this);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"_subscribe",value:(i=Ta(zc.mark((function e(){var t=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._entityPromise){e.next=2;break}return e.abrupt("return",this._entityPromise);case 2:return this._entityPromise=this._services.syncClient.document({id:this._entityName,mode:"open_existing"}),e.prev=3,e.next=6,this._entityPromise;case 6:return this._entity=e.sent,this._entity.on("updated",(function(e){return t._update(e.data)})),this._entity.on("removed",(function(){return t.emit("removed",t)})),this._update(this._entity.data),e.abrupt("return",this._entity);case 13:throw e.prev=13,e.t0=e.catch(3),this._entity=null,this._entityPromise=null,"disconnected"!=this._services.syncClient.connectionState&&Conversation._logger.error("Failed to get conversation object",e.t0),Conversation._logger.debug("ERROR: Failed to get conversation object",e.t0),e.t0;case 20:case"end":return e.stop()}}),e,this,[[3,13]])}))),function(){return i.apply(this,arguments)})},{key:"_subscribeStreams",value:(r=Ta(zc.mark((function e(){var t,n,r,i,a;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._subscribe();case 3:return Conversation._logger.trace("_subscribeStreams, this.entity.data=",null===(t=this._entity)||void 0===t?void 0:t.data),r=null===(n=this._entity)||void 0===n?void 0:n.data,i=r.messages,a=r.roster,e.next=9,Promise.all([this._messagesEntity.subscribe(i),this._participantsEntity.subscribe(a)]);case 9:e.next=16;break;case 11:throw e.prev=11,e.t0=e.catch(0),"disconnected"!==this._services.syncClient.connectionState&&Conversation._logger.error("Failed to subscribe on conversation objects",this.sid,e.t0),Conversation._logger.debug("ERROR: Failed to subscribe on conversation objects",this.sid,e.t0),e.t0;case 16:case"end":return e.stop()}}),e,this,[[0,11]])}))),function(){return r.apply(this,arguments)})},{key:"_unsubscribe",value:(n=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._entity){e.next=5;break}return e.next=3,this._entity.close();case 3:this._entity=null,this._entityPromise=null;case 5:return e.abrupt("return",Promise.all([this._participantsEntity.unsubscribe(),this._messagesEntity.unsubscribe()]));case 6:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"_setStatus",value:function(e,t){var n=this;this._dataSource=t,this._internalState.status!==e&&(this._internalState.status=e,"joined"!==e?this._entityPromise&&this._unsubscribe().catch((function(t){if(Conversation._logger.debug("ERROR while setting conversation status "+e,t),"disconnected"!==n._services.syncClient.connectionState)throw t})):this._subscribeStreams().catch((function(t){if(Conversation._logger.debug("ERROR while setting conversation status "+e,t),"disconnected"!==n._services.syncClient.connectionState)throw t})))}},{key:"_update",value:function(e){var t,n,r,i,a;Conversation._logger.trace("_update",e),Conversation.preprocessUpdate(e,this.sid);for(var o=new Set,s=0,u=Object.keys(e);s<u.length;s++){var c=u[s],l=aA[c];if(l)switch(l){case aA.status:if(!e.status||"unknown"===e.status||this._internalState.status===e.status)break;this._internalState.status=e.status,o.add(l);break;case aA.attributes:if(am(this._internalState.attributes,e.attributes))break;this._internalState.attributes=e.attributes,o.add(l);break;case aA.lastConsumedMessageIndex:if(void 0===e.lastConsumedMessageIndex||e.lastConsumedMessageIndex===this._internalState.lastReadMessageIndex)break;this._internalState.lastReadMessageIndex=e.lastConsumedMessageIndex,o.add("lastReadMessageIndex");break;case aA.lastMessage:if(this._internalState.lastMessage&&!e.lastMessage){delete this._internalState.lastMessage,o.add(l);break}this._internalState.lastMessage=this._internalState.lastMessage||{},void 0!==(null===(t=e.lastMessage)||void 0===t?void 0:t.index)&&e.lastMessage.index!==this._internalState.lastMessage.index&&(this._internalState.lastMessage.index=e.lastMessage.index,o.add(l)),void 0!==(null===(n=e.lastMessage)||void 0===n?void 0:n.timestamp)&&(null===(r=this._internalState.lastMessage)||void 0===r||null===(i=r.dateCreated)||void 0===i?void 0:i.getTime())!==e.lastMessage.timestamp.getTime()&&(this._internalState.lastMessage.dateCreated=e.lastMessage.timestamp,o.add(l)),am(this._internalState.lastMessage,{})&&delete this._internalState.lastMessage;break;case aA.state:var f=e.state||void 0;if(void 0!==f&&(f.dateUpdated=new Date(f.dateUpdated)),am(this._internalState.state,f))break;this._internalState.state=f,o.add(l);break;case aA.bindings:if(am(this._internalState.bindings,e.bindings))break;this._internalState.bindings=e.bindings,o.add(l);break;default:var d=e[c]instanceof Date,p=d&&(null===(a=this._internalState[l])||void 0===a?void 0:a.getTime())===e[c].getTime(),h=!d&&this[l]===e[c];if(p||h)break;this._internalState[l]=e[c],o.add(l)}}o.size>0&&this.emit("updated",{conversation:this,updateReasons:hP(o)})}},{key:"_onMessageAdded",value:function(e){var t,n=nA(this._participants.values());try{for(n.s();!(t=n.n()).done;){var r=t.value;if(r.identity===e.author){r._endTyping();break}}}catch(e){n.e(e)}finally{n.f()}this.emit("messageAdded",e)}},{key:"_setLastReadMessageIndex",value:(t=Ta(zc.mark((function e(t){var n;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._services.commandExecutor.mutateResource("post","".concat(this._configuration.links.myConversations,"/").concat(this.sid),{last_read_message_index:t});case 2:return n=e.sent,e.abrupt("return",n.unread_messages_count);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"preprocessUpdate",value:function(e,t){try{"string"==typeof e.attributes?e.attributes=JSON.parse(e.attributes):e.attributes&&JSON.stringify(e.attributes)}catch(n){Conversation._logger.warn("Retrieved malformed attributes from the server for conversation: "+t),e.attributes={}}try{e.dateCreated&&(e.dateCreated=new Date(e.dateCreated))}catch(n){Conversation._logger.warn("Retrieved malformed dateCreated from the server for conversation: "+t),delete e.dateCreated}try{e.dateUpdated&&(e.dateUpdated=new Date(e.dateUpdated))}catch(n){Conversation._logger.warn("Retrieved malformed dateUpdated from the server for conversation: "+t),delete e.dateUpdated}try{e.lastMessage&&e.lastMessage.timestamp&&(e.lastMessage.timestamp=new Date(e.lastMessage.timestamp))}catch(n){Conversation._logger.warn("Retrieved malformed lastMessage.timestamp from the server for conversation: "+t),delete e.lastMessage.timestamp}}}]),Conversation}(rm);ja(Conversation,"participantJoined","participantJoined"),ja(Conversation,"participantLeft","participantLeft"),ja(Conversation,"participantUpdated","participantUpdated"),ja(Conversation,"messageAdded","messageAdded"),ja(Conversation,"messageRemoved","messageRemoved"),ja(Conversation,"messageUpdated","messageUpdated"),ja(Conversation,"typingEnded","typingEnded"),ja(Conversation,"typingStarted","typingStarted"),ja(Conversation,"updated","updated"),ja(Conversation,"removed","removed"),ja(Conversation,"_logger",Tf.scope("Conversation")),Gc([gy(dy,ky),$c("design:type",Function),$c("design:paramtypes",[String,Object]),$c("design:returntype",Promise)],Conversation.prototype,"add",null),Gc([gy(dy,dy,ky),$c("design:type",Function),$c("design:paramtypes",[String,String,Object,Object]),$c("design:returntype",Promise)],Conversation.prototype,"addNonChatParticipant",null),Gc([gy(py),$c("design:type",Function),$c("design:paramtypes",[Number]),$c("design:returntype",Promise)],Conversation.prototype,"advanceLastReadMessageIndex",null),Gc([gy(["undefined",py],["undefined",py],["undefined",ly("backwards","forward")]),$c("design:type",Function),$c("design:paramtypes",[Number,Number,String]),$c("design:returntype",Promise)],Conversation.prototype,"getMessages",null),Gc([gy(dy),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],Conversation.prototype,"getParticipantBySid",null),Gc([gy(dy),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],Conversation.prototype,"getParticipantByIdentity",null),Gc([gy([dy,Participant]),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Promise)],Conversation.prototype,"removeParticipant",null),Gc([gy(["string",FormData,ly(null),hy("media options",{contentType:dy,media:cy((function(e){var t="string"==typeof e&&e.length>0||e instanceof Uint8Array||e instanceof ArrayBuffer;return"function"==typeof Blob&&(t=t||e instanceof Blob),[t,"a non-empty string, an instance of Buffer or an instance of Blob"]}))})],ky,["undefined",ly(null),hy("email attributes",{subject:[dy,"undefined"]})]),$c("design:type",Function),$c("design:paramtypes",[Object,Object,Object]),$c("design:returntype",Promise)],Conversation.prototype,"sendMessage",null),Gc([gy(ly("default","muted")),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],Conversation.prototype,"setUserNotificationLevel",null),Gc([gy(by),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Promise)],Conversation.prototype,"updateAttributes",null),Gc([gy("string"),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],Conversation.prototype,"updateFriendlyName",null),Gc([gy([ly(null),py]),$c("design:type",Function),$c("design:paramtypes",[Number]),$c("design:returntype",Promise)],Conversation.prototype,"updateLastReadMessageIndex",null),Gc([gy(["string",ly(null)]),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],Conversation.prototype,"updateUniqueName",null);var oA=function(){function e(){var t=this;Na(this,e),this._promise=new Promise((function(e,n){t._resolve=e,t._reject=n}))}return La(e,[{key:"promise",get:function(){return this._promise}},{key:"update",value:function(e){this._resolve(e)}},{key:"set",value:function(e){this.current=e,this._resolve(e)}},{key:"fail",value:function(e){this._reject(e)}}]),e}();function sA(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return uA(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return uA(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function uA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function cA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lA(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?cA(Object(n),!0).forEach((function(t){ja(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cA(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function fA(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}var dA=Tf.scope("Conversations"),pA=function(e){Ca(p,e);var t,n,r,i,a,o,s,u,c,l,f,d=fA(p);function p(e,t){var n;return Na(this,p),ja(Ra(n=d.call(this)),"conversations",new Map),ja(Ra(n),"myConversationsRead",new oA),ja(Ra(n),"tombstones",new Set),ja(Ra(n),"myConversationsFetched",!1),n.configuration=e,n.services=t,n}return La(p,[{key:"addConversation",value:(f=Ta(zc.mark((function e(t){var n,r,i,a,o,s,u,c,l,f;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=void 0!==(null==t?void 0:t.attributes)?t.attributes:{},e.next=3,this.services.commandExecutor.mutateResource("post",this.configuration.links.conversations,{friendly_name:t.friendlyName,unique_name:t.uniqueName,attributes:void 0!==a?JSON.stringify(a):void 0});case 3:if(o=e.sent,s=null!==(n=o.sid)&&void 0!==n?n:null,u=null!==(r=null===(i=o.sync_objects)||void 0===i?void 0:i.conversation)&&void 0!==r?r:null,c=lA({self:o.url},o.links),!(l=this.conversations.get(s))){e.next=12;break}return e.next=11,l._subscribe();case 11:return e.abrupt("return",l);case 12:return f=new Conversation({channel:u,entityName:"",uniqueName:"",attributes:null,createdBy:"",friendlyName:"",lastConsumedMessageIndex:0,dateCreated:null,dateUpdated:null},s,c,this.configuration,this.services),this.conversations.set(f.sid,f),this._registerForEvents(f),e.next=17,f._subscribe();case 17:return this.emit("conversationAdded",f),e.abrupt("return",f);case 19:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"fetchConversations",value:(l=Ta(zc.mark((function e(){var t,n,r,i,a,o,s,u=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._getMap();case 3:return(t=e.sent).on("itemAdded",(function(e){dA.debug("itemAdded: ".concat(e.item.key)),u._upsertConversation("sync",e.item.key,e.item.data)})),t.on("itemRemoved",(function(e){dA.debug("itemRemoved: ".concat(e.key));var t=e.key;u.myConversationsFetched||u.tombstones.add(t);var n=u.conversations.get(t);n&&("joined"===n.status&&(n._setStatus("notParticipating","sync"),u.emit("conversationLeft",n)),u.conversations.delete(t),u.emit("conversationRemoved",n),n.emit("removed",n))})),t.on("itemUpdated",(function(e){dA.debug("itemUpdated: ".concat(e.item.key)),u._upsertConversation("sync",e.item.key,e.item.data)})),e.next=9,this._fetchMyConversations();case 9:n=e.sent,r=[],i=sA(n);try{for(i.s();!(a=i.n()).done;)o=a.value,r.push(this._upsertConversation("rest",o.channel_sid,o))}catch(e){i.e(e)}finally{i.f()}return this.myConversationsRead.set(!0),e.next=16,Promise.all(r);case 16:return this.myConversationsFetched=!0,this.tombstones.clear(),dA.debug("The conversations list has been successfully fetched"),e.abrupt("return",this);case 22:throw e.prev=22,e.t0=e.catch(0),s="Failed to fetch the conversations list","disconnected"!==this.services.syncClient.connectionState&&dA.error(s,e.t0),dA.debug("ERROR: ".concat(s),e.t0),e.t0;case 28:case"end":return e.stop()}}),e,this,[[0,22]])}))),function(){return l.apply(this,arguments)})},{key:"getConversations",value:(c=Ta(zc.mark((function e(){var t,n,r=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getMap();case 2:return t=e.sent,e.next=5,t.getItems();case 5:return n=e.sent,e.abrupt("return",this._wrapPaginator(n,(function(e){return Promise.all(e.map((function(e){return r._upsertConversation("sync",e.key,e.data)})))})));case 7:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"getConversation",value:(u=Ta(zc.mark((function e(t){var n,r,i,a=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getMap();case 2:return n=e.sent,e.next=5,n.getItems({key:t});case 5:return r=e.sent,i=r.items.map((function(e){return a._upsertConversation("sync",e.key,e.data)})),e.abrupt("return",i.length>0?i[0]:null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"getConversationByUniqueName",value:(s=Ta(zc.mark((function e(t){var n,r,i,a,o;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new ph(this.configuration.links.myConversations).path(t).build(),e.next=3,this.services.network.get(n);case 3:return r=e.sent,i=r.body,a=i.conversation_sid,o={entityName:null,lastConsumedMessageIndex:i.last_read_message_index,status:(null==i?void 0:i.status)||"unknown",friendlyName:i.friendly_name,dateUpdated:i.date_updated,dateCreated:i.date_created,uniqueName:i.unique_name,createdBy:i.created_by,attributes:i.attributes,channel:i.sync_objects.conversation,notificationLevel:null==i?void 0:i.notification_level,sid:a},e.abrupt("return",a?this._upsertConversation("sync",a,o):null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"peekConversation",value:(o=Ta(zc.mark((function e(t){var n,r,i,a;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new ph(this.configuration.links.conversations).path(t).build(),e.next=3,this.services.network.get(n);case 3:return r=e.sent,i=r.body,a={entityName:null,status:(null==i?void 0:i.status)||"unknown",friendlyName:i.friendly_name,dateUpdated:i.date_updated,dateCreated:i.date_created,uniqueName:i.unique_name,createdBy:i.created_by,attributes:i.attributes,channel:"".concat(t,".channel"),sid:t},e.abrupt("return",this._upsertConversation("sync",t,a));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"_getMap",value:(a=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.services.syncClient.map({id:this.configuration.myConversations,mode:"open_existing"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"_wrapPaginator",value:(i=Ta(zc.mark((function e(t,n){var r,i=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n(t.items);case 2:return r=e.sent,e.abrupt("return",{items:r,hasNextPage:t.hasNextPage,hasPrevPage:t.hasPrevPage,nextPage:function(){return t.nextPage().then((function(e){return i._wrapPaginator(e,n)}))},prevPage:function(){return t.prevPage().then((function(e){return i._wrapPaginator(e,n)}))}});case 4:case"end":return e.stop()}}),e)}))),function(e,t){return i.apply(this,arguments)})},{key:"_updateConversation",value:(r=Ta(zc.mark((function e(t,n,r){var i,a,o;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=void 0!==n._statusSource&&t!==n._statusSource,a="rest"!==t||"sync"===n._statusSource,!i||!a||"sync"===t){e.next=5;break}return dA.trace("upsertConversation: conversation is known from sync and came from REST, ignoring",{sid:n.sid,data:r.status,conversation:n.status}),e.abrupt("return");case 5:if("joined"!==r.status||"joined"===n.status){e.next=15;break}return n._setStatus("joined",t),o={},void 0!==r.notificationLevel&&(o.notificationLevel=r.notificationLevel),void 0!==r.lastConsumedMessageIndex&&(o.lastConsumedMessageIndex=r.lastConsumedMessageIndex),am(o,{})||n._update(o),e.next=13,n._subscribe();case 13:return this.emit("conversationJoined",n),e.abrupt("return");case 15:if("notParticipating"!==r.status||"joined"!==n.status){e.next=22;break}return n._setStatus("notParticipating",t),n._update(r),e.next=20,n._subscribe();case 20:return this.emit("conversationLeft",n),e.abrupt("return");case 22:if("notParticipating"!==r.status){e.next=26;break}return e.next=25,n._subscribe();case 25:return e.abrupt("return");case 26:n._update(r);case 27:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"_upsertConversation",value:(n=Ta(zc.mark((function e(t,n,r){var i,a,o,s;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(dA.trace("upsertConversation called for ".concat(n),r),!(i=this.conversations.get(n))){e.next=9;break}return dA.trace("upsertConversation: the conversation ".concat(i.sid," is known;")+"its status is known from the source ".concat(i._statusSource," ")+"and the update came from the source ".concat(t),i),e.next=6,this._updateConversation(t,i,r);case 6:return e.next=8,i._subscribe();case 8:return e.abrupt("return",i);case 9:if("rest"!==t||!this.tombstones.has(n)){e.next=12;break}return dA.trace("upsertChannel: the channel is deleted but reappeared again from REST, ignoring",n),e.abrupt("return",null);case 12:return dA.trace("upsertConversation: creating a local conversation object with sid "+n,r),a="".concat(this.configuration.links.conversations,"/").concat(n),o={self:a,messages:"".concat(a,"/Messages"),participants:"".concat(a,"/Participants")},s=new Conversation(r,n,o,this.configuration,this.services),this.conversations.set(n,s),e.next=19,s._subscribe();case 19:return this._registerForEvents(s),this.emit("conversationAdded",s),"joined"===r.status&&(s._setStatus("joined",t),this.emit("conversationJoined",s)),e.abrupt("return",s);case 23:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"_fetchMyConversations",value:(t=Ta(zc.mark((function e(){var t,n,r,i,a,o;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=[],n=null;case 2:return i=new ph(this.configuration.links.myConversations),n&&i.arg("PageToken",n),e.next=6,this.services.network.get(i.build());case 6:a=e.sent,o=null===(r=a.body)||void 0===r?void 0:r.conversations.map((function(e){return{descriptor:e,channel_sid:e.conversation_sid,status:e.status,channel:e.sync_objects.conversation,messages:e.sync_objects.messages,roster:"".concat(e.conversation_sid,".roster"),lastConsumedMessageIndex:e.last_read_message_index,notificationLevel:e.notification_level}})),n=a.body.meta.next_token,t=[].concat(hP(t),hP(o));case 10:if(n){e.next=2;break}case 11:return e.abrupt("return",t);case 12:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_onConversationRemoved",value:function(e){var t=this.conversations.get(e);t&&(this.conversations.delete(e),this.emit("conversationRemoved",t))}},{key:"_registerForEvents",value:function(e){var t=this;e.on("removed",(function(){return t._onConversationRemoved(e.sid)})),e.on("updated",(function(e){return t.emit("conversationUpdated",e)})),e.on("participantJoined",(function(e){return t.emit("participantJoined",e)})),e.on("participantLeft",(function(e){return t.emit("participantLeft",e)})),e.on("participantUpdated",(function(e){return t.emit("participantUpdated",e)})),e.on("messageAdded",(function(e){return t.emit("messageAdded",e)})),e.on("messageUpdated",(function(e){return t.emit("messageUpdated",e)})),e.on("messageRemoved",(function(e){return t.emit("messageRemoved",e)})),e.on("typingStarted",(function(e){return t.emit("typingStarted",e)})),e.on("typingEnded",(function(e){return t.emit("typingEnded",e)}))}}]),p}(rm),hA=Rn,vA=Qr.find,yA=zf,mA="find",gA=!0;function bA(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}mA in[]&&Array(1).find((function(){gA=!1})),hA({target:"Array",proto:!0,forced:gA},{find:function(e){return vA(this,e,arguments.length>1?arguments[1]:void 0)}}),yA(mA);var kA=function(e){Ca(a,e);var t,n,r,i=bA(a);function a(e,t,n){var r;return Na(this,a),(r=i.call(this)).configuration=t,r.services=n,r.fifoStack=[],r.myself=e,r.myself.on("updated",(function(e){return r.emit("userUpdated",e)})),r.myself.on("userSubscribed",(function(){return r.emit("userSubscribed",r.myself)})),r.myself.on("userUnsubscribed",(function(){r.emit("userUnsubscribed",r.myself),r.myself._ensureFetched()})),r.subscribedUsers=new Map,r}return La(a,[{key:"handleUnsubscribeUser",value:function(e){this.subscribedUsers.has(e.identity)&&this.subscribedUsers.delete(e.identity);var t=0;this.fifoStack.find((function(n,r){return n==e.identity&&(t=r,!0)}))&&this.fifoStack.splice(t,1),this.emit("userUnsubscribed",e)}},{key:"handleSubscribeUser",value:function(e){if(!this.subscribedUsers.has(e.identity)){if(this.fifoStack.length>=this.configuration.userInfosToSubscribe){var t,n,r=this.fifoStack.shift();null===(t=this.subscribedUsers)||void 0===t||null===(n=t.get(r))||void 0===n||n.unsubscribe()}this.fifoStack.push(e.identity),this.subscribedUsers.set(e.identity,e),this.emit("userSubscribed",e)}}},{key:"getUser",value:(r=Ta(zc.mark((function e(t,n){var r,i,a,o=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.myself._ensureFetched();case 2:if(t!=this.myself.identity){e.next=4;break}return e.abrupt("return",this.myself);case 4:if(!(i=this.subscribedUsers.get(t))){e.next=7;break}return e.abrupt("return",i);case 7:if(null===(r=n)||void 0===r){e.next=11;break}e.next=14;break;case 11:return e.next=13,this.getSyncUniqueName(t);case 13:n=e.sent;case 14:return(a=new User(t,n,this.configuration,this.services)).on("updated",(function(e){return o.emit("userUpdated",e)})),a.on("userSubscribed",(function(){return o.handleSubscribeUser(a)})),a.on("userUnsubscribed",(function(){return o.handleUnsubscribeUser(a)})),e.next=20,a._ensureFetched();case 20:return e.abrupt("return",a);case 21:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"getSubscribedUsers",value:(n=Ta(zc.mark((function e(){var t;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.myself._ensureFetched();case 2:return t=[this.myself],this.subscribedUsers.forEach((function(e){return t.push(e)})),e.abrupt("return",t);case 5:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getSyncUniqueName",value:(t=Ta(zc.mark((function e(t){var n,r,i,a;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new ph(this.configuration.links.users).path(t).build(),e.next=3,this.services.network.get(i);case 3:return a=e.sent,e.abrupt("return",null!==(n=null===(r=a.body)||void 0===r?void 0:r.sync_objects.user_info_map)&&void 0!==n?n:"");case 5:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),a}(rm),wA=Tf.scope("TypingIndicator"),xA=function(){function e(t,n,r){Na(this,e),this.configuration=n,this.services=r,this.getConversation=t,this.serviceTypingTimeout=null,this.sentUpdates=new Map}var t;return La(e,[{key:"typingTimeout",get:function(){return this.configuration.typingIndicatorTimeoutOverride||this.serviceTypingTimeout||this.configuration.typingIndicatorTimeoutDefault}},{key:"initialize",value:function(){var e=this;this.services.notificationClient.on("message",function(){var t=Ta(zc.mark((function t(n,r){return zc.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n!==Ug.TYPING_INDICATOR){t.next=3;break}return t.next=3,e._handleRemoteTyping(r);case 3:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}},{key:"_handleRemoteTyping",value:(t=Ta(zc.mark((function e(t){var n=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:wA.trace("Got new typing indicator ",t),this.getConversation(t.channel_sid).then((function(e){e&&e._participants.forEach((function(e){if(e.identity===t.identity){var r=n.configuration.typingIndicatorTimeoutOverride?n.configuration.typingIndicatorTimeoutOverride+1e3:1e3*t.typing_timeout;e._startTyping(r)}}))})).catch((function(e){throw wA.error(e),e}));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"send",value:function(e){var t=this.sentUpdates.get(e);return t&&t>Date.now()-this.typingTimeout?Promise.resolve():(this.sentUpdates.set(e,Date.now()),this._send(e))}},{key:"_send",value:function(e){var t=this;wA.trace("Sending typing indicator");var n=this.configuration.links.typing,r="ChannelSid=".concat(e);return this.services.twilsockClient.post(n,{"Content-Type":"application/x-www-form-urlencoded"},r,this.configuration.productId).then((function(e){e.body.hasOwnProperty("typing_timeout")&&(t.serviceTypingTimeout=1e3*e.body.typing_timeout)})).catch((function(e){throw wA.error("Failed to send typing indicator:",e),e}))}}]),e}(),PushNotification=La((function PushNotification(e){Na(this,PushNotification),this.title=e.title||null,this.body=e.body||null,this.sound=e.sound||null,this.badge=e.badge||null,this.action=e.action||null,this.type=e.type||null,this.data=e.data||{}})),_A="3.0.0-rc.8";function SA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function EA(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?SA(Object(n),!0).forEach((function(t){ja(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SA(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var TA,RA,IA=function(e){return e.replace(/(^\/+|\/+$)/g,"")},CA=function(){function e(t,n,r){Na(this,e),this._serviceUrl=t,this._services=n,this._productId=r}var t,n,r;return La(e,[{key:"_preProcessUrl",value:function(e){var t=IA(e);return/^https?:\/\//.test(e)?t:"".concat(IA(this._serviceUrl),"/").concat(t)}},{key:"_makeRequest",value:(r=Ta(zc.mark((function e(t,n,r,i){var a,o,s,u;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=this._preProcessUrl(n),o=EA({"Content-Type":"application/json; charset=utf-8"},i||{}),e.t0=t,e.next="get"===e.t0?5:"post"===e.t0?11:"delete"===e.t0?15:19;break;case 5:return u=a,r&&(u+="?"+Object.entries(r).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")),e.next=9,this._services.transport.get(u,o,this._productId);case 9:return s=e.sent,e.abrupt("break",19);case 11:return e.next=13,this._services.transport.post(a,o,JSON.stringify(r),this._productId);case 13:return s=e.sent,e.abrupt("break",19);case 15:return e.next=17,this._services.transport.delete(a,o,{},this._productId);case 17:return s=e.sent,e.abrupt("break",19);case 19:if(!(s.status.code<200||s.status.code>=300)){e.next=21;break}throw new Error("Request responded with a non-success code ".concat(s.status.code));case 21:return e.abrupt("return",s);case 22:case"end":return e.stop()}}),e,this)}))),function(e,t,n,i){return r.apply(this,arguments)})},{key:"fetchResource",value:(n=Ta(zc.mark((function e(t,n){var r,i=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=1,e.next=4,new Ag({min:50,max:1600,maxAttemptsCount:6}).run((function(){return i._makeRequest("get",t,n)}));case 4:return r=e.sent,e.abrupt("return",r.body);case 8:throw e.prev=8,e.t0=e.catch(1),new Error('Fetch resource from "'.concat(t,'" failed.'));case 11:case"end":return e.stop()}}),e,null,[[1,8]])}))),function(e,t){return n.apply(this,arguments)})},{key:"mutateResource",value:(t=Ta(zc.mark((function e(t,n,r){var i;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._makeRequest(t,n,r,{"X-Twilio-Mutation-Id":kb.v4()});case 2:if(202!==(i=e.sent).status.code){e.next=7;break}return e.next=6,this.fetchResource(i.body.resource_url);case 6:return e.abrupt("return",e.sent);case 7:return e.abrupt("return",i.body);case 8:case"end":return e.stop()}}),e,this)}))),function(e,n,r){return t.apply(this,arguments)})}]),e}();function OA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function PA(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?OA(Object(n),!0).forEach((function(t){ja(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):OA(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function AA(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Aa(e);if(t){var i=Aa(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Pa(this,n)}}var jA=La((function e(){Na(this,e)}));return e.Client=(TA=function(e){Ca(Client,e);var t,n,r,i,a,o,s,u,c,l,f,d,p,h,v,y=AA(Client);function Client(e){var t,n,r,i,a,o,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Na(this,Client),ja(Ra(o=y.call(this)),"version",_A),ja(Ra(o),"connectionState","unknown"),ja(Ra(o),"parsePushNotification",RA.parsePushNotification),o._fpaToken=null!=e?e:"",o._options=null!=s?s:{},!o._options.disableDeepClone){var u=PA(PA({},o._options),{},{transport:void 0,twilsockClient:void 0});(u=ch(u)).transport=o._options.transport,u.twilsockClient=o._options.twilsockClient,o._options=u}o._options.logLevel=null!==(t=o._options.logLevel)&&void 0!==t?t:"silent",RA._logger.setLevel(o._options.logLevel);var c=o._options.productId="ip_messaging";if(o._options.clientMetadata=o._options.clientMetadata||{},o._options.clientMetadata.hasOwnProperty("type")||(o._options.clientMetadata.type="conversations"),o._options.clientMetadata.hasOwnProperty("sdk")||(o._options.clientMetadata.sdk="JS",o._options.clientMetadata.sdkv=_A),o._options.Sync=o._options.Sync||{},void 0===o._options.Sync.enableSessionStorage&&(o._options.Sync.enableSessionStorage=!0),o._options.region&&(o._options.Sync.region=o._options.region),!e)throw new Error("A valid Twilio token should be provided");o._services=new jA,o._myself=new User("","",null,o._services);var l=!o._options.twilsockClient;if(!o._options.initRegistrations){var f=new Dg.InitRegistration(c);RA.populateInitRegistrations(f),o._options.initRegistrations=[f]}o._services.twilsockClient=o._options.twilsockClient=null!==(n=o._options.twilsockClient)&&void 0!==n?n:new Dg.TwilsockClient(e,c,o._options),o._services.twilsockClient.on("tokenAboutToExpire",(function(){return o.emit("tokenAboutToExpire")})),o._services.twilsockClient.on("tokenExpired",(function(){return o.emit("tokenExpired")})),o._services.twilsockClient.on("connectionError",(function(e){return o.emit("connectionError",e)})),o._services.twilsockClient.on("stateChanged",(function(e){RA._logger.debug("Handling stateChanged for ConversationsClient: new state ".concat(e)),e!==o.connectionState&&(o.connectionState=e,o.emit("connectionStateChanged",o.connectionState))})),o._services.transport=o._options.transport=null!==(r=o._options.transport)&&void 0!==r?r:o._options.twilsockClient,o._services.notificationClient=o._options.notificationsClient=null!==(i=o._options.notificationsClient)&&void 0!==i?i:new RE.Notifications(e,o._options),o._services.syncClient=o._options.syncClient=null!==(a=o._options.syncClient)&&void 0!==a?a:new XR(e,o._options);var d=(null==s?void 0:s.Chat)||(null==s?void 0:s.IPMessaging)||s||{},p=d.region||(null==s?void 0:s.region),h=d.apiUri||d.typingUri||"https://aim.".concat(p||"us1",".twilio.com");o._services.commandExecutor=new CA(h,{transport:o._options.transport},c);var v=function(e){o._rejectEnsureReady(e),o.emit("stateChanged",{state:"failed",error:e})},m=function(){v({terminal:!0,message:"Twilsock has disconnected."})};return o._services.twilsockClient.onceWithReplay("connectionError",v),o._services.twilsockClient.onceWithReplay("disconnected",m),o._services.twilsockClient.onceWithReplay("connected",Ta(zc.mark((function e(){var t,n;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return RA._logger.debug("ConversationsClient started INITIALIZING"),o._services.twilsockClient.off("connectionError",v),o._services.twilsockClient.off("disconnected",m),e.prev=3,t="conversations.client.startup",o._services.twilsockClient.addPartialTelemetryEvent(new Dg.TelemetryEventDescription(t,"Conversations client startup",new Date),t,Dg.TelemetryPoint.Start),e.next=8,o._initialize();case 8:o._services.twilsockClient.addPartialTelemetryEvent(new Dg.TelemetryEventDescription("","",new Date),t,Dg.TelemetryPoint.End),e.next=16;break;case 11:e.prev=11,e.t0=e.catch(3),n={terminal:!0,message:e.t0.message},o._rejectEnsureReady(n),o.emit("stateChanged",{state:"failed",error:n});case 16:case"end":return e.stop()}}),e,null,[[3,11]])})))),o._ensureReady=new Promise((function(e,t){o._resolveEnsureReady=e,o._rejectEnsureReady=t})).catch((function(){})),l&&o._services.twilsockClient.connect(),o}return La(Client,[{key:"user",get:function(){return this._myself}},{key:"reachabilityEnabled",get:function(){if(!this._configuration)throw new Error("Reachability information could not yet be accessed as the client has not yet been initialized. Subscribe to the 'stateChanged' event to properly react to the client initialization.");return this._configuration.reachabilityEnabled}},{key:"shutdown",value:(v=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return e.next=4,this._services.twilsockClient.disconnect();case 4:case"end":return e.stop()}}),e,this)}))),function(){return v.apply(this,arguments)})},{key:"updateToken",value:(h=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:if(RA._logger.info("updateToken"),this._fpaToken!==t){e.next=5;break}return e.abrupt("return",this);case 5:return e.next=7,this._services.twilsockClient.updateToken(t);case 7:return e.next=9,this._services.notificationClient.updateToken(t);case 9:return e.next=11,this._services.mcsClient.updateToken(t);case 11:return this._fpaToken=t,e.abrupt("return",this);case 13:case"end":return e.stop()}}),e,this)}))),function(e){return h.apply(this,arguments)})},{key:"getConversationBySid",value:(p=Ta(zc.mark((function e(t){var n;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return e.next=4,this._conversationsEntity.myConversationsRead.promise;case 4:return e.next=6,this._conversationsEntity.getConversation(t);case 6:if(n=e.sent){e.next=9;break}throw new Error("Conversation with SID ".concat(t," was not found."));case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}}),e,this)}))),function(e){return p.apply(this,arguments)})},{key:"peekConversationBySid",value:(d=Ta(zc.mark((function e(t){var n;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return e.next=4,this._conversationsEntity.peekConversation(t);case 4:if(n=e.sent){e.next=7;break}throw new Error("Conversation with SID ".concat(t," was not found."));case 7:return e.abrupt("return",n);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return d.apply(this,arguments)})},{key:"getConversationByUniqueName",value:(f=Ta(zc.mark((function e(t){var n;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return e.next=4,this._conversationsEntity.myConversationsRead.promise;case 4:return e.next=6,this._conversationsEntity.getConversationByUniqueName(t);case 6:if(n=e.sent){e.next=9;break}throw new Error("Conversation with unique name ".concat(t," was not found."));case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"getSubscribedConversations",value:(l=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return e.abrupt("return",this._conversationsPromise.then((function(e){return e.getConversations()})));case 3:case"end":return e.stop()}}),e,this)}))),function(){return l.apply(this,arguments)})},{key:"createConversation",value:(c=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return t=t||{},e.abrupt("return",this._conversationsPromise.then((function(e){return e.addConversation(t)})));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"setPushRegistrationId",value:(u=Ta(zc.mark((function e(t,n){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return this._subscribeToPushNotifications(t),this._services.notificationClient.setPushRegistrationId(t,n),e.next=6,this._services.notificationClient.commitChanges();case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return u.apply(this,arguments)})},{key:"unsetPushRegistrationId",value:(s=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return this._unsubscribeFromPushNotifications(t),e.next=5,this._services.notificationClient.commitChanges();case 5:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"removePushRegistrations",value:(o=Ta(zc.mark((function e(t,n){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._services.notificationClient.removeRegistrations(t,n);case 2:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"handlePushNotification",value:(a=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:RA._logger.debug("handlePushNotification, notificationPayload=",t),this.emit("pushNotification",RA.parsePushNotification(t));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"getUser",value:(i=Ta(zc.mark((function e(t){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return e.abrupt("return",this._services.users.getUser(t));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"getSubscribedUsers",value:(r=Ta(zc.mark((function e(){return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._ensureReady;case 2:return e.abrupt("return",this._services.users.getSubscribedUsers());case 3:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"getTemporaryContentUrlsForMediaSids",value:function(e){var t=this;return new rI.CancellablePromise(function(){var n=Ta(zc.mark((function n(r,i,a){var o,s;return zc.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t._services.mcsClient&&e){n.next=3;break}return i(new Error("Media Content Service is unavailable")),n.abrupt("return");case 3:return o=t._services.mcsClient.mediaSetGetContentUrls(e),a((function(){o.cancel()})),n.prev=5,n.next=8,o;case 8:s=n.sent,r(s),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(5),i(n.t0);case 15:case"end":return n.stop()}}),n,null,[[5,12]])})));return function(e,t,r){return n.apply(this,arguments)}}())}},{key:"getTemporaryContentUrlsForMedia",value:function(e){var t=e.map((function(e){return e.sid}));return this.getTemporaryContentUrlsForMediaSids(t)}},{key:"_initialize",value:(n=Ta(zc.mark((function e(){var t,n=this;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._services.commandExecutor.fetchResource("Client/v2/Configuration");case 2:return t=e.sent,this._configuration=new Uf(this._options,t,RA._logger),this._myself._resolveInitialization(this._configuration,this._configuration.userIdentity,this._configuration.userInfo,!0),this._services.typingIndicator=new xA(this.getConversationBySid.bind(this),this._configuration,this._services),this._services.network=new Ng(this._configuration,this._services),this._services.users=new kA(this._myself,this._configuration,this._services),this._services.users.on("userSubscribed",(function(e){n.emit("userSubscribed",e)})),this._services.users.on("userUpdated",(function(e){return n.emit("userUpdated",e)})),this._services.users.on("userUnsubscribed",(function(e){n.emit("userUnsubscribed",e)})),this._conversationsEntity=new pA(this._configuration,this._services),this._conversationsEntity.on("conversationAdded",(function(e){n.emit("conversationAdded",e)})),this._conversationsEntity.on("conversationRemoved",(function(e){n.emit("conversationRemoved",e)})),this._conversationsEntity.on("conversationJoined",(function(e){n.emit("conversationJoined",e)})),this._conversationsEntity.on("conversationLeft",(function(e){n.emit("conversationLeft",e)})),this._conversationsEntity.on("conversationUpdated",(function(e){return n.emit("conversationUpdated",e)})),this._conversationsEntity.on("participantJoined",(function(e){n.emit("participantJoined",e)})),this._conversationsEntity.on("participantLeft",(function(e){n.emit("participantLeft",e)})),this._conversationsEntity.on("participantUpdated",(function(e){return n.emit("participantUpdated",e)})),this._conversationsEntity.on("messageAdded",(function(e){return n.emit("messageAdded",e)})),this._conversationsEntity.on("messageUpdated",(function(e){return n.emit("messageUpdated",e)})),this._conversationsEntity.on("messageRemoved",(function(e){return n.emit("messageRemoved",e)})),this._conversationsEntity.on("typingStarted",(function(e){return n.emit("typingStarted",e)})),this._conversationsEntity.on("typingEnded",(function(e){return n.emit("typingEnded",e)})),this._conversationsPromise=this._conversationsEntity.fetchConversations().then((function(){return n._conversationsEntity})).catch((function(e){throw e})),e.next=28,this._services.users.myself._ensureFetched();case 28:RA._supportedPushChannels.forEach((function(e){return n._subscribeToPushNotifications(e)})),this._services.typingIndicator.initialize(),this._services.mcsClient=new rI.McsClient(this._fpaToken,this._configuration.links.mediaService,this._configuration.links.mediaSetService,PA(PA({},this._options),{},{transport:void 0})),this._resolveEnsureReady(),this.emit("stateChanged",{state:"initialized"});case 33:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"_subscribeToPushNotifications",value:function(e){var t=this;[Ug.NEW_MESSAGE,Ug.ADDED_TO_CONVERSATION,Ug.REMOVED_FROM_CONVERSATION,Ug.TYPING_INDICATOR,Ug.CONSUMPTION_UPDATE].forEach((function(n){t._services.notificationClient.subscribe(e,n)}))}},{key:"_unsubscribeFromPushNotifications",value:function(e){var t=this;[Ug.NEW_MESSAGE,Ug.ADDED_TO_CONVERSATION,Ug.REMOVED_FROM_CONVERSATION,Ug.TYPING_INDICATOR,Ug.CONSUMPTION_UPDATE].forEach((function(n){t._services.notificationClient.unsubscribe(e,n)}))}}],[{key:"create",value:(t=Ta(zc.mark((function e(t,n){var r;return zc.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==n||!n.twilsockClient){e.next=2;break}throw new Error("Obsolete usage of ConversationsClient.create() factory method: if you pass twilsock from the outside then you must use ConversationsClient constructor and be prepared to work with uninitialized client.");case 2:return r=new RA(t,n),e.next=5,r._ensureReady;case 5:return e.abrupt("return",r);case 6:case"end":return e.stop()}}),e)}))),function(e,n){return t.apply(this,arguments)})},{key:"parsePushNotification",value:function(e){if(RA._logger.debug("parsePushNotification, notificationPayload=",e),void 0!==e.aps){if(!e.twi_message_type)throw new Error("Provided push notification payload does not contain Programmable Chat push notification type");var t,n,r,i=RA._parsePushNotificationChatData(e),a=e.aps,o=null;if("string"==typeof a.alert)t=a.alert||null;else t=(null===(n=a.alert)||void 0===n?void 0:n.body)||null,o=(null===(r=a.alert)||void 0===r?void 0:r.title)||null;return new PushNotification({title:o,body:t,sound:a.sound||null,badge:a.badge||null,action:a.category||null,type:e.twi_message_type,data:i})}if(void 0!==e.data){var s=e.data;if(!s.twi_message_type)throw new Error("Provided push notification payload does not contain Programmable Chat push notification type");var u=RA._parsePushNotificationChatData(e.data);return new PushNotification({title:s.twi_title||null,body:s.twi_body||null,sound:s.twi_sound||null,badge:null,action:s.twi_action||null,type:s.twi_message_type,data:u})}throw new Error("Provided push notification payload is not Programmable Chat notification")}},{key:"_parsePushNotificationChatData",value:function(e){var t={};for(var n in RA._supportedPushDataFields){var r=e[n];if(null!=r)if("message_index"!==n&&"media_count"!==n){if("media"!==n)t[RA._supportedPushDataFields[n]]=r;else if("string"==typeof r)try{t[RA._supportedPushDataFields[n]]=JSON.parse(r)}catch(e){RA._logger.debug("Media message notification parsing error")}}else{var i=lh(r);null!==i&&(t[RA._supportedPushDataFields[n]]=i)}}return t}},{key:"populateInitRegistrations",value:function(e){e.populateInitRegistrations([Ug.TYPING_INDICATOR]),XR.populateInitRegistrations(e)}}]),Client}(rm),ja(TA,"conversationAdded","conversationAdded"),ja(TA,"conversationJoined","conversationJoined"),ja(TA,"conversationLeft","conversationLeft"),ja(TA,"conversationRemoved","conversationRemoved"),ja(TA,"conversationUpdated","conversationUpdated"),ja(TA,"participantJoined","participantJoined"),ja(TA,"participantLeft","participantLeft"),ja(TA,"participantUpdated","participantUpdated"),ja(TA,"messageAdded","messageAdded"),ja(TA,"messageRemoved","messageRemoved"),ja(TA,"messageUpdated","messageUpdated"),ja(TA,"tokenAboutToExpire","tokenAboutToExpire"),ja(TA,"tokenExpired","tokenExpired"),ja(TA,"typingEnded","typingEnded"),ja(TA,"typingStarted","typingStarted"),ja(TA,"pushNotification","pushNotification"),ja(TA,"userSubscribed","userSubscribed"),ja(TA,"userUnsubscribed","userUnsubscribed"),ja(TA,"userUpdated","userUpdated"),ja(TA,"stateChanged","stateChanged"),ja(TA,"connectionStateChanged","connectionStateChanged"),ja(TA,"connectionError","connectionError"),ja(TA,"version",_A),ja(TA,"_logger",Tf.scope("Client")),ja(TA,"_supportedPushChannels",["fcm","apn"]),ja(TA,"_supportedPushDataFields",{conversation_sid:"conversationSid",conversation_title:"conversationTitle",message_sid:"messageSid",message_index:"messageIndex",media_count:"mediaCount",media:"media"}),RA=TA),Gc([gy(dy),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],e.Client.prototype,"updateToken",null),Gc([gy(dy),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],e.Client.prototype,"getConversationBySid",null),Gc([gy(dy),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],e.Client.prototype,"peekConversationBySid",null),Gc([gy(dy),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],e.Client.prototype,"getConversationByUniqueName",null),Gc([gy(["undefined",hy("conversation options",{friendlyName:["string","undefined"],isPrivate:["boolean","undefined"],uniqueName:["string","undefined"]})]),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Promise)],e.Client.prototype,"createConversation",null),Gc([gy(ly("fcm","apn"),"string"),$c("design:type",Function),$c("design:paramtypes",[String,String]),$c("design:returntype",Promise)],e.Client.prototype,"setPushRegistrationId",null),Gc([gy(ly("fcm","apn")),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],e.Client.prototype,"unsetPushRegistrationId",null),Gc([gy(ly("fcm","apn"),dy),$c("design:type",Function),$c("design:paramtypes",[String,String]),$c("design:returntype",Promise)],e.Client.prototype,"removePushRegistrations",null),Gc([gy(vy),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",Promise)],e.Client.prototype,"handlePushNotification",null),Gc([gy(dy),$c("design:type",Function),$c("design:paramtypes",[String]),$c("design:returntype",Promise)],e.Client.prototype,"getUser",null),Gc([gy(fy("strings","string")),$c("design:type",Function),$c("design:paramtypes",[Array]),$c("design:returntype",rI.CancellablePromise)],e.Client.prototype,"getTemporaryContentUrlsForMediaSids",null),Gc([gy(fy("media",Media)),$c("design:type",Function),$c("design:paramtypes",[Array]),$c("design:returntype",rI.CancellablePromise)],e.Client.prototype,"getTemporaryContentUrlsForMedia",null),Gc([gy("string",["undefined",vy]),$c("design:type",Function),$c("design:paramtypes",[String,Object]),$c("design:returntype",Promise)],e.Client,"create",null),Gc([my(vy),$c("design:type",Function),$c("design:paramtypes",[Object]),$c("design:returntype",PushNotification)],e.Client,"parsePushNotification",null),e.Client=RA=Gc([yy(dy,[vy,"undefined"]),$c("design:paramtypes",[String,Object])],e.Client),e.AggregatedDeliveryReceipt=AggregatedDeliveryReceipt,e.CancellablePromise=rI.CancellablePromise,e.Conversation=Conversation,e.DetailedDeliveryReceipt=DetailedDeliveryReceipt,e.Media=Media,e.Message=Message,e.MessageBuilder=tA,e.NotificationTypes=Ug,e.Participant=Participant,e.PushNotification=PushNotification,e.RestPaginator=GP,e.UnsentMessage=eA,e.User=User,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
129
+ this.Twilio=this.Twilio||{},this.Twilio.Conversations=function(e){"use strict";var t=void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function n(e,t,n,i){var r,s=arguments.length,a=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(a=(s<3?r(a):s>3?r(t,n,a):r(t,n))||a);return s>3&&a&&Object.defineProperty(t,n,a),a}function i(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{};function s(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})})),t}var a,o,c,u={exports:{}};function l(e,t){return[`${(new Date).toISOString()} Conversations ${e}:`].concat(Array.from(t))}o=r,c=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"];function r(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function a(t,n){for(var r=0;r<i.length;r++){var s=i[r];this[s]=r<t?e:this.methodFactory(s,t,n)}this.log=this.debug}function o(e,n,i){return function(){typeof console!==t&&(a.call(this,n,i),this[e].apply(this,arguments))}}function c(i,a,c){return function(i){return"debug"===i&&(i="log"),typeof console!==t&&("trace"===i&&n?s:void 0!==console[i]?r(console,i):void 0!==console.log?r(console,"log"):e)}(i)||o.apply(this,arguments)}function u(e,n,r){var s,o=this;n=null==n?"WARN":n;var u="loglevel";function l(){var e;if(typeof window!==t&&u){try{e=window.localStorage[u]}catch(e){}if(typeof e===t)try{var n=window.document.cookie,i=n.indexOf(encodeURIComponent(u)+"=");-1!==i&&(e=/^([^;]+)/.exec(n.slice(i))[1])}catch(e){}return void 0===o.levels[e]&&(e=void 0),e}}"string"==typeof e?u+=":"+e:"symbol"==typeof e&&(u=void 0),o.name=e,o.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},o.methodFactory=r||c,o.getLevel=function(){return s},o.setLevel=function(n,r){if("string"==typeof n&&void 0!==o.levels[n.toUpperCase()]&&(n=o.levels[n.toUpperCase()]),!("number"==typeof n&&n>=0&&n<=o.levels.SILENT))throw"log.setLevel() called with invalid level: "+n;if(s=n,!1!==r&&function(e){var n=(i[e]||"silent").toUpperCase();if(typeof window!==t&&u){try{return void(window.localStorage[u]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(u)+"="+n+";"}catch(e){}}}(n),a.call(o,n,e),typeof console===t&&n<o.levels.SILENT)return"No console available for logging"},o.setDefaultLevel=function(e){n=e,l()||o.setLevel(e,!1)},o.resetLevel=function(){o.setLevel(n,!1),function(){if(typeof window!==t&&u){try{return void window.localStorage.removeItem(u)}catch(e){}try{window.document.cookie=encodeURIComponent(u)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}()},o.enableAll=function(e){o.setLevel(o.levels.TRACE,e)},o.disableAll=function(e){o.setLevel(o.levels.SILENT,e)};var d=l();null==d&&(d=n),o.setLevel(d,!1)}var l=new u,d={};l.getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=d[e];return t||(t=d[e]=new u(e,l.getLevel(),l.methodFactory)),t};var h=typeof window!==t?window.log:void 0;return l.noConflict=function(){return typeof window!==t&&window.log===l&&(window.log=h),l},l.getLoggers=function(){return d},l.default=l,l},(a=u).exports?a.exports=c():o.log=c();const d=u.exports.getLogger("twilio-conversations");class h{prefix="";constructor(e){this.prefix=null!=e&&e.length>0?e+" ":""}static scope(e){return new h(e)}setLevel(e){d.setLevel(e)}static setLevel(e){d.setLevel(e)}trace(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.trace.apply(null,l(this.prefix+"T",t))}debug(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.debug.apply(null,l(this.prefix+"D",t))}info(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.info.apply(null,l(this.prefix+"I",t))}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.warn.apply(null,l(this.prefix+"W",t))}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.error.apply(null,l(this.prefix+"E",t))}static trace(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.trace.apply(null,l("T",t))}static debug(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.debug.apply(null,l("D",t))}static info(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.info.apply(null,l("I",t))}static warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.warn.apply(null,l("W",t))}static error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];d.error.apply(null,l("E",t))}}var p,f,m={};Object.defineProperty(m,"__esModule",{value:!0});var g="\\d+(?:[\\.,]\\d+)?",y="P(?:"+("("+g+"W)")+"|"+("("+g+"Y)?("+g+"M)?("+g+"D)?")+"(?:"+("T("+g+"H)?("+g+"M)?("+g+"S)?")+")?)",v=["weeks","years","months","days","hours","minutes","seconds"],b=m.pattern=new RegExp(y),_=f=m.parse=function(e){return e.match(b).slice(1).reduce((function(e,t,n){return e[v[n]]=parseFloat(t)||0,e}),{})},w=m.end=function(e,t){var n=t?t.getTime():Date.now(),i=new Date(n);return i.setFullYear(i.getFullYear()+e.years),i.setMonth(i.getMonth()+e.months),i.setDate(i.getDate()+e.days),i.setHours(i.getHours()+e.hours),i.setMinutes(i.getMinutes()+e.minutes),i.setMilliseconds(i.getMilliseconds()+1e3*e.seconds),i.setDate(i.getDate()+7*e.weeks),i},x=p=m.toSeconds=function(e,t){var n=t?t.getTime():Date.now(),i=new Date(n);return(w(e,i).getTime()-i.getTime())/1e3};m.default={end:w,toSeconds:x,pattern:b,parse:_};const S="PT5S",k="PT5S";class E{links;limits;productId;typingIndicatorTimeoutOverride;typingIndicatorTimeoutDefault=5e3;backoffConfiguration;retryWhenThrottled;consumptionReportInterval;userInfosToSubscribe;httpCacheInterval;reachabilityEnabled;userIdentity;userInfo;myConversations;channelMetadataCacheCapacity;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0;const i=e.Chat||e.IPMessaging||e||{};this.productId=i.productId,this.links={myConversations:t.links.my_conversations,conversations:t.links.conversations,users:t.links.users,currentUser:t.links.current_user,typing:t.links.typing,mediaService:t.links.media_service,mediaSetService:t.links.media_set_service,messagesReceipts:t.links.messages_receipts},this.limits={mediaAttachmentsCountLimit:t.options.media_attachments_count_limit,mediaAttachmentSizeLimitInMb:t.options.media_attachment_size_limit_in_mb,mediaAttachmentsTotalSizeLimitInMb:t.options.media_attachments_total_size_limit_in_mb,emailHistoriesAllowedContentTypes:t.options.email_histories_allowed_mime_types,emailBodiesAllowedContentTypes:t.options.email_bodies_allowed_mime_types},this.typingIndicatorTimeoutOverride=i.typingIndicatorTimeoutOverride,this.backoffConfiguration={min:1e3,max:4e3,maxAttemptsCount:3,...i.backoffConfigOverride},this.retryWhenThrottled=void 0===i.retryWhenThrottledOverride||i.retryWhenThrottledOverride,this.userInfosToSubscribe=i.userInfosToSubscribeOverride??t.options.user_infos_to_subscribe??100,this.reachabilityEnabled=t.options.reachability_enabled,this.userIdentity=t.identity,this.userInfo=t.sync_objects.my_user_info,this.myConversations=t.sync_objects.my_conversations;const r=i.httpCacheIntervalOverride??t.options.http_cache_interval??S;try{this.httpCacheInterval=p(f(r))}catch{n.error(`Failed to parse http cache interval ${r}, using default value ${S}`),this.httpCacheInterval=p(f(S))}const s=i.consumptionReportIntervalOverride??t.options.consumption_report_interval??k;try{this.consumptionReportInterval=p(f(s))}catch{n.error(`Failed to parse consumption report interval ${s}, using default value ${k}`),this.consumptionReportInterval=p(f(k))}this.channelMetadataCacheCapacity=e.channelMetadataCacheCapacity??100}}function T(e){return void 0===e||isNaN(Number(e))?null:Number(e)}function I(e){try{return new Date(e)}catch(e){return null}}function C(e,t,n){let i={};if(e)try{i=JSON.parse(e)}catch(e){n.warn(t,e)}return i}class R{base;args;paths;constructor(e){this.base=e.replace(/\/$/,""),this.args=[],this.paths=[]}arg(e,t){return void 0!==t&&this.args.push(encodeURIComponent(e)+"="+encodeURIComponent(t)),this}path(e){return this.paths.push(encodeURIComponent(e)),this}build(){let e=this.base;return this.paths.length&&(e+="/"+this.paths.join("/")),this.args.length&&(e+="?"+this.args.join("&")),e}}var P={};
130
+ /*
131
+ @license
132
+ Copyright (c) 2021 Twilio Inc.
133
+
134
+ 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:
135
+
136
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
137
+
138
+ 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.
139
+
140
+
141
+ */Object.defineProperty(P,"__esModule",{value:!0});const M=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return{checks:t}},O=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return M((e=>{let n=!1;const i=[];for(const r of t)"string"!=typeof r?(n=n||e instanceof r,i.push(`an instance of ${r.name}`)):(n=n||typeof e===r,i.push(`of type ${r}`));return[n,i]}))},A=(e,t)=>{if(t.length>e.length)throw new Error(`Expected at most ${e.length} argument(s), but got ${t.length}`);for(;t.length<e.length;)t.push(void 0);for(const[n,i]of t.entries()){const[t,r,s,a]=U(e[n],i);if(t)continue;throw new Error(`Argument ${n+1} is expected to be ${s}${a} but got ${r}`)}},j=e=>{let t;return["undefined","boolean","number","bigint","string"].includes(typeof e)&&(t="string"==typeof e?`"${e}"`:`${e}`),"object"==typeof e&&"Object"!==e?.constructor?.name&&(t=null===e?"null":`instance of ${e?.constructor?.name}`),t||(t=typeof e),t},$=e=>{const t=[];for(const n of e)t.push(N(n));return t},N=e=>{const t=[],n=Array.isArray(e)?e:[e];for(const e of n)"string"!=typeof e&&"function"!=typeof e?t.push(e):t.push(O(e));return t},U=(e,t)=>{let n,i=[],r=!1;for(const s of e)for(const e of s.checks){const[s,a,o]=e(t);r=r||s,!n&&o&&(n=o),a&&(i="string"==typeof a?[...i,a]:[...i,...a])}if(r)return[!0];const s=n||j(t),a=i.length-1;return[!1,s,a>0?`${i.slice(0,a).join(", ")} or ${i[a]}`:i.join(", "),a>1?";":","]},L=M((e=>["string"==typeof e&&e.length>0,"a non-empty string"])),F=M((e=>["number"==typeof e&&Number.isInteger(e)&&e>=0,"a non-negative integer"])),q=M((e=>["object"==typeof e&&null!==e&&!Array.isArray(e),"a pure object (non-null and non-array)"]));var D=P.array=(e,t)=>M((n=>{if(!Array.isArray(n))return[!1,`an array of ${e}`];for(const[i,r]of n.entries()){const[n,s,a]=U(N(t),r);if(!n)return[!1,`a valid array of ${e} (index ${i} should be ${a})`,`malformed array of ${e} (index ${i} is ${s})`]}return[!0]})),B=P.custom=M,z=P.literal=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return M((e=>{let n=!1;const i=[];for(const r of t)n=n||e===r,i.push("string"==typeof r?`"${r}"`:`${r}`);return[n,i]}))},W=P.nonEmptyArray=(e,t)=>M((n=>{if(!Array.isArray(n)||n.length<1)return[!1,`a non-empty array of ${e}`];for(const[i,r]of n.entries()){const[n,s,a]=U(N(t),r);if(!n)return[!1,`a valid non-empty array of ${e} (index ${i} should be ${a})`,`malformed array of ${e} (index ${i} is ${s})`]}return[!0]})),K=P.nonEmptyString=L,H=P.nonNegativeInteger=F,V=P.objectSchema=(e,t)=>M((n=>{if("object"!=typeof n||null===n||Array.isArray(n))return[!1,`valid ${e} (should be a pure object)`];for(const[i,r]of Object.entries(t)){const[t,s,a]=U(N(r),n[i]);if(!t)return[!1,`valid ${e} (key "${i}" should be ${a})`,`malformed ${e} (key "${i}" is ${s})`]}return[!0]})),J=P.pureObject=q;P.runtimeTypeValidation=A,P.stringifyReceivedType=j,P.type=O;var G=P.validateConstructorTypes=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const i=$(t);return e=>class extends e{constructor(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];A(i,t),super(...t)}}},Q=P.validateTypes=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const i=$(t);return(e,t,n)=>{if("function"!=typeof n.value)throw new Error("The validateTypes decorator can only be applied to methods");const r=n.value;n.value=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return A(i,t),r.apply(this,t)}}},X=P.validateTypesAsync=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const i=$(t);return(e,t,n)=>{if("function"!=typeof n.value)throw new Error("The validateTypesAsync decorator can only be applied to methods");const r=n.value;n.value=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];try{A(i,t)}catch(e){return Promise.reject(e)}return r.apply(this,t)}}};const Z=B((e=>[["string","number","boolean","object"].includes(typeof e),"a JSON type"])),Y=B((e=>[["undefined","string","number","boolean","object"].includes(typeof e),"an optional JSON type"])),ee=V("send media options",{contentType:[z(null),"string"],filename:["string","undefined"],media:[z("null"),"string",..."function"==typeof Buffer?[Buffer]:[],..."function"==typeof Blob?[Blob]:[]]});var te={};
142
+ /*
143
+ @license
144
+ Copyright (c) 2021 Twilio Inc.
145
+
146
+ 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:
147
+
148
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
149
+
150
+ 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.
151
+
152
+ */function ne(){}function ie(){ie.init.call(this)}function re(e){return void 0===e._maxListeners?ie.defaultMaxListeners:e._maxListeners}function se(e,t,n,i){var r,s,a;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((s=e._events)?(s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),a=s[t]):(s=e._events=new ne,e._eventsCount=0),a){if("function"==typeof a?a=s[t]=i?[n,a]:[a,n]:i?a.unshift(n):a.push(n),!a.warned&&(r=re(e))&&r>0&&a.length>r){a.warned=!0;var o=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");o.name="MaxListenersExceededWarning",o.emitter=e,o.type=t,o.count=a.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(o)}}else a=s[t]=n,++e._eventsCount;return e}function ae(e,t,n){var i=!1;function r(){e.removeListener(t,r),i||(i=!0,n.apply(e,arguments))}return r.listener=n,r}function oe(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function ce(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}Object.defineProperty(te,"__esModule",{value:!0}),ne.prototype=Object.create(null),ie.EventEmitter=ie,ie.usingDomains=!1,ie.prototype.domain=void 0,ie.prototype._events=void 0,ie.prototype._maxListeners=void 0,ie.defaultMaxListeners=10,ie.init=function(){this.domain=null,ie.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new ne,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},ie.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},ie.prototype.getMaxListeners=function(){return re(this)},ie.prototype.emit=function(e){var t,n,i,r,s,a,o,c="error"===e;if(a=this._events)c=c&&null==a.error;else if(!c)return!1;if(o=this.domain,c){if(t=arguments[1],!o){if(t instanceof Error)throw t;var u=new Error('Uncaught, unspecified "error" event. ('+t+")");throw u.context=t,u}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=o,t.domainThrown=!1,o.emit("error",t),!1}if(!(n=a[e]))return!1;var l="function"==typeof n;switch(i=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var i=e.length,r=ce(e,i),s=0;s<i;++s)r[s].call(n)}(n,l,this);break;case 2:!function(e,t,n,i){if(t)e.call(n,i);else for(var r=e.length,s=ce(e,r),a=0;a<r;++a)s[a].call(n,i)}(n,l,this,arguments[1]);break;case 3:!function(e,t,n,i,r){if(t)e.call(n,i,r);else for(var s=e.length,a=ce(e,s),o=0;o<s;++o)a[o].call(n,i,r)}(n,l,this,arguments[1],arguments[2]);break;case 4:!function(e,t,n,i,r,s){if(t)e.call(n,i,r,s);else for(var a=e.length,o=ce(e,a),c=0;c<a;++c)o[c].call(n,i,r,s)}(n,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(r=new Array(i-1),s=1;s<i;s++)r[s-1]=arguments[s];!function(e,t,n,i){if(t)e.apply(n,i);else for(var r=e.length,s=ce(e,r),a=0;a<r;++a)s[a].apply(n,i)}(n,l,this,r)}return!0},ie.prototype.addListener=function(e,t){return se(this,e,t,!1)},ie.prototype.on=ie.prototype.addListener,ie.prototype.prependListener=function(e,t){return se(this,e,t,!0)},ie.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,ae(this,e,t)),this},ie.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,ae(this,e,t)),this},ie.prototype.removeListener=function(e,t){var n,i,r,s,a;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(i=this._events))return this;if(!(n=i[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new ne:(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,s=n.length;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){a=n[s].listener,r=s;break}if(r<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new ne,this;delete i[e]}else!function(e,t){for(var n=t,i=n+1,r=e.length;i<r;n+=1,i+=1)e[n]=e[i];e.pop()}(n,r);i.removeListener&&this.emit("removeListener",e,a||t)}return this},ie.prototype.off=function(e,t){return this.removeListener(e,t)},ie.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new ne,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new ne:delete n[e]),this;if(0===arguments.length){for(var i,r=Object.keys(n),s=0;s<r.length;++s)"removeListener"!==(i=r[s])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=new ne,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},ie.prototype.listeners=function(e){var t,n,i=this._events;return n=i&&(t=i[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[],n},ie.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):oe.call(e,t)},ie.prototype.listenerCount=oe,ie.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var ue=te.ReplayEventEmitter=class extends ie{#e=new Map;constructor(){super()}on(e,t){return super.on(e,t)}once(e,t){return super.once(e,t)}off(e,t){return super.off(e,t)}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return this.#e.set(e,n),super.emit(e,...n)}emitNextTick(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];Promise.resolve().then((()=>{this.#e.set(e,n),super.emit(e,...n)}))}addListener(e,t){return super.addListener(e,t)}removeListener(e,t){return super.removeListener(e,t)}addListenerWithReplay(e,t){const n=this.#e.get(e);return void 0!==n&&t(...n),this.addListener(e,t)}onWithReplay(e,t){return this.addListenerWithReplay(e,t)}onceWithReplay(e,t){const n=this.#e.get(e);return void 0!==n?(t(...n),this):super.once(e,t)}};te.ReplayEventSubject=class{#t;_=null;constructor(e){this.#t=e}on(e,t){return this.#t.on(e,t),this.#n(e,t)}addListener(e,t){return this.#t.addListener(e,t),this.#n(e,t)}onWithReplay(e,t){return this.#t.onWithReplay(e,t),this.#n(e,t)}addListenerWithReplay(e,t){return this.#t.addListenerWithReplay(e,t),this.#n(e,t)}once(e,t){return this.#t.once(e,t),this.#n(e,t)}onceWithReplay(e,t){return this.#t.onceWithReplay(e,t),this.#n(e,t)}#n(e,t){return()=>{this.#t.off(e,t)}}};var le={exports:{}};!function(e,t){var n="__lodash_hash_undefined__",i=1,s=2,a=9007199254740991,o="[object Arguments]",c="[object Array]",u="[object AsyncFunction]",l="[object Boolean]",d="[object Date]",h="[object Error]",p="[object Function]",f="[object GeneratorFunction]",m="[object Map]",g="[object Number]",y="[object Null]",v="[object Object]",b="[object Promise]",_="[object Proxy]",w="[object RegExp]",x="[object Set]",S="[object String]",k="[object Symbol]",E="[object Undefined]",T="[object WeakMap]",I="[object ArrayBuffer]",C="[object DataView]",R=/^\[object .+?Constructor\]$/,P=/^(?:0|[1-9]\d*)$/,M={};M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M[o]=M[c]=M[I]=M[l]=M[C]=M[d]=M[h]=M[p]=M[m]=M[g]=M[v]=M[w]=M[x]=M[S]=M[T]=!1;var O="object"==typeof r&&r&&r.Object===Object&&r,A="object"==typeof self&&self&&self.Object===Object&&self,j=O||A||Function("return this")(),$=t&&!t.nodeType&&t,N=$&&e&&!e.nodeType&&e,U=N&&N.exports===$,L=U&&O.process,F=function(){try{return L&&L.binding&&L.binding("util")}catch(e){}}(),q=F&&F.isTypedArray;function D(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}function B(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var W,K,H,V=Array.prototype,J=Function.prototype,G=Object.prototype,Q=j["__core-js_shared__"],X=J.toString,Z=G.hasOwnProperty,Y=(W=/[^.]+$/.exec(Q&&Q.keys&&Q.keys.IE_PROTO||""))?"Symbol(src)_1."+W:"",ee=G.toString,te=RegExp("^"+X.call(Z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ne=U?j.Buffer:void 0,ie=j.Symbol,re=j.Uint8Array,se=G.propertyIsEnumerable,ae=V.splice,oe=ie?ie.toStringTag:void 0,ce=Object.getOwnPropertySymbols,ue=ne?ne.isBuffer:void 0,le=(K=Object.keys,H=Object,function(e){return K(H(e))}),de=Fe(j,"DataView"),he=Fe(j,"Map"),pe=Fe(j,"Promise"),fe=Fe(j,"Set"),me=Fe(j,"WeakMap"),ge=Fe(Object,"create"),ye=ze(de),ve=ze(he),be=ze(pe),_e=ze(fe),we=ze(me),xe=ie?ie.prototype:void 0,Se=xe?xe.valueOf:void 0;function ke(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ee(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Te(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ie(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Te;++t<n;)this.add(e[t])}function Ce(e){var t=this.__data__=new Ee(e);this.size=t.size}function Re(e,t){var n=He(e),i=!n&&Ke(e),r=!n&&!i&&Ve(e),s=!n&&!i&&!r&&Ze(e),a=n||i||r||s,o=a?function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}(e.length,String):[],c=o.length;for(var u in e)!t&&!Z.call(e,u)||a&&("length"==u||r&&("offset"==u||"parent"==u)||s&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Be(u,c))||o.push(u);return o}function Pe(e,t){for(var n=e.length;n--;)if(We(e[n][0],t))return n;return-1}function Me(e){return null==e?void 0===e?E:y:oe&&oe in Object(e)?function(e){var t=Z.call(e,oe),n=e[oe];try{e[oe]=void 0;var i=!0}catch(e){}var r=ee.call(e);i&&(t?e[oe]=n:delete e[oe]);return r}(e):function(e){return ee.call(e)}(e)}function Oe(e){return Xe(e)&&Me(e)==o}function Ae(e,t,n,r,a){return e===t||(null==e||null==t||!Xe(e)&&!Xe(t)?e!=e&&t!=t:function(e,t,n,r,a,u){var p=He(e),f=He(t),y=p?c:De(e),b=f?c:De(t),_=(y=y==o?v:y)==v,E=(b=b==o?v:b)==v,T=y==b;if(T&&Ve(e)){if(!Ve(t))return!1;p=!0,_=!1}if(T&&!_)return u||(u=new Ce),p||Ze(e)?Ne(e,t,n,r,a,u):function(e,t,n,r,a,o,c){switch(n){case C:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case I:return!(e.byteLength!=t.byteLength||!o(new re(e),new re(t)));case l:case d:case g:return We(+e,+t);case h:return e.name==t.name&&e.message==t.message;case w:case S:return e==t+"";case m:var u=B;case x:var p=r&i;if(u||(u=z),e.size!=t.size&&!p)return!1;var f=c.get(e);if(f)return f==t;r|=s,c.set(e,t);var y=Ne(u(e),u(t),r,a,o,c);return c.delete(e),y;case k:if(Se)return Se.call(e)==Se.call(t)}return!1}(e,t,y,n,r,a,u);if(!(n&i)){var R=_&&Z.call(e,"__wrapped__"),P=E&&Z.call(t,"__wrapped__");if(R||P){var M=R?e.value():e,O=P?t.value():t;return u||(u=new Ce),a(M,O,n,r,u)}}if(!T)return!1;return u||(u=new Ce),function(e,t,n,r,s,a){var o=n&i,c=Ue(e),u=c.length,l=Ue(t),d=l.length;if(u!=d&&!o)return!1;var h=u;for(;h--;){var p=c[h];if(!(o?p in t:Z.call(t,p)))return!1}var f=a.get(e);if(f&&a.get(t))return f==t;var m=!0;a.set(e,t),a.set(t,e);var g=o;for(;++h<u;){var y=e[p=c[h]],v=t[p];if(r)var b=o?r(v,y,p,t,e,a):r(y,v,p,e,t,a);if(!(void 0===b?y===v||s(y,v,n,r,a):b)){m=!1;break}g||(g="constructor"==p)}if(m&&!g){var _=e.constructor,w=t.constructor;_==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w||(m=!1)}return a.delete(e),a.delete(t),m}(e,t,n,r,a,u)}(e,t,n,r,Ae,a))}function je(e){return!(!Qe(e)||function(e){return!!Y&&Y in e}(e))&&(Je(e)?te:R).test(ze(e))}function $e(e){if(n=(t=e)&&t.constructor,i="function"==typeof n&&n.prototype||G,t!==i)return le(e);var t,n,i,r=[];for(var s in Object(e))Z.call(e,s)&&"constructor"!=s&&r.push(s);return r}function Ne(e,t,n,r,a,o){var c=n&i,u=e.length,l=t.length;if(u!=l&&!(c&&l>u))return!1;var d=o.get(e);if(d&&o.get(t))return d==t;var h=-1,p=!0,f=n&s?new Ie:void 0;for(o.set(e,t),o.set(t,e);++h<u;){var m=e[h],g=t[h];if(r)var y=c?r(g,m,h,t,e,o):r(m,g,h,e,t,o);if(void 0!==y){if(y)continue;p=!1;break}if(f){if(!D(t,(function(e,t){if(i=t,!f.has(i)&&(m===e||a(m,e,n,r,o)))return f.push(t);var i}))){p=!1;break}}else if(m!==g&&!a(m,g,n,r,o)){p=!1;break}}return o.delete(e),o.delete(t),p}function Ue(e){return function(e,t,n){var i=t(e);return He(e)?i:function(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}(i,n(e))}(e,Ye,qe)}function Le(e,t){var n=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function Fe(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return je(n)?n:void 0}ke.prototype.clear=function(){this.__data__=ge?ge(null):{},this.size=0},ke.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ke.prototype.get=function(e){var t=this.__data__;if(ge){var i=t[e];return i===n?void 0:i}return Z.call(t,e)?t[e]:void 0},ke.prototype.has=function(e){var t=this.__data__;return ge?void 0!==t[e]:Z.call(t,e)},ke.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=ge&&void 0===t?n:t,this},Ee.prototype.clear=function(){this.__data__=[],this.size=0},Ee.prototype.delete=function(e){var t=this.__data__,n=Pe(t,e);return!(n<0)&&(n==t.length-1?t.pop():ae.call(t,n,1),--this.size,!0)},Ee.prototype.get=function(e){var t=this.__data__,n=Pe(t,e);return n<0?void 0:t[n][1]},Ee.prototype.has=function(e){return Pe(this.__data__,e)>-1},Ee.prototype.set=function(e,t){var n=this.__data__,i=Pe(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},Te.prototype.clear=function(){this.size=0,this.__data__={hash:new ke,map:new(he||Ee),string:new ke}},Te.prototype.delete=function(e){var t=Le(this,e).delete(e);return this.size-=t?1:0,t},Te.prototype.get=function(e){return Le(this,e).get(e)},Te.prototype.has=function(e){return Le(this,e).has(e)},Te.prototype.set=function(e,t){var n=Le(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},Ie.prototype.add=Ie.prototype.push=function(e){return this.__data__.set(e,n),this},Ie.prototype.has=function(e){return this.__data__.has(e)},Ce.prototype.clear=function(){this.__data__=new Ee,this.size=0},Ce.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Ce.prototype.get=function(e){return this.__data__.get(e)},Ce.prototype.has=function(e){return this.__data__.has(e)},Ce.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ee){var i=n.__data__;if(!he||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new Te(i)}return n.set(e,t),this.size=n.size,this};var qe=ce?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,s=[];++n<i;){var a=e[n];t(a,n,e)&&(s[r++]=a)}return s}(ce(e),(function(t){return se.call(e,t)})))}:function(){return[]},De=Me;function Be(e,t){return!!(t=null==t?a:t)&&("number"==typeof e||P.test(e))&&e>-1&&e%1==0&&e<t}function ze(e){if(null!=e){try{return X.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(de&&De(new de(new ArrayBuffer(1)))!=C||he&&De(new he)!=m||pe&&De(pe.resolve())!=b||fe&&De(new fe)!=x||me&&De(new me)!=T)&&(De=function(e){var t=Me(e),n=t==v?e.constructor:void 0,i=n?ze(n):"";if(i)switch(i){case ye:return C;case ve:return m;case be:return b;case _e:return x;case we:return T}return t});var Ke=Oe(function(){return arguments}())?Oe:function(e){return Xe(e)&&Z.call(e,"callee")&&!se.call(e,"callee")},He=Array.isArray;var Ve=ue||function(){return!1};function Je(e){if(!Qe(e))return!1;var t=Me(e);return t==p||t==f||t==u||t==_}function Ge(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=a}function Qe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Xe(e){return null!=e&&"object"==typeof e}var Ze=q?function(e){return function(t){return e(t)}}(q):function(e){return Xe(e)&&Ge(e.length)&&!!M[Me(e)]};function Ye(e){return null!=(t=e)&&Ge(t.length)&&!Je(t)?Re(e):$e(e);var t}e.exports=function(e,t){return Ae(e,t)}}(le,le.exports);var de=le.exports;const he=h.scope("User");class User extends ue{links;configuration;services;entity;state;promiseToFetch=null;subscribed;_initializationPromise;_resolveInitializationPromise;constructor(e,t,n,i){super(),this.services=i,this.subscribed="initializing",this.setMaxListeners(0),this.state={identity:e,entityName:t,friendlyName:null,attributes:{},online:null,notifiable:null},this._initializationPromise=new Promise((e=>{this._resolveInitializationPromise=e})),null!==n&&this._resolveInitialization(n,e,t,!1)}updated="updated";userSubscribed="userSubscribed";userUnsubscribed="userUnsubscribed";get identity(){return this.state.identity}set identity(e){this.state.identity=e}set entityName(e){this.state.entityName=e}get attributes(){return this.state.attributes}get friendlyName(){return this.state.friendlyName}get isOnline(){return this.state.online}get isNotifiable(){return this.state.notifiable}get isSubscribed(){return"subscribed"==this.subscribed}async _update(e,t){await this._initializationPromise;const n=[];switch(he.debug("User for",this.state.identity,"updated:",e,t),e){case"friendlyName":this.state.friendlyName!==t.value&&(n.push("friendlyName"),this.state.friendlyName=t.value);break;case"attributes":const e=C(t.value,`Retrieved malformed attributes from the server for user: ${this.state.identity}`,he);de(this.state.attributes,e)||(this.state.attributes=e,n.push("attributes"));break;case"reachability":this.state.online!==t.online&&(this.state.online=t.online,n.push("reachabilityOnline")),this.state.notifiable!==t.notifiable&&(this.state.notifiable=t.notifiable,n.push("reachabilityNotifiable"));break;default:return}n.length>0&&this.emit("updated",{user:this,updateReasons:n})}async _updateReachabilityInfo(e,t){return await this._initializationPromise,this.configuration.reachabilityEnabled?e.get("reachability").then(t).catch((e=>{he.warn("Failed to get reachability info for ",this.state.identity,e)})):Promise.resolve()}async _fetch(){return await this._initializationPromise,this.state.entityName?(this.promiseToFetch=this.services.syncClient.map({id:this.state.entityName,mode:"open_existing",includeItems:!0}).then((e=>(this.entity=e,e.on("itemUpdated",(e=>(he.debug(this.state.entityName+" ("+this.state.identity+") itemUpdated: "+e.item.key),this._update(e.item.key,e.item.data)))),e.on("itemAdded",(e=>(he.debug(this.state.entityName+" ("+this.state.identity+") itemAdded: "+e.item.key),this._update(e.item.key,e.item.data)))),Promise.all([e.get("friendlyName").then((e=>this._update(e.key,e.data))),e.get("attributes").then((e=>this._update(e.key,e.data))),this._updateReachabilityInfo(e,(e=>this._update(e.key,e.data)))])))).then((()=>(he.debug("Fetched for",this.identity),this.subscribed="subscribed",this.emit("userSubscribed",this),this))).catch((e=>{throw this.promiseToFetch=null,e})),this.promiseToFetch):this}async _ensureFetched(){return await this._initializationPromise,this.promiseToFetch||this._fetch()}async updateAttributes(e){if(await this._initializationPromise,"unsubscribed"==this.subscribed)throw new Error("Can't modify unsubscribed object");return await this.services.commandExecutor.mutateResource("post",this.links.self,{attributes:JSON.stringify(e)}),this}async updateFriendlyName(e){if(await this._initializationPromise,"unsubscribed"==this.subscribed)throw new Error("Can't modify unsubscribed object");return await this.services.commandExecutor.mutateResource("post",this.links.self,{friendly_name:e}),this}async unsubscribe(){await this._initializationPromise,this.promiseToFetch&&(await this.promiseToFetch,this.entity.close(),this.promiseToFetch=null,this.subscribed="unsubscribed",this.emit("userUnsubscribed",this))}_resolveInitialization(e,t,n,i){this.configuration=e,this.identity=t,this.entityName=n,this.links={self:`${this.configuration.links.users}/${encodeURIComponent(this.identity)}`},this._resolveInitializationPromise(),i&&this.emit("updated",{user:this,updateReasons:["friendlyName","attributes","reachabilityOnline","reachabilityNotifiable"]})}}n([X(Z),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Promise)],User.prototype,"updateAttributes",null),n([X(["string"]),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],User.prototype,"updateFriendlyName",null);var pe={};
153
+ /*
154
+ @license
155
+ Copyright (c) 2016, Twilio, Inc.
156
+
157
+ Permission to use, copy, modify, and/or distribute this software for any
158
+ purpose with or without fee is hereby granted, provided that the above
159
+ copyright notice and this permission notice appear in all copies.
160
+
161
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
162
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
163
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
164
+ SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
165
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
166
+ OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
167
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
168
+
169
+ */function fe(){}function me(){me.init.call(this)}function ge(e){return void 0===e._maxListeners?me.defaultMaxListeners:e._maxListeners}function ye(e,t,n,i){var r,s,a;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((s=e._events)?(s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),a=s[t]):(s=e._events=new fe,e._eventsCount=0),a){if("function"==typeof a?a=s[t]=i?[n,a]:[a,n]:i?a.unshift(n):a.push(n),!a.warned&&(r=ge(e))&&r>0&&a.length>r){a.warned=!0;var o=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");o.name="MaxListenersExceededWarning",o.emitter=e,o.type=t,o.count=a.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(o)}}else a=s[t]=n,++e._eventsCount;return e}function ve(e,t,n){var i=!1;function r(){e.removeListener(t,r),i||(i=!0,n.apply(e,arguments))}return r.listener=n,r}function be(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function _e(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}Object.defineProperty(pe,"__esModule",{value:!0}),fe.prototype=Object.create(null),me.EventEmitter=me,me.usingDomains=!1,me.prototype.domain=void 0,me.prototype._events=void 0,me.prototype._maxListeners=void 0,me.defaultMaxListeners=10,me.init=function(){this.domain=null,me.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new fe,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},me.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},me.prototype.getMaxListeners=function(){return ge(this)},me.prototype.emit=function(e){var t,n,i,r,s,a,o,c="error"===e;if(a=this._events)c=c&&null==a.error;else if(!c)return!1;if(o=this.domain,c){if(t=arguments[1],!o){if(t instanceof Error)throw t;var u=new Error('Uncaught, unspecified "error" event. ('+t+")");throw u.context=t,u}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=o,t.domainThrown=!1,o.emit("error",t),!1}if(!(n=a[e]))return!1;var l="function"==typeof n;switch(i=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var i=e.length,r=_e(e,i),s=0;s<i;++s)r[s].call(n)}(n,l,this);break;case 2:!function(e,t,n,i){if(t)e.call(n,i);else for(var r=e.length,s=_e(e,r),a=0;a<r;++a)s[a].call(n,i)}(n,l,this,arguments[1]);break;case 3:!function(e,t,n,i,r){if(t)e.call(n,i,r);else for(var s=e.length,a=_e(e,s),o=0;o<s;++o)a[o].call(n,i,r)}(n,l,this,arguments[1],arguments[2]);break;case 4:!function(e,t,n,i,r,s){if(t)e.call(n,i,r,s);else for(var a=e.length,o=_e(e,a),c=0;c<a;++c)o[c].call(n,i,r,s)}(n,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(r=new Array(i-1),s=1;s<i;s++)r[s-1]=arguments[s];!function(e,t,n,i){if(t)e.apply(n,i);else for(var r=e.length,s=_e(e,r),a=0;a<r;++a)s[a].apply(n,i)}(n,l,this,r)}return!0},me.prototype.addListener=function(e,t){return ye(this,e,t,!1)},me.prototype.on=me.prototype.addListener,me.prototype.prependListener=function(e,t){return ye(this,e,t,!0)},me.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,ve(this,e,t)),this},me.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,ve(this,e,t)),this},me.prototype.removeListener=function(e,t){var n,i,r,s,a;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(i=this._events))return this;if(!(n=i[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new fe:(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,s=n.length;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){a=n[s].listener,r=s;break}if(r<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new fe,this;delete i[e]}else!function(e,t){for(var n=t,i=n+1,r=e.length;i<r;n+=1,i+=1)e[n]=e[i];e.pop()}(n,r);i.removeListener&&this.emit("removeListener",e,a||t)}return this},me.prototype.off=function(e,t){return this.removeListener(e,t)},me.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new fe,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new fe:delete n[e]),this;if(0===arguments.length){for(var i,r=Object.keys(n),s=0;s<r.length;++s)"removeListener"!==(i=r[s])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=new fe,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},me.prototype.listeners=function(e){var t,n,i=this._events;return n=i&&(t=i[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[],n},me.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):be.call(e,t)},me.prototype.listenerCount=be,me.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};class we extends me{minDelay;maxDelay;initialDelay;maxAttemptsCount;maxAttemptsTime;randomness;prevDelay;currDelay;timeout=null;inProgress;attemptNum;startTimestamp=-1;constructor(e){super(),this.minDelay=e.min,this.maxDelay=e.max,this.initialDelay=e.initial||0,this.maxAttemptsCount=e.maxAttemptsCount||0,this.maxAttemptsTime=e.maxAttemptsTime||0,this.randomness=e.randomness||0,this.inProgress=!1,this.attemptNum=0,this.prevDelay=0,this.currDelay=0}attempt(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.attemptNum++,this.emit("attempt",this)}nextDelay(e){if("number"==typeof e)return this.prevDelay=0,this.currDelay=e,e;if(0==this.attemptNum)return this.initialDelay;if(1==this.attemptNum)return this.currDelay=this.minDelay,this.currDelay;this.prevDelay=this.currDelay;let t=this.currDelay+this.prevDelay;return this.maxDelay&&t>this.maxDelay&&(this.currDelay=this.maxDelay,t=this.maxDelay),this.currDelay=t,t}randomize(e){const t=e*this.randomness,n=Math.round(Math.random()*t*2-t);return Math.max(0,e+n)}scheduleAttempt(e){if(this.maxAttemptsCount&&this.attemptNum>=this.maxAttemptsCount)return this.cleanup(),void this.emit("failed",new Error("Maximum attempt count limit reached"));let t=this.nextDelay(e);if(t=this.randomize(t),this.maxAttemptsTime&&this.startTimestamp+this.maxAttemptsTime<Date.now()+t)return this.cleanup(),void this.emit("failed",new Error("Maximum attempt time limit reached"));this.timeout=setTimeout((()=>this.attempt()),t)}cleanup(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.inProgress=!1,this.attemptNum=0,this.prevDelay=0,this.currDelay=0}start(){if(this.inProgress)throw new Error("Retrier is already in progress");this.inProgress=!0,this.startTimestamp=Date.now(),this.scheduleAttempt(this.initialDelay)}cancel(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null,this.inProgress=!1,this.emit("cancelled"))}succeeded(e){this.emit("succeeded",e)}failed(e,t){if(this.timeout)throw new Error("Retrier attempt is already in progress");this.scheduleAttempt(t)}}function xe(e){return null!=e}class Se extends me{maxDelay;initialDelay;factor;randomisationFactor;backoffDelay=0;nextBackoffDelay=0;backoffNumber=0;timeoutID=null;maxNumberOfRetry=-1;constructor(e){super(),e=e||{};const{initialDelay:t,maxDelay:n,randomisationFactor:i,factor:r}=e;if(xe(t)&&t<1)throw new Error("The initial timeout must be equal to or greater than 1.");if(xe(n)&&n<=1)throw new Error("The maximal timeout must be greater than 1.");if(xe(i)&&(i<0||i>1))throw new Error("The randomisation factor must be between 0 and 1.");if(xe(r)&&r<=1)throw new Error("Exponential factor should be greater than 1.");if(this.initialDelay=t||100,this.maxDelay=n||1e4,this.maxDelay<=this.initialDelay)throw new Error("The maximal backoff delay must be greater than the initial backoff delay.");this.randomisationFactor=i||0,this.factor=r||2,this.reset()}static exponential(e){return new Se(e)}backoff(e){null==this.timeoutID&&(this.backoffNumber===this.maxNumberOfRetry?(this.emit("fail",e),this.reset()):(this.backoffDelay=this.next(),this.timeoutID=setTimeout(this.onBackoff.bind(this),this.backoffDelay),this.emit("backoff",this.backoffNumber,this.backoffDelay,e)))}reset(){this.backoffDelay=0,this.nextBackoffDelay=this.initialDelay,this.backoffNumber=0,this.timeoutID&&clearTimeout(this.timeoutID),this.timeoutID=null}failAfter(e){if(e<=0)throw new Error(`Expected a maximum number of retry greater than 0 but got ${e}`);this.maxNumberOfRetry=e}next(){this.backoffDelay=Math.min(this.nextBackoffDelay,this.maxDelay),this.nextBackoffDelay=this.backoffDelay*this.factor;const e=1+Math.random()*this.randomisationFactor;return Math.min(this.maxDelay,Math.round(this.backoffDelay*e))}onBackoff(){this.timeoutID=null,this.emit("ready",this.backoffNumber,this.backoffDelay),this.backoffNumber++}}var ke=pe.AsyncRetrier=class extends me{retrier;resolve=()=>{};reject=()=>{};constructor(e){super(),this.retrier=new we(e)}run(e){return this.retrier.on("attempt",(()=>{e().then((e=>this.retrier.succeeded(e))).catch((e=>this.retrier.failed(e)))})),this.retrier.on("succeeded",(e=>this.resolve(e))),this.retrier.on("cancelled",(()=>this.reject(new Error("Cancelled")))),this.retrier.on("failed",(e=>this.reject(e))),new Promise(((e,t)=>{this.resolve=e,this.reject=t,this.retrier.start()}))}cancel(){this.retrier.cancel()}};pe.Backoff=Se;var Ee=pe.Retrier=we,Te={},Ie={};let Ce=e=>crypto.getRandomValues(new Uint8Array(e)),Re=(e,t,n)=>{let i=(2<<Math.log(e.length-1)/Math.LN2)-1,r=-~(1.6*i*t/e.length);return function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t,a="";for(;;){let t=n(r),o=r;for(;o--;)if(a+=e[t[o]&i]||"",a.length===s)return a}}},Pe=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:21;return crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+=(t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_"),"")};var Me=Object.freeze({__proto__:null,nanoid:Pe,customAlphabet:function(e){return Re(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:21,Ce)},customRandom:Re,urlAlphabet:"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",random:Ce}),Oe=s(Me);
170
+ /*
171
+ @license
172
+ Copyright (c) 2022 Twilio Inc.
173
+
174
+ 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:
175
+
176
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
177
+
178
+ 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.
179
+
180
+
181
+ */
182
+ Object.defineProperty(Ie,"__esModule",{value:!0});var Ae=u.exports,je=Oe;function $e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Ne=$e(Ae);const Ue=e=>{const t=Ne.default.getLevel();Ne.default.setLevel("warn"),Ne.default.warn(e),Ne.default.setLevel(t)};class Le extends Error{constructor(){super("Promise was cancelled")}}class Fe extends Promise{static#i=new Map;#r;#s;constructor(e){const t=je.nanoid();let n;super(((i,r)=>(n=r,e((e=>{Fe.#i.delete(t),i(e)}),(e=>{Fe.#i.delete(t),r(e)}),(e=>{Fe.#i.set(t,e)}))))),this.#r=t,this.#s=n}cancel(){const e=Fe.#i.get(this.#r);return e?.(),this.#s&&(this.catch((()=>{})),this.#s(new Le)),this}static withAsyncExecutor(e){return new Fe((async(t,n,i)=>{try{t(await e(i))}catch(e){n(e)}}))}}const qe={unknown:"Unknown error",cancelled:"Job was cancelled",timeout:"Timeout occurred",mediaUploadError:"Media upload error",mediaFetchError:"Media fetch error",tooManyAttachments:"Too many attachments",unsupportedEmailBodyContentType:"Unsupported email body content type",unsupportedEmailHistoryContentType:"Unsupported email history content type",transportDisconnected:"Transport has been disconnected",networkBecameUnreachable:"Network became unreachable",unauthorized:"Unauthorized",tokenExpired:"Token expired",tokenUpdatedLocally:"Transport disconnected, token updated locally and will be used at reconnect",tooManyRequests:"Request failed with 429 reply",hostnameUnverified:"Failed on ssl handshake: CERTIFICATE_VERIFY_FAILED",sslHandshakeError:"Failed on ssl handshake: UNAUTHORIZED",closeMessageReceived:"Twilsock received a close message from the server",cannotParse:"Error while parsing an incoming message"};class De extends Error{errorInfo;constructor(e){super(`${e}`),this.errorInfo=e,Object.freeze(e)}}var Be=Ie.CancellablePromise=Fe,ze=Ie.CancellationError=Le;Ie.Deferred=class{promise;#a;#o;#c=!1;constructor(){this.promise=new Promise(((e,t)=>{this.#a=t=>{this.#c=!0,e(t)},this.#o=e=>{this.#c=!0,t(e)}}))}get resolve(){return this.#a}get reject(){return this.#o}get isDone(){return this.#c}},Ie.ErrorInfo=class{reason;message;status;code;description;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:qe[e];this.reason=e,this.message=t,this.status=n,this.code=i,this.description=r}toString(){return`${this.description} ${this.status}:${this.code} ${this.message}`}},Ie.Logger=class{#u;#l;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this.#u=t,this.#l=Ae.getLogger(e)}setLevel(e){this.#l.setLevel(e)}trace(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.trace.apply(null,this.#d("T",t))}debug(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.debug.apply(null,this.#d("D",t))}info(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.info.apply(null,this.#d("I",t))}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.warn.apply(null,this.#d("W",t))}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.error.apply(null,this.#d("E",t))}#d(e,t){return[`${(new Date).toISOString()} ${this.#u} ${e}:`,...t]}};var We=Ie.TwilioError=De;Ie.deprecated=(e,t,n)=>(i,r,s)=>{if("function"!=typeof s.value&&void 0===s?.get)throw new Error("The deprecated decorator can only be applied to methods or getters");if("function"==typeof s.value){const i=s.value;return void(s.value=function(){Ue(`The method ${e} is deprecated${t?", use "+t+" instead":""}${n?", "+n:"."}`);for(var r=arguments.length,s=new Array(r),a=0;a<r;a++)s[a]=arguments[a];return i.apply(this,s)})}const a=s.get;s.get=function(){return Ue(`The getter ${e} is deprecated${t?", use "+t+" instead":""}${n?", "+n:"."}`),a?.apply(this)}},Ie.deprecationWarning=Ue;var Ke={exports:{}};
183
+ /*!
184
+ * Platform.js v1.3.6
185
+ * Copyright 2014-2020 Benjamin Tan
186
+ * Copyright 2011-2013 John-David Dalton
187
+ * Available under MIT license
188
+ */!function(e,t){(function(){var n={function:!0,object:!0}[typeof window]&&window||this,i=t,s=e&&!e.nodeType&&e,a=i&&s&&"object"==typeof r&&r;!a||a.global!==a&&a.window!==a&&a.self!==a||(n=a);var o=Math.pow(2,53)-1,c=/\bOpera/,u=Object.prototype,l=u.hasOwnProperty,d=u.toString;function h(e){return(e=String(e)).charAt(0).toUpperCase()+e.slice(1)}function p(e){return e=v(e),/^(?:webOS|i(?:OS|P))/.test(e)?e:h(e)}function f(e,t){for(var n in e)l.call(e,n)&&t(e[n],n,e)}function m(e){return null==e?h(e):d.call(e).slice(8,-1)}function g(e){return String(e).replace(/([ -])(?!$)/g,"$1?")}function y(e,t){var n=null;return function(e,t){var n=-1,i=e?e.length:0;if("number"==typeof i&&i>-1&&i<=o)for(;++n<i;)t(e[n],n,e);else f(e,t)}(e,(function(i,r){n=t(n,i,r,e)})),n}function v(e){return String(e).replace(/^ +| +$/g,"")}var b=function e(t){var i=n,r=t&&"object"==typeof t&&"String"!=m(t);r&&(i=t,t=null);var s=i.navigator||{},a=s.userAgent||"";t||(t=a);var o,u,l=r?!!s.likeChrome:/\bChrome\b/.test(t)&&!/internal|\n/i.test(d.toString()),h="Object",b=r?h:"ScriptBridgingProxyObject",_=r?h:"Environment",w=r&&i.java?"JavaPackage":m(i.java),x=r?h:"RuntimeObject",S=/\bJava/.test(w)&&i.java,k=S&&m(i.environment)==_,E=S?"a":"α",T=S?"b":"β",I=i.document||{},C=i.operamini||i.opera,R=c.test(R=r&&C?C["[[Class]]"]:m(C))?R:C=null,P=t,M=[],O=null,A=t==a,j=A&&C&&"function"==typeof C.version&&C.version(),$=y([{label:"EdgeHTML",pattern:"Edge"},"Trident",{label:"WebKit",pattern:"AppleWebKit"},"iCab","Presto","NetFront","Tasman","KHTML","Gecko"],(function(e,n){return e||RegExp("\\b"+(n.pattern||g(n))+"\\b","i").exec(t)&&(n.label||n)})),N=function(e){return y(e,(function(e,n){return e||RegExp("\\b"+(n.pattern||g(n))+"\\b","i").exec(t)&&(n.label||n)}))}(["Adobe AIR","Arora","Avant Browser","Breach","Camino","Electron","Epiphany","Fennec","Flock","Galeon","GreenBrowser","iCab","Iceweasel","K-Meleon","Konqueror","Lunascape","Maxthon",{label:"Microsoft Edge",pattern:"(?:Edge|Edg|EdgA|EdgiOS)"},"Midori","Nook Browser","PaleMoon","PhantomJS","Raven","Rekonq","RockMelt",{label:"Samsung Internet",pattern:"SamsungBrowser"},"SeaMonkey",{label:"Silk",pattern:"(?:Cloud9|Silk-Accelerated)"},"Sleipnir","SlimBrowser",{label:"SRWare Iron",pattern:"Iron"},"Sunrise","Swiftfox","Vivaldi","Waterfox","WebPositive",{label:"Yandex Browser",pattern:"YaBrowser"},{label:"UC Browser",pattern:"UCBrowser"},"Opera Mini",{label:"Opera Mini",pattern:"OPiOS"},"Opera",{label:"Opera",pattern:"OPR"},"Chromium","Chrome",{label:"Chrome",pattern:"(?:HeadlessChrome)"},{label:"Chrome Mobile",pattern:"(?:CriOS|CrMo)"},{label:"Firefox",pattern:"(?:Firefox|Minefield)"},{label:"Firefox for iOS",pattern:"FxiOS"},{label:"IE",pattern:"IEMobile"},{label:"IE",pattern:"MSIE"},"Safari"]),U=q([{label:"BlackBerry",pattern:"BB10"},"BlackBerry",{label:"Galaxy S",pattern:"GT-I9000"},{label:"Galaxy S2",pattern:"GT-I9100"},{label:"Galaxy S3",pattern:"GT-I9300"},{label:"Galaxy S4",pattern:"GT-I9500"},{label:"Galaxy S5",pattern:"SM-G900"},{label:"Galaxy S6",pattern:"SM-G920"},{label:"Galaxy S6 Edge",pattern:"SM-G925"},{label:"Galaxy S7",pattern:"SM-G930"},{label:"Galaxy S7 Edge",pattern:"SM-G935"},"Google TV","Lumia","iPad","iPod","iPhone","Kindle",{label:"Kindle Fire",pattern:"(?:Cloud9|Silk-Accelerated)"},"Nexus","Nook","PlayBook","PlayStation Vita","PlayStation","TouchPad","Transformer",{label:"Wii U",pattern:"WiiU"},"Wii","Xbox One",{label:"Xbox 360",pattern:"Xbox"},"Xoom"]),L=function(e){return y(e,(function(e,n,i){return e||(n[U]||n[/^[a-z]+(?: +[a-z]+\b)*/i.exec(U)]||RegExp("\\b"+g(i)+"(?:\\b|\\w*\\d)","i").exec(t))&&i}))}({Apple:{iPad:1,iPhone:1,iPod:1},Alcatel:{},Archos:{},Amazon:{Kindle:1,"Kindle Fire":1},Asus:{Transformer:1},"Barnes & Noble":{Nook:1},BlackBerry:{PlayBook:1},Google:{"Google TV":1,Nexus:1},HP:{TouchPad:1},HTC:{},Huawei:{},Lenovo:{},LG:{},Microsoft:{Xbox:1,"Xbox One":1},Motorola:{Xoom:1},Nintendo:{"Wii U":1,Wii:1},Nokia:{Lumia:1},Oppo:{},Samsung:{"Galaxy S":1,"Galaxy S2":1,"Galaxy S3":1,"Galaxy S4":1},Sony:{PlayStation:1,"PlayStation Vita":1},Xiaomi:{Mi:1,Redmi:1}}),F=function(e){return y(e,(function(e,n){var i=n.pattern||g(n);return!e&&(e=RegExp("\\b"+i+"(?:/[\\d.]+|[ \\w.]*)","i").exec(t))&&(e=function(e,t,n){var i={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"Server 2008 R2 / 7","6.0":"Server 2008 / Vista",5.2:"Server 2003 / XP 64-bit",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"};return t&&n&&/^Win/i.test(e)&&!/^Windows Phone /i.test(e)&&(i=i[/[\d.]+$/.exec(e)])&&(e="Windows "+i),e=String(e),t&&n&&(e=e.replace(RegExp(t,"i"),n)),p(e.replace(/ ce$/i," CE").replace(/\bhpw/i,"web").replace(/\bMacintosh\b/,"Mac OS").replace(/_PowerPC\b/i," OS").replace(/\b(OS X) [^ \d]+/i,"$1").replace(/\bMac (OS X)\b/,"$1").replace(/\/(\d)/," $1").replace(/_/g,".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i,"").replace(/\bx86\.64\b/gi,"x86_64").replace(/\b(Windows Phone) OS\b/,"$1").replace(/\b(Chrome OS \w+) [\d.]+\b/,"$1").split(" on ")[0])}(e,i,n.label||n)),e}))}(["Windows Phone","KaiOS","Android","CentOS",{label:"Chrome OS",pattern:"CrOS"},"Debian",{label:"DragonFly BSD",pattern:"DragonFly"},"Fedora","FreeBSD","Gentoo","Haiku","Kubuntu","Linux Mint","OpenBSD","Red Hat","SuSE","Ubuntu","Xubuntu","Cygwin","Symbian OS","hpwOS","webOS ","webOS","Tablet OS","Tizen","Linux","Mac OS X","Macintosh","Mac","Windows 98;","Windows "]);function q(e){return y(e,(function(e,n){var i=n.pattern||g(n);return!e&&(e=RegExp("\\b"+i+" *\\d+[.\\w_]*","i").exec(t)||RegExp("\\b"+i+" *\\w+-[\\w]*","i").exec(t)||RegExp("\\b"+i+"(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)","i").exec(t))&&((e=String(n.label&&!RegExp(i,"i").test(n.label)?n.label:e).split("/"))[1]&&!/[\d.]+/.test(e[0])&&(e[0]+=" "+e[1]),n=n.label||n,e=p(e[0].replace(RegExp(i,"i"),n).replace(RegExp("; *(?:"+n+"[_-])?","i")," ").replace(RegExp("("+n+")[-_.]?(\\w)","i"),"$1 $2"))),e}))}function D(e){return y(e,(function(e,n){return e||(RegExp(n+"(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)","i").exec(t)||0)[1]||null}))}if($&&($=[$]),/\bAndroid\b/.test(F)&&!U&&(o=/\bAndroid[^;]*;(.*?)(?:Build|\) AppleWebKit)\b/i.exec(t))&&(U=v(o[1]).replace(/^[a-z]{2}-[a-z]{2};\s*/i,"")||null),L&&!U?U=q([L]):L&&U&&(U=U.replace(RegExp("^("+g(L)+")[-_.\\s]","i"),L+" ").replace(RegExp("^("+g(L)+")[-_.]?(\\w)","i"),L+" $2")),(o=/\bGoogle TV\b/.exec(U))&&(U=o[0]),/\bSimulator\b/i.test(t)&&(U=(U?U+" ":"")+"Simulator"),"Opera Mini"==N&&/\bOPiOS\b/.test(t)&&M.push("running in Turbo/Uncompressed mode"),"IE"==N&&/\blike iPhone OS\b/.test(t)?(L=(o=e(t.replace(/like iPhone OS/,""))).manufacturer,U=o.product):/^iP/.test(U)?(N||(N="Safari"),F="iOS"+((o=/ OS ([\d_]+)/i.exec(t))?" "+o[1].replace(/_/g,"."):"")):"Konqueror"==N&&/^Linux\b/i.test(F)?F="Kubuntu":L&&"Google"!=L&&(/Chrome/.test(N)&&!/\bMobile Safari\b/i.test(t)||/\bVita\b/.test(U))||/\bAndroid\b/.test(F)&&/^Chrome/.test(N)&&/\bVersion\//i.test(t)?(N="Android Browser",F=/\bAndroid\b/.test(F)?F:"Android"):"Silk"==N?(/\bMobi/i.test(t)||(F="Android",M.unshift("desktop mode")),/Accelerated *= *true/i.test(t)&&M.unshift("accelerated")):"UC Browser"==N&&/\bUCWEB\b/.test(t)?M.push("speed mode"):"PaleMoon"==N&&(o=/\bFirefox\/([\d.]+)\b/.exec(t))?M.push("identifying as Firefox "+o[1]):"Firefox"==N&&(o=/\b(Mobile|Tablet|TV)\b/i.exec(t))?(F||(F="Firefox OS"),U||(U=o[1])):!N||(o=!/\bMinefield\b/i.test(t)&&/\b(?:Firefox|Safari)\b/.exec(N))?(N&&!U&&/[\/,]|^[^(]+?\)/.test(t.slice(t.indexOf(o+"/")+8))&&(N=null),(o=U||L||F)&&(U||L||/\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(F))&&(N=/[a-z]+(?: Hat)?/i.exec(/\bAndroid\b/.test(F)?F:o)+" Browser")):"Electron"==N&&(o=(/\bChrome\/([\d.]+)\b/.exec(t)||0)[1])&&M.push("Chromium "+o),j||(j=D(["(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$)|UCBrowser|YaBrowser)","Version",g(N),"(?:Firefox|Minefield|NetFront)"])),(o=("iCab"==$&&parseFloat(j)>3?"WebKit":/\bOpera\b/.test(N)&&(/\bOPR\b/.test(t)?"Blink":"Presto"))||/\b(?:Midori|Nook|Safari)\b/i.test(t)&&!/^(?:Trident|EdgeHTML)$/.test($)&&"WebKit"||!$&&/\bMSIE\b/i.test(t)&&("Mac OS"==F?"Tasman":"Trident")||"WebKit"==$&&/\bPlayStation\b(?! Vita\b)/i.test(N)&&"NetFront")&&($=[o]),"IE"==N&&(o=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(t)||0)[1])?(N+=" Mobile",F="Windows Phone "+(/\+$/.test(o)?o:o+".x"),M.unshift("desktop mode")):/\bWPDesktop\b/i.test(t)?(N="IE Mobile",F="Windows Phone 8.x",M.unshift("desktop mode"),j||(j=(/\brv:([\d.]+)/.exec(t)||0)[1])):"IE"!=N&&"Trident"==$&&(o=/\brv:([\d.]+)/.exec(t))&&(N&&M.push("identifying as "+N+(j?" "+j:"")),N="IE",j=o[1]),A){if(function(e,t){var n=null!=e?typeof e[t]:"number";return!(/^(?:boolean|number|string|undefined)$/.test(n)||"object"==n&&!e[t])}(i,"global"))if(S&&(P=(o=S.lang.System).getProperty("os.arch"),F=F||o.getProperty("os.name")+" "+o.getProperty("os.version")),k){try{j=i.require("ringo/engine").version.join("."),N="RingoJS"}catch(e){(o=i.system)&&o.global.system==i.system&&(N="Narwhal",F||(F=o[0].os||null))}N||(N="Rhino")}else"object"==typeof i.process&&!i.process.browser&&(o=i.process)&&("object"==typeof o.versions&&("string"==typeof o.versions.electron?(M.push("Node "+o.versions.node),N="Electron",j=o.versions.electron):"string"==typeof o.versions.nw&&(M.push("Chromium "+j,"Node "+o.versions.node),N="NW.js",j=o.versions.nw)),N||(N="Node.js",P=o.arch,F=o.platform,j=(j=/[\d.]+/.exec(o.version))?j[0]:null));else m(o=i.runtime)==b?(N="Adobe AIR",F=o.flash.system.Capabilities.os):m(o=i.phantom)==x?(N="PhantomJS",j=(o=o.version||null)&&o.major+"."+o.minor+"."+o.patch):"number"==typeof I.documentMode&&(o=/\bTrident\/(\d+)/i.exec(t))?(j=[j,I.documentMode],(o=+o[1]+4)!=j[1]&&(M.push("IE "+j[1]+" mode"),$&&($[1]=""),j[1]=o),j="IE"==N?String(j[1].toFixed(1)):j[0]):"number"==typeof I.documentMode&&/^(?:Chrome|Firefox)\b/.test(N)&&(M.push("masking as "+N+" "+j),N="IE",j="11.0",$=["Trident"],F="Windows");F=F&&p(F)}if(j&&(o=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(j)||/(?:alpha|beta)(?: ?\d)?/i.exec(t+";"+(A&&s.appMinorVersion))||/\bMinefield\b/i.test(t)&&"a")&&(O=/b/i.test(o)?"beta":"alpha",j=j.replace(RegExp(o+"\\+?$"),"")+("beta"==O?T:E)+(/\d+\+?/.exec(o)||"")),"Fennec"==N||"Firefox"==N&&/\b(?:Android|Firefox OS|KaiOS)\b/.test(F))N="Firefox Mobile";else if("Maxthon"==N&&j)j=j.replace(/\.[\d.]+/,".x");else if(/\bXbox\b/i.test(U))"Xbox 360"==U&&(F=null),"Xbox 360"==U&&/\bIEMobile\b/.test(t)&&M.unshift("mobile mode");else if(!/^(?:Chrome|IE|Opera)$/.test(N)&&(!N||U||/Browser|Mobi/.test(N))||"Windows CE"!=F&&!/Mobi/i.test(t))if("IE"==N&&A)try{null===i.external&&M.unshift("platform preview")}catch(e){M.unshift("embedded")}else(/\bBlackBerry\b/.test(U)||/\bBB10\b/.test(t))&&(o=(RegExp(U.replace(/ +/g," *")+"/([.\\d]+)","i").exec(t)||0)[1]||j)?(F=((o=[o,/BB10/.test(t)])[1]?(U=null,L="BlackBerry"):"Device Software")+" "+o[0],j=null):this!=f&&"Wii"!=U&&(A&&C||/Opera/.test(N)&&/\b(?:MSIE|Firefox)\b/i.test(t)||"Firefox"==N&&/\bOS X (?:\d+\.){2,}/.test(F)||"IE"==N&&(F&&!/^Win/.test(F)&&j>5.5||/\bWindows XP\b/.test(F)&&j>8||8==j&&!/\bTrident\b/.test(t)))&&!c.test(o=e.call(f,t.replace(c,"")+";"))&&o.name&&(o="ing as "+o.name+((o=o.version)?" "+o:""),c.test(N)?(/\bIE\b/.test(o)&&"Mac OS"==F&&(F=null),o="identify"+o):(o="mask"+o,N=R?p(R.replace(/([a-z])([A-Z])/g,"$1 $2")):"Opera",/\bIE\b/.test(o)&&(F=null),A||(j=null)),$=["Presto"],M.push(o));else N+=" Mobile";(o=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(t)||0)[1])&&(o=[parseFloat(o.replace(/\.(\d)$/,".0$1")),o],"Safari"==N&&"+"==o[1].slice(-1)?(N="WebKit Nightly",O="alpha",j=o[1].slice(0,-1)):j!=o[1]&&j!=(o[2]=(/\bSafari\/([\d.]+\+?)/i.exec(t)||0)[1])||(j=null),o[1]=(/\b(?:Headless)?Chrome\/([\d.]+)/i.exec(t)||0)[1],537.36==o[0]&&537.36==o[2]&&parseFloat(o[1])>=28&&"WebKit"==$&&($=["Blink"]),A&&(l||o[1])?($&&($[1]="like Chrome"),o=o[1]||((o=o[0])<530?1:o<532?2:o<532.05?3:o<533?4:o<534.03?5:o<534.07?6:o<534.1?7:o<534.13?8:o<534.16?9:o<534.24?10:o<534.3?11:o<535.01?12:o<535.02?"13+":o<535.07?15:o<535.11?16:o<535.19?17:o<536.05?18:o<536.1?19:o<537.01?20:o<537.11?"21+":o<537.13?23:o<537.18?24:o<537.24?25:o<537.36?26:"Blink"!=$?"27":"28")):($&&($[1]="like Safari"),o=(o=o[0])<400?1:o<500?2:o<526?3:o<533?4:o<534?"4+":o<535?5:o<537?6:o<538?7:o<601?8:o<602?9:o<604?10:o<606?11:o<608?12:"12"),$&&($[1]+=" "+(o+="number"==typeof o?".x":/[.+]/.test(o)?"":"+")),"Safari"==N&&(!j||parseInt(j)>45)?j=o:"Chrome"==N&&/\bHeadlessChrome/i.test(t)&&M.unshift("headless")),"Opera"==N&&(o=/\bzbov|zvav$/.exec(F))?(N+=" ",M.unshift("desktop mode"),"zvav"==o?(N+="Mini",j=null):N+="Mobile",F=F.replace(RegExp(" *"+o+"$"),"")):"Safari"==N&&/\bChrome\b/.exec($&&$[1])?(M.unshift("desktop mode"),N="Chrome Mobile",j=null,/\bOS X\b/.test(F)?(L="Apple",F="iOS 4.3+"):F=null):/\bSRWare Iron\b/.test(N)&&!j&&(j=D("Chrome")),j&&0==j.indexOf(o=/[\d.]+$/.exec(F))&&t.indexOf("/"+o+"-")>-1&&(F=v(F.replace(o,""))),F&&-1!=F.indexOf(N)&&!RegExp(N+" OS").test(F)&&(F=F.replace(RegExp(" *"+g(N)+" *"),"")),$&&!/\b(?:Avant|Nook)\b/.test(N)&&(/Browser|Lunascape|Maxthon/.test(N)||"Safari"!=N&&/^iOS/.test(F)&&/\bSafari\b/.test($[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(N)&&$[1])&&(o=$[$.length-1])&&M.push(o),M.length&&(M=["("+M.join("; ")+")"]),L&&U&&U.indexOf(L)<0&&M.push("on "+L),U&&M.push((/^on /.test(M[M.length-1])?"":"on ")+U),F&&(o=/ ([\d.+]+)$/.exec(F),u=o&&"/"==F.charAt(F.length-o[0].length-1),F={architecture:32,family:o&&!u?F.replace(o[0],""):F,version:o?o[1]:null,toString:function(){var e=this.version;return this.family+(e&&!u?" "+e:"")+(64==this.architecture?" 64-bit":"")}}),(o=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(P))&&!/\bi686\b/i.test(P)?(F&&(F.architecture=64,F.family=F.family.replace(RegExp(" *"+o),"")),N&&(/\bWOW64\b/i.test(t)||A&&/\w(?:86|32)$/.test(s.cpuClass||s.platform)&&!/\bWin64; x64\b/i.test(t))&&M.unshift("32-bit")):F&&/^OS X/.test(F.family)&&"Chrome"==N&&parseFloat(j)>=39&&(F.architecture=64),t||(t=null);var B={};return B.description=t,B.layout=$&&$[0],B.manufacturer=L,B.name=N,B.prerelease=O,B.product=U,B.ua=t,B.version=N&&j,B.os=F||{architecture:null,family:null,version:null,toString:function(){return"null"}},B.parse=e,B.toString=function(){return this.description||""},B.version&&M.unshift(j),B.name&&M.unshift(N),F&&N&&(F!=String(F).split(" ")[0]||F!=N.split(" ")[0]&&!U)&&M.push(U?"("+F+")":"on "+F),M.length&&(B.description=M.join(" ")),B}();i&&s?f(b,(function(e,t){i[t]=e})):n.platform=b}).call(r)}(Ke,Ke.exports);var He={},Ve=Symbol("@ts-pattern/matcher"),Je="@ts-pattern/anonymous-select-key",Ge=function(e){return Boolean(e&&"object"==typeof e)},Qe=function(e){return e&&!!e[Ve]},Xe=function e(t,n,i){if(Ge(t)){if(Qe(t)){var r=t[Ve]().match(n),s=r.matched,a=r.selections;return s&&a&&Object.keys(a).forEach((function(e){return i(e,a[e])})),s}if(!Ge(n))return!1;if(Array.isArray(t))return!!Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r],i)}));if(t instanceof Map)return n instanceof Map&&Array.from(t.keys()).every((function(r){return e(t.get(r),n.get(r),i)}));if(t instanceof Set){if(!(n instanceof Set))return!1;if(0===t.size)return 0===n.size;if(1===t.size){var o=Array.from(t.values())[0];return Qe(o)?Array.from(n.values()).every((function(t){return e(o,t,i)})):n.has(o)}return Array.from(t.values()).every((function(e){return n.has(e)}))}return Object.keys(t).every((function(r){var s,a=t[r];return(r in n||Qe(s=a)&&"optional"===s[Ve]().matcherType)&&e(a,n[r],i)}))}return Object.is(n,t)},Ze=function e(t){var n,i,r;return Ge(t)?Qe(t)?null!=(n=null==(i=(r=t[Ve]()).getSelectionKeys)?void 0:i.call(r))?n:[]:Array.isArray(t)?Ye(t,e):Ye(Object.values(t),e):[]},Ye=function(e,t){return e.reduce((function(e,n){return e.concat(t(n))}),[])};function et(e){var t;return(t={})[Ve]=function(){return{match:function(t){var n={},i=function(e,t){n[e]=t};return void 0===t?(Ze(e).forEach((function(e){return i(e,void 0)})),{matched:!0,selections:n}):{matched:Xe(e,t,i),selections:n}},getSelectionKeys:function(){return Ze(e)},matcherType:"optional"}},t}function tt(e){var t;return(t={})[Ve]=function(){return{match:function(t){if(!Array.isArray(t))return{matched:!1};var n={};if(0===t.length)return Ze(e).forEach((function(e){n[e]=[]})),{matched:!0,selections:n};var i=function(e,t){n[e]=(n[e]||[]).concat([t])};return{matched:t.every((function(t){return Xe(e,t,i)})),selections:n}},getSelectionKeys:function(){return Ze(e)}}},t}function nt(){var e,t=[].slice.call(arguments);return(e={})[Ve]=function(){return{match:function(e){var n={},i=function(e,t){n[e]=t};return{matched:t.every((function(t){return Xe(t,e,i)})),selections:n}},getSelectionKeys:function(){return Ye(t,Ze)},matcherType:"and"}},e}function it(){var e,t=[].slice.call(arguments);return(e={})[Ve]=function(){return{match:function(e){var n={},i=function(e,t){n[e]=t};return Ye(t,Ze).forEach((function(e){return i(e,void 0)})),{matched:t.some((function(t){return Xe(t,e,i)})),selections:n}},getSelectionKeys:function(){return Ye(t,Ze)},matcherType:"or"}},e}function rt(e){var t;return(t={})[Ve]=function(){return{match:function(t){return{matched:!Xe(e,t,(function(){}))}},getSelectionKeys:function(){return[]},matcherType:"not"}},t}function st(e){var t;return(t={})[Ve]=function(){return{match:function(t){return{matched:Boolean(e(t))}}}},t}function at(){var e,t=[].slice.call(arguments),n="string"==typeof t[0]?t[0]:void 0,i=2===t.length?t[1]:"string"==typeof t[0]?void 0:t[0];return(e={})[Ve]=function(){return{match:function(e){var t,r=((t={})[null!=n?n:Je]=e,t);return{matched:void 0===i||Xe(i,e,(function(e,t){r[e]=t})),selections:r}},getSelectionKeys:function(){return[null!=n?n:Je].concat(void 0===i?[]:Ze(i))}}},e}var ot=st((function(e){return!0})),ct=ot,ut=st((function(e){return"string"==typeof e})),lt=st((function(e){return"number"==typeof e})),dt=st((function(e){return"boolean"==typeof e})),ht=st((function(e){return"bigint"==typeof e})),pt=st((function(e){return"symbol"==typeof e})),ft=st((function(e){return null==e})),mt={__proto__:null,optional:et,array:tt,intersection:nt,union:it,not:rt,when:st,select:at,any:ot,_:ct,string:ut,number:lt,boolean:dt,bigint:ht,symbol:pt,nullish:ft,instanceOf:function(e){return st(function(e){return function(t){return t instanceof e}}(e))},typed:function(){return{array:tt,optional:et,intersection:nt,union:it,not:rt,select:at,when:st}}},gt=function(){function e(e,t){this.value=void 0,this.cases=void 0,this.value=e,this.cases=t}var t=e.prototype;return t.with=function(){var t=[].slice.call(arguments),n=t[t.length-1],i=[t[0]],r=[];return 3===t.length&&"function"==typeof t[1]?(i.push(t[0]),r.push(t[1])):t.length>2&&i.push.apply(i,t.slice(1,t.length-1)),new e(this.value,this.cases.concat([{match:function(e){var t={},n=Boolean(i.some((function(n){return Xe(n,e,(function(e,n){t[e]=n}))}))&&r.every((function(t){return t(e)})));return{matched:n,value:n&&Object.keys(t).length?Je in t?t[Je]:t:e}},handler:n}]))},t.when=function(t,n){return new e(this.value,this.cases.concat([{match:function(e){return{matched:Boolean(t(e)),value:e}},handler:n}]))},t.otherwise=function(t){return new e(this.value,this.cases.concat([{match:function(e){return{matched:!0,value:e}},handler:t}])).run()},t.exhaustive=function(){return this.run()},t.run=function(){for(var e=this.value,t=void 0,n=0;n<this.cases.length;n++){var i=this.cases[n],r=i.match(this.value);if(r.matched){e=r.value,t=i.handler;break}}if(!t){var s;try{s=JSON.stringify(this.value)}catch(e){s=this.value}throw new Error("Pattern matching error: no pattern matches value "+s)}return t(e,this.value)},e}();He.P=mt,He.Pattern=mt,He.isMatching=function(){var e=[].slice.call(arguments);if(1===e.length){var t=e[0];return function(e){return Xe(t,e,(function(){}))}}if(2===e.length){var n=e,i=n[0],r=n[1];return Xe(i,r,(function(){}))}throw new Error("isMatching wasn't given the right number of arguments: expected 1 or 2, received "+e.length+".")},He.match=function(e){return new gt(e,[])};var yt={};const vt="[a-fA-F\\d:]",bt=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${vt})|(?<=${vt})(?=\\s|$))`:"",_t="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",wt="[a-fA-F\\d]{1,4}",xt=`\n(?:\n(?:${wt}:){7}(?:${wt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${wt}:){6}(?:${_t}|:${wt}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${wt}:){5}(?::${_t}|(?::${wt}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${wt}:){4}(?:(?::${wt}){0,1}:${_t}|(?::${wt}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${wt}:){3}(?:(?::${wt}){0,2}:${_t}|(?::${wt}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${wt}:){2}(?:(?::${wt}){0,3}:${_t}|(?::${wt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${wt}:){1}(?:(?::${wt}){0,4}:${_t}|(?::${wt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${wt}){0,5}:${_t}|(?::${wt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),St=new RegExp(`(?:^${_t}$)|(?:^${xt}$)`),kt=new RegExp(`^${_t}$`),Et=new RegExp(`^${xt}$`),Tt=e=>e&&e.exact?St:new RegExp(`(?:${bt(e)}${_t}${bt(e)})|(?:${bt(e)}${xt}${bt(e)})`,"g");Tt.v4=e=>e&&e.exact?kt:new RegExp(`${bt(e)}${_t}${bt(e)}`,"g"),Tt.v6=e=>e&&e.exact?Et:new RegExp(`${bt(e)}${xt}${bt(e)}`,"g");const It=Tt,Ct=e=>It({exact:!0}).test(e);Ct.v4=e=>It.v4({exact:!0}).test(e),Ct.v6=e=>It.v6({exact:!0}).test(e),Ct.version=e=>Ct(e)?Ct.v4(e)?4:6:void 0;const Rt=Ct;class Pt extends Error{constructor(){super("Request was cancelled"),this.name="CancelError"}get isCanceled(){return!0}}const Mt={timeout:5e3},Ot={v4:["https://ipv4.icanhazip.com/","https://api.ipify.org/"],v6:["https://ipv6.icanhazip.com/","https://api6.ipify.org/"]},At=(e,t,n)=>{const i=new XMLHttpRequest;let r;const s=new Promise(((s,a)=>{r=a,i.addEventListener("error",a,{once:!0}),i.addEventListener("timeout",a,{once:!0}),i.addEventListener("load",(()=>{const e=i.responseText.trim();e&&Rt[n](e)?s(e):a()}),{once:!0}),i.open("GET",e),i.timeout=t.timeout,i.send()}));return s.cancel=()=>{i.abort(),r(new Pt)},s},jt=(e,t)=>{let n;const i=async function(){const i=[].concat.apply(Ot[e],t.fallbackUrls||[]);for(const r of i)try{n=At(r,t,e);return await n}catch(e){if(e instanceof Pt)throw e}throw new Error("Couldn't find your IP")}();return i.cancel=()=>{n.cancel()},i};yt.v4=e=>jt("v4",{...Mt,...e}),yt.v6=e=>jt("v6",{...Mt,...e});const $t=yt;var Nt=async e=>{if(e={timeout:5e3,ipVersion:4,...e},navigator&&!navigator.onLine)return!1;const t=4===e.ipVersion?"v4":"v6";try{return await $t[t](e),!0}catch(e){return!1}};var Ut={nanoid:function(){let e="",t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:21;for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return e},customAlphabet:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:21;return function(){let n="",i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t;for(;i--;)n+=e[Math.random()*e.length|0];return n}}},Lt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Type=e.TypeBuilder=e.Modifier=e.Hint=e.Kind=void 0,e.Kind=Symbol.for("TypeBox.Kind"),e.Hint=Symbol.for("TypeBox.Hint"),e.Modifier=Symbol.for("TypeBox.Modifier");let t=0;class n{ReadonlyOptional(t){return{[e.Modifier]:"ReadonlyOptional",...t}}Readonly(t){return{[e.Modifier]:"Readonly",...t}}Optional(t){return{[e.Modifier]:"Optional",...t}}Any(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Any"})}Array(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.Create({...n,[e.Kind]:"Array",type:"array",items:t})}Boolean(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Boolean",type:"boolean"})}ConstructorParameters(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.Tuple([...e.parameters],{...t})}Constructor(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("Tuple"===t[e.Kind]){const r=void 0===t.items?[]:t.items;return this.Create({...i,[e.Kind]:"Constructor",type:"constructor",parameters:r,returns:n})}if(globalThis.Array.isArray(t))return this.Create({...i,[e.Kind]:"Constructor",type:"constructor",parameters:t,returns:n});throw new Error("TypeBuilder.Constructor: Invalid parameters")}Enum(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=Object.keys(t).filter((e=>isNaN(e))).map((e=>t[e])).map((t=>"string"==typeof t?{[e.Kind]:"Literal",type:"string",const:t}:{[e.Kind]:"Literal",type:"number",const:t}));return this.Create({...n,[e.Kind]:"Union",[e.Hint]:"Enum",anyOf:i})}Function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("Tuple"===t[e.Kind]){const r=void 0===t.items?[]:t.items;return this.Create({...i,[e.Kind]:"Function",type:"function",parameters:r,returns:n})}if(globalThis.Array.isArray(t))return this.Create({...i,[e.Kind]:"Function",type:"function",parameters:t,returns:n});throw new Error("TypeBuilder.Function: Invalid parameters")}InstanceType(e){return{...arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},...this.Clone(e.returns)}}Integer(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Integer",type:"integer"})}Intersect(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=t=>t[e.Modifier]&&"Optional"===t[e.Modifier]||"ReadonlyOptional"===t[e.Modifier],[r,s]=[new Set,new Set];for(const e of t)for(const[t,n]of Object.entries(e.properties))i(n)&&s.add(t);for(const e of t)for(const t of Object.keys(e.properties))s.has(t)||r.add(t);const a={};for(const n of t)for(const[t,i]of Object.entries(n.properties))a[t]=void 0===a[t]?i:{[e.Kind]:"Union",anyOf:[a[t],{...i}]};return r.size>0?this.Create({...n,[e.Kind]:"Object",type:"object",properties:a,required:[...r]}):this.Create({...n,[e.Kind]:"Object",type:"object",properties:a})}KeyOf(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=Object.keys(t.properties).map((t=>this.Create({...n,[e.Kind]:"Literal",type:"string",const:t})));return this.Create({...n,[e.Kind]:"Union",[e.Hint]:"KeyOf",anyOf:i})}Literal(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.Create({...n,[e.Kind]:"Literal",const:t,type:typeof t})}Never(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Never",allOf:[{type:"boolean",const:!1},{type:"boolean",const:!0}]})}Null(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Null",type:"null"})}Number(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Number",type:"number"})}Object(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=Object.keys(t),r=i.filter((n=>{const i=t[n][e.Modifier];return i&&("Optional"===i||"ReadonlyOptional"===i)})),s=i.filter((e=>!r.includes(e)));return s.length>0?this.Create({...n,[e.Kind]:"Object",type:"object",properties:t,required:s}):this.Create({...n,[e.Kind]:"Object",type:"object",properties:t})}Omit(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r="Union"===n[e.Kind]?n.anyOf.map((e=>e.const)):n,s={...this.Clone(t),...i,[e.Hint]:"Omit"};s.required&&(s.required=s.required.filter((e=>!r.includes(e))),0===s.required.length&&delete s.required);for(const e of Object.keys(s.properties))r.includes(e)&&delete s.properties[e];return this.Create(s)}Parameters(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.Type.Tuple(t.parameters,{...n})}Partial(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i={...this.Clone(t),...n,[e.Hint]:"Partial"};delete i.required;for(const t of Object.keys(i.properties)){const n=i.properties[t];switch(n[e.Modifier]){case"ReadonlyOptional":case"Readonly":n[e.Modifier]="ReadonlyOptional";break;default:n[e.Modifier]="Optional"}}return this.Create(i)}Pick(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r="Union"===n[e.Kind]?n.anyOf.map((e=>e.const)):n,s={...this.Clone(t),...i,[e.Hint]:"Pick"};s.required&&(s.required=s.required.filter((e=>r.includes(e))),0===s.required.length&&delete s.required);for(const e of Object.keys(s.properties))r.includes(e)||delete s.properties[e];return this.Create(s)}Promise(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.Create({...n,[e.Kind]:"Promise",type:"promise",item:t})}Record(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("Union"===t[e.Kind])return this.Object(t.anyOf.reduce(((e,t)=>({...e,[t.const]:n})),{}),{...i,[e.Hint]:"Record"});const r=["Integer","Number"].includes(t[e.Kind])?"^(0|[1-9][0-9]*)$":"String"===t[e.Kind]&&t.pattern?t.pattern:"^.*$";return this.Create({...i,[e.Kind]:"Record",type:"object",patternProperties:{[r]:n},additionalProperties:!1})}Recursive(n){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};void 0===i.$id&&(i.$id="T"+t++);const r=n({[e.Kind]:"Self",$ref:`${i.$id}`});return r.$id=i.$id,this.Create({...i,...r})}Ref(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0===t.$id)throw Error("TypeBuilder.Ref: Referenced schema must specify an $id");return this.Create({...n,[e.Kind]:"Ref",$ref:t.$id})}RegEx(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.Create({...n,[e.Kind]:"String",type:"string",pattern:t.source})}Required(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i={...this.Clone(t),...n,[e.Hint]:"Required"};i.required=Object.keys(i.properties);for(const t of Object.keys(i.properties)){const n=i.properties[t];switch(n[e.Modifier]){case"ReadonlyOptional":case"Readonly":n[e.Modifier]="Readonly";break;default:delete n[e.Modifier]}}return this.Create(i)}ReturnType(e){return{...arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},...this.Clone(e.returns)}}Strict(e){return JSON.parse(JSON.stringify(e))}String(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"String",type:"string"})}Tuple(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=t.length,r=t.length,s=t.length>0?{...n,[e.Kind]:"Tuple",type:"array",items:t,additionalItems:!1,minItems:i,maxItems:r}:{...n,[e.Kind]:"Tuple",type:"array",minItems:i,maxItems:r};return this.Create(s)}Undefined(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Undefined",type:"object",specialized:"Undefined"})}Union(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return 0===t.length?e.Type.Never({...n}):this.Create({...n,[e.Kind]:"Union",anyOf:t})}Uint8Array(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Uint8Array",type:"object",specialized:"Uint8Array"})}Unknown(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Unknown"})}Unsafe(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:t[e.Kind]||"Unsafe"})}Void(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.Create({...t,[e.Kind]:"Void",type:"null"})}Create(e){return e}Clone(e){return"object"!=typeof(t=e)||null===t||Array.isArray(t)?(e=>"object"==typeof e&&null!==e&&Array.isArray(e))(e)?e.map((e=>this.Clone(e))):e:Object.keys(e).reduce(((t,n)=>({...t,[n]:this.Clone(e[n])})),Object.getOwnPropertySymbols(e).reduce(((t,n)=>({...t,[n]:this.Clone(e[n])})),{}));var t}}e.TypeBuilder=n,e.Type=new n}(Lt);var Ft={},qt={},Dt={},Bt={},zt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Format=void 0,function(e){const t=new Map;e.Clear=function(){return t.clear()},e.Has=function(e){return t.has(e)},e.Set=function(e,n){t.set(e,n)},e.Get=function(e){return t.get(e)}}(e.Format||(e.Format={}))}(zt),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),n=r&&r.__exportStar||function(e,n){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(n,i)||t(n,e,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(zt,e)}(Bt),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ValueErrors=e.ValueErrorsUnknownTypeError=e.ValueErrorType=void 0;const t=Lt,n=Bt;var i;!function(e){e[e.Array=0]="Array",e[e.ArrayMinItems=1]="ArrayMinItems",e[e.ArrayMaxItems=2]="ArrayMaxItems",e[e.ArrayUniqueItems=3]="ArrayUniqueItems",e[e.Boolean=4]="Boolean",e[e.Function=5]="Function",e[e.Integer=6]="Integer",e[e.IntegerMultipleOf=7]="IntegerMultipleOf",e[e.IntegerExclusiveMinimum=8]="IntegerExclusiveMinimum",e[e.IntegerExclusiveMaximum=9]="IntegerExclusiveMaximum",e[e.IntegerMinimum=10]="IntegerMinimum",e[e.IntegerMaximum=11]="IntegerMaximum",e[e.Literal=12]="Literal",e[e.Never=13]="Never",e[e.Null=14]="Null",e[e.Number=15]="Number",e[e.NumberMultipleOf=16]="NumberMultipleOf",e[e.NumberExclusiveMinimum=17]="NumberExclusiveMinimum",e[e.NumberExclusiveMaximum=18]="NumberExclusiveMaximum",e[e.NumberMinumum=19]="NumberMinumum",e[e.NumberMaximum=20]="NumberMaximum",e[e.Object=21]="Object",e[e.ObjectMinProperties=22]="ObjectMinProperties",e[e.ObjectMaxProperties=23]="ObjectMaxProperties",e[e.ObjectAdditionalProperties=24]="ObjectAdditionalProperties",e[e.ObjectRequiredProperties=25]="ObjectRequiredProperties",e[e.Promise=26]="Promise",e[e.RecordKeyNumeric=27]="RecordKeyNumeric",e[e.RecordKeyString=28]="RecordKeyString",e[e.String=29]="String",e[e.StringMinLength=30]="StringMinLength",e[e.StringMaxLength=31]="StringMaxLength",e[e.StringPattern=32]="StringPattern",e[e.StringFormatUnknown=33]="StringFormatUnknown",e[e.StringFormat=34]="StringFormat",e[e.TupleZeroLength=35]="TupleZeroLength",e[e.TupleLength=36]="TupleLength",e[e.Undefined=37]="Undefined",e[e.Union=38]="Union",e[e.Uint8Array=39]="Uint8Array",e[e.Uint8ArrayMinByteLength=40]="Uint8ArrayMinByteLength",e[e.Uint8ArrayMaxByteLength=41]="Uint8ArrayMaxByteLength",e[e.Void=42]="Void"}(i=e.ValueErrorType||(e.ValueErrorType={}));class r extends Error{constructor(e){super("ValueErrors: Unknown type"),this.schema=e}}e.ValueErrorsUnknownTypeError=r,function(e){function*s(e,a,o,c){const u=void 0===e.$id?a:[e,...a],l=e;switch(l[t.Kind]){case"Any":case"Unknown":return yield*function*(e,t,n,i){}();case"Array":return yield*function*(e,t,n,r){if(!globalThis.Array.isArray(r))return yield{type:i.Array,schema:e,path:n,value:r,message:"Expected array"};void 0===e.minItems||r.length>=e.minItems||(yield{type:i.ArrayMinItems,schema:e,path:n,value:r,message:`Expected array length to be greater or equal to ${e.minItems}`}),void 0===e.maxItems||r.length<=e.maxItems||(yield{type:i.ArrayMinItems,schema:e,path:n,value:r,message:`Expected array length to be less or equal to ${e.maxItems}`}),!0===e.uniqueItems&&new Set(r).size!==r.length&&(yield{type:i.ArrayUniqueItems,schema:e,path:n,value:r,message:"Expected array elements to be unique"});for(let i=0;i<r.length;i++)yield*s(e.items,t,`${n}/${i}`,r[i])}(l,u,o,c);case"Boolean":return yield*function*(e,t,n,r){if("boolean"!=typeof r)return yield{type:i.Boolean,schema:e,path:n,value:r,message:"Expected boolean"}}(l,0,o,c);case"Constructor":return yield*function*(e,t,n,i){yield*s(e.returns,t,n,i.prototype)}(l,u,o,c);case"Function":return yield*function*(e,t,n,r){if("function"!=typeof r)return yield{type:i.Function,schema:e,path:n,value:r,message:"Expected function"}}(l,0,o,c);case"Integer":return yield*function*(e,t,n,r){if("number"!=typeof r)return yield{type:i.Number,schema:e,path:n,value:r,message:"Expected number"};globalThis.Number.isInteger(r)||(yield{type:i.Integer,schema:e,path:n,value:r,message:"Expected integer"}),e.multipleOf&&r%e.multipleOf!=0&&(yield{type:i.IntegerMultipleOf,schema:e,path:n,value:r,message:`Expected integer to be a multiple of ${e.multipleOf}`}),!e.exclusiveMinimum||r>e.exclusiveMinimum||(yield{type:i.IntegerExclusiveMinimum,schema:e,path:n,value:r,message:`Expected integer to be greater than ${e.exclusiveMinimum}`}),!e.exclusiveMaximum||r<e.exclusiveMaximum||(yield{type:i.IntegerExclusiveMaximum,schema:e,path:n,value:r,message:`Expected integer to be less than ${e.exclusiveMaximum}`}),!e.minimum||r>=e.minimum||(yield{type:i.IntegerMinimum,schema:e,path:n,value:r,message:`Expected integer to be greater or equal to ${e.minimum}`}),!e.maximum||r<=e.maximum||(yield{type:i.IntegerMaximum,schema:e,path:n,value:r,message:`Expected integer to be less or equal to ${e.maximum}`})}(l,0,o,c);case"Literal":return yield*function*(e,t,n,r){if(r!==e.const){const t="string"==typeof e.const?`'${e.const}'`:e.const;return yield{type:i.Literal,schema:e,path:n,value:r,message:`Expected ${t}`}}}(l,0,o,c);case"Never":return yield*function*(e,t,n,r){yield{type:i.Never,schema:e,path:n,value:r,message:"Value cannot be validated"}}(l,0,o,c);case"Null":return yield*function*(e,t,n,r){if(null!==r)return yield{type:i.Null,schema:e,path:n,value:r,message:"Expected null"}}(l,0,o,c);case"Number":return yield*function*(e,t,n,r){if("number"!=typeof r)return yield{type:i.Number,schema:e,path:n,value:r,message:"Expected number"};e.multipleOf&&r%e.multipleOf!=0&&(yield{type:i.NumberMultipleOf,schema:e,path:n,value:r,message:`Expected number to be a multiple of ${e.multipleOf}`}),!e.exclusiveMinimum||r>e.exclusiveMinimum||(yield{type:i.NumberExclusiveMinimum,schema:e,path:n,value:r,message:`Expected number to be greater than ${e.exclusiveMinimum}`}),!e.exclusiveMaximum||r<e.exclusiveMaximum||(yield{type:i.NumberExclusiveMaximum,schema:e,path:n,value:r,message:`Expected number to be less than ${e.exclusiveMaximum}`}),!e.minimum||r>=e.minimum||(yield{type:i.NumberMaximum,schema:e,path:n,value:r,message:`Expected number to be greater or equal to ${e.minimum}`}),!e.maximum||r<=e.maximum||(yield{type:i.NumberMinumum,schema:e,path:n,value:r,message:`Expected number to be less or equal to ${e.maximum}`})}(l,0,o,c);case"Object":return yield*function*(e,t,n,r){if("object"!=typeof r||null===r||globalThis.Array.isArray(r))return yield{type:i.Object,schema:e,path:n,value:r,message:"Expected object"};void 0===e.minProperties||globalThis.Object.keys(r).length>=e.minProperties||(yield{type:i.ObjectMinProperties,schema:e,path:n,value:r,message:`Expected object to have at least ${e.minProperties} properties`}),void 0===e.maxProperties||globalThis.Object.keys(r).length<=e.maxProperties||(yield{type:i.ObjectMaxProperties,schema:e,path:n,value:r,message:`Expected object to have less than ${e.minProperties} properties`});const a=globalThis.Object.keys(e.properties);if(!1===e.additionalProperties)for(const t of globalThis.Object.keys(r))a.includes(t)||(yield{type:i.ObjectAdditionalProperties,schema:e,path:`${n}/${t}`,value:r[t],message:"Unexpected property"});if(e.required&&e.required.length>0){const t=globalThis.Object.keys(r);for(const r of e.required)t.includes(r)||(yield{type:i.ObjectRequiredProperties,schema:e.properties[r],path:`${n}/${r}`,value:void 0,message:"Expected required property"})}if("object"==typeof e.additionalProperties)for(const i of globalThis.Object.keys(r))a.includes(i)||(yield*s(e.additionalProperties,t,`${n}/${i}`,r[i]));for(const i of a){const a=e.properties[i];(e.required&&e.required.includes(i)||void 0!==r[i])&&(yield*s(a,t,`${n}/${i}`,r[i]))}}(l,u,o,c);case"Promise":return yield*function*(e,t,n,r){"object"==typeof r&&"function"==typeof r.then||(yield{type:i.Promise,schema:e,path:n,value:r,message:"Expected Promise"})}(l,0,o,c);case"Record":return yield*function*(e,t,n,r){if("object"!=typeof r||null===r||globalThis.Array.isArray(r))return yield{type:i.Object,schema:e,path:n,value:r,message:"Expected object"};const[a,o]=globalThis.Object.entries(e.patternProperties)[0],c=new RegExp(a);if(!globalThis.Object.keys(r).every((e=>c.test(e)))){const t="^(0|[1-9][0-9]*)$"===a,s=t?i.RecordKeyNumeric:i.RecordKeyString,o=t?"Expected all object property keys to be numeric":"Expected all object property keys to be strings";return yield{type:s,schema:e,path:n,value:r,message:o}}for(const[e,i]of globalThis.Object.entries(r))yield*s(o,t,`${n}/${e}`,i)}(l,u,o,c);case"Ref":return yield*function*(e,t,n,i){const r=t.find((t=>t.$id===e.$ref));if(void 0===r)throw new Error(`ValueErrors.Ref: Cannot find schema with $id '${e.$ref}'.`);yield*s(r,t,n,i)}(l,u,o,c);case"Self":return yield*function*(e,t,n,i){const r=t.find((t=>t.$id===e.$ref));if(void 0===r)throw new Error(`ValueErrors.Self: Cannot find schema with $id '${e.$ref}'.`);yield*s(r,t,n,i)}(l,u,o,c);case"String":return yield*function*(e,t,r,s){if("string"!=typeof s)return yield{type:i.String,schema:e,path:r,value:s,message:"Expected string"};void 0===e.minLength||s.length>=e.minLength||(yield{type:i.StringMinLength,schema:e,path:r,value:s,message:`Expected string length greater or equal to ${e.minLength}`}),void 0===e.maxLength||s.length<=e.maxLength||(yield{type:i.StringMaxLength,schema:e,path:r,value:s,message:`Expected string length less or equal to ${e.maxLength}`}),void 0!==e.pattern&&(new RegExp(e.pattern).test(s)||(yield{type:i.StringPattern,schema:e,path:r,value:s,message:`Expected string to match pattern ${e.pattern}`}));void 0!==e.format&&(n.Format.Has(e.format)?n.Format.Get(e.format)(s)||(yield{type:i.StringFormat,schema:e,path:r,value:s,message:`Expected string to match format '${e.format}'`}):yield{type:i.StringFormatUnknown,schema:e,path:r,value:s,message:`Unknown string format '${e.format}'`})}(l,0,o,c);case"Tuple":return yield*function*(e,t,n,r){if(!globalThis.Array.isArray(r))return yield{type:i.Array,schema:e,path:n,value:r,message:"Expected Array"};if(void 0===e.items&&0!==r.length)return yield{type:i.TupleZeroLength,schema:e,path:n,value:r,message:"Expected tuple to have 0 elements"};if(r.length!==e.maxItems&&(yield{type:i.TupleLength,schema:e,path:n,value:r,message:`Expected tuple to have ${e.maxItems} elements`}),e.items)for(let i=0;i<e.items.length;i++)yield*s(e.items[i],t,`${n}/${i}`,r[i])}(l,u,o,c);case"Undefined":return yield*function*(e,t,n,r){void 0!==r&&(yield{type:i.Undefined,schema:e,path:n,value:r,message:"Expected undefined"})}(l,0,o,c);case"Union":return yield*function*(e,t,n,r){const a=[];for(const i of e.anyOf){const e=[...s(i,t,n,r)];if(0===e.length)return;a.push(...e)}for(const e of a)yield e;a.length>0&&(yield{type:i.Union,schema:e,path:n,value:r,message:"Expected value of union"})}(l,u,o,c);case"Uint8Array":return yield*function*(e,t,n,r){if(!(r instanceof globalThis.Uint8Array))return yield{type:i.Uint8Array,schema:e,path:n,value:r,message:"Expected Uint8Array"};!e.maxByteLength||r.length<=e.maxByteLength||(yield{type:i.Uint8ArrayMaxByteLength,schema:e,path:n,value:r,message:`Expected Uint8Array to have a byte length less or equal to ${e.maxByteLength}`}),!e.minByteLength||r.length>=e.minByteLength||(yield{type:i.Uint8ArrayMinByteLength,schema:e,path:n,value:r,message:`Expected Uint8Array to have a byte length greater or equal to ${e.maxByteLength}`})}(l,0,o,c);case"Void":return yield*function*(e,t,n,r){if(null!==r)return yield{type:i.Void,schema:e,path:n,value:r,message:"Expected null"}}(l,0,o,c);default:throw new r(e)}}e.Errors=function*(e,t,n){yield*s(e,t,"",n)}}(e.ValueErrors||(e.ValueErrors={}))}(Dt),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),n=r&&r.__exportStar||function(e,n){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(n,i)||t(n,e,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(Dt,e)}(qt);var Wt={},Kt={},Ht={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.TypeGuard=e.TypeGuardInvalidTypeError=void 0;const t=Lt;class n extends Error{constructor(e){super("TypeGuard: Invalid type"),this.schema=e}}e.TypeGuardInvalidTypeError=n,function(e){function i(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function r(e){return"object"==typeof e&&null!==e&&Array.isArray(e)}function s(e){try{return new RegExp(e),!0}catch{return!1}}function a(e){if("string"!=typeof e)return!1;for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n>=7&&n<=13||27===n||127===n)return!1}return!0}function o(e){return"string"==typeof e}function c(e){return"number"==typeof e}function u(e){return"boolean"==typeof e}function l(e){return void 0===e||void 0!==e&&c(e)}function d(e){return void 0===e||void 0!==e&&u(e)}function h(e){return void 0===e||void 0!==e&&o(e)}function p(e){return i(e)&&"Any"===e[t.Kind]&&h(e.$id)}function f(e){return i(e)&&"Array"===e[t.Kind]&&"array"===e.type&&h(e.$id)&&$(e.items)&&l(e.minItems)&&l(e.maxItems)&&d(e.uniqueItems)}function m(e){return i(e)&&"Boolean"===e[t.Kind]&&"boolean"===e.type&&h(e.$id)}function g(e){if(!(i(e)&&"Constructor"===e[t.Kind]&&"constructor"===e.type&&h(e.$id)&&r(e.parameters)&&$(e.returns)))return!1;for(const t of e.parameters)if(!$(t))return!1;return!0}function y(e){if(!(i(e)&&"Function"===e[t.Kind]&&"function"===e.type&&h(e.$id)&&r(e.parameters)&&$(e.returns)))return!1;for(const t of e.parameters)if(!$(t))return!1;return!0}function v(e){return i(e)&&"Integer"===e[t.Kind]&&"integer"===e.type&&h(e.$id)&&l(e.multipleOf)&&l(e.minimum)&&l(e.maximum)&&l(e.exclusiveMinimum)&&l(e.exclusiveMaximum)}function b(e){return i(e)&&"Literal"===e[t.Kind]&&h(e.$id)&&(o(e.const)||c(e.const)||u(e.const))}function _(e){return i(e)&&"Never"===e[t.Kind]&&r(e.allOf)&&2===e.allOf.length&&i(e.allOf[0])&&o(e.allOf[0].type)&&"boolean"===e.allOf[0].type&&!1===e.allOf[0].const&&i(e.allOf[1])&&o(e.allOf[1].type)&&"boolean"===e.allOf[1].type&&!0===e.allOf[1].const}function w(e){return i(e)&&"Null"===e[t.Kind]&&"null"===e.type&&h(e.$id)}function x(e){return i(e)&&"Number"===e[t.Kind]&&"number"===e.type&&h(e.$id)&&l(e.multipleOf)&&l(e.minimum)&&l(e.maximum)&&l(e.exclusiveMinimum)&&l(e.exclusiveMaximum)}function S(e){if(!(i(e)&&"Object"===e[t.Kind]&&"object"===e.type&&h(e.$id)&&i(e.properties)&&(d(e.additionalProperties)||(n=e.additionalProperties,void 0===n||$(n)))&&l(e.minProperties)&&l(e.maxProperties)))return!1;var n;for(const[t,n]of Object.entries(e.properties)){if(!a(t))return!1;if(!$(n))return!1}return!0}function k(e){return i(e)&&"Promise"===e[t.Kind]&&"promise"===e.type&&h(e.$id)&&$(e.item)}function E(e){if(!(i(e)&&"Record"===e[t.Kind]&&"object"===e.type&&h(e.$id)&&!1===e.additionalProperties&&i(e.patternProperties)))return!1;const n=Object.keys(e.patternProperties);return 1===n.length&&(!!s(n[0])&&!!$(e.patternProperties[n[0]]))}function T(e){return i(e)&&"Self"===e[t.Kind]&&h(e.$id)&&o(e.$ref)}function I(e){return i(e)&&"Ref"===e[t.Kind]&&h(e.$id)&&o(e.$ref)}function C(e){return i(e)&&"String"===e[t.Kind]&&"string"===e.type&&h(e.$id)&&l(e.minLength)&&l(e.maxLength)&&(void 0===(n=e.pattern)||void 0!==n&&o(n)&&a(n)&&s(n))&&function(e){return void 0===e||void 0!==e&&o(e)&&a(e)}(e.format);var n}function R(e){if(!(i(e)&&"Tuple"===e[t.Kind]&&"array"===e.type&&h(e.$id)&&c(e.minItems)&&c(e.maxItems)&&e.minItems===e.maxItems))return!1;if(void 0===e.items&&void 0===e.additionalItems&&0===e.minItems)return!0;if(!r(e.items))return!1;for(const t of e.items)if(!$(t))return!1;return!0}function P(e){return i(e)&&"Undefined"===e[t.Kind]&&"object"===e.type&&h(e.$id)&&"Undefined"===e.specialized}function M(e){if(!(i(e)&&"Union"===e[t.Kind]&&r(e.anyOf)&&h(e.$id)))return!1;for(const t of e.anyOf)if(!$(t))return!1;return!0}function O(e){return i(e)&&"Uint8Array"===e[t.Kind]&&"object"===e.type&&h(e.$id)&&"Uint8Array"===e.specialized&&l(e.minByteLength)&&l(e.maxByteLength)}function A(e){return i(e)&&"Unknown"===e[t.Kind]&&h(e.$id)}function j(e){return i(e)&&"Void"===e[t.Kind]&&"null"===e.type&&h(e.$id)}function $(e){return p(e)||f(e)||m(e)||g(e)||y(e)||v(e)||b(e)||_(e)||w(e)||x(e)||S(e)||k(e)||E(e)||T(e)||I(e)||C(e)||R(e)||P(e)||M(e)||O(e)||A(e)||j(e)}e.TAny=p,e.TArray=f,e.TBoolean=m,e.TConstructor=g,e.TFunction=y,e.TInteger=v,e.TLiteral=b,e.TNever=_,e.TNull=w,e.TNumber=x,e.TObject=S,e.TPromise=k,e.TRecord=E,e.TSelf=T,e.TRef=I,e.TString=C,e.TTuple=R,e.TUndefined=P,e.TUnion=M,e.TUint8Array=O,e.TUnknown=A,e.TVoid=j,e.TSchema=$,e.Assert=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!$(e))throw new n(e);for(const e of t)if(!$(e))throw new n(e)}}(e.TypeGuard||(e.TypeGuard={}))}(Ht),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),n=r&&r.__exportStar||function(e,n){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(n,i)||t(n,e,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(Ht,e)}(Kt),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.TypeCompiler=e.TypeCompilerUnknownTypeError=e.Property=e.TypeCheck=void 0;const t=qt,n=Kt,i=Bt,r=Lt;class s{constructor(e,t,n,i){this.schema=e,this.references=t,this.checkFunc=n,this.code=i}Code(){return this.code}Errors(e){return t.ValueErrors.Errors(this.schema,this.references,e)}Check(e){return this.checkFunc(e)}}var a;e.TypeCheck=s,function(e){function t(e){return 36===e}function n(e){return 95===e}function i(e){return e>=48&&e<=57}function r(e){return e>=65&&e<=90||e>=97&&e<=122}e.Check=function(e){if(0===e.length)return!1;{const i=e.charCodeAt(0);if(!(t(i)||n(i)||r(i)))return!1}for(let s=1;s<e.length;s++){const a=e.charCodeAt(s);if(!(t(a)||n(a)||r(a)||i(a)))return!1}return!0}}(a=e.Property||(e.Property={}));class o extends Error{constructor(e){super("TypeCompiler: Unknown type"),this.schema=e}}e.TypeCompilerUnknownTypeError=o,function(e){function*t(e,i){if(e.$id&&!l.has(e.$id)){l.add(e.$id);const t=p(e.$id),n=f(t,e,"value");return s=n,u.add(s),void(yield`(${t}(${i}))`)}var s;const d=e;switch(d[r.Kind]){case"Any":case"Unknown":return yield*function*(e,t){yield"(true)"}();case"Array":return yield*function*(e,t){const n=h(e.items,"value");void 0!==e.minItems&&(yield`(${t}.length >= ${e.minItems})`),void 0!==e.maxItems&&(yield`(${t}.length <= ${e.maxItems})`),void 0!==e.uniqueItems&&(yield`(new Set(${t}).size === ${t}.length)`),yield`(Array.isArray(${t}) && ${t}.every(value => ${n}))`}(d,i);case"Boolean":return yield*function*(e,t){yield`(typeof ${t} === 'boolean')`}(0,i);case"Constructor":return yield*function*(e,n){yield*t(e.returns,`${n}.prototype`)}(d,i);case"Function":return yield*function*(e,t){yield`(typeof ${t} === 'function')`}(0,i);case"Integer":return yield*function*(e,t){yield`(typeof ${t} === 'number' && Number.isInteger(${t}))`,void 0!==e.multipleOf&&(yield`(${t} % ${e.multipleOf} === 0)`),void 0!==e.exclusiveMinimum&&(yield`(${t} > ${e.exclusiveMinimum})`),void 0!==e.exclusiveMaximum&&(yield`(${t} < ${e.exclusiveMaximum})`),void 0!==e.minimum&&(yield`(${t} >= ${e.minimum})`),void 0!==e.maximum&&(yield`(${t} <= ${e.maximum})`)}(d,i);case"Literal":return yield*function*(e,t){"number"==typeof e.const||"boolean"==typeof e.const?yield`(${t} === ${e.const})`:yield`(${t} === '${e.const}')`}(d,i);case"Never":return yield*function*(e,t){yield"(false)"}();case"Null":case"Void":return yield*function*(e,t){yield`(${t} === null)`}(0,i);case"Number":return yield*function*(e,t){yield`(typeof ${t} === 'number')`,void 0!==e.multipleOf&&(yield`(${t} % ${e.multipleOf} === 0)`),void 0!==e.exclusiveMinimum&&(yield`(${t} > ${e.exclusiveMinimum})`),void 0!==e.exclusiveMaximum&&(yield`(${t} < ${e.exclusiveMaximum})`),void 0!==e.minimum&&(yield`(${t} >= ${e.minimum})`),void 0!==e.maximum&&(yield`(${t} <= ${e.maximum})`)}(d,i);case"Object":return yield*function*(e,i){yield`(typeof ${i} === 'object' && ${i} !== null && !Array.isArray(${i}))`,void 0!==e.minProperties&&(yield`(Object.keys(${i}).length >= ${e.minProperties})`),void 0!==e.maxProperties&&(yield`(Object.keys(${i}).length <= ${e.maxProperties})`);const r=globalThis.Object.keys(e.properties);if(!1===e.additionalProperties)if(e.required&&e.required.length===r.length)yield`(Object.keys(${i}).length === ${r.length})`;else{const e=`[${r.map((e=>`'${e}'`)).join(", ")}]`;yield`(Object.keys(${i}).every(key => ${e}.includes(key)))`}if(n.TypeGuard.TSchema(e.additionalProperties)){const t=h(e.additionalProperties,"value[key]"),n=`[${r.map((e=>`'${e}'`)).join(", ")}]`;yield`(Object.keys(${i}).every(key => ${n}.includes(key) || ${t}))`}for(const n of r){const r=a.Check(n)?`${i}.${n}`:`${i}['${n}']`,s=e.properties[n];if(e.required&&e.required.includes(n))yield*t(s,r);else{const e=h(s,r);yield`(${r} === undefined ? true : (${e}))`}}}(d,i);case"Promise":return yield*function*(e,t){yield`(typeof value === 'object' && typeof ${t}.then === 'function')`}(0,i);case"Record":return yield*function*(e,t){yield`(typeof ${t} === 'object' && ${t} !== null && !Array.isArray(${t}))`;const[n,i]=globalThis.Object.entries(e.patternProperties)[0],r=m(`new RegExp(/${n}/)`);yield`(Object.keys(${t}).every(key => ${r}.test(key)))`;const s=h(i,"value");yield`(Object.values(${t}).every(value => ${s}))`}(d,i);case"Ref":return yield*function*(e,n){if(l.has(e.$ref))return yield`(${p(e.$ref)}(${n}))`;if(!c.has(e.$ref))throw Error(`TypeCompiler.Ref: Cannot de-reference schema with $id '${e.$ref}'`);const i=c.get(e.$ref);yield*t(i,n)}(d,i);case"Self":return yield*function*(e,t){const n=p(e.$ref);yield`(${n}(${t}))`}(d,i);case"String":return yield*function*(e,t){if(yield`(typeof ${t} === 'string')`,void 0!==e.minLength&&(yield`(${t}.length >= ${e.minLength})`),void 0!==e.maxLength&&(yield`(${t}.length <= ${e.maxLength})`),void 0!==e.pattern){const n=m(`new RegExp(/${e.pattern}/);`);yield`(${n}.test(${t}))`}void 0!==e.format&&(yield`(format('${e.format}', ${t}))`)}(d,i);case"Tuple":return yield*function*(e,t){if(yield`(Array.isArray(${t}))`,void 0===e.items)return yield`(${t}.length === 0)`;yield`(${t}.length === ${e.maxItems})`;for(let n=0;n<e.items.length;n++){const i=h(e.items[n],`${t}[${n}]`);yield`(${i})`}}(d,i);case"Undefined":return yield*function*(e,t){yield`(${t} === undefined)`}(0,i);case"Union":return yield*function*(e,t){const n=e.anyOf.map((e=>h(e,t)));yield`(${n.join(" || ")})`}(d,i);case"Uint8Array":return yield*function*(e,t){yield`(${t} instanceof Uint8Array)`,e.maxByteLength&&(yield`(${t}.length <= ${e.maxByteLength})`),e.minByteLength&&(yield`(${t}.length >= ${e.minByteLength})`)}(d,i);default:throw new o(e)}}const c=new Map,u=new Set,l=new Set;function d(){c.clear(),u.clear(),l.clear()}function h(e,n){return[...t(e,n)].join(" && ")}function p(e){return`check_${e.replace(/-/g,"_")}`}function f(e,n,i){return`function ${e}(value) {\n return (\n${[...t(n,i)].map((e=>` ${e}`)).join(" &&\n")}\n )\n}`}function m(e){const t=`local_${u.size}`;return u.add(`const ${t} = ${e}`),t}function g(){return[...u.values()]}function y(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];d(),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for(const t of e){if(!t.$id)throw new Error("TypeCompiler: Referenced schemas must specify an $id.");if(c.has(t.$id))throw new Error(`TypeCompiler: Duplicate schema $id found for '${t.$id}'`);c.set(t.$id,t)}}(t);const n=f("check",e,"value");return`${g().join("\n")}\nreturn ${n}`}e.Compile=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];n.TypeGuard.Assert(e,t);const r=y(e,t),a=globalThis.Function("format",r)(((e,t)=>{if(!i.Format.Has(e))return!1;return i.Format.Get(e)(t)}));return new s(e,t,a,r)}}(e.TypeCompiler||(e.TypeCompiler={}))}(Wt),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),n=r&&r.__exportStar||function(e,n){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(n,i)||t(n,e,i)};Object.defineProperty(e,"__esModule",{value:!0}),e.ValueErrorType=void 0;var i=qt;Object.defineProperty(e,"ValueErrorType",{enumerable:!0,get:function(){return i.ValueErrorType}}),n(Wt,e)}(Ft);var Vt={},Jt={},Gt=r&&r.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.StateMachine=void 0;var Qt=function(){function e(e){var t,n,i=this;if(this._configuration={},this._listeners=new Set,this._scopeStack=[],"function"!=typeof e)throw new Error("The StateMachine constructor expects a callback as the first argument");if(this._scopeStack.unshift("config"),e({initialState:function(e){i._checkConfigScope(),i._currentState=e},state:function(e,t){i._checkConfigScope();var n={on:{}};i._scopeStack.unshift("state"),t({onEnter:function(e){i._checkStateScope("onEnter"),n.onEnter=e},onExit:function(e){i._checkStateScope("onExit"),n.onExit=e},on:function(e,t){i._checkStateScope("on"),n.on[e]=t}}),i._scopeStack.shift(),i._configuration[e]=n}}),this._scopeStack.shift(),void 0===this._currentState)throw new Error("No initial state provided");if(0===Object.keys(this._configuration).length)throw new Error("No state definition was provided");null===(n=null===(t=this._configuration[this._currentState.type])||void 0===t?void 0:t.onEnter)||void 0===n||n.call(t,{state:this._currentState})}return e.prototype.transition=function(e){var t,n,i,r,s,a=this._configuration[this._currentState.type];if(a){var o=a.on[e.type];if(o){var c=o({state:this._currentState,event:e,transitionTo:function(e,t){return{state:e,sideEffect:null!=t?t:null}},dontTransition:function(e){return{state:null,sideEffect:null!=e?e:null}}}),u=c.state,l=c.sideEffect,d=this._currentState;null!==u&&(null===(i=a.onExit)||void 0===i||i.call(a,{state:this._currentState}),this._currentState=u,null===(s=null===(r=this._configuration[u.type])||void 0===r?void 0:r.onEnter)||void 0===s||s.call(r,{state:u}));try{for(var h=Gt(this._listeners),p=h.next();!p.done;p=h.next()){(0,p.value)(d,null!=u?u:d,e)}}catch(e){t={error:e}}finally{try{p&&!p.done&&(n=h.return)&&n.call(h)}finally{if(t)throw t.error}}l&&setTimeout((function(){null==l||l()}),0)}}},e.prototype.subscribe=function(e){var t=this;return this._listeners.add(e),e(null,this._currentState,null),function(){t._listeners.delete(e)}},Object.defineProperty(e.prototype,"state",{get:function(){return this._currentState},enumerable:!1,configurable:!0}),e.prototype._checkConfigScope=function(){if("config"!==this._scopeStack[0])throw new Error("Call to `initialState` is allowed only from within the config callback, but not inside a state callback")},e.prototype._checkStateScope=function(e){if("state"!==this._scopeStack[0])throw new Error("Call to `".concat(e,"` is allowed only from within a state callback"))},e}();function Xt(e,t){if(t?.message&&"string"==typeof t.message)return t.message;switch(e.statusCode){case 429:return"Throttled by server";case 404:return"Not found from server";default:return"Error from server"}}function Zt(e){return e?.code??0}function Yt(e,t){return 409===e.statusCode?new Error(`${Xt(e,t)} ${e.statusCode}:${Zt(t)} ${t}`):e.statusCode?new Error(`${Xt(e,t)} ${e.statusCode}:${Zt(t)}`):e instanceof We&&"transportDisconnected"===e.errorInfo.reason?e:new Error(t?.message??e.message??"Unexpected error")}Jt.StateMachine=Qt,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.StateMachine=void 0;var t=Jt;Object.defineProperty(e,"StateMachine",{enumerable:!0,get:function(){return t.StateMachine}})}(Vt),
189
+ /*
190
+ @license
191
+ The following license applies to all parts of this software except as
192
+ documented below.
193
+
194
+ Copyright (c) 2016, Twilio, inc.
195
+ All rights reserved.
196
+
197
+ Redistribution and use in source and binary forms, with or without
198
+ modification, are permitted provided that the following conditions are
199
+ met:
200
+
201
+ 1. Redistributions of source code must retain the above copyright
202
+ notice, this list of conditions and the following disclaimer.
203
+
204
+ 2. Redistributions in binary form must reproduce the above copyright
205
+ notice, this list of conditions and the following disclaimer in
206
+ the documentation and/or other materials provided with the
207
+ distribution.
208
+
209
+ 3. Neither the name of Twilio nor the names of its contributors may
210
+ be used to endorse or promote products derived from this software
211
+ without specific prior written permission.
212
+
213
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
214
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
215
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
216
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
217
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
218
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
219
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
220
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
221
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
222
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
223
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
224
+
225
+ This software includes javascript-state-machine under the following license.
226
+
227
+ Copyright (c) 2012, 2013, 2014, 2015, Jake Gordon and contributors
228
+
229
+ Permission is hereby granted, free of charge, to any person obtaining a copy
230
+ of this software and associated documentation files (the "Software"), to deal
231
+ in the Software without restriction, including without limitation the rights
232
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
233
+ copies of the Software, and to permit persons to whom the Software is
234
+ furnished to do so, subject to the following conditions:
235
+
236
+ The above copyright notice and this permission notice shall be included in all
237
+ copies or substantial portions of the Software.
238
+
239
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
240
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
241
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
242
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
243
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
244
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
245
+
246
+ This software includes loglevel under the following license.
247
+
248
+ Copyright (c) 2013 Tim Perry
249
+
250
+ Permission is hereby granted, free of charge, to any person
251
+ obtaining a copy of this software and associated documentation
252
+ files (the "Software"), to deal in the Software without
253
+ restriction, including without limitation the rights to use,
254
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
255
+ copies of the Software, and to permit persons to whom the
256
+ Software is furnished to do so, subject to the following
257
+ conditions:
258
+
259
+ The above copyright notice and this permission notice shall be
260
+ included in all copies or substantial portions of the Software.
261
+
262
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
263
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
264
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
265
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
266
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
267
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
268
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
269
+ OTHER DEALINGS IN THE SOFTWARE.
270
+
271
+
272
+ */
273
+ function(e){var t=void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};Object.defineProperty(e,"__esModule",{value:!0});var n=Ie,i=te,r=He,s=Nt,a=Ut,o=Lt,c=Ft,u=Vt;function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function d(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var h=d(Ke.exports),p=l(s);class f{message;#h=null;#p;#f=new n.Deferred;constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this.message=e,this.#h=i,this.#p=setTimeout((()=>{if(this.#f.isDone)return;const e=new n.ErrorInfo("timeout",`Request timeout: ${this.message.id}`);this.#f.reject(new n.TwilioError(e)),this.#h?.(this)}),t)}get promise(){return this.#f.promise}complete(e){this.#f.isDone||(clearTimeout(this.#p),this.#f.resolve(e),this.#h?.(this))}cancel(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new n.ErrorInfo("cancelled","Request has been cancelled");this.#f.isDone||(clearTimeout(this.#p),this.#f.reject(new n.TwilioError(e)),this.#h?.(this))}}const m=new n.Logger("twilsock","Twilsock"),g=new TextEncoder,y=new TextDecoder,v=t.WebSocket??{};class b extends i.ReplayEventSubject{#m=null;#g="disconnected";#y=[];#t;constructor(){const e=new i.ReplayEventEmitter;super(e),this.#t=e}connect(e){if(m.info(`Call to Transport.connect(${e})`),"disconnected"===this.#g){this.#g="connecting";try{this.#m=new v(e)}catch(e){return m.error("Error in Transport.connect:",e),void this.#v(new n.ErrorInfo("unknown","Error in Transport.connect"))}this.#m.binaryType="arraybuffer",this.#b("open",(()=>{m.info('WebSocket "open" event'),this.#g="connected",this.#t.emitNextTick("connected")})),this.#b("error",(e=>{m.info('WebSocket "error" event:',e),this.#v(new n.ErrorInfo("unknown","Failed to connect WebSocket"))})),this.#b("close",(e=>{m.info('WebSocket "close" event:',e),this.#v(new n.ErrorInfo("transportDisconnected",'WebSocket "close" event received'))})),this.#b("message",(e=>{m.info('WebSocket "message" event:',y.decode(e.data));const t=e.data;t instanceof ArrayBuffer&&this.#t.emitNextTick("messageReceived",t)}))}else m.warn(`Cannot connect in state "${this.#g}". Ignored.`)}sendMessage(e){m.info(`Call to Transport.sendMessage(${y.decode(e)})`);const t=new Error("Transport is not ready. Call `connect()` first");if(null===this.#m)throw t;try{this.#m.send(e)}catch{throw t}}disconnect(e){this.#v(new n.ErrorInfo("transportDisconnected",`Transport.Disconnect called: ${e}`))}#v(e){m.info(`Call to Transport.doDisconnect(${e}): ${this.#g}`),"disconnected"!==this.#g&&(this.#g="disconnected",this.#m?.close(),this.#_(),this.#t.emitNextTick("disconnected",e))}#b(e,t){this.#m?.addEventListener(e,t),this.#y.push([e,t])}#_(){for(const[e,t]of this.#y)this.#m?.removeEventListener(e,t);this.#y=[]}}class _{retryPolicy;url;activeGrant;logLevel;clientMetadata;tweaks;token;continuationToken;initRegistrations;constructor(e,t,n){const i=`wss://tsock.${n.region??"us1"}.twilio.com/v3/wsconnect`,r=n.twilsock??{};var s;this.token=e,this.continuationToken=n.continuationToken??null,this.activeGrant=t,this.url=r.uri??i,this.logLevel=n.logLevel??"error",this.retryPolicy=n.retryPolicy??{min:1e3,max:12e4,randomness:.2},this.clientMetadata=(s=n.clientMetadata??{},{env:h.name??"unknown",envv:h.version??"unknown",os:h.os?.family??"unknown",osv:h.os?.version??"unknown",osa:String(h.os?.architecture??"unknown"),sdk:"js-default",...s}),this.clientMetadata.ver="1.0.0-rc.8",this.initRegistrations=new Set,this.tweaks=n.tweaks??null}}class w extends i.ReplayEventSubject{#p=null;#w=!0;#t;constructor(){const e=new i.ReplayEventEmitter;super(e),this.#t=e}get isNetworkAvailable(){return this.#w}start(){null===this.#p&&(this.#t.emitNextTick("changed",this.#w),this.#x())}stop(){var e;null!==this.#p&&("number"==typeof(e=this.#p)&&"function"==typeof t.clearTimeout?t.clearTimeout(e):function(e){e&&"function"==typeof e.close&&e.close()}(e),this.#p=null)}#x(){const e=this.#w;p.default().then((e=>{this.#w=e})).catch((e=>{m.warn("Error on checking connectivity",e),this.#w=!1})).finally((()=>{e!==this.#w&&this.#t.emitNextTick("changed",this.#w),this.#p=setTimeout((()=>{this.#x()}),5e3)}))}}const x=o.Type.Union([o.Type.Literal("init"),o.Type.Literal("update"),o.Type.Literal("ping"),o.Type.Literal("close"),o.Type.Literal("notification"),o.Type.Literal("message"),o.Type.Literal("reply"),o.Type.Literal("client_update")]),S=o.Type.Object({method:x,id:o.Type.String(),payload_size:o.Type.Optional(o.Type.Number()),payload_type:o.Type.Optional(o.Type.String())}),k=c.TypeCompiler.Compile(S),E="TWILSOCK V3.0",T=a.customAlphabet("1234567890abcdef",32);class Message{method;headers;payloadType;payload;id;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:`RQ${T()}`;this.method=e,this.headers=t,this.payloadType=n,this.payload=i,this.id=r}encode(){const e={method:this.method,id:this.id};""!==this.payload&&(e.payload_size=g.encode(this.payload).length,e.payload_type=this.payloadType);const t=JSON.stringify({...this.headers??{},...e}),n=g.encode(t).length,i=""===this.payload?"":"\r\n";return g.encode(`${E} ${n}\r\n${t}\r\n${this.payload}${i}`)}static parse(e){const t=y.decode(e);if(!t.startsWith(E))throw new Error("Invalid Twilsock prefix");const[n,i,r]=t.split("\r\n"),s=Number(n.split(" ")[2]);if(i.length!==s)throw new Error(`Invalid header size: expected ${s}, got ${i.length}`);const a=JSON.parse(i);if(!k.Check(a))throw new Error("Invalid headers received");const o=a.payload_type??"";return new Message(a.method,a,o,r,a.id)}}class I{product;type;notification_protocol_version;message_types;constructor(e){let{product:t,type:n="ers",notification_protocol_version:i=4,message_types:r=[]}=e;this.product=t,this.type=n,this.notification_protocol_version=i,this.message_types=r,Object.freeze(r)}}const C=o.Type.Object({code:o.Type.Number(),status:o.Type.String(),errorCode:o.Type.Optional(o.Type.Number()),description:o.Type.Optional(o.Type.String())}),R=o.Type.Object({status:C,http_status:o.Type.Optional(C),continuation_token:o.Type.Optional(o.Type.String()),http_headers:o.Type.Optional(o.Type.Record(o.Type.String(),o.Type.String()))}),P=c.TypeCompiler.Compile(R),M=o.Type.Object({backoff_policy:o.Type.Optional(o.Type.Object({reconnect_min_ms:o.Type.Optional(o.Type.Number()),reconnect_max_ms:o.Type.Optional(o.Type.Number())}))}),O=c.TypeCompiler.Compile(M);class A extends Message{replyHeaders;replyPayload;constructor(e,t,n,i){if(super("reply",t,n,i,e),!P.Check(t))throw new Error("Invalid reply headers passed");let r,s;this.replyHeaders={status:t.status,httpStatus:t.http_status??{code:200,status:"ok"},continuationToken:t.continuation_token??"",httpHeaders:t.http_headers??{}};try{const e=JSON.parse(i);O.Check(e)&&(r=e.backoff_policy?.reconnect_min_ms,s=e.backoff_policy?.reconnect_max_ms)}catch{}finally{this.replyPayload={backoffPolicy:{reconnectMinMs:r??1e3,reconnectMaxMs:s??2e3}}}}}class j{capabilities;token;continuation_token;registrations;tweaks;metadata;constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;this.capabilities=e,this.token=t,this.continuation_token=n,this.registrations=i,this.tweaks=r,this.metadata=s,Object.freeze(i),Object.freeze(r),Object.freeze(s)}}class ${host;path;method;params;headers;constructor(e,t,n,i,r){this.host=e,this.path=t,this.method=n,this.params=i,this.headers=r,Object.freeze(i),Object.freeze(r)}static from(e){const t=new URL(e.url),n=[...new URLSearchParams(t.searchParams).entries()].reduce(((e,t)=>{let[n,i]=t;return{...e,[n]:i}}),{});return new $(t.host,t.pathname,e.method,n,e.headers)}}class N{active_grant;http_request;constructor(e,t){this.active_grant=e,this.http_request=t,Object.freeze(t)}}const U=o.Type.Object({status:C}),L=c.TypeCompiler.Compile(U);class F extends Message{status;constructor(e,t,n,i){if(super("close",t,n,i,e),!L.Check(t))throw new Error("Invalid close headers passed");this.status=t.status}}const q=o.Type.Object({client_update_type:o.Type.Optional(o.Type.String())}),D=c.TypeCompiler.Compile(q);class B extends Message{clientUpdateType;constructor(e,t,n,i){if(super("client_update",t,n,i,e),!D.Check(t))throw new Error("Invalid client update headers passed");this.clientUpdateType=t.client_update_type??""}}const z=o.Type.Object({message_type:o.Type.Optional(o.Type.String())}),W=c.TypeCompiler.Compile(z);class K extends Message{messageType;constructor(e,t,n,i){if(super("notification",t,n,i,e),!W.Check(t))throw new Error("Invalid notification headers passed");this.messageType=t.message_type??""}}class H{statusCode;status;headers;payload;constructor(e,t,n,i){this.statusCode=e,this.status=t,this.headers=n,this.payload=i,Object.freeze(n)}}const V=o.Type.Object({message:o.Type.String()}),J=c.TypeCompiler.Compile(V),G=Math.sqrt(5),Q=(1+G)/2,X=1e4,Z={code:200,status:"Ok"},Y={code:400,status:"Bad Request"},ee=20104,ne=(e,t)=>new n.ErrorInfo(t,e.status,e.code,e.errorCode,e.description);class ie extends i.ReplayEventSubject{#S;static connecting="connecting";static connected="connected";static disconnected="disconnected";static fatalError="fatalError";static nonFatalError="nonFatalError";static tokenExpired="tokenExpired";static tokenAboutToExpire="tokenAboutToExpire";static messageReceived="messageReceived";constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=new i.ReplayEventEmitter;super(r),this.#S=new re(e,t,n,r)}connect(){this.#S.connect()}disconnect(){this.#S.disconnect()}sendRequest(e){return this.#S.sendRequest(e)}updateToken(e){return this.#S.updateToken(e)}populateInitRegistrations(e){this.#S.populateInitRegistrations(e)}}class re extends i.ReplayEventSubject{fsm;pendingRequests=new Map;config;failedReconnectionAttempts=0;#k=new Map;#E=new w;#t;#m=null;#T=null;constructor(e,t,i,r){super(r),this.#t=r,this.config=new _(e,t,i),i.logLevel&&m.setLevel(i.logLevel);const s=e=>{let{event:t,dontTransition:n}=e;return n((()=>{this.#I(t.message)}))},a=e=>{let{transitionTo:t}=e;return t({type:"disconnected",errorInfo:new n.ErrorInfo("unknown","Disconnect called")})},o=e=>{let{event:t,transitionTo:n}=e;return n({type:"waitAndReconnect"},(()=>{this.#t.emitNextTick("nonFatalError",t.errorInfo)}))},c=e=>{let{transitionTo:t}=e;return t({type:"waitAndReconnect"},(()=>{this.#t.emitNextTick("nonFatalError",new n.ErrorInfo("networkBecameUnreachable","Network became unreachable"))}))},l=e=>{let{event:t,transitionTo:n}=e;return n({type:"disconnected",errorInfo:t.errorInfo},(()=>{this.#t.emitNextTick("fatalError",t.errorInfo)}))};this.fsm=new u.StateMachine((e=>{let{initialState:t,state:i}=e;t({type:"disconnected",errorInfo:new n.ErrorInfo("unknown","Twilsock created")}),i("disconnected",(e=>{let{onEnter:t,onExit:i,on:r}=e;t((e=>{let{state:t}=e;this.failedReconnectionAttempts=0,this.#E.stop(),this.#C(t.errorInfo),this.#R(t.errorInfo),this.#P(),this.#t.emitNextTick("disconnected",t.errorInfo.message)})),i((()=>{this.#E.start()})),r("connect",(e=>{let{transitionTo:t}=e;return t({type:"connecting"})})),r("updateToken",(e=>{let{event:t,transitionTo:i}=e;return this.config.token=t.token,t.request.cancel(new n.ErrorInfo("tokenUpdatedLocally")),i({type:"connecting"})})),r("sendRequest",(e=>{let{event:t,dontTransition:i}=e;const r=new n.ErrorInfo("transportDisconnected","Cannot send request in the disconnected state");return t.request.cancel(r),i()}))})),i("connecting",(e=>{let{onEnter:t,on:i}=e;t((()=>{this.#M(),this.#t.emitNextTick("connecting")})),i("updateToken",(e=>{let{event:t,dontTransition:i}=e;const r=new n.ErrorInfo("tokenUpdatedLocally");return this.config.token=t.token,t.request.cancel(r),i()})),i("sendRequest",(e=>{let{event:t,dontTransition:n}=e;return this.#O(t.request),n()})),i("transportConnected",(e=>{let{transitionTo:t}=e;return t({type:"initializing"})})),i("disconnect",(e=>a(e))),i("networkBecameUnreachable",(e=>c(e))),i("nonFatalError",(e=>o(e))),i("fatalError",(e=>l(e)))})),i("initializing",(e=>{let t,{onEnter:i,onExit:r,on:u}=e;i((()=>{t=this.#A(2e3),t.promise.then((()=>{m.debug("Init message received"),this.fsm.transition({type:"initMessageReceived"})})).catch((e=>{if(e instanceof n.TwilioError&&"timeout"===e.errorInfo.reason)return void this.#j();const t=e instanceof n.ErrorInfo?e.description:J.Check(e)?e.message:"unknown error",i=new n.ErrorInfo("unknown",`Init request failed: ${t}`);this.fsm.transition({type:"fatalError",errorInfo:i})})),this.#$(t)})),r((()=>{t.cancel()})),u("timeout",(e=>{let{transitionTo:t}=e;return t({type:"waitAndReconnect"},(()=>{const e=new n.ErrorInfo("timeout");this.#t.emitNextTick("nonFatalError",e)}))})),u("updateToken",(e=>{let{event:t,dontTransition:n}=e;return this.config.token=t.token,this.#O(t.request),n()})),u("sendRequest",(e=>{let{event:t,dontTransition:n}=e;return this.#O(t.request),n()})),u("initMessageReceived",(e=>{let{transitionTo:t}=e;return t({type:"connected"})})),u("tooManyRequests",(e=>{let{event:t,transitionTo:n}=e;return n({type:"waitAndReconnect",waitTime:t.waitTime},(()=>{this.#t.emitNextTick("nonFatalError",t.errorInfo)}))})),u("messageReceived",(e=>s(e))),u("disconnect",(e=>a(e))),u("networkBecameUnreachable",(e=>c(e))),u("nonFatalError",(e=>o(e))),u("fatalError",(e=>l(e)))})),i("connected",(e=>{let{onEnter:t,onExit:n,on:i}=e;t((()=>{this.failedReconnectionAttempts=0,this.#N(),this.#U(),this.#t.emitNextTick("connected")})),n((()=>{this.#L()})),i("updateToken",(e=>{let{event:t,dontTransition:n}=e;return this.config.token=t.token,this.#$(t.request),n()})),i("sendRequest",(e=>{let{event:t,dontTransition:n}=e;return this.#$(t.request),n()})),i("tooManyRequests",(e=>{let{event:t,transitionTo:n}=e;return n({type:"throttling",waitTime:t.waitTime},(()=>{this.#t.emitNextTick("nonFatalError",t.errorInfo)}))})),i("messageReceived",(e=>s(e))),i("disconnect",(e=>a(e))),i("networkBecameUnreachable",(e=>c(e))),i("nonFatalError",(e=>o(e))),i("fatalError",(e=>l(e)))})),i("waitAndReconnect",(e=>{let{onEnter:t,onExit:i,on:r}=e,s=null;t((e=>{let{state:t}=e;const i=t.waitTime??this.#F();m.debug(`Started the reconnection timer for ${i} ms`);const r=new n.ErrorInfo("transportDisconnected","Transport disconnected, started the reconnection timer...");this.#C(r),this.#P(),this.#E.isNetworkAvailable&&(s=setTimeout((()=>{this.#j()}),i)),this.failedReconnectionAttempts++,this.#t.emitNextTick("disconnected","Wait and reconnect")})),i((()=>{null!==s&&(clearTimeout(s),s=null)})),r("timeout",(e=>{let{transitionTo:t}=e;return t({type:"connecting"})})),r("connect",(e=>{let{transitionTo:t}=e;return t({type:"connecting"})})),r("updateToken",(e=>{let{event:t,dontTransition:i}=e;this.config.token=t.token;const r=new n.ErrorInfo("tokenUpdatedLocally");return t.request.cancel(r),i()})),r("sendRequest",(e=>{let{event:t,dontTransition:n}=e;return this.#O(t.request),n()})),r("networkBecameReachable",(e=>{let{transitionTo:t}=e;return this.failedReconnectionAttempts=0,t({type:"connecting"})})),r("networkBecameUnreachable",(e=>{let{dontTransition:t}=e;return null!==s&&(clearTimeout(s),s=null),t()})),r("disconnect",(e=>a(e)))})),i("throttling",(e=>{let t,{onEnter:n,onExit:i,on:r}=e;n((e=>{let{state:n}=e;t=setTimeout((()=>{this.#j()}),n.waitTime)})),i((()=>{clearTimeout(t)})),r("timeout",(e=>{let{transitionTo:t}=e;return t({type:"connected"})})),r("updateToken",(e=>{let{event:t,dontTransition:n}=e;return this.config.token=t.token,this.#O(t.request),n()})),r("sendRequest",(e=>{let{event:t,dontTransition:n}=e;return this.#O(t.request),n()})),r("messageReceived",(e=>s(e))),r("disconnect",(e=>a(e))),r("networkBecameUnreachable",(e=>c(e))),r("nonFatalError",(e=>o(e))),r("fatalError",(e=>l(e)))}))})),this.fsm.subscribe(((e,t,n)=>{null!==e&&null!==n?m.debug(`FSM transition ${n.type}: ${e.type} -> ${t.type}`):m.debug(`FSM initiated: ${t.type}`)})),this.#E.on("changed",(e=>{m.debug(`ConnectivityMonitor "changed" event: ${e}`),this.fsm.transition({type:e?"networkBecameReachable":"networkBecameUnreachable"})}))}connect(){m.debug("Call to TwilsockClient.connect"),this.fsm.transition({type:"connect"})}disconnect(){m.debug("Call to TwilsockClient.disconnect"),this.fsm.transition({type:"disconnect"})}sendRequest(e){return n.CancellablePromise.withAsyncExecutor((async t=>{m.debug("Call to TwilsockClient.sendRequest:",JSON.stringify(e));const n=this.#q(e);this.fsm.transition({type:"sendRequest",request:n}),t((()=>{m.debug(`Request ${n.message.id} has been cancelled by the user`),n.cancel()}));const i=await n.promise;if(!(i instanceof A))throw new Error("Expected instance of ReplyMessage");let r=i.payload;if(e.typeCheck){const t=JSON.parse(i.payload);if(!e.typeCheck.Check(t))throw new Error("Payload doesn't match the provided schema");r=t}return new H(i.replyHeaders.httpStatus.code,i.replyHeaders.httpStatus.status,i.replyHeaders.httpHeaders,r)}))}updateToken(e){return n.CancellablePromise.withAsyncExecutor((async t=>{m.debug("Call to TwilsockClient.updateToken:",e);const i=this.#D(e);this.fsm.transition({type:"updateToken",token:e,request:i}),t((()=>{m.debug("Update token request has been cancelled by the user"),i.cancel()}));try{await i.promise}catch(e){if(e instanceof n.TwilioError&&"tokenUpdatedLocally"===e.errorInfo.reason)return void m.debug("Token was updated locally");throw e}m.debug("Token was updated remotely")}))}populateInitRegistrations(e){const t=[...e.values()];m.debug("Call to TwilsockClient.populateInitRegistrations:",t.join(", ")),this.config.initRegistrations=new Set([...this.config.initRegistrations,...e])}#R(e){for(const t of this.pendingRequests.values())t.cancel(e);this.pendingRequests.clear()}#C(e){for(const t of this.#k.values())t.cancel(e);this.#k.clear()}#U(){for(const e of this.pendingRequests.values())this.#$(e);this.pendingRequests.clear()}#O(e){this.pendingRequests.set(e.message.id,e)}#F(){const e=Math.min((e=>Math.round(Math.pow(Q,e)/G))(this.failedReconnectionAttempts),45);return 1e3*(e+.2*e*Math.random())}#M(){if(m.debug("Call to TwilsockClient.#connectWebSocket"),null!==this.#m)throw new Error("Websocket already exists");this.#m=new b,this.#m.on("connected",(()=>{m.debug('TwilsockTransport "connected" event'),this.fsm.transition({type:"transportConnected"})})),this.#m.on("disconnected",(e=>{this.fsm.transition({type:"nonFatalError",errorInfo:e})})),this.#m.on("messageReceived",(e=>{let t;this.#B();try{t=Message.parse(e)}catch(e){m.warn("Error while parsing an incoming message",e);const t=new n.ErrorInfo("cannotParse");return void this.fsm.transition({type:"fatalError",errorInfo:t})}this.fsm.transition({type:"messageReceived",message:t})})),this.#m.connect(this.config.url)}#P(){m.debug("Call to TwilsockClient.#disconnectWebSocket"),this.#m?.disconnect("TwilsockClient.#disconnectWebSocket called"),this.#m=null}#N(){if(null!==this.#T)throw new Error("The watchdog time is already running");this.#T=setTimeout((()=>{m.warn("Watchdog timeout"),this.fsm.transition({type:"nonFatalError",errorInfo:new n.ErrorInfo("timeout","Watchdog timeout")})}),45e3)}#A(e){const t=new I({product:this.config.activeGrant,message_types:[...this.config.initRegistrations]}),n=new j(["client_update"],this.config.token,this.config.continuationToken,t.message_types.length>0?[t]:null,this.config.tweaks,this.config.clientMetadata),i=new Message("init",n);return new f(i,e,(e=>{this.#z(e)}))}#D(e){const t=new Message("update",{token:e});return new f(t,6e4,(e=>{this.#z(e)}))}#q(e){const t=new N(e.grant??this.config.activeGrant,$.from(e)),n=new Message("message",t,e.headers["Content-Type"]??"application/json",e.payload);return new f(n,e.timeout,(e=>{this.#z(e)}))}#z(e){this.pendingRequests.delete(e.message.id),this.#k.delete(e.message.id)}#j(){m.debug("Call to TwilsockClient.#onTimeout"),this.fsm.transition({type:"timeout"})}#L(){if(null===this.#T)throw new Error("The watchdog time is not running");clearTimeout(this.#T),this.#T=null}#B(){null!==this.#T&&(this.#L(),this.#N())}#I(e){const t=[e.id,e.headers,e.payloadType,e.payload];r.match(e.method).with("reply",(()=>{this.#W(new A(...t))})).with("close",(()=>{this.#K(new F(...t))})).with("client_update",(()=>{this.#H(new B(...t))})).with("notification",(()=>{this.#V(new K(...t))})).with("ping",(()=>{this.#J(e,Z)})).otherwise((e=>{m.warn(`Skipped a message with an unexpected method "${e}"`)}))}#W(e){const t=this.#k.get(e.id);if(!t)return void m.warn(`Skipped a reply to an unknown request: ${e.id}`);const n=e.replyHeaders.status;if(n.code<200||n.code>=300){const i=r.match(n).with({errorCode:ee},(()=>ne(n,"tokenExpired"))).with({code:401},(()=>ne(n,"unauthorized"))).with({code:429},(()=>ne(n,"tooManyRequests"))).otherwise((()=>ne(n,"unknown")));return t.cancel(i),n.errorCode===ee&&(m.warn("Received a token expired reply"),this.#t.emitNextTick("tokenExpired")),void r.match(n.code).with(401,(()=>{this.fsm.transition({type:"fatalError",errorInfo:i})})).with(429,(()=>{const t=e.replyPayload.backoffPolicy,n=t.reconnectMinMs,r=t.reconnectMaxMs,s=Math.floor(Math.random()*(r-n)+n);this.fsm.transition({type:"tooManyRequests",waitTime:s,errorInfo:i})})).otherwise((()=>{this.fsm.transition({type:"nonFatalError",errorInfo:i})}))}const i=e.replyHeaders.continuationToken;void 0!==i&&(this.config.continuationToken=i),t.complete(e)}#K(e){m.debug(`Server has initiated the process of closing the connection: ${e.payload}`),this.#J(e,Z);const t=ne(e.status,"closeMessageReceived");if(308===e.status.code&&51232===e.status.errorCode)return m.debug("Token with a different instanceSid"),void this.fsm.transition({type:"fatalError",errorInfo:t});const n=e.status.code;r.match(n).with(308,(()=>{m.debug("Offloading to another instance"),this.fsm.transition({type:"nonFatalError",errorInfo:t})})).with(401,406,410,417,(()=>{m.debug(`Server closed connection due to a fatal error: ${t}`);const n=r.match(e.status).with({code:410},{errorCode:ee},(()=>(this.#t.emitNextTick("tokenExpired"),ne(e.status,"tokenExpired")))).with({code:401},(()=>ne(e.status,"unauthorized"))).otherwise((()=>t));this.fsm.transition({type:"fatalError",errorInfo:n})})).otherwise((()=>{m.warn(`Unexpected close message ${t}`),this.fsm.transition({type:"nonFatalError",errorInfo:t})}))}#H(e){this.#J(e,Z),"token_about_to_expire"!==e.clientUpdateType?m.warn(`Ignoring an unknown client update ${e.clientUpdateType}`):this.#t.emitNextTick("tokenAboutToExpire")}#V(e){if(""===e.payload)return m.warn(`Skipped a notification message with no payload: ${e.id}`),void this.#J(e,Y,"Notification message must carry data");this.#J(e,Z),this.#t.emitNextTick("messageReceived",e.messageType,e.payload)}#J(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(null===this.#m)return;const i=new Message("reply",{status:t},""!==n?"text/plain":"",n,e.id);this.#m.sendMessage(i.encode())}#$(e){if(null===this.#m)throw new Error("WebSocket not initialized");this.#m.sendMessage(e.message.encode()),this.#k.set(e.message.id,e)}}Object.defineProperty(e,"CancellablePromise",{enumerable:!0,get:function(){return n.CancellablePromise}}),Object.defineProperty(e,"CancellationError",{enumerable:!0,get:function(){return n.CancellationError}}),Object.defineProperty(e,"ErrorInfo",{enumerable:!0,get:function(){return n.ErrorInfo}}),Object.defineProperty(e,"TwilioError",{enumerable:!0,get:function(){return n.TwilioError}}),e.HttpRequest=class{url;method;headers;payload;grant;timeout;typeCheck;constructor(e){let{url:t,method:n="GET",headers:i={},payload:r="",grant:s=null,timeout:a=X,typeCheck:o=null}=e;this.url=t,this.method=n,this.headers=i,this.payload="string"==typeof r?r:JSON.stringify(r),this.grant=s,this.timeout=a,this.typeCheck=o,Object.freeze(i)}},e.TwilsockClient=ie}(Te);class en{configuration;services;cacheLifetime;cache;timer;pendingRequests;isShutdownInitiated=!1;constructor(e,t){this.configuration=e,this.services=t,this.cache=new Map,this.cacheLifetime=100*this.configuration.httpCacheInterval,this.pendingRequests=new Set,this.cleanupCache()}isExpired(e){return!this.cacheLifetime||Date.now()-e>this.cacheLifetime}cleanupCache(){for(const[e,t]of this.cache)this.isExpired(t.timestamp)&&this.cache.delete(e);0===this.cache.size&&clearInterval(this.timer)}pokeTimer(){this.timer=this.timer||setInterval((()=>this.cleanupCache()),2*this.cacheLifetime)}static responsePostProcess(e){let t;try{t=JSON.parse(e.payload)}catch{t=e.payload}return{status:{code:e.statusCode,status:e.status},headers:e.headers,body:t}}executeWithRetry(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(((n,i)=>{const r=[502,503,504];t&&r.push(429);const s=new Ee(this.configuration.backoffConfiguration);s.on("attempt",(()=>{e().then((e=>{if(!(e.statusCode>=400))return void s.succeeded(e);let t={};try{t=JSON.parse(e.payload)}catch{}if(r.includes(e.statusCode)){const n=parseInt(e.headers?e.headers["Retry-After"]:null);s.failed(Yt(e,t),isNaN(n)?void 0:1e3*n)}else"Twilsock disconnected"===t.message?s.failed(Yt(e,t)):(s.removeAllListeners(),s.cancel(),i(Yt(e,t)))})).catch((e=>{s.removeAllListeners(),s.cancel(),i(e)}))})),s.on("succeeded",(e=>{n(e)})),s.on("cancelled",(e=>i(e))),s.on("failed",(e=>i(e))),s.start()}))}async get(e){if(this.isShutdownInitiated)throw new Error("Client has been shut down.");const t=this.cache.get(e);if(t&&!this.isExpired(t.timestamp))return t.response;const n=this.executeWithRetry((()=>this.services.transport.sendRequest(new Te.HttpRequest({url:e,grant:this.configuration.productId}))),this.configuration.retryWhenThrottled);this.pendingRequests.add(n);const i=await n;this.pendingRequests.delete(n);const r=en.responsePostProcess(i);return this.cache.set(e,{response:r,timestamp:Date.now()}),this.pokeTimer(),r}async disconnect(){this.isShutdownInitiated=!0;try{await Promise.all([...this.pendingRequests])}catch{}await this.services.syncClient.shutdown()}}class tn{static TYPING_INDICATOR="twilio.ipmsg.typing_indicator";static NEW_MESSAGE="twilio.conversations.new_message";static ADDED_TO_CONVERSATION="twilio.conversations.added_to_conversation";static REMOVED_FROM_CONVERSATION="twilio.conversations.removed_from_conversation";static CONSUMPTION_UPDATE="twilio.channel.consumption_update"}var nn={};
274
+ /*
275
+ @license
276
+ The MIT License (MIT)
277
+
278
+ Copyright (c) 2016 Twilio Inc.
279
+
280
+ Permission is hereby granted, free of charge, to any person obtaining a copy
281
+ of this software and associated documentation files (the "Software"), to deal
282
+ in the Software without restriction, including without limitation the rights
283
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
284
+ copies of the Software, and to permit persons to whom the Software is
285
+ furnished to do so, subject to the following conditions:
286
+
287
+ The above copyright notice and this permission notice shall be included in all
288
+ copies or substantial portions of the Software.
289
+
290
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
291
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
292
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
293
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
294
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
295
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
296
+ SOFTWARE.
297
+
298
+ */!function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Te,n=pe,i=u.exports,r=Oe,s=P;function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=a(i);function c(e,t,n,i){var r,s=arguments.length,a=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(a=(s<3?r(a):s>3?r(t,n,a):r(t,n))||a);return s>3&&a&&Object.defineProperty(t,n,a),a}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function d(){}function h(){h.init.call(this)}function p(e){return void 0===e._maxListeners?h.defaultMaxListeners:e._maxListeners}function f(e,t,n,i){var r,s,a;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((s=e._events)?(s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),a=s[t]):(s=e._events=new d,e._eventsCount=0),a){if("function"==typeof a?a=s[t]=i?[n,a]:[a,n]:i?a.unshift(n):a.push(n),!a.warned&&(r=p(e))&&r>0&&a.length>r){a.warned=!0;var o=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");o.name="MaxListenersExceededWarning",o.emitter=e,o.type=t,o.count=a.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(o)}}else a=s[t]=n,++e._eventsCount;return e}function m(e,t,n){var i=!1;function r(){e.removeListener(t,r),i||(i=!0,n.apply(e,arguments))}return r.listener=n,r}function g(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function y(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}d.prototype=Object.create(null),h.EventEmitter=h,h.usingDomains=!1,h.prototype.domain=void 0,h.prototype._events=void 0,h.prototype._maxListeners=void 0,h.defaultMaxListeners=10,h.init=function(){this.domain=null,h.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new d,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},h.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},h.prototype.getMaxListeners=function(){return p(this)},h.prototype.emit=function(e){var t,n,i,r,s,a,o,c="error"===e;if(a=this._events)c=c&&null==a.error;else if(!c)return!1;if(o=this.domain,c){if(t=arguments[1],!o){if(t instanceof Error)throw t;var u=new Error('Uncaught, unspecified "error" event. ('+t+")");throw u.context=t,u}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=o,t.domainThrown=!1,o.emit("error",t),!1}if(!(n=a[e]))return!1;var l="function"==typeof n;switch(i=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var i=e.length,r=y(e,i),s=0;s<i;++s)r[s].call(n)}(n,l,this);break;case 2:!function(e,t,n,i){if(t)e.call(n,i);else for(var r=e.length,s=y(e,r),a=0;a<r;++a)s[a].call(n,i)}(n,l,this,arguments[1]);break;case 3:!function(e,t,n,i,r){if(t)e.call(n,i,r);else for(var s=e.length,a=y(e,s),o=0;o<s;++o)a[o].call(n,i,r)}(n,l,this,arguments[1],arguments[2]);break;case 4:!function(e,t,n,i,r,s){if(t)e.call(n,i,r,s);else for(var a=e.length,o=y(e,a),c=0;c<a;++c)o[c].call(n,i,r,s)}(n,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(r=new Array(i-1),s=1;s<i;s++)r[s-1]=arguments[s];!function(e,t,n,i){if(t)e.apply(n,i);else for(var r=e.length,s=y(e,r),a=0;a<r;++a)s[a].apply(n,i)}(n,l,this,r)}return!0},h.prototype.addListener=function(e,t){return f(this,e,t,!1)},h.prototype.on=h.prototype.addListener,h.prototype.prependListener=function(e,t){return f(this,e,t,!0)},h.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,m(this,e,t)),this},h.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,m(this,e,t)),this},h.prototype.removeListener=function(e,t){var n,i,r,s,a;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(i=this._events))return this;if(!(n=i[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new d:(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,s=n.length;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){a=n[s].listener,r=s;break}if(r<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new d,this;delete i[e]}else!function(e,t){for(var n=t,i=n+1,r=e.length;i<r;n+=1,i+=1)e[n]=e[i];e.pop()}(n,r);i.removeListener&&this.emit("removeListener",e,a||t)}return this},h.prototype.off=function(e,t){return this.removeListener(e,t)},h.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new d,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new d:delete n[e]),this;if(0===arguments.length){for(var i,r=Object.keys(n),s=0;s<r.length;++s)"removeListener"!==(i=r[s])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=new d,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},h.prototype.listeners=function(e){var t,n,i=this._events;return n=i&&(t=i[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[],n},h.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},h.prototype.listenerCount=g,h.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};const v=o.getLogger("twilio-notificatiions");function b(e,t){return[`${(new Date).toISOString()} Twilio.Notifications ${e}:`].concat(Array.from(t))}const _=new class{setLevel(e){v.setLevel(e)}trace(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];v.trace.apply(null,b("T",t))}debug(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];v.debug.apply(null,b("D",t))}info(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];v.info.apply(null,b("I",t))}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];v.warn.apply(null,b("W",t))}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];v.error.apply(null,b("E",t))}};class w{token;notificationId;messageTypes;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;this.token=e,this.notificationId=t,this.messageTypes=n}}class x extends h{channelType;desiredState=new w;currentState=new w;_hasActiveAttempt=!1;constructor(e){super(),this.channelType=e}setNotificationId(e){this.desiredState.notificationId=e}isActive(){return""!==this.desiredState.notificationId}subscribe(e){this.desiredState.messageTypes.has(e)?_.debug(`message type '${e}' for channel ${this.channelType} is already registered`):this.desiredState.messageTypes.add(e)}unsubscribe(e){this.desiredState.messageTypes.has(e)&&this.desiredState.messageTypes.delete(e)}updateToken(e){this.desiredState.token=e}async commitChanges(){if(this._hasActiveAttempt)throw _.error("One registration attempt is already in progress"),new Error("One registration attempt is already in progress");const[e,t]=function(e,t){const n=new Set;return e.notificationId!==t.notificationId&&n.add("notificationId"),e.token!==t.token&&n.add("token"),function(e,t){return[...[...e].filter((e=>!t.has(e))),...[...t].filter((t=>!e.has(t)))]}(e.messageTypes,t.messageTypes).length>0&&n.add("messageType"),[n.size>0,n]}(this.desiredState,this.currentState);if(e){this.currentState.notificationId||t.delete("notificationId"),_.trace(`Persisting ${this.channelType} registration`,t,this.desiredState);try{this._hasActiveAttempt=!0;const e=new w;if(e.token=this.desiredState.token,e.notificationId=this.desiredState.notificationId,e.messageTypes=new Set(this.desiredState.messageTypes),e.messageTypes.size>0){const n=await this.updateRegistration(e,t);this.currentState.token=n.token,this.currentState.notificationId=n.notificationId,this.currentState.messageTypes=new Set(n.messageTypes),this.emit("stateChanged",this.channelType,"registered",this.currentState)}else await this.removeRegistration(),this.currentState.token=e.token,this.currentState.notificationId=e.notificationId,this.currentState.messageTypes.clear(),this.emit("stateChanged",this.channelType,"unregistered",this.currentState)}catch(e){throw e}finally{this._hasActiveAttempt=!1}}}}const S={min:2e3,max:12e4,randomness:.2};class k extends x{context;twilsock;registrarUrl;registrationId=null;constructor(e,t,n,i){super(e),this.context=t,this.twilsock=n,this.registrarUrl=i}async updateRegistration(e,i){if(i.has("notificationId")&&await this.removeRegistration(),!e.notificationId||!e.notificationId.length)throw _.error("No push notification ID for registration"),new Error("No push notification ID for registration");_.trace("Registering",this.channelType,e);const r={endpoint_platform:this.context.platform,channel_type:this.channelType,version:this.context.protocolVersion.toString(),message_types:Array.from(e.messageTypes),data:{registration_id:e.notificationId}},s=this.context.productId,a=`${this.registrarUrl}?productId=${s}`,o={"Content-Type":"application/json"};_.trace(`Creating registration for channel ${this.channelType}`);try{const e=JSON.parse((await new n.AsyncRetrier(S).run((()=>this.twilsock.sendRequest(new t.HttpRequest({method:"POST",url:a,headers:o,payload:r,grant:s}))))).payload);this.registrationId=e.id,_.debug("Registration created: ",e)}catch(e){throw _.error("Registration failed: ",e),e}return e}async removeRegistration(){if(!this.registrationId)return;const e=this.context.productId,i=`${this.registrarUrl}/${this.registrationId}?productId=${e}`,r={"Content-Type":"application/json"};_.trace(`Removing registration for ${this.channelType}`);try{await new n.AsyncRetrier(Object.assign(S,{maxAttemptsCount:3})).run((()=>this.twilsock.sendRequest(new t.HttpRequest({method:"DELETE",url:i,headers:r,grant:e})))),this.registrationId=null,this.currentState.notificationId="",_.debug(`Registration removed for ${this.channelType}`)}catch(e){throw _.error("Failed to remove registration ",this.channelType,e),e}}async sendDeviceRemoveRequest(e){if(""===e)throw new Error("Empty registration ID");const i=this.context.productId,r=`${this.registrarUrl}?productId=${i}`,s={"Content-Type":"application/json"},a={binding_type:this.channelType,address:e};try{_.trace(`Removing old registrations for ${this.channelType}`),await new n.AsyncRetrier(Object.assign(S,{maxAttemptsCount:3})).run((()=>this.twilsock.sendRequest(new t.HttpRequest({method:"DELETE",url:r,headers:s,payload:a,grant:i})))),this.registrationId=null,this.currentState.notificationId="",_.debug(`Registration removed for ${this.channelType}`)}catch(e){throw _.error("Failed to remove registration ",this.channelType,e),e}}}class E extends x{productId;platform;twilsock;contextId=r.nanoid();constructor(e,t,n){super("twilsock"),this.productId=e,this.platform=t,this.twilsock=n}async updateRegistration(e,t){if(!t.has("messageType"))return e;Array.from(e.messageTypes);return this.productId,this.platform,e}async removeRegistration(){}async sendDeviceRemoveRequest(e){}}var T;const I=s.literal("apn","fcm","twilsock");e.Notifications=T=class extends h{twilsock;connectors;constructor(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),n.logLevel=n.logLevel??"error",_.setLevel(n.logLevel);const i=n.productId??"notifications",r=!n.twilsockClient,s=n.twilsockClient=n.twilsockClient??new t.TwilsockClient(e,i,n),a=n.notifications??{},o=`https://ers.${a.region??n.region??"us1"}.twilio.com/v1/registrations`,c=a.ersUrl||o;this.connectors=new Map;const u=T._detectPlatform();this.connectors.set("apn",new k("apn",{protocolVersion:4,productId:i,platform:u},s,c)),this.connectors.set("fcm",new k("fcm",{protocolVersion:3,productId:i,platform:u},s,c)),this.connectors.set("twilsock",new E(i,u,s)),s.on("connecting",(()=>this.emit("transportState","connecting"))),s.on("connected",(()=>this.emit("transportState","connected"))),s.on("disconnected",(()=>this.emit("transportState","disconnected"))),this._connector("twilsock").on("stateChanged",((e,t,n)=>this.emit("stateChanged",e,t,n))),this._connector("apn").on("stateChanged",((e,t,n)=>this.emit("stateChanged",e,t,n))),this._connector("fcm").on("stateChanged",((e,t,n)=>this.emit("stateChanged",e,t,n))),s.on("messageReceived",((e,t)=>this._routeMessage(e,t))),this.updateToken(e),r&&(s.connect(),this.twilsock=s)}async shutdown(){this.connectors.clear(),this.twilsock&&await this.twilsock.disconnect()}setPushRegistrationId(e,t){_.debug(`Set ${e} push registration id '${t}'`),this._connector(e).setNotificationId(t)}subscribe(e,t){_.debug(`Add ${e} subscriptions for message type ${t}`),this._connector(e).subscribe(t)}unsubscribe(e,t){_.debug(`Remove ${e} subscriptions for message type ${t}`),this._connector(e).unsubscribe(t)}updateToken(e){this.connectors.forEach((t=>t.updateToken(e)))}async commitChanges(){const e=[];this.connectors.forEach((t=>{t.isActive()&&e.push(t.commitChanges())})),await Promise.all(e)}async removeRegistrations(e,t){await this._connector(e).sendDeviceRemoveRequest(t)}handlePushNotification(e){return{messageType:e.twi_message_type,payload:e.payload}}_routeMessage(e,t){_.debug("Notification message arrived: ",e,t),this.emit("message",e,t)}_connector(e){const t=this.connectors.get(e);if(!t)throw new Error(`Unknown channel type: ${e}`);return t}static _detectPlatform(){let e="";return"undefined"!=typeof navigator?(e="unknown",void 0!==navigator.product&&(e=navigator.product),void 0!==navigator.userAgent&&(e=navigator.userAgent)):e="web",e.substring(0,128)}},c([s.validateTypes(I,s.nonEmptyString),l("design:type",Function),l("design:paramtypes",[String,String]),l("design:returntype",void 0)],e.Notifications.prototype,"setPushRegistrationId",null),c([s.validateTypes(I,s.nonEmptyString),l("design:type",Function),l("design:paramtypes",[String,String]),l("design:returntype",void 0)],e.Notifications.prototype,"subscribe",null),c([s.validateTypes(I,s.nonEmptyString),l("design:type",Function),l("design:paramtypes",[String,String]),l("design:returntype",void 0)],e.Notifications.prototype,"unsubscribe",null),c([s.validateTypes(s.nonEmptyString),l("design:type",Function),l("design:paramtypes",[String]),l("design:returntype",void 0)],e.Notifications.prototype,"updateToken",null),c([s.validateTypesAsync(I,s.nonEmptyString),l("design:type",Function),l("design:paramtypes",[String,String]),l("design:returntype",Promise)],e.Notifications.prototype,"removeRegistrations",null),e.Notifications=T=c([s.validateConstructorTypes(s.nonEmptyString,[s.pureObject,"undefined",s.literal(null)]),l("design:paramtypes",[String,Object])],e.Notifications)}(nn);var rn={};Object.defineProperty(rn,"__esModule",{value:!0});var sn=P,an=Te,on=u.exports,cn=pe,un=Oe,ln=te,dn=Ke.exports;function hn(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function pn(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var fn=pn(on),mn=hn(on),gn=hn(un),yn=pn(dn);function vn(e,t,n,i){var r,s=arguments.length,a=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(a=(s<3?r(a):s>3?r(t,n,a):r(t,n))||a);return s>3&&a&&Object.defineProperty(t,n,a),a}function bn(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}class _n{base;args;paths;constructor(e){this.base=e,this.args=new Array,this.paths=new Array}pathSegment(e){return this.paths.push(encodeURIComponent(e)),this}queryParam(e,t){return void 0!==t&&this.args.push(encodeURIComponent(e)+"="+encodeURIComponent(t)),this}build(){let e=this.base;return this.paths.length&&(e+="/"+this.paths.join("/")),this.args.length&&(e+="?"+this.args.join("&")),e}}class SyncError extends Error{name;message;status;code;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;super(),this.name=this.constructor.name,this.message=`${e} (status: ${t}, code: ${n})`,this.status=t,this.code=n}}class wn extends SyncError{body;constructor(e){let t=arguments.length>3?arguments[3]:void 0;super(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,arguments.length>2&&void 0!==arguments[2]?arguments[2]:0),this.body=t}}function xn(e){return JSON.parse(JSON.stringify(e))}function Sn(e){if(!(void 0===e||kn(e)))throw new SyncError(`Invalid pageSize parameter. Expected a positive integer, was '${e}'.`,400,20007)}function kn(e){return function(e){return!isNaN(parseInt(e))&&isFinite(e)}(e)&&e>0}const En=fn.getLogger("twilio-sync");function Tn(e,t){return[`${(new Date).toISOString()} Sync ${e}:`].concat(Array.from(t))}var In=function(e){En.setLevel(e)},Cn=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];En.trace.apply(null,Tn("T",t))},Rn=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];En.debug.apply(null,Tn("D",t))},Pn=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];En.error.apply(null,Tn("E",t))};class Mn{settings;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=`https://cds.${e.region||"us1"}.twilio.com`,n=e.cdsUri||t;var i,r,s;this.settings={subscriptionsUri:n+"/v4/Subscriptions",documentsUri:n+"/v3/Documents",listsUri:n+"/v3/Lists",mapsUri:n+"/v3/Maps",streamsUri:n+"/v3/Streams",insightsUri:n+"/v3/Insights",sessionStorageEnabled:(i=e.Sync,r="enableSessionStorage",s=!0,i&&void 0!==i[r]?i[r]:s),productId:e.productId}}get subscriptionsUri(){return this.settings.subscriptionsUri}get documentsUri(){return this.settings.documentsUri}get listsUri(){return this.settings.listsUri}get mapsUri(){return this.settings.mapsUri}get streamsUri(){return this.settings.streamsUri}get insightsUri(){return this.settings.insightsUri}get backoffConfig(){return this.settings.backoffConfig||{}}get sessionStorageEnabled(){return this.settings.sessionStorageEnabled}get productId(){return this.settings.productId}}var On="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:{},An={};
299
+ /*
300
+ @license
301
+ Copyright (c) 2022 Twilio Inc.
302
+
303
+ 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:
304
+
305
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
306
+
307
+ 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.
308
+
309
+
310
+ */
311
+ Object.defineProperty(An,"__esModule",{value:!0});var jn=mn.default,$n=gn.default;function Nn(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Un=Nn(jn);const Ln=e=>{const t=Un.default.getLevel();Un.default.setLevel("warn"),Un.default.warn(e),Un.default.setLevel(t)};class Fn extends Error{constructor(){super("Promise was cancelled")}}class qn extends Promise{static#i=new Map;#r;#s;constructor(e){const t=$n.nanoid();let n;super(((i,r)=>(n=r,e((e=>{qn.#i.delete(t),i(e)}),(e=>{qn.#i.delete(t),r(e)}),(e=>{qn.#i.set(t,e)}))))),this.#r=t,this.#s=n}cancel(){const e=qn.#i.get(this.#r);return e?.(),this.#s&&(this.catch((()=>{})),this.#s(new Fn)),this}static withAsyncExecutor(e){return new qn((async(t,n,i)=>{try{t(await e(i))}catch(e){n(e)}}))}}const Dn={unknown:"Unknown error",cancelled:"Job was cancelled",timeout:"Timeout occurred",mediaUploadError:"Media upload error",mediaFetchError:"Media fetch error",tooManyAttachments:"Too many attachments",unsupportedEmailBodyContentType:"Unsupported email body content type",unsupportedEmailHistoryContentType:"Unsupported email history content type",transportDisconnected:"Transport has been disconnected",networkBecameUnreachable:"Network became unreachable",unauthorized:"Unauthorized",tokenExpired:"Token expired",tokenUpdatedLocally:"Transport disconnected, token updated locally and will be used at reconnect",tooManyRequests:"Request failed with 429 reply",hostnameUnverified:"Failed on ssl handshake: CERTIFICATE_VERIFY_FAILED",sslHandshakeError:"Failed on ssl handshake: UNAUTHORIZED",closeMessageReceived:"Twilsock received a close message from the server",cannotParse:"Error while parsing an incoming message"};class Bn extends Error{errorInfo;constructor(e){super(`${e}`),this.errorInfo=e,Object.freeze(e)}}An.CancellablePromise=qn,An.CancellationError=Fn,An.Deferred=class{promise;#a;#o;#c=!1;constructor(){this.promise=new Promise(((e,t)=>{this.#a=t=>{this.#c=!0,e(t)},this.#o=e=>{this.#c=!0,t(e)}}))}get resolve(){return this.#a}get reject(){return this.#o}get isDone(){return this.#c}},An.ErrorInfo=class{reason;message;status;code;description;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Dn[e];this.reason=e,this.message=t,this.status=n,this.code=i,this.description=r}toString(){return`${this.description} ${this.status}:${this.code} ${this.message}`}},An.Logger=class{#u;#l;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this.#u=t,this.#l=jn.getLogger(e)}setLevel(e){this.#l.setLevel(e)}trace(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.trace.apply(null,this.#d("T",t))}debug(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.debug.apply(null,this.#d("D",t))}info(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.info.apply(null,this.#d("I",t))}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.warn.apply(null,this.#d("W",t))}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];this.#l.error.apply(null,this.#d("E",t))}#d(e,t){return[`${(new Date).toISOString()} ${this.#u} ${e}:`,...t]}};var zn=An.TwilioError=Bn;An.deprecated=(e,t,n)=>(i,r,s)=>{if("function"!=typeof s.value&&void 0===s?.get)throw new Error("The deprecated decorator can only be applied to methods or getters");if("function"==typeof s.value){const i=s.value;return void(s.value=function(){Ln(`The method ${e} is deprecated${t?", use "+t+" instead":""}${n?", "+n:"."}`);for(var r=arguments.length,s=new Array(r),a=0;a<r;a++)s[a]=arguments[a];return i.apply(this,s)})}const a=s.get;s.get=function(){return Ln(`The getter ${e} is deprecated${t?", use "+t+" instead":""}${n?", "+n:"."}`),a?.apply(this)}},An.deprecationWarning=Ln;class Wn{localObject;pendingCorrelationId;pendingAction;rejectedWithError;retryCount;established;constructor(e){this.localObject=e,this.pendingCorrelationId=null,this.pendingAction=null,this.established=!1,this.retryCount=0}get sid(){return this.localObject.sid}get type(){return this.localObject.type}get lastEventId(){return this.localObject.lastEventId}get indexName(){return this.localObject.indexName}get queryString(){return this.localObject.queryString}get isEstablished(){return this.established}update(e,t){this.localObject._update(e,t)}updatePending(e,t){this.pendingAction=e,this.pendingCorrelationId=t}reset(){this.updatePending(null,null),this.retryCount=0,this.established=!1,this.setSubscriptionState("none")}markAsFailed(e){this.rejectedWithError=e.error,this.updatePending(null,null),this.localObject.reportFailure(new SyncError(`Failed to subscribe on service events: ${e.error.message}`,e.error.status,e.error.code))}complete(e){this.updatePending(null,null),this.established=!0,this.localObject._advanceLastEventId(e)}setSubscriptionState(e){this.localObject._setSubscriptionState(e)}}class Kn{services;subscriptions;persisted;latestPokeResponseArrivalTimestampByCorrelationId;backoff;isConnected=!1;maxBatchSize=100;subscriptionTtlTimer=null;pendingPokeReason=null;constructor(e){this.services=e,this.subscriptions=new Map,this.persisted=new Map,this.latestPokeResponseArrivalTimestampByCorrelationId=new Map;this.backoff=cn.Backoff.exponential(Object.assign({randomisationFactor:.2,initialDelay:100,maxDelay:12e4},this.services.config.backoffConfig)),this.backoff.on("ready",(()=>{let{action:e,subscriptions:t}=this.getSubscriptionUpdateBatch();e?this.applyNewSubscriptionUpdateBatch(e,t):(this.backoff.reset(),Rn("All subscriptions resolved."))}))}getSubscriptionUpdateBatch(){function e(e,t,n,i){let r=[];for(let[s,a]of e){if(!t.get(s)&&n!==a.pendingAction&&!a.rejectedWithError&&(r.push(a),i&&r.length>=i))break}return r}let t=e(this.subscriptions,this.persisted,"establish",this.maxBatchSize);if(t.length>0)return{action:"establish",subscriptions:t};let n=e(this.persisted,this.subscriptions,"cancel",this.maxBatchSize);return n.length>0?{action:"cancel",subscriptions:n}:{action:null,subscriptions:null}}persist(){this.backoff.backoff()}async applyNewSubscriptionUpdateBatch(e,t){if(!this.isConnected)return Rn("Twilsock connection (required for subscription) not ready; waiting…"),void this.backoff.reset();t=this.processLocalActions(e,t);const n=(new Date).getTime();for(const i of t)this.recordActionAttemptOn(i,e,n);let i=this.pendingPokeReason;this.pendingPokeReason=null;try{let r=await this.request(e,n,i,t),s=r.body.max_batch_size;if(!isNaN(parseInt(s))&&isFinite(s)&&s>0&&(this.maxBatchSize=s),!this.subscriptionTtlTimer){let e=r.body.ttl_in_s;!isNaN(parseFloat(e))&&isFinite(e)&&e>0&&(this.subscriptionTtlTimer=setTimeout((()=>this.onSubscriptionTtlElapsed()),1e3*e))}if("establish"===e){const e=r.body.estimated_delivery_in_ms;!isNaN(parseFloat(e))&&isFinite(e)&&e>0?setTimeout((()=>this.verifyPokeDelivery(n,e,t)),e):Pn(`Invalid timeout: ${e}`),t.filter((e=>e.pendingCorrelationId===n)).forEach((e=>e.setSubscriptionState("response_in_flight")))}this.backoff.reset()}catch(i){for(const n of t)this.recordActionFailureOn(n,e);i instanceof zn&&"transportDisconnected"===i.errorInfo.reason?(Rn(`Twilsock connection (required for subscription) not ready (c:${n}); waiting…`),this.backoff.reset()):(Rn(`Failed an attempt to ${e} subscriptions (c:${n}); retrying`,i),this.persist())}}verifyPokeDelivery(e,t,n){const i=this.latestPokeResponseArrivalTimestampByCorrelationId.get(e),r=i?(new Date).getTime()-i:t;if(r>=t)n.filter((t=>t.pendingCorrelationId===e)).forEach((e=>{e.updatePending(null,null),e.retryCount++,this.persisted.delete(e.sid)})),this.persist(),this.latestPokeResponseArrivalTimestampByCorrelationId.delete(e);else{setTimeout((()=>this.verifyPokeDelivery(e,t,n)),t-r)}}processLocalActions(e,t){return"cancel"===e?t.filter((e=>!e.rejectedWithError)):t}recordActionAttemptOn(e,t,n){if(e.setSubscriptionState("request_in_flight"),"establish"===t)this.persisted.set(e.sid,e),e.updatePending(t,n);else{let i=this.persisted.get(e.sid);i&&i.updatePending(t,n)}}recordActionFailureOn(e,t){e.setSubscriptionState("none"),e.updatePending(null,null),"establish"===t&&this.persisted.delete(e.sid)}request(e,t,n,i){let r=i.map((t=>({object_sid:t.sid,object_type:t.type,last_event_id:"establish"===e?t.lastEventId:void 0,index_name:"establish"===e?t.indexName:void 0,query_string:"establish"===e?t.queryString:void 0}))),s=i.filter((e=>e.retryCount>0)).length;Rn(`Attempting '${e}' request (c:${t}):`,r);const a={event_protocol_version:4,action:e,correlation_id:t,retried_requests:s,ttl_in_s:-1,requests:r};return"ttl"===n&&(a.reason=n),this.services.network.post(this.services.config.subscriptionsUri,a)}add(e,t){Rn(`Establishing intent to subscribe to ${e}`);const n=this.subscriptions.get(e);n&&t&&n.lastEventId===t.lastEventId||(this.persisted.delete(e),this.subscriptions.set(e,new Wn(t)),this.persist())}remove(e){Rn(`Establishing intent to unsubscribe from ${e}`);this.subscriptions.delete(e)&&this.persist()}acceptMessage(e,t){Cn("Subscriptions received",e);const n=e.event_type,i=void 0!==e.events?e.events:[e.event],r=e.correlation_id;r&&this.latestPokeResponseArrivalTimestampByCorrelationId.set(r,(new Date).getTime());for(const s of i){let i;switch(e.event_type){case"subscription_established":this.applySubscriptionEstablishedMessage(s,r);break;case"subscription_canceled":this.applySubscriptionCancelledMessage(s,r);break;case"subscription_failed":this.applySubscriptionFailedMessage(s,r);break;case(i=n.match(/^(?:map|list|document|stream|live_query)_/)||{}).input:{let r;switch(i[0]){case"map_":r=s.map_sid;break;case"list_":r=s.list_sid;break;case"document_":r=s.document_sid;break;case"stream_":r=s.stream_sid;break;case"live_query_":r=s.query_id,t=!1,!0===e.strictly_ordered&&(t=!0);break;default:r=void 0}this.applyEventToSubscribedEntity(r,s,n,t);break}default:Rn(`Dropping unknown message type ${n}`)}}}applySubscriptionEstablishedMessage(e,t){const n=e.object_sid;let i=this.persisted.get(e.object_sid);i&&i.pendingCorrelationId===t?"interrupted"===e.replay_status?(Rn(`Event Replay for subscription to ${n} (c:${t}) interrupted; continuing eagerly.`),i.updatePending(null,null),this.persisted.delete(i.sid),this.backoff.reset()):"completed"===e.replay_status&&(Rn(`Event Replay for subscription to ${n} (c:${t}) completed. Subscription is ready.`),i.complete(e.last_event_id),this.persisted.set(e.object_sid,i),i.setSubscriptionState("established"),this.backoff.reset()):Rn(`Late message for ${e.object_sid} (c:${t}) dropped.`),this.persist()}applySubscriptionCancelledMessage(e,t){let n=this.persisted.get(e.object_sid);n&&n.pendingCorrelationId===t?(n.updatePending(null,null),n.setSubscriptionState("none"),this.persisted.delete(e.object_sid)):Rn(`Late message for ${e.object_sid} (c:${t}) dropped.`),this.persist()}applySubscriptionFailedMessage(e,t){const n=e.object_sid;let i=this.subscriptions.get(n),r=this.persisted.get(n);i&&r?r.pendingCorrelationId===t&&(Pn(`Failed to subscribe on ${r.sid}`,e.error),r.markAsFailed(e),r.setSubscriptionState("none")):!i&&r&&(this.persisted.delete(n),r.setSubscriptionState("none")),this.persist()}applyEventToSubscribedEntity(e,t,n,i){if(!e)return;i=i||(()=>{let t=this.persisted.get(e);return t&&t.isEstablished})();let r=this.subscriptions.get(e);r?(t.type=n,r.update(t,i)):Rn(`Message dropped for SID '${e}', for which there is no subscription.`)}onConnectionStateChanged(e){this.isConnected=e,e&&this.poke("reconnect")}onSubscriptionTtlElapsed(){this.isConnected&&this.poke("ttl")}poke(e){Rn(`Triggering event replay for all subscriptions, reason=${e}`),this.pendingPokeReason=e,this.subscriptionTtlTimer&&(clearTimeout(this.subscriptionTtlTimer),this.subscriptionTtlTimer=null);let t=[];for(let e of this.persisted.values())e.reset(),e.rejectedWithError&&t.push(e);this.persisted.clear();for(let e of t)this.persisted.set(e.sid,e);this.persist()}shutdown(){this.backoff.reset(),this.subscriptions.clear()}}const Hn=un.customAlphabet("1234567890abcdef",32);function Vn(e,t){if(t?.message)return t.message;switch(e.statusCode){case 429:return"Throttled by server";case 404:return"Not found from server";default:return"Error from server"}}function Jn(e){return e?.code??0}function Gn(e,t){return 409===e.statusCode?new wn(Vn(e,t),e.statusCode,Jn(t),t):e.statusCode?new SyncError(Vn(e,t),e.statusCode,Jn(t)):e instanceof zn&&"transportDisconnected"===e.errorInfo.reason?e:new SyncError(t?.message??e.message??"Unexpected error",0,0)}class Qn{clientInfo;config;transport;pendingRequests;isShutdownInitiated=!1;constructor(e,t,n){this.clientInfo=e,this.config=t,this.transport=n,this.pendingRequests=new Set}createHeaders(){return{"Content-Type":"application/json","Twilio-Sync-Client-Info":JSON.stringify(this.clientInfo),"Twilio-Request-Id":`RQ${Hn()}`}}backoffConfig(){return Object.assign({min:4e3,max:6e4,maxAttemptsTime:9e4,randomness:.2},this.config.backoffConfig)}executeWithRetry(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise(((n,i)=>{let r=[502,503,504];t&&r.push(429);let s=new cn.Retrier(this.backoffConfig());s.on("attempt",(()=>{e().then((e=>{if(!(e.statusCode>=400))return void s.succeeded(e);let t={};try{t=JSON.parse(e.payload)}catch{}if(r.includes(e.statusCode)){let n=parseInt(e.headers?e.headers["Retry-After"]:null);s.failed(Gn(e,t),isNaN(n)?null:1e3*n)}else"Twilsock disconnected"===t.message?s.failed(Gn(e,t)):(s.removeAllListeners(),s.cancel(),i(Gn(e,t)))})).catch((e=>{s.removeAllListeners(),s.cancel(),i(Gn(e,null))}))})),s.on("succeeded",(e=>{n(e)})),s.on("cancelled",(e=>i(Gn(e,null)))),s.on("failed",(e=>i(Gn(e,null)))),s.start()}))}responsePostProcess(e){let t={};try{t=JSON.parse(e.payload)}catch{}return{status:{code:e.statusCode,status:e.status},headers:e.headers,body:t}}get(e){if(this.isShutdownInitiated)throw new Error("Client has been shut down.");let t=this.createHeaders();Rn("GET",e,"ID:",t["Twilio-Request-Id"]);const n=this.executeWithRetry((()=>this.transport.sendRequest(new an.HttpRequest({url:e,headers:t,grant:this.config.productId}))),!0);return this.pendingRequests.add(n),n.then((e=>(this.pendingRequests.delete(n),this.responsePostProcess(e))))}post(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(this.isShutdownInitiated)throw new Error("Client has been shut down.");let r=this.createHeaders();null!=n&&(r["If-Match"]=n),Rn("POST",e,"ID:",r["Twilio-Request-Id"]);const s=this.executeWithRetry((()=>this.transport.sendRequest(new an.HttpRequest({method:"POST",url:e,headers:r,payload:t,grant:this.config.productId}))),i);return this.pendingRequests.add(s),s.then((e=>(this.pendingRequests.delete(s),this.responsePostProcess(e))))}put(e,t,n){if(this.isShutdownInitiated)throw new Error("Client has been shut down.");let i=this.createHeaders();null!=n&&(i["If-Match"]=n),Rn("PUT",e,"ID:",i["Twilio-Request-Id"]);const r=this.executeWithRetry((()=>this.transport.sendRequest(new an.HttpRequest({method:"PUT",url:e,headers:i,payload:t,grant:this.config.productId}))),!1);return this.pendingRequests.add(r),r.then((e=>(this.pendingRequests.delete(r),this.responsePostProcess(e))))}delete(e){if(this.isShutdownInitiated)throw new Error("Client has been shut down.");let t=this.createHeaders();Rn("DELETE",e,"ID:",t["Twilio-Request-Id"]);const n=this.executeWithRetry((()=>this.transport.sendRequest(new an.HttpRequest({method:"DELETE",url:e,headers:t,grant:this.config.productId}))),!1);return this.pendingRequests.add(n),n.then((e=>(this.pendingRequests.delete(n),this.responsePostProcess(e))))}async disconnect(){this.isShutdownInitiated=!0;try{await Promise.all([...this.pendingRequests])}catch{}await this.transport.disconnect()}}class Xn{config;storage;storageId;constructor(e,t){this.config=e,this.storageId=null;try{this.storage=t||sessionStorage}catch(e){}}storageKey(e,t){return`${this.storageId}::${e}::${t}`}get isReady(){return this.config.sessionStorageEnabled&&!!this.storageId}updateStorageId(e){this.storageId=e}store(e,t,n){return this.isReady?this._store(this.storageKey(e,t),n):null}read(e,t){return this.isReady?this._read(this.storageKey(e,t)):null}remove(e,t,n){if(!this.isReady)return null;try{this.storage.removeItem(this.storageKey(e,t)),n&&this.storage.removeItem(this.storageKey(e,n))}catch(e){}}update(e,t,n,i){if(!this.isReady)return null;this._apply(this.storageKey(e,t),i),n&&this._apply(this.storageKey(e,n),i)}_store(e,t){try{this.storage.setItem(e,JSON.stringify(t))}catch(e){}}_read(e){try{let t=this.storage.getItem(e);if(t)return JSON.parse(t)}catch(e){}return null}_apply(e,t){let n=this._read(e);if(!n)return!1;this._store(e,Object.assign(n,t))}}class Zn{services;removalHandler;subscriptionState;_attachedListeners;constructor(e,t){this.services=e,this.removalHandler=t,this.subscriptionState="none",this._attachedListeners=new Map}_advanceLastEventId(e,t){}reportFailure(e){404===e.status?this.onRemoved(!1):this.broadcastEventToListeners("failure",e)}_subscribe(){this.services.router._subscribe(this.sid,this)}_unsubscribe(){this.services.router._unsubscribe(this.sid)}_setSubscriptionState(e){this.subscriptionState=e,this.broadcastEventToListeners("_subscriptionStateChanged",e)}close(){this._unsubscribe(),null!=this.removalHandler&&this.removalHandler(this.type,this.sid,this.uniqueName)}attach(e){const t=e.listenerUuid;this._attachedListeners.get(t)||(this._attachedListeners.size||this._subscribe(),this._attachedListeners.set(t,e))}detach(e){this._attachedListeners.delete(e),this._attachedListeners.size||this.close()}broadcastEventToListeners(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];for(let t of this._attachedListeners.values())t.emit(e,...n)}}class Yn{queuedRequests=[];inputMergingFunction;isRequestInFlight=!1;constructor(e){this.inputMergingFunction=e}add(e,t){let n=new Promise(((n,i)=>this.queuedRequests.push({input:e,requestFunction:t,resolve:n,reject:i})));return this.wakeupQueue(),n}squashAndAdd(e,t){let n,i=this.queuedRequests;this.queuedRequests=[],i.length>0?(n=i.map((e=>e.input)).reduce(this.inputMergingFunction),n=this.inputMergingFunction(n,e)):n=e;let r=this.add(n,t);return i.forEach((e=>r.then(e.resolve,e.reject))),r}isEmpty(){return 0===this.queuedRequests.length&&!this.isRequestInFlight}wakeupQueue(){if(0!==this.queuedRequests.length&&!this.isRequestInFlight){let e=this.queuedRequests.shift();this.isRequestInFlight=!0,e.requestFunction(e.input).then(e.resolve,e.reject).then((e=>{this.isRequestInFlight=!1,this.wakeupQueue()}))}}}class ei{inputReducer;queueByNamespaceKey=new Map;constructor(e){this.inputReducer=e}async add(e,t,n){return this.invokeQueueMethod(e,(e=>e.add(t,n)))}async squashAndAdd(e,t,n){return this.invokeQueueMethod(e,(e=>e.squashAndAdd(t,n)))}async invokeQueueMethod(e,t){this.queueByNamespaceKey.has(e)||this.queueByNamespaceKey.set(e,new Yn(this.inputReducer));const n=t(this.queueByNamespaceKey.get(e));return this.queueByNamespaceKey.get(e).isEmpty()&&this.queueByNamespaceKey.delete(e),n}}class ti extends ln.ReplayEventEmitter{uuid;closed;constructor(){super(),this.closed=!1,this.uuid=un.nanoid()}get listenerUuid(){return this.uuid}close(){this.removeAllListeners(),this.closed=!0}ensureNotClosed(){if(this.closed)throw new Error("Invalid operation on closed object")}}class ni extends Zn{updateMergingQueue;descriptor;isDeleted=!1;constructor(e,t,n){super(e,n);this.updateMergingQueue=new Yn(((e,t)=>"number"==typeof t.ttl?{ttl:t.ttl}:e)),this.descriptor=t,this.descriptor.data=this.descriptor.data||{},this.descriptor.date_updated=new Date(this.descriptor.date_updated)}get uri(){return this.descriptor.url}get revision(){return this.descriptor.revision}get lastEventId(){return this.descriptor.last_event_id}get dateExpires(){return this.descriptor.date_expires}static get type(){return"document"}get type(){return"document"}get indexName(){}get queryString(){}get sid(){return this.descriptor.sid}get data(){return this.descriptor.data}get dateUpdated(){return this.descriptor.date_updated}get uniqueName(){return this.descriptor.unique_name||null}_update(e){switch(e.date_created=new Date(e.date_created),e.type){case"document_updated":if(e.id<=this.lastEventId){Cn("Document update skipped, current:",this.lastEventId,", remote:",e.id);break}const t=void 0!==this.descriptor.data?xn(this.descriptor.data):null;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.broadcastEventToListeners("updated",{data:e.document_data,isLocal:!1,previousData:t}),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});break;case"document_removed":this.onRemoved(!1)}}async set(e,t){const n=t||{};return this.updateMergingQueue.squashAndAdd(n,(t=>this._setUnconditionally(e,t.ttl)))}async mutate(e,t){const n=t||{};return this.updateMergingQueue.add(n,(t=>this._setWithIfMatch(e,t.ttl)))}async update(e,t){return this.mutate((t=>Object.assign(t,e)),t)}async setTtl(e){const t=await this._postUpdateToServer({ttl:e});this.descriptor.date_expires=t.date_expires}async _setUnconditionally(e,t){let n=await this._postUpdateToServer({data:e,revision:void 0,ttl:t});return this._handleSuccessfulUpdateResult(n),this.descriptor.data}async _setWithIfMatch(e,t){let n=e(xn(this.descriptor.data));if(!n)return this.descriptor.data;{let i=this.revision;try{let e=await this._postUpdateToServer({data:n,revision:i,ttl:t});return this._handleSuccessfulUpdateResult(e),this.descriptor.data}catch(t){if(412===t.status)return await this._softSync(),this._setWithIfMatch(e);throw t}}}_handleSuccessfulUpdateResult(e){if(e.last_event_id<=this.descriptor.last_event_id)return;const t=void 0!==this.descriptor.data?xn(this.descriptor.data):null;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.broadcastEventToListeners("updated",{data:this.descriptor.data,isLocal:!0,previousData:t})}async _postUpdateToServer(e){if(this.isDeleted)return Promise.reject(new SyncError("The Document has been removed",404,54100));{const t={data:e.data};void 0!==e.ttl&&(t.ttl=e.ttl);const n=e.revision;try{const i=await this.services.network.post(this.uri,t,n);return{revision:i.body.revision,data:e.data,last_event_id:i.body.last_event_id,date_updated:i.body.date_updated,date_expires:i.body.date_expires}}catch(e){throw 404===e.status&&this.onRemoved(!1),e}}}async _softSync(){return this.services.network.get(this.uri).then((e=>{const 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 this._update(t),this})).catch((e=>{404===e.status?this.onRemoved(!1):Pn(`Can't get updates for ${this.sid}:`,e)}))}onRemoved(e){if(this.isDeleted)return;const t=void 0!==this.descriptor.data?xn(this.descriptor.data):null;this.isDeleted=!0,this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e,previousData:t})}async removeDocument(){if(this.isDeleted)return Promise.reject(new SyncError("The Document has been removed",404,54100));await this.services.network.delete(this.uri),this.onRemoved(!0)}}class ii extends ti{syncDocumentImpl;get uri(){return this.syncDocumentImpl.uri}get revision(){return this.syncDocumentImpl.revision}get lastEventId(){return this.syncDocumentImpl.lastEventId}get dateExpires(){return this.syncDocumentImpl.dateExpires}static get type(){return ni.type}get type(){return ni.type}get sid(){return this.syncDocumentImpl.sid}get data(){return this.syncDocumentImpl.data}get dateUpdated(){return this.syncDocumentImpl.dateUpdated}get uniqueName(){return this.syncDocumentImpl.uniqueName}constructor(e){super(),this.syncDocumentImpl=e,this.syncDocumentImpl.attach(this)}static removed="removed";static updated="updated";async set(e,t){return this.ensureNotClosed(),this.syncDocumentImpl.set(e,t)}async mutate(e,t){return this.ensureNotClosed(),this.syncDocumentImpl.mutate(e,t)}async update(e,t){return this.ensureNotClosed(),this.syncDocumentImpl.update(e,t)}async setTtl(e){return this.ensureNotClosed(),this.syncDocumentImpl.setTtl(e)}async removeDocument(){return this.ensureNotClosed(),this.syncDocumentImpl.removeDocument()}close(){super.close(),this.syncDocumentImpl.detach(this.listenerUuid)}}vn([sn.validateTypesAsync(sn.pureObject,["undefined",sn.objectSchema("document metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Object,Object]),bn("design:returntype",Promise)],ii.prototype,"set",null),vn([sn.validateTypesAsync("function",["undefined",sn.objectSchema("document metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Function,Object]),bn("design:returntype",Promise)],ii.prototype,"mutate",null),vn([sn.validateTypesAsync(sn.pureObject,["undefined",sn.objectSchema("document metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Object,Object]),bn("design:returntype",Promise)],ii.prototype,"update",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number]),bn("design:returntype",Promise)],ii.prototype,"setTtl",null);class ri{descriptor;constructor(e){this.descriptor=e}get url(){return this.descriptor.url}get revision(){return this.descriptor.revision}get lastEventId(){return this.descriptor.lastEventId}get dateUpdated(){return this.descriptor.dateUpdated}get dateExpires(){return this.descriptor.dateExpires}get index(){return this.descriptor.index}get data(){return this.descriptor.data}get cacheKey(){return this.index}update(e,t,n,i){return this.descriptor.lastEventId=e,this.descriptor.revision=t,this.descriptor.data=n,this.descriptor.dateUpdated=i,this}updateDateExpires(e){this.descriptor.dateExpires=e}}class Paginator{prevPageItemId;nextPageItemId;source;items;constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.items=e,this.source=t,this.prevPageItemId=n,this.nextPageItemId=i}async nextPage(){if(!this.hasNextPage)throw new Error("No next page");return this.source({nextPageItemId:this.nextPageItemId})}async prevPage(){if(!this.hasPrevPage)throw new Error("No previous page");return this.source({prevPageItemId:this.prevPageItemId})}get hasNextPage(){return null!==this.nextPageItemId}get hasPrevPage(){return null!==this.prevPageItemId}}class si{parent;left;right;balanceFactor;key;value;constructor(e,t){this.balanceFactor=0,this.key=e,this.value=t,this.parent=null,this.left=null,this.right=null}get isRoot(){return null===this.parent}get isLeaf(){return null===this.left&&null===this.right}get isLeftChild(){return this.parent.left===this}update(e){this.value=e}replace(e,t){e&&(this.left===t?this.left=t:this.right===t&&(this.right=t))}}class ai{isLessThan;isEqual;root;count;constructor(e,t){this.isLessThan=e||((e,t)=>e<t),this.isEqual=t||((e,t)=>e===t),this.root=null,this.count=null}get size(){return this.count}clear(){this.root=null,this.count=0}set(e,t){let n=this.getNode(e);n?n.update(t):this.insert(e,t)}insert(e,t){let n=new si(e,t);if(this.count++,!this.root)return void(this.root=n);let i=this.root;for(;;)if(this.isLessThan(e,i.key)){if(!i.left){i.left=n;break}i=i.left}else{if(!i.right){i.right=n;break}i=i.right}for(n.parent=i,i=n;i.parent;){let e=i.parent,t=e.balanceFactor;if(i.isLeftChild?e.balanceFactor++:e.balanceFactor--,Math.abs(e.balanceFactor)<Math.abs(t))break;if(e.balanceFactor<-1||e.balanceFactor>1){this.rebalance(e);break}i=e}}get(e){let t=this.root;for(;t;){if(this.isEqual(e,t.key))return t.value;t=this.isLessThan(e,t.key)?t.left:t.right}return null}delete(e){let t=this.getNode(e);if(!t||t.key!==e)return null;let n=t.parent,i=t.left,r=t.right;if(!!i!=!!r){let e=i||r;n||e?n&&!e?this.root=e:(n.replace(t,null),this.rebalance(n)):this.root=null}else{let e=t.left;for(;e.right;)e=e.right;if(t.left===e)t.isRoot?(this.root=e,e.parent=null):(t.isLeftChild?t.parent.left=e:t.parent.right=e,e.parent=t.parent),e.right=t.right,e.right.parent=e,e.balanceFactor=t.balanceFactor,t={parent:e,isLeftChild:!0};else{let n=e.parent,i=e.left;n.right=i,i&&(i.parent=n),t.isRoot?(this.root=e,e.parent=null):(t.isLeftChild?t.parent.left=e:t.parent.right=e,e.parent=t.parent),e.right=t.right,e.right.parent=e,e.left=t.left,e.left.parent=e,e.balanceFactor=t.balanceFactor,t={parent:n,isLeftChild:!1}}}for(this.count--;t.parent;){let e=t.parent,n=e.balanceFactor;if(t.isLeftChild?e.balanceFactor-=1:e.balanceFactor+=1,Math.abs(e.balanceFactor)>Math.abs(n)){if(!(e.balanceFactor<-1||e.balanceFactor>1))break;if(this.rebalance(e),0!==e.parent.balanceFactor)break;t=e.parent}else t=e}return null}getNode(e){let t=this.root;for(;t;){if(this.isEqual(e,t.key))return t;t=this.isLessThan(e,t.key)?t.left:t.right}return null}rebalance(e){e.balanceFactor<0?e.right.balanceFactor>0?(this.rotateRight(e.right),this.rotateLeft(e)):this.rotateLeft(e):e.balanceFactor>0&&(e.left.balanceFactor<0?(this.rotateLeft(e.left),this.rotateRight(e)):this.rotateRight(e))}rotateLeft(e){let t=e.right;e.right=t.left,null!==t.left&&(t.left.parent=e),t.parent=e.parent,null===t.parent?this.root=t:e.isLeftChild?t.parent.left=t:t.parent.right=t,t.left=e,e.parent=t,e.balanceFactor=e.balanceFactor+1-Math.min(t.balanceFactor,0),t.balanceFactor=t.balanceFactor+1-Math.max(e.balanceFactor,0)}rotateRight(e){let t=e.left;e.left=t.right,null!==t.right&&(t.right.parent=e),t.parent=e.parent,null===t.parent?this.root=t:e.isLeftChild?t.parent.left=t:t.parent.right=t,t.right=e,e.parent=t,e.balanceFactor=e.balanceFactor-1-Math.min(t.balanceFactor,0),t.balanceFactor=t.balanceFactor-1-Math.max(e.balanceFactor,0)}*[Symbol.iterator](){for(let e of this.getIterator())yield e}getIterator(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return function*(){let n=e.root;for(;n&&!e.isEqual(t,n.key)&&(null!==t||n.left);)n=e.isLessThan(t,n.key)||null===t?n.left:n.right;if(!n)return null;let i=!0;for(;;)if(i)if(yield[n.key,n.value],i=!1,n.right){for(n=n.right;n.left;)n=n.left;i=!0}else{if(!n.parent)break;i=n.parent.left===n,n=n.parent}else{if(!n.parent)break;i=n.parent.left===n,n=n.parent}return null}()}getReverseIterator(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return function*(){let n=e.root;for(;n&&!e.isEqual(t,n.key)&&(null!==t||n.right);)n=e.isLessThan(t,n.key)&&null!==t?n.left:n.right;if(!n)return null;let i=!0;for(;;)if(i)if(yield[n.key,n.value],i=!1,n.left){for(n=n.left;n.right;)n=n.right;i=!0}else{if(!n.parent)break;i=n.parent.right===n,n=n.parent}else{if(!n.parent)break;i=n.parent.right===n,n=n.parent}return null}()}}class oi{_data;lastEventId;isLeftBound;isRightBound;constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this._data=e,this.lastEventId=t||0,this.isLeftBound=n,this.isRightBound=i}get isValid(){return!0}get value(){return this._data}}class ci{lastEventId;isLeftBound;isRightBound;constructor(e){this.lastEventId=e,this.isLeftBound=!1,this.isRightBound=!1}get isValid(){return!1}get value(){return null}}class ui{items=new ai;beginKey=null;endKey=null;constructor(){this.items.clear()}get size(){return this.items.size}get collectionBegin(){return this.beginKey}get collectionEnd(){return this.endKey}has(e){let t=this.items.get(e);return t?.isValid??!1}exists(e){return!!this.items.get(e)}getValue(e){let t=this.items.get(e);return t?.value??null}get(e){return this.items.get(e)}getNextItem(e,t,n){return null===e?this.getFirstItem(t):n?this.getValue(e):this.getAdjacentItem(e,t)}getFirstItem(e){const t="asc"===e?this.beginKey:this.endKey;if(this.exists(t)){const n=this.items.get(t);return n.isValid?n.value:this.getAdjacentItem(t,e)}return null}getAdjacentItem(e,t){const n="asc"===t?this.items.getIterator(e):this.items.getReverseIterator(e);for(const[e,i]of n){if("asc"===t?i.isRightBound:i.isLeftBound)break;if(i.isValid)return i.value}return null}store(e,t,n){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=this.items.get(e);return s&&s.lastEventId>n?s.value:(this.items.set(e,new oi(t,n,s?s.isLeftBound&&i:i,s?s.isRightBound&&r:r)),null!==this.beginKey&&e<this.beginKey&&(this.beginKey=e),null!==this.endKey&&this.endKey<e&&(this.endKey=e),t)}populate(e,t,n){if(!e.length)return;const i=[...e];if(i.sort(((e,t)=>e.cacheKey===t.cacheKey?0:e.cacheKey>t.cacheKey?1:-1)),i.forEach(((e,t)=>{this.store(e.cacheKey,e,e.lastEventId,0===t,t===i.length-1)})),t){const e=i[0].cacheKey;(!this.beginKey||e<this.beginKey)&&(this.beginKey=e)}if(n){const e=i[i.length-1].cacheKey;(!this.endKey||this.endKey<e)&&(this.endKey=e)}}delete(e,t){let n=this.items.get(e);(null===n||null===t||n.lastEventId<t)&&this.items.set(e,new ci(t))}isKnown(e,t){let n=this.items.get(e);return n&&(n.lastEventId??-1)>=t}*getIterator(e){if(null===e&&null!==this.beginKey&&(e=this.beginKey),null!==e)for(let[t,n]of this.items.getIterator(e))if(n.isValid&&(yield n,n.isRightBound))break}*getReverseIterator(e){if(null===e&&null!==this.endKey&&(e=this.endKey),null!==e)for(let[t,n]of this.items.getReverseIterator(e))if(n.isValid&&(yield n,n.isLeftBound))break}forEach(e){if(this.items)for(let[t,n]of this.items)n.isValid&&e(t,n.value)}}var li={exports:{}};!function(e,t){(function(){var n,i="Expected a function",r="__lodash_hash_undefined__",s="__lodash_placeholder__",a=16,o=32,c=64,u=128,l=256,d=1/0,h=9007199254740991,p=NaN,f=4294967295,m=[["ary",u],["bind",1],["bindKey",2],["curry",8],["curryRight",a],["flip",512],["partial",o],["partialRight",c],["rearg",l]],g="[object Arguments]",y="[object Array]",v="[object Boolean]",b="[object Date]",_="[object Error]",w="[object Function]",x="[object GeneratorFunction]",S="[object Map]",k="[object Number]",E="[object Object]",T="[object Promise]",I="[object RegExp]",C="[object Set]",R="[object String]",P="[object Symbol]",M="[object WeakMap]",O="[object ArrayBuffer]",A="[object DataView]",j="[object Float32Array]",$="[object Float64Array]",N="[object Int8Array]",U="[object Int16Array]",L="[object Int32Array]",F="[object Uint8Array]",q="[object Uint8ClampedArray]",D="[object Uint16Array]",B="[object Uint32Array]",z=/\b__p \+= '';/g,W=/\b(__p \+=) '' \+/g,K=/(__e\(.*?\)|\b__t\)) \+\n'';/g,H=/&(?:amp|lt|gt|quot|#39);/g,V=/[&<>"']/g,J=RegExp(H.source),G=RegExp(V.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,Z=/<%=([\s\S]+?)%>/g,Y=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ee=/^\w*$/,te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ne=/[\\^$.*+?()[\]{}|]/g,ie=RegExp(ne.source),re=/^\s+/,se=/\s/,ae=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,oe=/\{\n\/\* \[wrapped with (.+)\] \*/,ce=/,? & /,ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,le=/[()=,{}\[\]\/\s]/,de=/\\(\\)?/g,he=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,fe=/^[-+]0x[0-9a-f]+$/i,me=/^0b[01]+$/i,ge=/^\[object .+?Constructor\]$/,ye=/^0o[0-7]+$/i,ve=/^(?:0|[1-9]\d*)$/,be=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_e=/($^)/,we=/['\n\r\u2028\u2029\\]/g,xe="\\ud800-\\udfff",Se="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ke="\\u2700-\\u27bf",Ee="a-z\\xdf-\\xf6\\xf8-\\xff",Te="A-Z\\xc0-\\xd6\\xd8-\\xde",Ie="\\ufe0e\\ufe0f",Ce="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Re="['’]",Pe="["+xe+"]",Me="["+Ce+"]",Oe="["+Se+"]",Ae="\\d+",je="["+ke+"]",$e="["+Ee+"]",Ne="[^"+xe+Ce+Ae+ke+Ee+Te+"]",Ue="\\ud83c[\\udffb-\\udfff]",Le="[^"+xe+"]",Fe="(?:\\ud83c[\\udde6-\\uddff]){2}",qe="[\\ud800-\\udbff][\\udc00-\\udfff]",De="["+Te+"]",Be="\\u200d",ze="(?:"+$e+"|"+Ne+")",We="(?:"+De+"|"+Ne+")",Ke="(?:['’](?:d|ll|m|re|s|t|ve))?",He="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ve="(?:"+Oe+"|"+Ue+")"+"?",Je="["+Ie+"]?",Ge=Je+Ve+("(?:"+Be+"(?:"+[Le,Fe,qe].join("|")+")"+Je+Ve+")*"),Qe="(?:"+[je,Fe,qe].join("|")+")"+Ge,Xe="(?:"+[Le+Oe+"?",Oe,Fe,qe,Pe].join("|")+")",Ze=RegExp(Re,"g"),Ye=RegExp(Oe,"g"),et=RegExp(Ue+"(?="+Ue+")|"+Xe+Ge,"g"),tt=RegExp([De+"?"+$e+"+"+Ke+"(?="+[Me,De,"$"].join("|")+")",We+"+"+He+"(?="+[Me,De+ze,"$"].join("|")+")",De+"?"+ze+"+"+Ke,De+"+"+He,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ae,Qe].join("|"),"g"),nt=RegExp("["+Be+xe+Se+Ie+"]"),it=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,rt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],st=-1,at={};at[j]=at[$]=at[N]=at[U]=at[L]=at[F]=at[q]=at[D]=at[B]=!0,at[g]=at[y]=at[O]=at[v]=at[A]=at[b]=at[_]=at[w]=at[S]=at[k]=at[E]=at[I]=at[C]=at[R]=at[M]=!1;var ot={};ot[g]=ot[y]=ot[O]=ot[A]=ot[v]=ot[b]=ot[j]=ot[$]=ot[N]=ot[U]=ot[L]=ot[S]=ot[k]=ot[E]=ot[I]=ot[C]=ot[R]=ot[P]=ot[F]=ot[q]=ot[D]=ot[B]=!0,ot[_]=ot[w]=ot[M]=!1;var ct={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ut=parseFloat,lt=parseInt,dt="object"==typeof On&&On&&On.Object===Object&&On,ht="object"==typeof self&&self&&self.Object===Object&&self,pt=dt||ht||Function("return this")(),ft=t&&!t.nodeType&&t,mt=ft&&e&&!e.nodeType&&e,gt=mt&&mt.exports===ft,yt=gt&&dt.process,vt=function(){try{var e=mt&&mt.require&&mt.require("util").types;return e||yt&&yt.binding&&yt.binding("util")}catch(e){}}(),bt=vt&&vt.isArrayBuffer,_t=vt&&vt.isDate,wt=vt&&vt.isMap,xt=vt&&vt.isRegExp,St=vt&&vt.isSet,kt=vt&&vt.isTypedArray;function Et(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Tt(e,t,n,i){for(var r=-1,s=null==e?0:e.length;++r<s;){var a=e[r];t(i,a,n(a),e)}return i}function It(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function Ct(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function Rt(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function Pt(e,t){for(var n=-1,i=null==e?0:e.length,r=0,s=[];++n<i;){var a=e[n];t(a,n,e)&&(s[r++]=a)}return s}function Mt(e,t){return!!(null==e?0:e.length)&&Dt(e,t,0)>-1}function Ot(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function At(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function jt(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function $t(e,t,n,i){var r=-1,s=null==e?0:e.length;for(i&&s&&(n=e[++r]);++r<s;)n=t(n,e[r],r,e);return n}function Nt(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function Ut(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}var Lt=Kt("length");function Ft(e,t,n){var i;return n(e,(function(e,n,r){if(t(e,n,r))return i=n,!1})),i}function qt(e,t,n,i){for(var r=e.length,s=n+(i?1:-1);i?s--:++s<r;)if(t(e[s],s,e))return s;return-1}function Dt(e,t,n){return t==t?function(e,t,n){var i=n-1,r=e.length;for(;++i<r;)if(e[i]===t)return i;return-1}(e,t,n):qt(e,zt,n)}function Bt(e,t,n,i){for(var r=n-1,s=e.length;++r<s;)if(i(e[r],t))return r;return-1}function zt(e){return e!=e}function Wt(e,t){var n=null==e?0:e.length;return n?Jt(e,t)/n:p}function Kt(e){return function(t){return null==t?n:t[e]}}function Ht(e){return function(t){return null==e?n:e[t]}}function Vt(e,t,n,i,r){return r(e,(function(e,r,s){n=i?(i=!1,e):t(n,e,r,s)})),n}function Jt(e,t){for(var i,r=-1,s=e.length;++r<s;){var a=t(e[r]);a!==n&&(i=i===n?a:i+a)}return i}function Gt(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function Qt(e){return e?e.slice(0,fn(e)+1).replace(re,""):e}function Xt(e){return function(t){return e(t)}}function Zt(e,t){return At(t,(function(t){return e[t]}))}function Yt(e,t){return e.has(t)}function en(e,t){for(var n=-1,i=e.length;++n<i&&Dt(t,e[n],0)>-1;);return n}function tn(e,t){for(var n=e.length;n--&&Dt(t,e[n],0)>-1;);return n}var nn=Ht({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),rn=Ht({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function sn(e){return"\\"+ct[e]}function an(e){return nt.test(e)}function on(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function cn(e,t){return function(n){return e(t(n))}}function un(e,t){for(var n=-1,i=e.length,r=0,a=[];++n<i;){var o=e[n];o!==t&&o!==s||(e[n]=s,a[r++]=n)}return a}function ln(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function dn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function hn(e){return an(e)?function(e){var t=et.lastIndex=0;for(;et.test(e);)++t;return t}(e):Lt(e)}function pn(e){return an(e)?function(e){return e.match(et)||[]}(e):function(e){return e.split("")}(e)}function fn(e){for(var t=e.length;t--&&se.test(e.charAt(t)););return t}var mn=Ht({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});var gn=function e(t){var se,xe=(t=null==t?pt:gn.defaults(pt.Object(),t,gn.pick(pt,rt))).Array,Se=t.Date,ke=t.Error,Ee=t.Function,Te=t.Math,Ie=t.Object,Ce=t.RegExp,Re=t.String,Pe=t.TypeError,Me=xe.prototype,Oe=Ee.prototype,Ae=Ie.prototype,je=t["__core-js_shared__"],$e=Oe.toString,Ne=Ae.hasOwnProperty,Ue=0,Le=(se=/[^.]+$/.exec(je&&je.keys&&je.keys.IE_PROTO||""))?"Symbol(src)_1."+se:"",Fe=Ae.toString,qe=$e.call(Ie),De=pt._,Be=Ce("^"+$e.call(Ne).replace(ne,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ze=gt?t.Buffer:n,We=t.Symbol,Ke=t.Uint8Array,He=ze?ze.allocUnsafe:n,Ve=cn(Ie.getPrototypeOf,Ie),Je=Ie.create,Ge=Ae.propertyIsEnumerable,Qe=Me.splice,Xe=We?We.isConcatSpreadable:n,et=We?We.iterator:n,nt=We?We.toStringTag:n,ct=function(){try{var e=hs(Ie,"defineProperty");return e({},"",{}),e}catch(e){}}(),dt=t.clearTimeout!==pt.clearTimeout&&t.clearTimeout,ht=Se&&Se.now!==pt.Date.now&&Se.now,ft=t.setTimeout!==pt.setTimeout&&t.setTimeout,mt=Te.ceil,yt=Te.floor,vt=Ie.getOwnPropertySymbols,Lt=ze?ze.isBuffer:n,Ht=t.isFinite,yn=Me.join,vn=cn(Ie.keys,Ie),bn=Te.max,_n=Te.min,wn=Se.now,xn=t.parseInt,Sn=Te.random,kn=Me.reverse,En=hs(t,"DataView"),Tn=hs(t,"Map"),In=hs(t,"Promise"),Cn=hs(t,"Set"),Rn=hs(t,"WeakMap"),Pn=hs(Ie,"create"),Mn=Rn&&new Rn,On={},An=Ls(En),jn=Ls(Tn),$n=Ls(In),Nn=Ls(Cn),Un=Ls(Rn),Ln=We?We.prototype:n,Fn=Ln?Ln.valueOf:n,qn=Ln?Ln.toString:n;function Dn(e){if(to(e)&&!Wa(e)&&!(e instanceof Kn)){if(e instanceof Wn)return e;if(Ne.call(e,"__wrapped__"))return Fs(e)}return new Wn(e)}var Bn=function(){function e(){}return function(t){if(!eo(t))return{};if(Je)return Je(t);e.prototype=t;var i=new e;return e.prototype=n,i}}();function zn(){}function Wn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=n}function Kn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=f,this.__views__=[]}function Hn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Vn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Jn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Gn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Jn;++t<n;)this.add(e[t])}function Qn(e){var t=this.__data__=new Vn(e);this.size=t.size}function Xn(e,t){var n=Wa(e),i=!n&&za(e),r=!n&&!i&&Ja(e),s=!n&&!i&&!r&&uo(e),a=n||i||r||s,o=a?Gt(e.length,Re):[],c=o.length;for(var u in e)!t&&!Ne.call(e,u)||a&&("length"==u||r&&("offset"==u||"parent"==u)||s&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||bs(u,c))||o.push(u);return o}function Zn(e){var t=e.length;return t?e[Gi(0,t-1)]:n}function Yn(e,t){return $s(Pr(e),ci(t,0,e.length))}function ei(e){return $s(Pr(e))}function ti(e,t,i){(i!==n&&!qa(e[t],i)||i===n&&!(t in e))&&ai(e,t,i)}function ni(e,t,i){var r=e[t];Ne.call(e,t)&&qa(r,i)&&(i!==n||t in e)||ai(e,t,i)}function ii(e,t){for(var n=e.length;n--;)if(qa(e[n][0],t))return n;return-1}function ri(e,t,n,i){return pi(e,(function(e,r,s){t(i,e,n(e),s)})),i}function si(e,t){return e&&Mr(t,Oo(t),e)}function ai(e,t,n){"__proto__"==t&&ct?ct(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function oi(e,t){for(var i=-1,r=t.length,s=xe(r),a=null==e;++i<r;)s[i]=a?n:Io(e,t[i]);return s}function ci(e,t,i){return e==e&&(i!==n&&(e=e<=i?e:i),t!==n&&(e=e>=t?e:t)),e}function ui(e,t,i,r,s,a){var o,c=1&t,u=2&t,l=4&t;if(i&&(o=s?i(e,r,s,a):i(e)),o!==n)return o;if(!eo(e))return e;var d=Wa(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Ne.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!c)return Pr(e,o)}else{var h=ms(e),p=h==w||h==x;if(Ja(e))return kr(e,c);if(h==E||h==g||p&&!s){if(o=u||p?{}:ys(e),!c)return u?function(e,t){return Mr(e,fs(e),t)}(e,function(e,t){return e&&Mr(t,Ao(t),e)}(o,e)):function(e,t){return Mr(e,ps(e),t)}(e,si(o,e))}else{if(!ot[h])return s?e:{};o=function(e,t,n){var i=e.constructor;switch(t){case O:return Er(e);case v:case b:return new i(+e);case A:return function(e,t){var n=t?Er(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case j:case $:case N:case U:case L:case F:case q:case D:case B:return Tr(e,n);case S:return new i;case k:case R:return new i(e);case I:return function(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case C:return new i;case P:return r=e,Fn?Ie(Fn.call(r)):{}}var r}(e,h,c)}}a||(a=new Qn);var f=a.get(e);if(f)return f;a.set(e,o),ao(e)?e.forEach((function(n){o.add(ui(n,t,i,n,e,a))})):no(e)&&e.forEach((function(n,r){o.set(r,ui(n,t,i,r,e,a))}));var m=d?n:(l?u?ss:rs:u?Ao:Oo)(e);return It(m||e,(function(n,r){m&&(n=e[r=n]),ni(o,r,ui(n,t,i,r,e,a))})),o}function li(e,t,i){var r=i.length;if(null==e)return!r;for(e=Ie(e);r--;){var s=i[r],a=t[s],o=e[s];if(o===n&&!(s in e)||!a(o))return!1}return!0}function di(e,t,r){if("function"!=typeof e)throw new Pe(i);return Ms((function(){e.apply(n,r)}),t)}function hi(e,t,n,i){var r=-1,s=Mt,a=!0,o=e.length,c=[],u=t.length;if(!o)return c;n&&(t=At(t,Xt(n))),i?(s=Ot,a=!1):t.length>=200&&(s=Yt,a=!1,t=new Gn(t));e:for(;++r<o;){var l=e[r],d=null==n?l:n(l);if(l=i||0!==l?l:0,a&&d==d){for(var h=u;h--;)if(t[h]===d)continue e;c.push(l)}else s(t,d,i)||c.push(l)}return c}Dn.templateSettings={escape:Q,evaluate:X,interpolate:Z,variable:"",imports:{_:Dn}},Dn.prototype=zn.prototype,Dn.prototype.constructor=Dn,Wn.prototype=Bn(zn.prototype),Wn.prototype.constructor=Wn,Kn.prototype=Bn(zn.prototype),Kn.prototype.constructor=Kn,Hn.prototype.clear=function(){this.__data__=Pn?Pn(null):{},this.size=0},Hn.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Hn.prototype.get=function(e){var t=this.__data__;if(Pn){var i=t[e];return i===r?n:i}return Ne.call(t,e)?t[e]:n},Hn.prototype.has=function(e){var t=this.__data__;return Pn?t[e]!==n:Ne.call(t,e)},Hn.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=Pn&&t===n?r:t,this},Vn.prototype.clear=function(){this.__data__=[],this.size=0},Vn.prototype.delete=function(e){var t=this.__data__,n=ii(t,e);return!(n<0)&&(n==t.length-1?t.pop():Qe.call(t,n,1),--this.size,!0)},Vn.prototype.get=function(e){var t=this.__data__,i=ii(t,e);return i<0?n:t[i][1]},Vn.prototype.has=function(e){return ii(this.__data__,e)>-1},Vn.prototype.set=function(e,t){var n=this.__data__,i=ii(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},Jn.prototype.clear=function(){this.size=0,this.__data__={hash:new Hn,map:new(Tn||Vn),string:new Hn}},Jn.prototype.delete=function(e){var t=ls(this,e).delete(e);return this.size-=t?1:0,t},Jn.prototype.get=function(e){return ls(this,e).get(e)},Jn.prototype.has=function(e){return ls(this,e).has(e)},Jn.prototype.set=function(e,t){var n=ls(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},Gn.prototype.add=Gn.prototype.push=function(e){return this.__data__.set(e,r),this},Gn.prototype.has=function(e){return this.__data__.has(e)},Qn.prototype.clear=function(){this.__data__=new Vn,this.size=0},Qn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Qn.prototype.get=function(e){return this.__data__.get(e)},Qn.prototype.has=function(e){return this.__data__.has(e)},Qn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Vn){var i=n.__data__;if(!Tn||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new Jn(i)}return n.set(e,t),this.size=n.size,this};var pi=jr(wi),fi=jr(xi,!0);function mi(e,t){var n=!0;return pi(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function gi(e,t,i){for(var r=-1,s=e.length;++r<s;){var a=e[r],o=t(a);if(null!=o&&(c===n?o==o&&!co(o):i(o,c)))var c=o,u=a}return u}function yi(e,t){var n=[];return pi(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}function vi(e,t,n,i,r){var s=-1,a=e.length;for(n||(n=vs),r||(r=[]);++s<a;){var o=e[s];t>0&&n(o)?t>1?vi(o,t-1,n,i,r):jt(r,o):i||(r[r.length]=o)}return r}var bi=$r(),_i=$r(!0);function wi(e,t){return e&&bi(e,t,Oo)}function xi(e,t){return e&&_i(e,t,Oo)}function Si(e,t){return Pt(t,(function(t){return Xa(e[t])}))}function ki(e,t){for(var i=0,r=(t=_r(t,e)).length;null!=e&&i<r;)e=e[Us(t[i++])];return i&&i==r?e:n}function Ei(e,t,n){var i=t(e);return Wa(e)?i:jt(i,n(e))}function Ti(e){return null==e?e===n?"[object Undefined]":"[object Null]":nt&&nt in Ie(e)?function(e){var t=Ne.call(e,nt),i=e[nt];try{e[nt]=n;var r=!0}catch(e){}var s=Fe.call(e);r&&(t?e[nt]=i:delete e[nt]);return s}(e):function(e){return Fe.call(e)}(e)}function Ii(e,t){return e>t}function Ci(e,t){return null!=e&&Ne.call(e,t)}function Ri(e,t){return null!=e&&t in Ie(e)}function Pi(e,t,i){for(var r=i?Ot:Mt,s=e[0].length,a=e.length,o=a,c=xe(a),u=1/0,l=[];o--;){var d=e[o];o&&t&&(d=At(d,Xt(t))),u=_n(d.length,u),c[o]=!i&&(t||s>=120&&d.length>=120)?new Gn(o&&d):n}d=e[0];var h=-1,p=c[0];e:for(;++h<s&&l.length<u;){var f=d[h],m=t?t(f):f;if(f=i||0!==f?f:0,!(p?Yt(p,m):r(l,m,i))){for(o=a;--o;){var g=c[o];if(!(g?Yt(g,m):r(e[o],m,i)))continue e}p&&p.push(m),l.push(f)}}return l}function Mi(e,t,i){var r=null==(e=Cs(e,t=_r(t,e)))?e:e[Us(Qs(t))];return null==r?n:Et(r,e,i)}function Oi(e){return to(e)&&Ti(e)==g}function Ai(e,t,i,r,s){return e===t||(null==e||null==t||!to(e)&&!to(t)?e!=e&&t!=t:function(e,t,i,r,s,a){var o=Wa(e),c=Wa(t),u=o?y:ms(e),l=c?y:ms(t),d=(u=u==g?E:u)==E,h=(l=l==g?E:l)==E,p=u==l;if(p&&Ja(e)){if(!Ja(t))return!1;o=!0,d=!1}if(p&&!d)return a||(a=new Qn),o||uo(e)?ns(e,t,i,r,s,a):function(e,t,n,i,r,s,a){switch(n){case A:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case O:return!(e.byteLength!=t.byteLength||!s(new Ke(e),new Ke(t)));case v:case b:case k:return qa(+e,+t);case _:return e.name==t.name&&e.message==t.message;case I:case R:return e==t+"";case S:var o=on;case C:var c=1&i;if(o||(o=ln),e.size!=t.size&&!c)return!1;var u=a.get(e);if(u)return u==t;i|=2,a.set(e,t);var l=ns(o(e),o(t),i,r,s,a);return a.delete(e),l;case P:if(Fn)return Fn.call(e)==Fn.call(t)}return!1}(e,t,u,i,r,s,a);if(!(1&i)){var f=d&&Ne.call(e,"__wrapped__"),m=h&&Ne.call(t,"__wrapped__");if(f||m){var w=f?e.value():e,x=m?t.value():t;return a||(a=new Qn),s(w,x,i,r,a)}}if(!p)return!1;return a||(a=new Qn),function(e,t,i,r,s,a){var o=1&i,c=rs(e),u=c.length,l=rs(t),d=l.length;if(u!=d&&!o)return!1;var h=u;for(;h--;){var p=c[h];if(!(o?p in t:Ne.call(t,p)))return!1}var f=a.get(e),m=a.get(t);if(f&&m)return f==t&&m==e;var g=!0;a.set(e,t),a.set(t,e);var y=o;for(;++h<u;){var v=e[p=c[h]],b=t[p];if(r)var _=o?r(b,v,p,t,e,a):r(v,b,p,e,t,a);if(!(_===n?v===b||s(v,b,i,r,a):_)){g=!1;break}y||(y="constructor"==p)}if(g&&!y){var w=e.constructor,x=t.constructor;w==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof x&&x instanceof x||(g=!1)}return a.delete(e),a.delete(t),g}(e,t,i,r,s,a)}(e,t,i,r,Ai,s))}function ji(e,t,i,r){var s=i.length,a=s,o=!r;if(null==e)return!a;for(e=Ie(e);s--;){var c=i[s];if(o&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++s<a;){var u=(c=i[s])[0],l=e[u],d=c[1];if(o&&c[2]){if(l===n&&!(u in e))return!1}else{var h=new Qn;if(r)var p=r(l,d,u,e,t,h);if(!(p===n?Ai(d,l,3,r,h):p))return!1}}return!0}function $i(e){return!(!eo(e)||(t=e,Le&&Le in t))&&(Xa(e)?Be:ge).test(Ls(e));var t}function Ni(e){return"function"==typeof e?e:null==e?rc:"object"==typeof e?Wa(e)?Bi(e[0],e[1]):Di(e):pc(e)}function Ui(e){if(!ks(e))return vn(e);var t=[];for(var n in Ie(e))Ne.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Li(e){if(!eo(e))return function(e){var t=[];if(null!=e)for(var n in Ie(e))t.push(n);return t}(e);var t=ks(e),n=[];for(var i in e)("constructor"!=i||!t&&Ne.call(e,i))&&n.push(i);return n}function Fi(e,t){return e<t}function qi(e,t){var n=-1,i=Ha(e)?xe(e.length):[];return pi(e,(function(e,r,s){i[++n]=t(e,r,s)})),i}function Di(e){var t=ds(e);return 1==t.length&&t[0][2]?Ts(t[0][0],t[0][1]):function(n){return n===e||ji(n,e,t)}}function Bi(e,t){return ws(e)&&Es(t)?Ts(Us(e),t):function(i){var r=Io(i,e);return r===n&&r===t?Co(i,e):Ai(t,r,3)}}function zi(e,t,i,r,s){e!==t&&bi(t,(function(a,o){if(s||(s=new Qn),eo(a))!function(e,t,i,r,s,a,o){var c=Rs(e,i),u=Rs(t,i),l=o.get(u);if(l)return void ti(e,i,l);var d=a?a(c,u,i+"",e,t,o):n,h=d===n;if(h){var p=Wa(u),f=!p&&Ja(u),m=!p&&!f&&uo(u);d=u,p||f||m?Wa(c)?d=c:Va(c)?d=Pr(c):f?(h=!1,d=kr(u,!0)):m?(h=!1,d=Tr(u,!0)):d=[]:ro(u)||za(u)?(d=c,za(c)?d=vo(c):eo(c)&&!Xa(c)||(d=ys(u))):h=!1}h&&(o.set(u,d),s(d,u,r,a,o),o.delete(u));ti(e,i,d)}(e,t,o,i,zi,r,s);else{var c=r?r(Rs(e,o),a,o+"",e,t,s):n;c===n&&(c=a),ti(e,o,c)}}),Ao)}function Wi(e,t){var i=e.length;if(i)return bs(t+=t<0?i:0,i)?e[t]:n}function Ki(e,t,n){t=t.length?At(t,(function(e){return Wa(e)?function(t){return ki(t,1===e.length?e[0]:e)}:e})):[rc];var i=-1;t=At(t,Xt(us()));var r=qi(e,(function(e,n,r){var s=At(t,(function(t){return t(e)}));return{criteria:s,index:++i,value:e}}));return function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(r,(function(e,t){return function(e,t,n){var i=-1,r=e.criteria,s=t.criteria,a=r.length,o=n.length;for(;++i<a;){var c=Ir(r[i],s[i]);if(c)return i>=o?c:c*("desc"==n[i]?-1:1)}return e.index-t.index}(e,t,n)}))}function Hi(e,t,n){for(var i=-1,r=t.length,s={};++i<r;){var a=t[i],o=ki(e,a);n(o,a)&&er(s,_r(a,e),o)}return s}function Vi(e,t,n,i){var r=i?Bt:Dt,s=-1,a=t.length,o=e;for(e===t&&(t=Pr(t)),n&&(o=At(e,Xt(n)));++s<a;)for(var c=0,u=t[s],l=n?n(u):u;(c=r(o,l,c,i))>-1;)o!==e&&Qe.call(o,c,1),Qe.call(e,c,1);return e}function Ji(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==s){var s=r;bs(r)?Qe.call(e,r,1):hr(e,r)}}return e}function Gi(e,t){return e+yt(Sn()*(t-e+1))}function Qi(e,t){var n="";if(!e||t<1||t>h)return n;do{t%2&&(n+=e),(t=yt(t/2))&&(e+=e)}while(t);return n}function Xi(e,t){return Os(Is(e,t,rc),e+"")}function Zi(e){return Zn(Do(e))}function Yi(e,t){var n=Do(e);return $s(n,ci(t,0,n.length))}function er(e,t,i,r){if(!eo(e))return e;for(var s=-1,a=(t=_r(t,e)).length,o=a-1,c=e;null!=c&&++s<a;){var u=Us(t[s]),l=i;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(s!=o){var d=c[u];(l=r?r(d,u,c):n)===n&&(l=eo(d)?d:bs(t[s+1])?[]:{})}ni(c,u,l),c=c[u]}return e}var tr=Mn?function(e,t){return Mn.set(e,t),e}:rc,nr=ct?function(e,t){return ct(e,"toString",{configurable:!0,enumerable:!1,value:tc(t),writable:!0})}:rc;function ir(e){return $s(Do(e))}function rr(e,t,n){var i=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var s=xe(r);++i<r;)s[i]=e[i+t];return s}function sr(e,t){var n;return pi(e,(function(e,i,r){return!(n=t(e,i,r))})),!!n}function ar(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t==t&&r<=2147483647){for(;i<r;){var s=i+r>>>1,a=e[s];null!==a&&!co(a)&&(n?a<=t:a<t)?i=s+1:r=s}return r}return or(e,t,rc,n)}function or(e,t,i,r){var s=0,a=null==e?0:e.length;if(0===a)return 0;for(var o=(t=i(t))!=t,c=null===t,u=co(t),l=t===n;s<a;){var d=yt((s+a)/2),h=i(e[d]),p=h!==n,f=null===h,m=h==h,g=co(h);if(o)var y=r||m;else y=l?m&&(r||p):c?m&&p&&(r||!f):u?m&&p&&!f&&(r||!g):!f&&!g&&(r?h<=t:h<t);y?s=d+1:a=d}return _n(a,4294967294)}function cr(e,t){for(var n=-1,i=e.length,r=0,s=[];++n<i;){var a=e[n],o=t?t(a):a;if(!n||!qa(o,c)){var c=o;s[r++]=0===a?0:a}}return s}function ur(e){return"number"==typeof e?e:co(e)?p:+e}function lr(e){if("string"==typeof e)return e;if(Wa(e))return At(e,lr)+"";if(co(e))return qn?qn.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function dr(e,t,n){var i=-1,r=Mt,s=e.length,a=!0,o=[],c=o;if(n)a=!1,r=Ot;else if(s>=200){var u=t?null:Qr(e);if(u)return ln(u);a=!1,r=Yt,c=new Gn}else c=t?[]:o;e:for(;++i<s;){var l=e[i],d=t?t(l):l;if(l=n||0!==l?l:0,a&&d==d){for(var h=c.length;h--;)if(c[h]===d)continue e;t&&c.push(d),o.push(l)}else r(c,d,n)||(c!==o&&c.push(d),o.push(l))}return o}function hr(e,t){return null==(e=Cs(e,t=_r(t,e)))||delete e[Us(Qs(t))]}function pr(e,t,n,i){return er(e,t,n(ki(e,t)),i)}function fr(e,t,n,i){for(var r=e.length,s=i?r:-1;(i?s--:++s<r)&&t(e[s],s,e););return n?rr(e,i?0:s,i?s+1:r):rr(e,i?s+1:0,i?r:s)}function mr(e,t){var n=e;return n instanceof Kn&&(n=n.value()),$t(t,(function(e,t){return t.func.apply(t.thisArg,jt([e],t.args))}),n)}function gr(e,t,n){var i=e.length;if(i<2)return i?dr(e[0]):[];for(var r=-1,s=xe(i);++r<i;)for(var a=e[r],o=-1;++o<i;)o!=r&&(s[r]=hi(s[r]||a,e[o],t,n));return dr(vi(s,1),t,n)}function yr(e,t,i){for(var r=-1,s=e.length,a=t.length,o={};++r<s;){var c=r<a?t[r]:n;i(o,e[r],c)}return o}function vr(e){return Va(e)?e:[]}function br(e){return"function"==typeof e?e:rc}function _r(e,t){return Wa(e)?e:ws(e,t)?[e]:Ns(bo(e))}var wr=Xi;function xr(e,t,i){var r=e.length;return i=i===n?r:i,!t&&i>=r?e:rr(e,t,i)}var Sr=dt||function(e){return pt.clearTimeout(e)};function kr(e,t){if(t)return e.slice();var n=e.length,i=He?He(n):new e.constructor(n);return e.copy(i),i}function Er(e){var t=new e.constructor(e.byteLength);return new Ke(t).set(new Ke(e)),t}function Tr(e,t){var n=t?Er(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Ir(e,t){if(e!==t){var i=e!==n,r=null===e,s=e==e,a=co(e),o=t!==n,c=null===t,u=t==t,l=co(t);if(!c&&!l&&!a&&e>t||a&&o&&u&&!c&&!l||r&&o&&u||!i&&u||!s)return 1;if(!r&&!a&&!l&&e<t||l&&i&&s&&!r&&!a||c&&i&&s||!o&&s||!u)return-1}return 0}function Cr(e,t,n,i){for(var r=-1,s=e.length,a=n.length,o=-1,c=t.length,u=bn(s-a,0),l=xe(c+u),d=!i;++o<c;)l[o]=t[o];for(;++r<a;)(d||r<s)&&(l[n[r]]=e[r]);for(;u--;)l[o++]=e[r++];return l}function Rr(e,t,n,i){for(var r=-1,s=e.length,a=-1,o=n.length,c=-1,u=t.length,l=bn(s-o,0),d=xe(l+u),h=!i;++r<l;)d[r]=e[r];for(var p=r;++c<u;)d[p+c]=t[c];for(;++a<o;)(h||r<s)&&(d[p+n[a]]=e[r++]);return d}function Pr(e,t){var n=-1,i=e.length;for(t||(t=xe(i));++n<i;)t[n]=e[n];return t}function Mr(e,t,i,r){var s=!i;i||(i={});for(var a=-1,o=t.length;++a<o;){var c=t[a],u=r?r(i[c],e[c],c,i,e):n;u===n&&(u=e[c]),s?ai(i,c,u):ni(i,c,u)}return i}function Or(e,t){return function(n,i){var r=Wa(n)?Tt:ri,s=t?t():{};return r(n,e,us(i,2),s)}}function Ar(e){return Xi((function(t,i){var r=-1,s=i.length,a=s>1?i[s-1]:n,o=s>2?i[2]:n;for(a=e.length>3&&"function"==typeof a?(s--,a):n,o&&_s(i[0],i[1],o)&&(a=s<3?n:a,s=1),t=Ie(t);++r<s;){var c=i[r];c&&e(t,c,r,a)}return t}))}function jr(e,t){return function(n,i){if(null==n)return n;if(!Ha(n))return e(n,i);for(var r=n.length,s=t?r:-1,a=Ie(n);(t?s--:++s<r)&&!1!==i(a[s],s,a););return n}}function $r(e){return function(t,n,i){for(var r=-1,s=Ie(t),a=i(t),o=a.length;o--;){var c=a[e?o:++r];if(!1===n(s[c],c,s))break}return t}}function Nr(e){return function(t){var i=an(t=bo(t))?pn(t):n,r=i?i[0]:t.charAt(0),s=i?xr(i,1).join(""):t.slice(1);return r[e]()+s}}function Ur(e){return function(t){return $t(Zo(Wo(t).replace(Ze,"")),e,"")}}function Lr(e){return function(){var t=arguments;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]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Bn(e.prototype),i=e.apply(n,t);return eo(i)?i:n}}function Fr(e){return function(t,i,r){var s=Ie(t);if(!Ha(t)){var a=us(i,3);t=Oo(t),i=function(e){return a(s[e],e,s)}}var o=e(t,i,r);return o>-1?s[a?t[o]:o]:n}}function qr(e){return is((function(t){var r=t.length,s=r,a=Wn.prototype.thru;for(e&&t.reverse();s--;){var o=t[s];if("function"!=typeof o)throw new Pe(i);if(a&&!c&&"wrapper"==os(o))var c=new Wn([],!0)}for(s=c?s:r;++s<r;){var u=os(o=t[s]),l="wrapper"==u?as(o):n;c=l&&xs(l[0])&&424==l[1]&&!l[4].length&&1==l[9]?c[os(l[0])].apply(c,l[3]):1==o.length&&xs(o)?c[u]():c.thru(o)}return function(){var e=arguments,n=e[0];if(c&&1==e.length&&Wa(n))return c.plant(n).value();for(var i=0,s=r?t[i].apply(this,e):n;++i<r;)s=t[i].call(this,s);return s}}))}function Dr(e,t,i,r,s,a,o,c,l,d){var h=t&u,p=1&t,f=2&t,m=24&t,g=512&t,y=f?n:Lr(e);return function u(){for(var v=arguments.length,b=xe(v),_=v;_--;)b[_]=arguments[_];if(m)var w=cs(u),x=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}(b,w);if(r&&(b=Cr(b,r,s,m)),a&&(b=Rr(b,a,o,m)),v-=x,m&&v<d){var S=un(b,w);return Jr(e,t,Dr,u.placeholder,i,b,S,c,l,d-v)}var k=p?i:this,E=f?k[e]:e;return v=b.length,c?b=function(e,t){var i=e.length,r=_n(t.length,i),s=Pr(e);for(;r--;){var a=t[r];e[r]=bs(a,i)?s[a]:n}return e}(b,c):g&&v>1&&b.reverse(),h&&l<v&&(b.length=l),this&&this!==pt&&this instanceof u&&(E=y||Lr(E)),E.apply(k,b)}}function Br(e,t){return function(n,i){return function(e,t,n,i){return wi(e,(function(e,r,s){t(i,n(e),r,s)})),i}(n,e,t(i),{})}}function zr(e,t){return function(i,r){var s;if(i===n&&r===n)return t;if(i!==n&&(s=i),r!==n){if(s===n)return r;"string"==typeof i||"string"==typeof r?(i=lr(i),r=lr(r)):(i=ur(i),r=ur(r)),s=e(i,r)}return s}}function Wr(e){return is((function(t){return t=At(t,Xt(us())),Xi((function(n){var i=this;return e(t,(function(e){return Et(e,i,n)}))}))}))}function Kr(e,t){var i=(t=t===n?" ":lr(t)).length;if(i<2)return i?Qi(t,e):t;var r=Qi(t,mt(e/hn(t)));return an(t)?xr(pn(r),0,e).join(""):r.slice(0,e)}function Hr(e){return function(t,i,r){return r&&"number"!=typeof r&&_s(t,i,r)&&(i=r=n),t=fo(t),i===n?(i=t,t=0):i=fo(i),function(e,t,n,i){for(var r=-1,s=bn(mt((t-e)/(n||1)),0),a=xe(s);s--;)a[i?s:++r]=e,e+=n;return a}(t,i,r=r===n?t<i?1:-1:fo(r),e)}}function Vr(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=yo(t),n=yo(n)),e(t,n)}}function Jr(e,t,i,r,s,a,u,l,d,h){var p=8&t;t|=p?o:c,4&(t&=~(p?c:o))||(t&=-4);var f=[e,t,s,p?a:n,p?u:n,p?n:a,p?n:u,l,d,h],m=i.apply(n,f);return xs(e)&&Ps(m,f),m.placeholder=r,As(m,e,t)}function Gr(e){var t=Te[e];return function(e,n){if(e=yo(e),(n=null==n?0:_n(mo(n),292))&&Ht(e)){var i=(bo(e)+"e").split("e");return+((i=(bo(t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}var Qr=Cn&&1/ln(new Cn([,-0]))[1]==d?function(e){return new Cn(e)}:uc;function Xr(e){return function(t){var n=ms(t);return n==S?on(t):n==C?dn(t):function(e,t){return At(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Zr(e,t,r,d,h,p,f,m){var g=2&t;if(!g&&"function"!=typeof e)throw new Pe(i);var y=d?d.length:0;if(y||(t&=-97,d=h=n),f=f===n?f:bn(mo(f),0),m=m===n?m:mo(m),y-=h?h.length:0,t&c){var v=d,b=h;d=h=n}var _=g?n:as(e),w=[e,t,r,d,h,v,b,p,f,m];if(_&&function(e,t){var n=e[1],i=t[1],r=n|i,a=r<131,o=i==u&&8==n||i==u&&n==l&&e[7].length<=t[8]||384==i&&t[7].length<=t[8]&&8==n;if(!a&&!o)return e;1&i&&(e[2]=t[2],r|=1&n?0:4);var c=t[3];if(c){var d=e[3];e[3]=d?Cr(d,c,t[4]):c,e[4]=d?un(e[3],s):t[4]}(c=t[5])&&(d=e[5],e[5]=d?Rr(d,c,t[6]):c,e[6]=d?un(e[5],s):t[6]);(c=t[7])&&(e[7]=c);i&u&&(e[8]=null==e[8]?t[8]:_n(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=r}(w,_),e=w[0],t=w[1],r=w[2],d=w[3],h=w[4],!(m=w[9]=w[9]===n?g?0:e.length:bn(w[9]-y,0))&&24&t&&(t&=-25),t&&1!=t)x=8==t||t==a?function(e,t,i){var r=Lr(e);return function s(){for(var a=arguments.length,o=xe(a),c=a,u=cs(s);c--;)o[c]=arguments[c];var l=a<3&&o[0]!==u&&o[a-1]!==u?[]:un(o,u);return(a-=l.length)<i?Jr(e,t,Dr,s.placeholder,n,o,l,n,n,i-a):Et(this&&this!==pt&&this instanceof s?r:e,this,o)}}(e,t,m):t!=o&&33!=t||h.length?Dr.apply(n,w):function(e,t,n,i){var r=1&t,s=Lr(e);return function t(){for(var a=-1,o=arguments.length,c=-1,u=i.length,l=xe(u+o),d=this&&this!==pt&&this instanceof t?s:e;++c<u;)l[c]=i[c];for(;o--;)l[c++]=arguments[++a];return Et(d,r?n:this,l)}}(e,t,r,d);else var x=function(e,t,n){var i=1&t,r=Lr(e);return function t(){return(this&&this!==pt&&this instanceof t?r:e).apply(i?n:this,arguments)}}(e,t,r);return As((_?tr:Ps)(x,w),e,t)}function Yr(e,t,i,r){return e===n||qa(e,Ae[i])&&!Ne.call(r,i)?t:e}function es(e,t,i,r,s,a){return eo(e)&&eo(t)&&(a.set(t,e),zi(e,t,n,es,a),a.delete(t)),e}function ts(e){return ro(e)?n:e}function ns(e,t,i,r,s,a){var o=1&i,c=e.length,u=t.length;if(c!=u&&!(o&&u>c))return!1;var l=a.get(e),d=a.get(t);if(l&&d)return l==t&&d==e;var h=-1,p=!0,f=2&i?new Gn:n;for(a.set(e,t),a.set(t,e);++h<c;){var m=e[h],g=t[h];if(r)var y=o?r(g,m,h,t,e,a):r(m,g,h,e,t,a);if(y!==n){if(y)continue;p=!1;break}if(f){if(!Ut(t,(function(e,t){if(!Yt(f,t)&&(m===e||s(m,e,i,r,a)))return f.push(t)}))){p=!1;break}}else if(m!==g&&!s(m,g,i,r,a)){p=!1;break}}return a.delete(e),a.delete(t),p}function is(e){return Os(Is(e,n,Ks),e+"")}function rs(e){return Ei(e,Oo,ps)}function ss(e){return Ei(e,Ao,fs)}var as=Mn?function(e){return Mn.get(e)}:uc;function os(e){for(var t=e.name+"",n=On[t],i=Ne.call(On,t)?n.length:0;i--;){var r=n[i],s=r.func;if(null==s||s==e)return r.name}return t}function cs(e){return(Ne.call(Dn,"placeholder")?Dn:e).placeholder}function us(){var e=Dn.iteratee||sc;return e=e===sc?Ni:e,arguments.length?e(arguments[0],arguments[1]):e}function ls(e,t){var n=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function ds(e){for(var t=Oo(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,Es(r)]}return t}function hs(e,t){var i=function(e,t){return null==e?n:e[t]}(e,t);return $i(i)?i:n}var ps=vt?function(e){return null==e?[]:(e=Ie(e),Pt(vt(e),(function(t){return Ge.call(e,t)})))}:gc,fs=vt?function(e){for(var t=[];e;)jt(t,ps(e)),e=Ve(e);return t}:gc,ms=Ti;function gs(e,t,n){for(var i=-1,r=(t=_r(t,e)).length,s=!1;++i<r;){var a=Us(t[i]);if(!(s=null!=e&&n(e,a)))break;e=e[a]}return s||++i!=r?s:!!(r=null==e?0:e.length)&&Ya(r)&&bs(a,r)&&(Wa(e)||za(e))}function ys(e){return"function"!=typeof e.constructor||ks(e)?{}:Bn(Ve(e))}function vs(e){return Wa(e)||za(e)||!!(Xe&&e&&e[Xe])}function bs(e,t){var n=typeof e;return!!(t=null==t?h:t)&&("number"==n||"symbol"!=n&&ve.test(e))&&e>-1&&e%1==0&&e<t}function _s(e,t,n){if(!eo(n))return!1;var i=typeof t;return!!("number"==i?Ha(n)&&bs(t,n.length):"string"==i&&t in n)&&qa(n[t],e)}function ws(e,t){if(Wa(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!co(e))||(ee.test(e)||!Y.test(e)||null!=t&&e in Ie(t))}function xs(e){var t=os(e),n=Dn[t];if("function"!=typeof n||!(t in Kn.prototype))return!1;if(e===n)return!0;var i=as(n);return!!i&&e===i[0]}(En&&ms(new En(new ArrayBuffer(1)))!=A||Tn&&ms(new Tn)!=S||In&&ms(In.resolve())!=T||Cn&&ms(new Cn)!=C||Rn&&ms(new Rn)!=M)&&(ms=function(e){var t=Ti(e),i=t==E?e.constructor:n,r=i?Ls(i):"";if(r)switch(r){case An:return A;case jn:return S;case $n:return T;case Nn:return C;case Un:return M}return t});var Ss=je?Xa:yc;function ks(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ae)}function Es(e){return e==e&&!eo(e)}function Ts(e,t){return function(i){return null!=i&&(i[e]===t&&(t!==n||e in Ie(i)))}}function Is(e,t,i){return t=bn(t===n?e.length-1:t,0),function(){for(var n=arguments,r=-1,s=bn(n.length-t,0),a=xe(s);++r<s;)a[r]=n[t+r];r=-1;for(var o=xe(t+1);++r<t;)o[r]=n[r];return o[t]=i(a),Et(e,this,o)}}function Cs(e,t){return t.length<2?e:ki(e,rr(t,0,-1))}function Rs(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Ps=js(tr),Ms=ft||function(e,t){return pt.setTimeout(e,t)},Os=js(nr);function As(e,t,n){var i=t+"";return Os(e,function(e,t){var n=t.length;if(!n)return e;var i=n-1;return t[i]=(n>1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(ae,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return It(m,(function(n){var i="_."+n[0];t&n[1]&&!Mt(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(oe);return t?t[1].split(ce):[]}(i),n)))}function js(e){var t=0,i=0;return function(){var r=wn(),s=16-(r-i);if(i=r,s>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(n,arguments)}}function $s(e,t){var i=-1,r=e.length,s=r-1;for(t=t===n?r:t;++i<t;){var a=Gi(i,s),o=e[a];e[a]=e[i],e[i]=o}return e.length=t,e}var Ns=function(e){var t=ja(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(te,(function(e,n,i,r){t.push(i?r.replace(de,"$1"):n||e)})),t}));function Us(e){if("string"==typeof e||co(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Ls(e){if(null!=e){try{return $e.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Fs(e){if(e instanceof Kn)return e.clone();var t=new Wn(e.__wrapped__,e.__chain__);return t.__actions__=Pr(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var qs=Xi((function(e,t){return Va(e)?hi(e,vi(t,1,Va,!0)):[]})),Ds=Xi((function(e,t){var i=Qs(t);return Va(i)&&(i=n),Va(e)?hi(e,vi(t,1,Va,!0),us(i,2)):[]})),Bs=Xi((function(e,t){var i=Qs(t);return Va(i)&&(i=n),Va(e)?hi(e,vi(t,1,Va,!0),n,i):[]}));function zs(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:mo(n);return r<0&&(r=bn(i+r,0)),qt(e,us(t,3),r)}function Ws(e,t,i){var r=null==e?0:e.length;if(!r)return-1;var s=r-1;return i!==n&&(s=mo(i),s=i<0?bn(r+s,0):_n(s,r-1)),qt(e,us(t,3),s,!0)}function Ks(e){return(null==e?0:e.length)?vi(e,1):[]}function Hs(e){return e&&e.length?e[0]:n}var Vs=Xi((function(e){var t=At(e,vr);return t.length&&t[0]===e[0]?Pi(t):[]})),Js=Xi((function(e){var t=Qs(e),i=At(e,vr);return t===Qs(i)?t=n:i.pop(),i.length&&i[0]===e[0]?Pi(i,us(t,2)):[]})),Gs=Xi((function(e){var t=Qs(e),i=At(e,vr);return(t="function"==typeof t?t:n)&&i.pop(),i.length&&i[0]===e[0]?Pi(i,n,t):[]}));function Qs(e){var t=null==e?0:e.length;return t?e[t-1]:n}var Xs=Xi(Zs);function Zs(e,t){return e&&e.length&&t&&t.length?Vi(e,t):e}var Ys=is((function(e,t){var n=null==e?0:e.length,i=oi(e,t);return Ji(e,At(t,(function(e){return bs(e,n)?+e:e})).sort(Ir)),i}));function ea(e){return null==e?e:kn.call(e)}var ta=Xi((function(e){return dr(vi(e,1,Va,!0))})),na=Xi((function(e){var t=Qs(e);return Va(t)&&(t=n),dr(vi(e,1,Va,!0),us(t,2))})),ia=Xi((function(e){var t=Qs(e);return t="function"==typeof t?t:n,dr(vi(e,1,Va,!0),n,t)}));function ra(e){if(!e||!e.length)return[];var t=0;return e=Pt(e,(function(e){if(Va(e))return t=bn(e.length,t),!0})),Gt(t,(function(t){return At(e,Kt(t))}))}function sa(e,t){if(!e||!e.length)return[];var i=ra(e);return null==t?i:At(i,(function(e){return Et(t,n,e)}))}var aa=Xi((function(e,t){return Va(e)?hi(e,t):[]})),oa=Xi((function(e){return gr(Pt(e,Va))})),ca=Xi((function(e){var t=Qs(e);return Va(t)&&(t=n),gr(Pt(e,Va),us(t,2))})),ua=Xi((function(e){var t=Qs(e);return t="function"==typeof t?t:n,gr(Pt(e,Va),n,t)})),la=Xi(ra);var da=Xi((function(e){var t=e.length,i=t>1?e[t-1]:n;return i="function"==typeof i?(e.pop(),i):n,sa(e,i)}));function ha(e){var t=Dn(e);return t.__chain__=!0,t}function pa(e,t){return t(e)}var fa=is((function(e){var t=e.length,i=t?e[0]:0,r=this.__wrapped__,s=function(t){return oi(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Kn&&bs(i)?((r=r.slice(i,+i+(t?1:0))).__actions__.push({func:pa,args:[s],thisArg:n}),new Wn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(n),e}))):this.thru(s)}));var ma=Or((function(e,t,n){Ne.call(e,n)?++e[n]:ai(e,n,1)}));var ga=Fr(zs),ya=Fr(Ws);function va(e,t){return(Wa(e)?It:pi)(e,us(t,3))}function ba(e,t){return(Wa(e)?Ct:fi)(e,us(t,3))}var _a=Or((function(e,t,n){Ne.call(e,n)?e[n].push(t):ai(e,n,[t])}));var wa=Xi((function(e,t,n){var i=-1,r="function"==typeof t,s=Ha(e)?xe(e.length):[];return pi(e,(function(e){s[++i]=r?Et(t,e,n):Mi(e,t,n)})),s})),xa=Or((function(e,t,n){ai(e,n,t)}));function Sa(e,t){return(Wa(e)?At:qi)(e,us(t,3))}var ka=Or((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var Ea=Xi((function(e,t){if(null==e)return[];var n=t.length;return n>1&&_s(e,t[0],t[1])?t=[]:n>2&&_s(t[0],t[1],t[2])&&(t=[t[0]]),Ki(e,vi(t,1),[])})),Ta=ht||function(){return pt.Date.now()};function Ia(e,t,i){return t=i?n:t,t=e&&null==t?e.length:t,Zr(e,u,n,n,n,n,t)}function Ca(e,t){var r;if("function"!=typeof t)throw new Pe(i);return e=mo(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=n),r}}var Ra=Xi((function(e,t,n){var i=1;if(n.length){var r=un(n,cs(Ra));i|=o}return Zr(e,i,t,n,r)})),Pa=Xi((function(e,t,n){var i=3;if(n.length){var r=un(n,cs(Pa));i|=o}return Zr(t,i,e,n,r)}));function Ma(e,t,r){var s,a,o,c,u,l,d=0,h=!1,p=!1,f=!0;if("function"!=typeof e)throw new Pe(i);function m(t){var i=s,r=a;return s=a=n,d=t,c=e.apply(r,i)}function g(e){var i=e-l;return l===n||i>=t||i<0||p&&e-d>=o}function y(){var e=Ta();if(g(e))return v(e);u=Ms(y,function(e){var n=t-(e-l);return p?_n(n,o-(e-d)):n}(e))}function v(e){return u=n,f&&s?m(e):(s=a=n,c)}function b(){var e=Ta(),i=g(e);if(s=arguments,a=this,l=e,i){if(u===n)return function(e){return d=e,u=Ms(y,t),h?m(e):c}(l);if(p)return Sr(u),u=Ms(y,t),m(l)}return u===n&&(u=Ms(y,t)),c}return t=yo(t)||0,eo(r)&&(h=!!r.leading,o=(p="maxWait"in r)?bn(yo(r.maxWait)||0,t):o,f="trailing"in r?!!r.trailing:f),b.cancel=function(){u!==n&&Sr(u),d=0,s=l=a=u=n},b.flush=function(){return u===n?c:v(Ta())},b}var Oa=Xi((function(e,t){return di(e,1,t)})),Aa=Xi((function(e,t,n){return di(e,yo(t)||0,n)}));function ja(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Pe(i);var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],s=n.cache;if(s.has(r))return s.get(r);var a=e.apply(this,i);return n.cache=s.set(r,a)||s,a};return n.cache=new(ja.Cache||Jn),n}function $a(e){if("function"!=typeof e)throw new Pe(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ja.Cache=Jn;var Na=wr((function(e,t){var n=(t=1==t.length&&Wa(t[0])?At(t[0],Xt(us())):At(vi(t,1),Xt(us()))).length;return Xi((function(i){for(var r=-1,s=_n(i.length,n);++r<s;)i[r]=t[r].call(this,i[r]);return Et(e,this,i)}))})),Ua=Xi((function(e,t){var i=un(t,cs(Ua));return Zr(e,o,n,t,i)})),La=Xi((function(e,t){var i=un(t,cs(La));return Zr(e,c,n,t,i)})),Fa=is((function(e,t){return Zr(e,l,n,n,n,t)}));function qa(e,t){return e===t||e!=e&&t!=t}var Da=Vr(Ii),Ba=Vr((function(e,t){return e>=t})),za=Oi(function(){return arguments}())?Oi:function(e){return to(e)&&Ne.call(e,"callee")&&!Ge.call(e,"callee")},Wa=xe.isArray,Ka=bt?Xt(bt):function(e){return to(e)&&Ti(e)==O};function Ha(e){return null!=e&&Ya(e.length)&&!Xa(e)}function Va(e){return to(e)&&Ha(e)}var Ja=Lt||yc,Ga=_t?Xt(_t):function(e){return to(e)&&Ti(e)==b};function Qa(e){if(!to(e))return!1;var t=Ti(e);return t==_||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!ro(e)}function Xa(e){if(!eo(e))return!1;var t=Ti(e);return t==w||t==x||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Za(e){return"number"==typeof e&&e==mo(e)}function Ya(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=h}function eo(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function to(e){return null!=e&&"object"==typeof e}var no=wt?Xt(wt):function(e){return to(e)&&ms(e)==S};function io(e){return"number"==typeof e||to(e)&&Ti(e)==k}function ro(e){if(!to(e)||Ti(e)!=E)return!1;var t=Ve(e);if(null===t)return!0;var n=Ne.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&$e.call(n)==qe}var so=xt?Xt(xt):function(e){return to(e)&&Ti(e)==I};var ao=St?Xt(St):function(e){return to(e)&&ms(e)==C};function oo(e){return"string"==typeof e||!Wa(e)&&to(e)&&Ti(e)==R}function co(e){return"symbol"==typeof e||to(e)&&Ti(e)==P}var uo=kt?Xt(kt):function(e){return to(e)&&Ya(e.length)&&!!at[Ti(e)]};var lo=Vr(Fi),ho=Vr((function(e,t){return e<=t}));function po(e){if(!e)return[];if(Ha(e))return oo(e)?pn(e):Pr(e);if(et&&e[et])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[et]());var t=ms(e);return(t==S?on:t==C?ln:Do)(e)}function fo(e){return e?(e=yo(e))===d||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function mo(e){var t=fo(e),n=t%1;return t==t?n?t-n:t:0}function go(e){return e?ci(mo(e),0,f):0}function yo(e){if("number"==typeof e)return e;if(co(e))return p;if(eo(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=eo(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Qt(e);var n=me.test(e);return n||ye.test(e)?lt(e.slice(2),n?2:8):fe.test(e)?p:+e}function vo(e){return Mr(e,Ao(e))}function bo(e){return null==e?"":lr(e)}var _o=Ar((function(e,t){if(ks(t)||Ha(t))Mr(t,Oo(t),e);else for(var n in t)Ne.call(t,n)&&ni(e,n,t[n])})),wo=Ar((function(e,t){Mr(t,Ao(t),e)})),xo=Ar((function(e,t,n,i){Mr(t,Ao(t),e,i)})),So=Ar((function(e,t,n,i){Mr(t,Oo(t),e,i)})),ko=is(oi);var Eo=Xi((function(e,t){e=Ie(e);var i=-1,r=t.length,s=r>2?t[2]:n;for(s&&_s(t[0],t[1],s)&&(r=1);++i<r;)for(var a=t[i],o=Ao(a),c=-1,u=o.length;++c<u;){var l=o[c],d=e[l];(d===n||qa(d,Ae[l])&&!Ne.call(e,l))&&(e[l]=a[l])}return e})),To=Xi((function(e){return e.push(n,es),Et($o,n,e)}));function Io(e,t,i){var r=null==e?n:ki(e,t);return r===n?i:r}function Co(e,t){return null!=e&&gs(e,t,Ri)}var Ro=Br((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Fe.call(t)),e[t]=n}),tc(rc)),Po=Br((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Fe.call(t)),Ne.call(e,t)?e[t].push(n):e[t]=[n]}),us),Mo=Xi(Mi);function Oo(e){return Ha(e)?Xn(e):Ui(e)}function Ao(e){return Ha(e)?Xn(e,!0):Li(e)}var jo=Ar((function(e,t,n){zi(e,t,n)})),$o=Ar((function(e,t,n,i){zi(e,t,n,i)})),No=is((function(e,t){var n={};if(null==e)return n;var i=!1;t=At(t,(function(t){return t=_r(t,e),i||(i=t.length>1),t})),Mr(e,ss(e),n),i&&(n=ui(n,7,ts));for(var r=t.length;r--;)hr(n,t[r]);return n}));var Uo=is((function(e,t){return null==e?{}:function(e,t){return Hi(e,t,(function(t,n){return Co(e,n)}))}(e,t)}));function Lo(e,t){if(null==e)return{};var n=At(ss(e),(function(e){return[e]}));return t=us(t),Hi(e,n,(function(e,n){return t(e,n[0])}))}var Fo=Xr(Oo),qo=Xr(Ao);function Do(e){return null==e?[]:Zt(e,Oo(e))}var Bo=Ur((function(e,t,n){return t=t.toLowerCase(),e+(n?zo(t):t)}));function zo(e){return Xo(bo(e).toLowerCase())}function Wo(e){return(e=bo(e))&&e.replace(be,nn).replace(Ye,"")}var Ko=Ur((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Ho=Ur((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Vo=Nr("toLowerCase");var Jo=Ur((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Go=Ur((function(e,t,n){return e+(n?" ":"")+Xo(t)}));var Qo=Ur((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Xo=Nr("toUpperCase");function Zo(e,t,i){return e=bo(e),(t=i?n:t)===n?function(e){return it.test(e)}(e)?function(e){return e.match(tt)||[]}(e):function(e){return e.match(ue)||[]}(e):e.match(t)||[]}var Yo=Xi((function(e,t){try{return Et(e,n,t)}catch(e){return Qa(e)?e:new ke(e)}})),ec=is((function(e,t){return It(t,(function(t){t=Us(t),ai(e,t,Ra(e[t],e))})),e}));function tc(e){return function(){return e}}var nc=qr(),ic=qr(!0);function rc(e){return e}function sc(e){return Ni("function"==typeof e?e:ui(e,1))}var ac=Xi((function(e,t){return function(n){return Mi(n,e,t)}})),oc=Xi((function(e,t){return function(n){return Mi(e,n,t)}}));function cc(e,t,n){var i=Oo(t),r=Si(t,i);null!=n||eo(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=Si(t,Oo(t)));var s=!(eo(n)&&"chain"in n&&!n.chain),a=Xa(e);return It(r,(function(n){var i=t[n];e[n]=i,a&&(e.prototype[n]=function(){var t=this.__chain__;if(s||t){var n=e(this.__wrapped__);return(n.__actions__=Pr(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,jt([this.value()],arguments))})})),e}function uc(){}var lc=Wr(At),dc=Wr(Rt),hc=Wr(Ut);function pc(e){return ws(e)?Kt(Us(e)):function(e){return function(t){return ki(t,e)}}(e)}var fc=Hr(),mc=Hr(!0);function gc(){return[]}function yc(){return!1}var vc=zr((function(e,t){return e+t}),0),bc=Gr("ceil"),_c=zr((function(e,t){return e/t}),1),wc=Gr("floor");var xc,Sc=zr((function(e,t){return e*t}),1),kc=Gr("round"),Ec=zr((function(e,t){return e-t}),0);return Dn.after=function(e,t){if("function"!=typeof t)throw new Pe(i);return e=mo(e),function(){if(--e<1)return t.apply(this,arguments)}},Dn.ary=Ia,Dn.assign=_o,Dn.assignIn=wo,Dn.assignInWith=xo,Dn.assignWith=So,Dn.at=ko,Dn.before=Ca,Dn.bind=Ra,Dn.bindAll=ec,Dn.bindKey=Pa,Dn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Wa(e)?e:[e]},Dn.chain=ha,Dn.chunk=function(e,t,i){t=(i?_s(e,t,i):t===n)?1:bn(mo(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var s=0,a=0,o=xe(mt(r/t));s<r;)o[a++]=rr(e,s,s+=t);return o},Dn.compact=function(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var s=e[t];s&&(r[i++]=s)}return r},Dn.concat=function(){var e=arguments.length;if(!e)return[];for(var t=xe(e-1),n=arguments[0],i=e;i--;)t[i-1]=arguments[i];return jt(Wa(n)?Pr(n):[n],vi(t,1))},Dn.cond=function(e){var t=null==e?0:e.length,n=us();return e=t?At(e,(function(e){if("function"!=typeof e[1])throw new Pe(i);return[n(e[0]),e[1]]})):[],Xi((function(n){for(var i=-1;++i<t;){var r=e[i];if(Et(r[0],this,n))return Et(r[1],this,n)}}))},Dn.conforms=function(e){return function(e){var t=Oo(e);return function(n){return li(n,e,t)}}(ui(e,1))},Dn.constant=tc,Dn.countBy=ma,Dn.create=function(e,t){var n=Bn(e);return null==t?n:si(n,t)},Dn.curry=function e(t,i,r){var s=Zr(t,8,n,n,n,n,n,i=r?n:i);return s.placeholder=e.placeholder,s},Dn.curryRight=function e(t,i,r){var s=Zr(t,a,n,n,n,n,n,i=r?n:i);return s.placeholder=e.placeholder,s},Dn.debounce=Ma,Dn.defaults=Eo,Dn.defaultsDeep=To,Dn.defer=Oa,Dn.delay=Aa,Dn.difference=qs,Dn.differenceBy=Ds,Dn.differenceWith=Bs,Dn.drop=function(e,t,i){var r=null==e?0:e.length;return r?rr(e,(t=i||t===n?1:mo(t))<0?0:t,r):[]},Dn.dropRight=function(e,t,i){var r=null==e?0:e.length;return r?rr(e,0,(t=r-(t=i||t===n?1:mo(t)))<0?0:t):[]},Dn.dropRightWhile=function(e,t){return e&&e.length?fr(e,us(t,3),!0,!0):[]},Dn.dropWhile=function(e,t){return e&&e.length?fr(e,us(t,3),!0):[]},Dn.fill=function(e,t,i,r){var s=null==e?0:e.length;return s?(i&&"number"!=typeof i&&_s(e,t,i)&&(i=0,r=s),function(e,t,i,r){var s=e.length;for((i=mo(i))<0&&(i=-i>s?0:s+i),(r=r===n||r>s?s:mo(r))<0&&(r+=s),r=i>r?0:go(r);i<r;)e[i++]=t;return e}(e,t,i,r)):[]},Dn.filter=function(e,t){return(Wa(e)?Pt:yi)(e,us(t,3))},Dn.flatMap=function(e,t){return vi(Sa(e,t),1)},Dn.flatMapDeep=function(e,t){return vi(Sa(e,t),d)},Dn.flatMapDepth=function(e,t,i){return i=i===n?1:mo(i),vi(Sa(e,t),i)},Dn.flatten=Ks,Dn.flattenDeep=function(e){return(null==e?0:e.length)?vi(e,d):[]},Dn.flattenDepth=function(e,t){return(null==e?0:e.length)?vi(e,t=t===n?1:mo(t)):[]},Dn.flip=function(e){return Zr(e,512)},Dn.flow=nc,Dn.flowRight=ic,Dn.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i},Dn.functions=function(e){return null==e?[]:Si(e,Oo(e))},Dn.functionsIn=function(e){return null==e?[]:Si(e,Ao(e))},Dn.groupBy=_a,Dn.initial=function(e){return(null==e?0:e.length)?rr(e,0,-1):[]},Dn.intersection=Vs,Dn.intersectionBy=Js,Dn.intersectionWith=Gs,Dn.invert=Ro,Dn.invertBy=Po,Dn.invokeMap=wa,Dn.iteratee=sc,Dn.keyBy=xa,Dn.keys=Oo,Dn.keysIn=Ao,Dn.map=Sa,Dn.mapKeys=function(e,t){var n={};return t=us(t,3),wi(e,(function(e,i,r){ai(n,t(e,i,r),e)})),n},Dn.mapValues=function(e,t){var n={};return t=us(t,3),wi(e,(function(e,i,r){ai(n,i,t(e,i,r))})),n},Dn.matches=function(e){return Di(ui(e,1))},Dn.matchesProperty=function(e,t){return Bi(e,ui(t,1))},Dn.memoize=ja,Dn.merge=jo,Dn.mergeWith=$o,Dn.method=ac,Dn.methodOf=oc,Dn.mixin=cc,Dn.negate=$a,Dn.nthArg=function(e){return e=mo(e),Xi((function(t){return Wi(t,e)}))},Dn.omit=No,Dn.omitBy=function(e,t){return Lo(e,$a(us(t)))},Dn.once=function(e){return Ca(2,e)},Dn.orderBy=function(e,t,i,r){return null==e?[]:(Wa(t)||(t=null==t?[]:[t]),Wa(i=r?n:i)||(i=null==i?[]:[i]),Ki(e,t,i))},Dn.over=lc,Dn.overArgs=Na,Dn.overEvery=dc,Dn.overSome=hc,Dn.partial=Ua,Dn.partialRight=La,Dn.partition=ka,Dn.pick=Uo,Dn.pickBy=Lo,Dn.property=pc,Dn.propertyOf=function(e){return function(t){return null==e?n:ki(e,t)}},Dn.pull=Xs,Dn.pullAll=Zs,Dn.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?Vi(e,t,us(n,2)):e},Dn.pullAllWith=function(e,t,i){return e&&e.length&&t&&t.length?Vi(e,t,n,i):e},Dn.pullAt=Ys,Dn.range=fc,Dn.rangeRight=mc,Dn.rearg=Fa,Dn.reject=function(e,t){return(Wa(e)?Pt:yi)(e,$a(us(t,3)))},Dn.remove=function(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],s=e.length;for(t=us(t,3);++i<s;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return Ji(e,r),n},Dn.rest=function(e,t){if("function"!=typeof e)throw new Pe(i);return Xi(e,t=t===n?t:mo(t))},Dn.reverse=ea,Dn.sampleSize=function(e,t,i){return t=(i?_s(e,t,i):t===n)?1:mo(t),(Wa(e)?Yn:Yi)(e,t)},Dn.set=function(e,t,n){return null==e?e:er(e,t,n)},Dn.setWith=function(e,t,i,r){return r="function"==typeof r?r:n,null==e?e:er(e,t,i,r)},Dn.shuffle=function(e){return(Wa(e)?ei:ir)(e)},Dn.slice=function(e,t,i){var r=null==e?0:e.length;return r?(i&&"number"!=typeof i&&_s(e,t,i)?(t=0,i=r):(t=null==t?0:mo(t),i=i===n?r:mo(i)),rr(e,t,i)):[]},Dn.sortBy=Ea,Dn.sortedUniq=function(e){return e&&e.length?cr(e):[]},Dn.sortedUniqBy=function(e,t){return e&&e.length?cr(e,us(t,2)):[]},Dn.split=function(e,t,i){return i&&"number"!=typeof i&&_s(e,t,i)&&(t=i=n),(i=i===n?f:i>>>0)?(e=bo(e))&&("string"==typeof t||null!=t&&!so(t))&&!(t=lr(t))&&an(e)?xr(pn(e),0,i):e.split(t,i):[]},Dn.spread=function(e,t){if("function"!=typeof e)throw new Pe(i);return t=null==t?0:bn(mo(t),0),Xi((function(n){var i=n[t],r=xr(n,0,t);return i&&jt(r,i),Et(e,this,r)}))},Dn.tail=function(e){var t=null==e?0:e.length;return t?rr(e,1,t):[]},Dn.take=function(e,t,i){return e&&e.length?rr(e,0,(t=i||t===n?1:mo(t))<0?0:t):[]},Dn.takeRight=function(e,t,i){var r=null==e?0:e.length;return r?rr(e,(t=r-(t=i||t===n?1:mo(t)))<0?0:t,r):[]},Dn.takeRightWhile=function(e,t){return e&&e.length?fr(e,us(t,3),!1,!0):[]},Dn.takeWhile=function(e,t){return e&&e.length?fr(e,us(t,3)):[]},Dn.tap=function(e,t){return t(e),e},Dn.throttle=function(e,t,n){var r=!0,s=!0;if("function"!=typeof e)throw new Pe(i);return eo(n)&&(r="leading"in n?!!n.leading:r,s="trailing"in n?!!n.trailing:s),Ma(e,t,{leading:r,maxWait:t,trailing:s})},Dn.thru=pa,Dn.toArray=po,Dn.toPairs=Fo,Dn.toPairsIn=qo,Dn.toPath=function(e){return Wa(e)?At(e,Us):co(e)?[e]:Pr(Ns(bo(e)))},Dn.toPlainObject=vo,Dn.transform=function(e,t,n){var i=Wa(e),r=i||Ja(e)||uo(e);if(t=us(t,4),null==n){var s=e&&e.constructor;n=r?i?new s:[]:eo(e)&&Xa(s)?Bn(Ve(e)):{}}return(r?It:wi)(e,(function(e,i,r){return t(n,e,i,r)})),n},Dn.unary=function(e){return Ia(e,1)},Dn.union=ta,Dn.unionBy=na,Dn.unionWith=ia,Dn.uniq=function(e){return e&&e.length?dr(e):[]},Dn.uniqBy=function(e,t){return e&&e.length?dr(e,us(t,2)):[]},Dn.uniqWith=function(e,t){return t="function"==typeof t?t:n,e&&e.length?dr(e,n,t):[]},Dn.unset=function(e,t){return null==e||hr(e,t)},Dn.unzip=ra,Dn.unzipWith=sa,Dn.update=function(e,t,n){return null==e?e:pr(e,t,br(n))},Dn.updateWith=function(e,t,i,r){return r="function"==typeof r?r:n,null==e?e:pr(e,t,br(i),r)},Dn.values=Do,Dn.valuesIn=function(e){return null==e?[]:Zt(e,Ao(e))},Dn.without=aa,Dn.words=Zo,Dn.wrap=function(e,t){return Ua(br(t),e)},Dn.xor=oa,Dn.xorBy=ca,Dn.xorWith=ua,Dn.zip=la,Dn.zipObject=function(e,t){return yr(e||[],t||[],ni)},Dn.zipObjectDeep=function(e,t){return yr(e||[],t||[],er)},Dn.zipWith=da,Dn.entries=Fo,Dn.entriesIn=qo,Dn.extend=wo,Dn.extendWith=xo,cc(Dn,Dn),Dn.add=vc,Dn.attempt=Yo,Dn.camelCase=Bo,Dn.capitalize=zo,Dn.ceil=bc,Dn.clamp=function(e,t,i){return i===n&&(i=t,t=n),i!==n&&(i=(i=yo(i))==i?i:0),t!==n&&(t=(t=yo(t))==t?t:0),ci(yo(e),t,i)},Dn.clone=function(e){return ui(e,4)},Dn.cloneDeep=function(e){return ui(e,5)},Dn.cloneDeepWith=function(e,t){return ui(e,5,t="function"==typeof t?t:n)},Dn.cloneWith=function(e,t){return ui(e,4,t="function"==typeof t?t:n)},Dn.conformsTo=function(e,t){return null==t||li(e,t,Oo(t))},Dn.deburr=Wo,Dn.defaultTo=function(e,t){return null==e||e!=e?t:e},Dn.divide=_c,Dn.endsWith=function(e,t,i){e=bo(e),t=lr(t);var r=e.length,s=i=i===n?r:ci(mo(i),0,r);return(i-=t.length)>=0&&e.slice(i,s)==t},Dn.eq=qa,Dn.escape=function(e){return(e=bo(e))&&G.test(e)?e.replace(V,rn):e},Dn.escapeRegExp=function(e){return(e=bo(e))&&ie.test(e)?e.replace(ne,"\\$&"):e},Dn.every=function(e,t,i){var r=Wa(e)?Rt:mi;return i&&_s(e,t,i)&&(t=n),r(e,us(t,3))},Dn.find=ga,Dn.findIndex=zs,Dn.findKey=function(e,t){return Ft(e,us(t,3),wi)},Dn.findLast=ya,Dn.findLastIndex=Ws,Dn.findLastKey=function(e,t){return Ft(e,us(t,3),xi)},Dn.floor=wc,Dn.forEach=va,Dn.forEachRight=ba,Dn.forIn=function(e,t){return null==e?e:bi(e,us(t,3),Ao)},Dn.forInRight=function(e,t){return null==e?e:_i(e,us(t,3),Ao)},Dn.forOwn=function(e,t){return e&&wi(e,us(t,3))},Dn.forOwnRight=function(e,t){return e&&xi(e,us(t,3))},Dn.get=Io,Dn.gt=Da,Dn.gte=Ba,Dn.has=function(e,t){return null!=e&&gs(e,t,Ci)},Dn.hasIn=Co,Dn.head=Hs,Dn.identity=rc,Dn.includes=function(e,t,n,i){e=Ha(e)?e:Do(e),n=n&&!i?mo(n):0;var r=e.length;return n<0&&(n=bn(r+n,0)),oo(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&Dt(e,t,n)>-1},Dn.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:mo(n);return r<0&&(r=bn(i+r,0)),Dt(e,t,r)},Dn.inRange=function(e,t,i){return t=fo(t),i===n?(i=t,t=0):i=fo(i),function(e,t,n){return e>=_n(t,n)&&e<bn(t,n)}(e=yo(e),t,i)},Dn.invoke=Mo,Dn.isArguments=za,Dn.isArray=Wa,Dn.isArrayBuffer=Ka,Dn.isArrayLike=Ha,Dn.isArrayLikeObject=Va,Dn.isBoolean=function(e){return!0===e||!1===e||to(e)&&Ti(e)==v},Dn.isBuffer=Ja,Dn.isDate=Ga,Dn.isElement=function(e){return to(e)&&1===e.nodeType&&!ro(e)},Dn.isEmpty=function(e){if(null==e)return!0;if(Ha(e)&&(Wa(e)||"string"==typeof e||"function"==typeof e.splice||Ja(e)||uo(e)||za(e)))return!e.length;var t=ms(e);if(t==S||t==C)return!e.size;if(ks(e))return!Ui(e).length;for(var n in e)if(Ne.call(e,n))return!1;return!0},Dn.isEqual=function(e,t){return Ai(e,t)},Dn.isEqualWith=function(e,t,i){var r=(i="function"==typeof i?i:n)?i(e,t):n;return r===n?Ai(e,t,n,i):!!r},Dn.isError=Qa,Dn.isFinite=function(e){return"number"==typeof e&&Ht(e)},Dn.isFunction=Xa,Dn.isInteger=Za,Dn.isLength=Ya,Dn.isMap=no,Dn.isMatch=function(e,t){return e===t||ji(e,t,ds(t))},Dn.isMatchWith=function(e,t,i){return i="function"==typeof i?i:n,ji(e,t,ds(t),i)},Dn.isNaN=function(e){return io(e)&&e!=+e},Dn.isNative=function(e){if(Ss(e))throw new ke("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return $i(e)},Dn.isNil=function(e){return null==e},Dn.isNull=function(e){return null===e},Dn.isNumber=io,Dn.isObject=eo,Dn.isObjectLike=to,Dn.isPlainObject=ro,Dn.isRegExp=so,Dn.isSafeInteger=function(e){return Za(e)&&e>=-9007199254740991&&e<=h},Dn.isSet=ao,Dn.isString=oo,Dn.isSymbol=co,Dn.isTypedArray=uo,Dn.isUndefined=function(e){return e===n},Dn.isWeakMap=function(e){return to(e)&&ms(e)==M},Dn.isWeakSet=function(e){return to(e)&&"[object WeakSet]"==Ti(e)},Dn.join=function(e,t){return null==e?"":yn.call(e,t)},Dn.kebabCase=Ko,Dn.last=Qs,Dn.lastIndexOf=function(e,t,i){var r=null==e?0:e.length;if(!r)return-1;var s=r;return i!==n&&(s=(s=mo(i))<0?bn(r+s,0):_n(s,r-1)),t==t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,s):qt(e,zt,s,!0)},Dn.lowerCase=Ho,Dn.lowerFirst=Vo,Dn.lt=lo,Dn.lte=ho,Dn.max=function(e){return e&&e.length?gi(e,rc,Ii):n},Dn.maxBy=function(e,t){return e&&e.length?gi(e,us(t,2),Ii):n},Dn.mean=function(e){return Wt(e,rc)},Dn.meanBy=function(e,t){return Wt(e,us(t,2))},Dn.min=function(e){return e&&e.length?gi(e,rc,Fi):n},Dn.minBy=function(e,t){return e&&e.length?gi(e,us(t,2),Fi):n},Dn.stubArray=gc,Dn.stubFalse=yc,Dn.stubObject=function(){return{}},Dn.stubString=function(){return""},Dn.stubTrue=function(){return!0},Dn.multiply=Sc,Dn.nth=function(e,t){return e&&e.length?Wi(e,mo(t)):n},Dn.noConflict=function(){return pt._===this&&(pt._=De),this},Dn.noop=uc,Dn.now=Ta,Dn.pad=function(e,t,n){e=bo(e);var i=(t=mo(t))?hn(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return Kr(yt(r),n)+e+Kr(mt(r),n)},Dn.padEnd=function(e,t,n){e=bo(e);var i=(t=mo(t))?hn(e):0;return t&&i<t?e+Kr(t-i,n):e},Dn.padStart=function(e,t,n){e=bo(e);var i=(t=mo(t))?hn(e):0;return t&&i<t?Kr(t-i,n)+e:e},Dn.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),xn(bo(e).replace(re,""),t||0)},Dn.random=function(e,t,i){if(i&&"boolean"!=typeof i&&_s(e,t,i)&&(t=i=n),i===n&&("boolean"==typeof t?(i=t,t=n):"boolean"==typeof e&&(i=e,e=n)),e===n&&t===n?(e=0,t=1):(e=fo(e),t===n?(t=e,e=0):t=fo(t)),e>t){var r=e;e=t,t=r}if(i||e%1||t%1){var s=Sn();return _n(e+s*(t-e+ut("1e-"+((s+"").length-1))),t)}return Gi(e,t)},Dn.reduce=function(e,t,n){var i=Wa(e)?$t:Vt,r=arguments.length<3;return i(e,us(t,4),n,r,pi)},Dn.reduceRight=function(e,t,n){var i=Wa(e)?Nt:Vt,r=arguments.length<3;return i(e,us(t,4),n,r,fi)},Dn.repeat=function(e,t,i){return t=(i?_s(e,t,i):t===n)?1:mo(t),Qi(bo(e),t)},Dn.replace=function(){var e=arguments,t=bo(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Dn.result=function(e,t,i){var r=-1,s=(t=_r(t,e)).length;for(s||(s=1,e=n);++r<s;){var a=null==e?n:e[Us(t[r])];a===n&&(r=s,a=i),e=Xa(a)?a.call(e):a}return e},Dn.round=kc,Dn.runInContext=e,Dn.sample=function(e){return(Wa(e)?Zn:Zi)(e)},Dn.size=function(e){if(null==e)return 0;if(Ha(e))return oo(e)?hn(e):e.length;var t=ms(e);return t==S||t==C?e.size:Ui(e).length},Dn.snakeCase=Jo,Dn.some=function(e,t,i){var r=Wa(e)?Ut:sr;return i&&_s(e,t,i)&&(t=n),r(e,us(t,3))},Dn.sortedIndex=function(e,t){return ar(e,t)},Dn.sortedIndexBy=function(e,t,n){return or(e,t,us(n,2))},Dn.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=ar(e,t);if(i<n&&qa(e[i],t))return i}return-1},Dn.sortedLastIndex=function(e,t){return ar(e,t,!0)},Dn.sortedLastIndexBy=function(e,t,n){return or(e,t,us(n,2),!0)},Dn.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var n=ar(e,t,!0)-1;if(qa(e[n],t))return n}return-1},Dn.startCase=Go,Dn.startsWith=function(e,t,n){return e=bo(e),n=null==n?0:ci(mo(n),0,e.length),t=lr(t),e.slice(n,n+t.length)==t},Dn.subtract=Ec,Dn.sum=function(e){return e&&e.length?Jt(e,rc):0},Dn.sumBy=function(e,t){return e&&e.length?Jt(e,us(t,2)):0},Dn.template=function(e,t,i){var r=Dn.templateSettings;i&&_s(e,t,i)&&(t=n),e=bo(e),t=xo({},t,r,Yr);var s,a,o=xo({},t.imports,r.imports,Yr),c=Oo(o),u=Zt(o,c),l=0,d=t.interpolate||_e,h="__p += '",p=Ce((t.escape||_e).source+"|"+d.source+"|"+(d===Z?he:_e).source+"|"+(t.evaluate||_e).source+"|$","g"),f="//# sourceURL="+(Ne.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++st+"]")+"\n";e.replace(p,(function(t,n,i,r,o,c){return i||(i=r),h+=e.slice(l,c).replace(we,sn),n&&(s=!0,h+="' +\n__e("+n+") +\n'"),o&&(a=!0,h+="';\n"+o+";\n__p += '"),i&&(h+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),l=c+t.length,t})),h+="';\n";var m=Ne.call(t,"variable")&&t.variable;if(m){if(le.test(m))throw new ke("Invalid `variable` option passed into `_.template`")}else h="with (obj) {\n"+h+"\n}\n";h=(a?h.replace(z,""):h).replace(W,"$1").replace(K,"$1;"),h="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(s?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=Yo((function(){return Ee(c,f+"return "+h).apply(n,u)}));if(g.source=h,Qa(g))throw g;return g},Dn.times=function(e,t){if((e=mo(e))<1||e>h)return[];var n=f,i=_n(e,f);t=us(t),e-=f;for(var r=Gt(i,t);++n<e;)t(n);return r},Dn.toFinite=fo,Dn.toInteger=mo,Dn.toLength=go,Dn.toLower=function(e){return bo(e).toLowerCase()},Dn.toNumber=yo,Dn.toSafeInteger=function(e){return e?ci(mo(e),-9007199254740991,h):0===e?e:0},Dn.toString=bo,Dn.toUpper=function(e){return bo(e).toUpperCase()},Dn.trim=function(e,t,i){if((e=bo(e))&&(i||t===n))return Qt(e);if(!e||!(t=lr(t)))return e;var r=pn(e),s=pn(t);return xr(r,en(r,s),tn(r,s)+1).join("")},Dn.trimEnd=function(e,t,i){if((e=bo(e))&&(i||t===n))return e.slice(0,fn(e)+1);if(!e||!(t=lr(t)))return e;var r=pn(e);return xr(r,0,tn(r,pn(t))+1).join("")},Dn.trimStart=function(e,t,i){if((e=bo(e))&&(i||t===n))return e.replace(re,"");if(!e||!(t=lr(t)))return e;var r=pn(e);return xr(r,en(r,pn(t))).join("")},Dn.truncate=function(e,t){var i=30,r="...";if(eo(t)){var s="separator"in t?t.separator:s;i="length"in t?mo(t.length):i,r="omission"in t?lr(t.omission):r}var a=(e=bo(e)).length;if(an(e)){var o=pn(e);a=o.length}if(i>=a)return e;var c=i-hn(r);if(c<1)return r;var u=o?xr(o,0,c).join(""):e.slice(0,c);if(s===n)return u+r;if(o&&(c+=u.length-c),so(s)){if(e.slice(c).search(s)){var l,d=u;for(s.global||(s=Ce(s.source,bo(pe.exec(s))+"g")),s.lastIndex=0;l=s.exec(d);)var h=l.index;u=u.slice(0,h===n?c:h)}}else if(e.indexOf(lr(s),c)!=c){var p=u.lastIndexOf(s);p>-1&&(u=u.slice(0,p))}return u+r},Dn.unescape=function(e){return(e=bo(e))&&J.test(e)?e.replace(H,mn):e},Dn.uniqueId=function(e){var t=++Ue;return bo(e)+t},Dn.upperCase=Qo,Dn.upperFirst=Xo,Dn.each=va,Dn.eachRight=ba,Dn.first=Hs,cc(Dn,(xc={},wi(Dn,(function(e,t){Ne.call(Dn.prototype,t)||(xc[t]=e)})),xc),{chain:!1}),Dn.VERSION="4.17.21",It(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Dn[e].placeholder=Dn})),It(["drop","take"],(function(e,t){Kn.prototype[e]=function(i){i=i===n?1:bn(mo(i),0);var r=this.__filtered__&&!t?new Kn(this):this.clone();return r.__filtered__?r.__takeCount__=_n(i,r.__takeCount__):r.__views__.push({size:_n(i,f),type:e+(r.__dir__<0?"Right":"")}),r},Kn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),It(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=1==n||3==n;Kn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:us(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),It(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Kn.prototype[e]=function(){return this[n](1).value()[0]}})),It(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Kn.prototype[e]=function(){return this.__filtered__?new Kn(this):this[n](1)}})),Kn.prototype.compact=function(){return this.filter(rc)},Kn.prototype.find=function(e){return this.filter(e).head()},Kn.prototype.findLast=function(e){return this.reverse().find(e)},Kn.prototype.invokeMap=Xi((function(e,t){return"function"==typeof e?new Kn(this):this.map((function(n){return Mi(n,e,t)}))})),Kn.prototype.reject=function(e){return this.filter($a(us(e)))},Kn.prototype.slice=function(e,t){e=mo(e);var i=this;return i.__filtered__&&(e>0||t<0)?new Kn(i):(e<0?i=i.takeRight(-e):e&&(i=i.drop(e)),t!==n&&(i=(t=mo(t))<0?i.dropRight(-t):i.take(t-e)),i)},Kn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Kn.prototype.toArray=function(){return this.take(f)},wi(Kn.prototype,(function(e,t){var i=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),s=Dn[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);s&&(Dn.prototype[t]=function(){var t=this.__wrapped__,o=r?[1]:arguments,c=t instanceof Kn,u=o[0],l=c||Wa(t),d=function(e){var t=s.apply(Dn,jt([e],o));return r&&h?t[0]:t};l&&i&&"function"==typeof u&&1!=u.length&&(c=l=!1);var h=this.__chain__,p=!!this.__actions__.length,f=a&&!h,m=c&&!p;if(!a&&l){t=m?t:new Kn(this);var g=e.apply(t,o);return g.__actions__.push({func:pa,args:[d],thisArg:n}),new Wn(g,h)}return f&&m?e.apply(this,o):(g=this.thru(d),f?r?g.value()[0]:g.value():g)})})),It(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Me[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);Dn.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(Wa(r)?r:[],e)}return this[n]((function(n){return t.apply(Wa(n)?n:[],e)}))}})),wi(Kn.prototype,(function(e,t){var n=Dn[t];if(n){var i=n.name+"";Ne.call(On,i)||(On[i]=[]),On[i].push({name:t,func:n})}})),On[Dr(n,2).name]=[{name:"wrapper",func:n}],Kn.prototype.clone=function(){var e=new Kn(this.__wrapped__);return e.__actions__=Pr(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Pr(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Pr(this.__views__),e},Kn.prototype.reverse=function(){if(this.__filtered__){var e=new Kn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Kn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Wa(e),i=t<0,r=n?e.length:0,s=function(e,t,n){var i=-1,r=n.length;for(;++i<r;){var s=n[i],a=s.size;switch(s.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=_n(t,e+a);break;case"takeRight":e=bn(e,t-a)}}return{start:e,end:t}}(0,r,this.__views__),a=s.start,o=s.end,c=o-a,u=i?o:a-1,l=this.__iteratees__,d=l.length,h=0,p=_n(c,this.__takeCount__);if(!n||!i&&r==c&&p==c)return mr(e,this.__actions__);var f=[];e:for(;c--&&h<p;){for(var m=-1,g=e[u+=t];++m<d;){var y=l[m],v=y.iteratee,b=y.type,_=v(g);if(2==b)g=_;else if(!_){if(1==b)continue e;break e}}f[h++]=g}return f},Dn.prototype.at=fa,Dn.prototype.chain=function(){return ha(this)},Dn.prototype.commit=function(){return new Wn(this.value(),this.__chain__)},Dn.prototype.next=function(){this.__values__===n&&(this.__values__=po(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?n:this.__values__[this.__index__++]}},Dn.prototype.plant=function(e){for(var t,i=this;i instanceof zn;){var r=Fs(i);r.__index__=0,r.__values__=n,t?s.__wrapped__=r:t=r;var s=r;i=i.__wrapped__}return s.__wrapped__=e,t},Dn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Kn){var t=e;return this.__actions__.length&&(t=new Kn(this)),(t=t.reverse()).__actions__.push({func:pa,args:[ea],thisArg:n}),new Wn(t,this.__chain__)}return this.thru(ea)},Dn.prototype.toJSON=Dn.prototype.valueOf=Dn.prototype.value=function(){return mr(this.__wrapped__,this.__actions__)},Dn.prototype.first=Dn.prototype.head,et&&(Dn.prototype[et]=function(){return this}),Dn}();mt?((mt.exports=gn)._=gn,ft._=gn):pt._=gn}).call(On)}(li,li.exports);class di extends Zn{descriptor;updateMergingQueue;cache;context;contextEventId;constructor(e,t,n){super(e,n);this.updateMergingQueue=new ei(((e,t)=>"number"==typeof t.ttl?{ttl:t.ttl}:e)),this.cache=new ui,this.descriptor=t,this.descriptor.date_updated=new Date(this.descriptor.date_updated)}get uri(){return this.descriptor.url}get revision(){return this.descriptor.revision}get lastEventId(){return this.descriptor.last_event_id}get links(){return this.descriptor.links}get dateExpires(){return this.descriptor.date_expires}static get type(){return"list"}get type(){return"list"}get indexName(){}get queryString(){}get sid(){return this.descriptor.sid}get uniqueName(){return this.descriptor.unique_name||null}get dateUpdated(){return this.descriptor.date_updated}async _addOrUpdateItemOnServer(e,t,n,i){const r={data:t};void 0!==i&&(r.ttl=i);const s=await this.services.network.post(e,r,n);return s.body.data=t,s.body.date_updated=new Date(s.body.date_updated),s.body}async push(e,t){let n=(t||{}).ttl,i=await this._addOrUpdateItemOnServer(this.links.items,e,void 0,n),r=Number(i.index);return this._handleItemMutated(r,i.url,i.last_event_id,i.revision,e,i.date_updated,i.date_expires,!0,!1),this.cache.getValue(r)}async set(e,t,n){const i=n||{};return this.updateMergingQueue.squashAndAdd(e,i,(n=>this._updateItemUnconditionally(e,t,n.ttl)))}async _updateItemUnconditionally(e,t,n){let i=await this.get(e);const r=await this._addOrUpdateItemOnServer(i.url,t,void 0,n);return this._handleItemMutated(e,r.url,r.last_event_id,r.revision,r.data,r.date_updated,r.date_expires,!1,!1),this.cache.getValue(e)}async _updateItemWithIfMatch(e,t,n){const i=await this.get(e),r=t(xn(i.data));if(!r)return i;{const s=i.revision;try{const t=await this._addOrUpdateItemOnServer(i.url,r,s,n);return this._handleItemMutated(e,t.url,t.last_event_id,t.revision,t.data,t.date_updated,t.date_expires,!1,!1),this.cache.getValue(e)}catch(i){if(412===i.status)return await this._getItemFromServer(e),this._updateItemWithIfMatch(e,t,n);throw i}}}async mutate(e,t,n){const i=n||{};return this.updateMergingQueue.add(e,i,(n=>this._updateItemWithIfMatch(e,t,n.ttl)))}async update(e,t,n){return this.mutate(e,(e=>Object.assign(e,t)),n)}async remove(e){const t=await this.get(e),n=xn(t.data),i=await this.services.network.delete(t.url);this._handleItemRemoved(e,i.body.last_event_id,n,new Date(i.body.date_updated),!1)}async get(e){let t=this.cache.get(e);return t?t.value:this._getItemFromServer(e)}async _getItemFromServer(e){let t=await this._queryItemsFromServer({index:e});if(t.items.length<1)throw new SyncError(`No item with index ${e} found`,404,54151);return t.items[0]}async queryItems(e){if("number"==typeof e.index){const t=this.cache.get(e.index);return t?this.makePaginator(t.isValid?[t.value]:[],e,!1,!1):this._querySingleItemFromServer(e.index)}const t=!!e.nextPageItemId||!!e.prevPageItemId,n={...e};t&&(e.from=e.nextPageItemId??e.prevPageItemId??e.from);const i=!!e.prevPageItemId;let r="desc"===e.order?i?this.cache.getIterator(e.prevPageItemId??e.from??null):this.cache.getReverseIterator(e.nextPageItemId??e.from??null):i?this.cache.getReverseIterator(e.prevPageItemId??e.from??null):this.cache.getIterator(e.nextPageItemId??e.from??null),s=[];const a=t?e.limit+1:e.limit;for(let n of r)if((!t||n.value.index!=e.from)&&(s.push(n.value),s.length>=e.limit))return i&&li.exports.reverse(s),this.makePaginator(s,e,this._prevPageAllowed(s,e.order),this._nextPageAllowed(s,e.order));s.length>0&&(e.from=li.exports.last(s).index);const o=Math.max(a-s.length,10);i&&(e.order="desc"===e.order?"asc":"desc");if(e.from!==("desc"===n.order?i?this.cache.collectionEnd:this.cache.collectionBegin:i?this.cache.collectionBegin:this.cache.collectionEnd)){const n=await this._queryItemsFromServer({...e,limit:o}),r=n.items;this.cache.populate(r,!n.hasPrevPage,!n.hasNextPage);for(let n of r)if((!(s.length>0||t)||n.index!=e.from)&&(i?s.unshift(n):s.push(n),s.length>=e.limit))break}else i&&li.exports.reverse(s);return this.makePaginator(s,n,this._prevPageAllowed(s,n.order),this._nextPageAllowed(s,n.order))}_prevPageAllowed(e,t){return e.length>0&&li.exports.head(e).index!==("desc"===t?this.cache.collectionEnd:this.cache.collectionBegin)}_nextPageAllowed(e,t){return e.length>0&&li.exports.last(e).index!==("desc"===t?this.cache.collectionBegin:this.cache.collectionEnd)}makePaginator(e,t,n,i){t.nextPageItemId=t.prevPageItemId=null;const r=n&&this._prevPageAllowed(e,t.order),s=i&&this._nextPageAllowed(e,t.order);return new Paginator(e,(e=>this.queryItems({...t,...e})),r?li.exports.head(e).index:null,s?li.exports.last(e).index:null)}async _querySingleItemFromServer(e){const t=await this._queryItemsFromServer({index:e});return 0===t.items.length&&this.cache.delete(e,null),t}async _queryItemsFromServer(e){const t=new _n(this.links.items).queryParam("HideExpired",!0).queryParam("Index",e.index).queryParam("PageToken",e.pageToken).queryParam("From",e.from).queryParam("PageSize",e.limit).queryParam("Order",e.order).build();let n=await this.services.network.get(t),i=(n.body?.items??[]).map((e=>(e.date_updated=new Date(e.date_updated),this._handleItemMutated(e.index,e.url,e.last_event_id,e.revision,e.data,e.date_updated,e.date_expires,!1,!0),this.cache.getValue(e.index))));const r=n.body.meta;return this.makePaginator(i,e,!!r.previous_token,!!r.next_token)}async getItems(e){return Sn((e=e||{}).pageSize),e.limit=e.pageSize||e.limit||50,e.order=e.order||"asc",this.queryItems(e)}async getContext(){if(!this.context){let e=await this.services.network.get(this.links.context);this._updateContextIfRequired(e.body.data,e.body.last_event_id)}return this.context}async setTtl(e){try{const t={ttl:e},n=await this.services.network.post(this.uri,t);this.descriptor.date_expires=n.body.date_expires}catch(e){throw 404===e.status&&this.onRemoved(!1),e}}async setItemTtl(e,t){let n=await this.get(e);const i={ttl:t},r=await this.services.network.post(n.url,i);n.updateDateExpires(r.body.date_expires)}async removeList(){await this.services.network.delete(this.uri),this.onRemoved(!0)}onRemoved(e){this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e})}shouldIgnoreEvent(e,t){return this.cache.isKnown(e,t)}_update(e,t){const n=Number(e.item_index);switch(e.date_created=new Date(e.date_created),e.type){case"list_item_added":case"list_item_updated":this._handleItemMutated(n,e.item_url,e.id,e.item_revision,e.item_data,e.date_created,e.date_expires,"list_item_added"===e.type,!0);break;case"list_item_removed":this._handleItemRemoved(n,e.id,e.item_data,e.date_created,!0);break;case"list_context_updated":this._handleContextUpdate(e.context_data,e.id,e.date_created);break;case"list_removed":this.onRemoved(!1)}t&&this._advanceLastEventId(e.id,e.list_revision)}_advanceLastEventId(e,t){this.lastEventId<e&&(this.descriptor.last_event_id=e,t&&(this.descriptor.revision=t))}_updateRootDateUpdated(e){(!this.descriptor.date_updated||e.getTime()>this.descriptor.date_updated.getTime())&&(this.descriptor.date_updated=e,this.services.storage.update(this.type,this.sid,this.uniqueName,{date_updated:e}))}_handleItemMutated(e,t,n,i,r,s,a,o,c){if(this.shouldIgnoreEvent(e,n))return void Cn(`Item ${e} update skipped, current: ${this.lastEventId}, remote: ${n}`);this._updateRootDateUpdated(s);const u=this.cache.getValue(e);if(!u){const u=new ri({index:e,url:t,lastEventId:n,revision:i,data:r,dateUpdated:s,dateExpires:a});return this.cache.store(e,u,n),void this.emitItemMutationEvent(u,c,o)}const l=xn(u.data);u.update(n,i,r,s),this.cache.store(e,u,n),void 0!==a&&u.updateDateExpires(a),this.emitItemMutationEvent(u,c,!1,l)}emitItemMutationEvent(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;const r=n?"itemAdded":"itemUpdated",s={item:e,isLocal:!t};n||(s.previousItemData=i),this.broadcastEventToListeners(r,s)}_handleItemRemoved(e,t,n,i,r){this._updateRootDateUpdated(i),this.cache.delete(e,t),this.broadcastEventToListeners("itemRemoved",{index:e,isLocal:!r,previousItemData:n})}_handleContextUpdate(e,t,n){this._updateRootDateUpdated(n),this._updateContextIfRequired(e,t)&&this.broadcastEventToListeners("contextUpdated",{context:e,isLocal:!1})}_updateContextIfRequired(e,t){return!this.contextEventId||t>this.contextEventId?(this.context=e,this.contextEventId=t,!0):(Cn("Context update skipped, current:",this.lastEventId,", remote:",t),!1)}}class hi extends ti{syncListImpl;get uri(){return this.syncListImpl.uri}get revision(){return this.syncListImpl.revision}get lastEventId(){return this.syncListImpl.lastEventId}get links(){return this.syncListImpl.links}get dateExpires(){return this.syncListImpl.dateExpires}static get type(){return di.type}get type(){return di.type}get sid(){return this.syncListImpl.sid}get uniqueName(){return this.syncListImpl.uniqueName}get dateUpdated(){return this.syncListImpl.dateUpdated}constructor(e){super(),this.syncListImpl=e,this.syncListImpl.attach(this)}static itemAdded="itemAdded";static itemUpdated="itemUpdated";static itemRemoved="itemRemoved";static removed="removed";async push(e,t){return this.ensureNotClosed(),this.syncListImpl.push(e,t)}async set(e,t,n){return this.ensureNotClosed(),this.syncListImpl.set(e,t,n)}async mutate(e,t,n){return this.ensureNotClosed(),this.syncListImpl.mutate(e,t,n)}async update(e,t,n){return this.ensureNotClosed(),this.syncListImpl.update(e,t,n)}async remove(e){return this.ensureNotClosed(),this.syncListImpl.remove(e)}async get(e){return this.ensureNotClosed(),this.syncListImpl.get(e)}async getContext(){return this.ensureNotClosed(),this.syncListImpl.getContext()}async getItems(e){return this.ensureNotClosed(),this.syncListImpl.getItems(e)}async setTtl(e){return this.ensureNotClosed(),this.syncListImpl.setTtl(e)}async setItemTtl(e,t){return this.ensureNotClosed(),this.syncListImpl.setItemTtl(e,t)}async removeList(){return this.ensureNotClosed(),this.syncListImpl.removeList()}close(){super.close(),this.syncListImpl.detach(this.listenerUuid)}}vn([sn.validateTypesAsync(sn.pureObject,["undefined",sn.objectSchema("item metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Object,Object]),bn("design:returntype",Promise)],hi.prototype,"push",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger,sn.pureObject,["undefined",sn.objectSchema("item metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Number,Object,Object]),bn("design:returntype",Promise)],hi.prototype,"set",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger,"function",["undefined",sn.objectSchema("item metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Number,Function,Object]),bn("design:returntype",Promise)],hi.prototype,"mutate",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger,sn.pureObject,["undefined",sn.objectSchema("item metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Number,Object,Object]),bn("design:returntype",Promise)],hi.prototype,"update",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number]),bn("design:returntype",Promise)],hi.prototype,"remove",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number]),bn("design:returntype",Promise)],hi.prototype,"get",null),vn([sn.validateTypesAsync(["undefined",sn.objectSchema("query options",{from:[sn.nonNegativeInteger,"undefined"],pageSize:[sn.custom((e=>[kn(e),"a positive integer"])),"undefined"],order:[sn.custom((e=>["asc"===e||"desc"===e,"either 'asc' or 'desc'"])),"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],hi.prototype,"getItems",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number]),bn("design:returntype",Promise)],hi.prototype,"setTtl",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger,sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number,Number]),bn("design:returntype",Promise)],hi.prototype,"setItemTtl",null);class pi{descriptor;constructor(e){this.descriptor=e}get uri(){return this.descriptor.url}get revision(){return this.descriptor.revision}get lastEventId(){return this.descriptor.last_event_id}get dateExpires(){return this.descriptor.date_expires}get key(){return this.descriptor.key}get data(){return this.descriptor.data}get dateUpdated(){return this.descriptor.date_updated}get cacheKey(){return this.key}update(e,t,n,i){return this.descriptor.last_event_id=e,this.descriptor.revision=t,this.descriptor.data=n,this.descriptor.date_updated=i,this}updateDateExpires(e){this.descriptor.date_expires=e}}class fi extends Zn{descriptor;updateMergingQueue;cache;constructor(e,t,n){super(e,n);this.updateMergingQueue=new ei(((e,t)=>"number"==typeof t.ttl?{ttl:t.ttl}:e)),this.cache=new ui,this.descriptor=t,this.descriptor.date_updated=new Date(this.descriptor.date_updated),t.items&&t.items.forEach((e=>{e.date_updated=new Date(e.date_updated),this.cache.store(e.key,new pi(e),e.last_event_id)}))}get uri(){return this.descriptor.url}get links(){return this.descriptor.links}get revision(){return this.descriptor.revision}get lastEventId(){return this.descriptor.last_event_id}get dateExpires(){return this.descriptor.date_expires}static get type(){return"map"}get type(){return"map"}get indexName(){}get queryString(){}get sid(){return this.descriptor.sid}get uniqueName(){return this.descriptor.unique_name||null}get dateUpdated(){return this.descriptor.date_updated}async set(e,t,n){const i=n||{};return this.updateMergingQueue.squashAndAdd(e,i,(n=>this._putItemUnconditionally(e,t,n.ttl)))}async get(e){if(null==e)throw new SyncError("SyncMapItem key may not be empty",400,54209);return this.cache.has(e)?this.cache.getValue(e):this._getItemFromServer(e)}async _getItemFromServer(e){let t=await this._queryItemsFromServer({key:e});if(t.items.length<1)throw new SyncError("The specified Map Item does not exist",404,54201);return t.items[0]}async mutate(e,t,n){const i=n||{};return this.updateMergingQueue.add(e,i,(n=>this._putItemWithIfMatch(e,t,n.ttl)))}async update(e,t,n){return this.mutate(e,(e=>Object.assign(e,t)),n)}async _putItemUnconditionally(e,t,n){const i=await this._putItemToServer(e,t,void 0,n),r=i.item;return this._handleItemMutated(r.key,r.url,r.last_event_id,r.revision,r.data,r.date_updated,r.date_expires,i.added,!1),this.cache.getValue(r.key)}async _putItemWithIfMatch(e,t,n){const i=await this.get(e).catch((t=>{if(404===t.status)return new pi({key:e,data:{},last_event_id:-1,revision:"-1",url:null,date_updated:null,date_expires:null});throw t}));let r=t(xn(i.data));if(!r)return i;{let s=i.revision;try{const t=await this._putItemToServer(e,r,s,n),i=t.item;return this._handleItemMutated(i.key,i.url,i.last_event_id,i.revision,i.data,i.date_updated,i.date_expires,t.added,!1),this.cache.getValue(i.key)}catch(i){if(412===i.status)return await this._getItemFromServer(e),this._putItemWithIfMatch(e,t,n);throw i}}}async _putItemToServer(e,t,n,i){const r=new _n(this.links.items).pathSegment(e).build(),s={data:t};void 0!==i&&(s.ttl=i);try{const e=await this.services.network.put(r,s,n),i=e.body;i.data=t,i.date_updated=new Date(i.date_updated);return{added:201===e.status.code,item:i}}catch(e){throw 404===e.status&&this.onRemoved(!1),e}}async remove(e){const t=await this.get(e),n=xn(t.data),i=await this.services.network.delete(t.uri);this._handleItemRemoved(e,i.body.last_event_id,n,new Date(i.body.date_updated),!1)}async queryItems(e){if("string"==typeof e.key){const t=this.cache.get(e.key);return t?this.makePaginator(t.isValid?[t.value]:[],e,!1,!1):this._querySingleItemFromServer(e.key)}const t=!!e.nextPageItemId||!!e.prevPageItemId,n={...e};t&&(e.from=e.nextPageItemId??e.prevPageItemId??e.from);const i=!!e.prevPageItemId;let r="desc"===e.order?i?this.cache.getIterator(e.prevPageItemId??e.from??null):this.cache.getReverseIterator(e.nextPageItemId??e.from??null):i?this.cache.getReverseIterator(e.prevPageItemId??e.from??null):this.cache.getIterator(e.nextPageItemId??e.from??null),s=[];const a=t?e.limit+1:e.limit;for(let n of r)if((!t||n.value.key!=e.from)&&(s.push(n.value),s.length>=e.limit))return i&&li.exports.reverse(s),this.makePaginator(s,e,this._prevPageAllowed(s,e.order),this._nextPageAllowed(s,e.order));s.length>0&&(e.from=li.exports.last(s).key);const o=Math.max(a-s.length,10);i&&(e.order="desc"===e.order?"asc":"desc");if(e.from!==("desc"===n.order?i?this.cache.collectionEnd:this.cache.collectionBegin:i?this.cache.collectionBegin:this.cache.collectionEnd)){const n=await this._queryItemsFromServer({...e,limit:o}),r=n.items;this.cache.populate(r,!n.hasPrevPage,!n.hasNextPage);for(let n of r)if((!(s.length>0||t)||n.key!=e.from)&&(i?s.unshift(n):s.push(n),s.length>=e.limit))break}else i&&li.exports.reverse(s);return this.makePaginator(s,n,this._prevPageAllowed(s,n.order),this._nextPageAllowed(s,n.order))}_prevPageAllowed(e,t){return e.length>0&&li.exports.head(e).key!==("desc"===t?this.cache.collectionEnd:this.cache.collectionBegin)}_nextPageAllowed(e,t){return e.length>0&&li.exports.last(e).key!==("desc"===t?this.cache.collectionBegin:this.cache.collectionEnd)}makePaginator(e,t,n,i){t.nextPageItemId=t.prevPageItemId=null;const r=n&&this._prevPageAllowed(e,t.order),s=i&&this._nextPageAllowed(e,t.order);return new Paginator(e,(e=>this.queryItems({...t,...e})),r?li.exports.head(e).key:null,s?li.exports.last(e).key:null)}async _querySingleItemFromServer(e){const t=await this._queryItemsFromServer({key:e});return 0===t.items.length&&this.cache.delete(e,null),t}async _queryItemsFromServer(e){const t=new _n(this.links.items).queryParam("HideExpired",!0).queryParam("Key",e.key).queryParam("PageToken",e.pageToken).queryParam("From",e.from).queryParam("PageSize",e.limit).queryParam("Order",e.order).build();let n=await this.services.network.get(t),i=(n.body?.items??[]).map((e=>(e.date_updated=new Date(e.date_updated),this._handleItemMutated(e.key,e.url,e.last_event_id,e.revision,e.data,e.date_updated,e.date_expires,!1,!0),this.cache.getValue(e.key))));const r=n.body.meta;return this.makePaginator(i,e,!!r.previous_token,!!r.next_token)}async getItems(e){return Sn((e=e||{}).pageSize),e.limit=e.pageSize||e.limit||50,e.order=e.order||"asc",this.queryItems(e)}shouldIgnoreEvent(e,t){return this.cache.isKnown(e,t)}_update(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,e.date_expires,"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)}_advanceLastEventId(e,t){this.lastEventId<e&&(this.descriptor.last_event_id=e,t&&(this.descriptor.revision=t))}_updateRootDateUpdated(e){(!this.descriptor.date_updated||e.getTime()>this.descriptor.date_updated.getTime())&&(this.descriptor.date_updated=e,this.services.storage.update(this.type,this.sid,this.uniqueName,{date_updated:e}))}_handleItemMutated(e,t,n,i,r,s,a,o,c){if(this.shouldIgnoreEvent(e,n))return void Cn("SyncMapItem ",e," update skipped, current:",this.lastEventId,", remote:",n);this._updateRootDateUpdated(s);const u=this.cache.getValue(e);if(!u){const u=new pi({key:e,url:t,last_event_id:n,revision:i,data:r,date_updated:s,date_expires:a});return this.cache.store(e,u,n),void this.emitItemMutationEvent(u,c,o)}const l=xn(u.data);u.update(n,i,r,s),this.cache.store(e,u,n),void 0!==a&&u.updateDateExpires(a),this.emitItemMutationEvent(u,c,!1,l)}emitItemMutationEvent(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;const r=n?"itemAdded":"itemUpdated",s={item:e,isLocal:!t};n||(s.previousItemData=i),this.broadcastEventToListeners(r,s)}_handleItemRemoved(e,t,n,i,r){this._updateRootDateUpdated(i),this.cache.delete(e,t),this.broadcastEventToListeners("itemRemoved",{key:e,isLocal:!r,previousItemData:n})}onRemoved(e){this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e})}async setTtl(e){try{const t={ttl:e},n=await this.services.network.post(this.uri,t);this.descriptor.date_expires=n.body.date_expires}catch(e){throw 404===e.status&&this.onRemoved(!1),e}}async setItemTtl(e,t){let n=await this.get(e);const i={ttl:t},r=await this.services.network.post(n.uri,i);n.updateDateExpires(r.body.date_expires)}async removeMap(){await this.services.network.delete(this.uri),this.onRemoved(!0)}}class mi extends ti{syncMapImpl;get uri(){return this.syncMapImpl.uri}get links(){return this.syncMapImpl.links}get revision(){return this.syncMapImpl.revision}get lastEventId(){return this.syncMapImpl.lastEventId}get dateExpires(){return this.syncMapImpl.dateExpires}static get type(){return fi.type}get type(){return fi.type}get sid(){return this.syncMapImpl.sid}get uniqueName(){return this.syncMapImpl.uniqueName}get dateUpdated(){return this.syncMapImpl.dateUpdated}constructor(e){super(),this.syncMapImpl=e,this.syncMapImpl.attach(this)}static itemAdded="itemAdded";static itemUpdated="itemUpdated";static itemRemoved="itemRemoved";static removed="removed";async set(e,t,n){return this.ensureNotClosed(),this.syncMapImpl.set(e,t,n)}async get(e){return this.ensureNotClosed(),this.syncMapImpl.get(e)}async mutate(e,t,n){return this.ensureNotClosed(),this.syncMapImpl.mutate(e,t,n)}async update(e,t,n){return this.ensureNotClosed(),this.syncMapImpl.update(e,t,n)}async remove(e){return this.ensureNotClosed(),this.syncMapImpl.remove(e)}async getItems(e){return this.ensureNotClosed(),this.syncMapImpl.getItems(e)}async setTtl(e){return this.ensureNotClosed(),this.syncMapImpl.setTtl(e)}async setItemTtl(e,t){return this.ensureNotClosed(),this.syncMapImpl.setItemTtl(e,t)}async removeMap(){this.ensureNotClosed(),await this.syncMapImpl.removeMap()}close(){super.close(),this.syncMapImpl.detach(this.listenerUuid)}}vn([sn.validateTypesAsync("string",sn.pureObject,["undefined",sn.objectSchema("item metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[String,Object,Object]),bn("design:returntype",Promise)],mi.prototype,"set",null),vn([sn.validateTypesAsync("string"),bn("design:type",Function),bn("design:paramtypes",[String]),bn("design:returntype",Promise)],mi.prototype,"get",null),vn([sn.validateTypesAsync("string","function",["undefined",sn.objectSchema("item metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[String,Function,Object]),bn("design:returntype",Promise)],mi.prototype,"mutate",null),vn([sn.validateTypesAsync("string",sn.pureObject,["undefined",sn.objectSchema("item metadata",{ttl:[sn.nonNegativeInteger,"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[String,Object,Object]),bn("design:returntype",Promise)],mi.prototype,"update",null),vn([sn.validateTypesAsync("string"),bn("design:type",Function),bn("design:paramtypes",[String]),bn("design:returntype",Promise)],mi.prototype,"remove",null),vn([sn.validateTypesAsync(["undefined",sn.objectSchema("query options",{from:["string","undefined"],pageSize:[sn.custom((e=>[kn(e),"a positive integer"])),"undefined"],order:[sn.custom((e=>["asc"===e||"desc"===e,"either 'asc' or 'desc'"])),"undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],mi.prototype,"getItems",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number]),bn("design:returntype",Promise)],mi.prototype,"setTtl",null),vn([sn.validateTypesAsync("string",sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[String,Number]),bn("design:returntype",Promise)],mi.prototype,"setItemTtl",null);class gi extends Zn{descriptor;constructor(e,t,n){super(e,n),this.descriptor=t}get uri(){return this.descriptor.url}get links(){return this.descriptor.links}static get type(){return"stream"}get dateExpires(){return this.descriptor.date_expires}get type(){return"stream"}get lastEventId(){return null}get indexName(){}get queryString(){}get sid(){return this.descriptor.sid}get uniqueName(){return this.descriptor.unique_name||null}async publishMessage(e){const t={data:e},n=(await this.services.network.post(this.links.messages,t)).body;return this._handleMessagePublished(n.sid,e,!1)}async setTtl(e){try{const t={ttl:e},n=await this.services.network.post(this.uri,t);this.descriptor.date_expires=n.body.date_expires}catch(e){throw 404===e.status&&this.onRemoved(!1),e}}async removeStream(){await this.services.network.delete(this.uri),this.onRemoved(!0)}_update(e){switch(e.type){case"stream_message_published":this._handleMessagePublished(e.message_sid,e.message_data,!0);break;case"stream_removed":this.onRemoved(!1)}}_handleMessagePublished(e,t,n){const i={sid:e,data:t};return this.broadcastEventToListeners("messagePublished",{message:i,isLocal:!n}),i}onRemoved(e){this._unsubscribe(),this.removalHandler(this.type,this.sid,this.uniqueName),this.broadcastEventToListeners("removed",{isLocal:e})}}vn([sn.validateTypesAsync(sn.pureObject),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],gi.prototype,"publishMessage",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number]),bn("design:returntype",Promise)],gi.prototype,"setTtl",null);class yi extends ti{syncStreamImpl;get uri(){return this.syncStreamImpl.uri}get links(){return this.syncStreamImpl.links}static get type(){return gi.type}get dateExpires(){return this.syncStreamImpl.dateExpires}get type(){return gi.type}get lastEventId(){return null}get sid(){return this.syncStreamImpl.sid}get uniqueName(){return this.syncStreamImpl.uniqueName}constructor(e){super(),this.syncStreamImpl=e,this.syncStreamImpl.attach(this)}static messagePublished="messagePublished";static removed="removed";async publishMessage(e){return this.ensureNotClosed(),this.syncStreamImpl.publishMessage(e)}async setTtl(e){return this.ensureNotClosed(),this.syncStreamImpl.setTtl(e)}async removeStream(){return this.ensureNotClosed(),this.syncStreamImpl.removeStream()}close(){super.close(),this.syncStreamImpl.detach(this.listenerUuid)}}vn([sn.validateTypesAsync(sn.pureObject),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],yi.prototype,"publishMessage",null),vn([sn.validateTypesAsync(sn.nonNegativeInteger),bn("design:type",Function),bn("design:paramtypes",[Number]),bn("design:returntype",Promise)],yi.prototype,"setTtl",null);class vi{sdk;sdkVer;os;osVer;pl;plVer;constructor(e){this.sdk="js",this.sdkVer=e,this.os=yn.os.family,this.osVer=yn.os.version,this.pl=yn.name,this.plVer=yn.version}}class bi{names;entities;constructor(){this.names=new Map,this.entities=new Map}store(e){let t=this.entities.get(e.sid);return t||(this.entities.set(e.sid,e),e.uniqueName&&this.names.set(e.type+"::"+e.uniqueName,e.sid),e)}getResolved(e,t){let n=this.names.get(t+"::"+e);return n?this.entities.get(n):null}get(e,t){return this.entities.get(e)||this.getResolved(e,t)||null}remove(e){let t=this.entities.get(e);t&&(this.entities.delete(e),t.uniqueName&&this.names.delete(t.type+"::"+t.uniqueName))}}class _i{constructor(e,t,n){this.key=e,this.value=t,this.lastEventId=n}key;value;lastEventId;get cacheKey(){return this.key}}class wi extends Zn{descriptor;cache;constructor(e,t,n,i){super(t,n),this.descriptor=e,this.cache=new ui,i&&i.forEach((e=>{const t=new _i(e.key,e.data,e.revision);this.cache.store(e.key,t,e.revision)}))}get sid(){return this.descriptor.sid}get uniqueName(){return null}get type(){return wi.type}static get type(){return"live_query"}get lastEventId(){return this.descriptor.last_event_id}get indexName(){return this.descriptor.indexName}get queryString(){return this.descriptor.queryExpression}get queryUri(){return this.descriptor.queryUri}get liveQueryDescriptor(){return this.descriptor}onRemoved(){}getItems(){const e={};return this.cache.forEach(((t,n)=>{e[t]=n.value})),e}_update(e,t){switch(e.type){case"live_query_item_updated":this.handleItemMutated(e.item_key,e.item_data,e.item_revision);break;case"live_query_item_removed":this.handleItemRemoved(e.item_key,e.item_revision);break;case"live_query_updated":this.handleBatchUpdate(e.items)}t&&this._advanceLastEventId(e.last_event_id)}handleItemMutated(e,t,n){if(this.shouldIgnoreEvent(e,n))return void Cn(`Item ${e} update skipped, revision: ${n}`);const i=new _i(e,t,n);this.cache.store(e,i,n),this.broadcastEventToListeners("itemUpdated",i)}handleItemRemoved(e,t){this.shouldIgnoreEvent(e,t)?Cn(`Item ${e} delete skipped, revision: ${t}`):(this.cache.delete(e,t),this.broadcastEventToListeners("itemRemoved",{key:e}))}handleBatchUpdate(e){let t={};null!=e&&e.forEach((e=>{t[e.key]={data:e.data,revision:e.revision}})),this.cache.forEach(((e,n)=>{const i=t[e];null!=i?this.handleItemMutated(e,i.data,i.revision):this.handleItemRemoved(e,null),delete t[e]}));for(let e in t)this.handleItemMutated(e,t[e].data,t[e].revision)}shouldIgnoreEvent(e,t){return null!=e&&null!=t&&this.cache.isKnown(e,t)}_advanceLastEventId(e,t){this.lastEventId<e&&(this.descriptor.last_event_id=e)}}async function xi(e){let{network:t,queryString:n,uri:i,type:r}=e;if(null==n)throw new SyncError("Invalid query",400,54507);const s={query_string:n};return r===Si.type&&(s.type=r),(await t.post(i,s,void 0,!0)).body}class Si extends ti{liveQueryImpl;static get type(){return wi.type}get type(){return wi.type}get lastEventId(){return this.liveQueryImpl.lastEventId}get sid(){return this.liveQueryImpl.sid}constructor(e){super(),this.liveQueryImpl=e,this.liveQueryImpl.attach(this)}static itemUpdated="itemUpdated";static itemRemoved="itemRemoved";close(){super.close(),this.liveQueryImpl.detach(this.listenerUuid)}getItems(){return this.ensureNotClosed(),this.liveQueryImpl.getItems()}}class ki extends ln.ReplayEventEmitter{indexName;queryUri;insightsUri;liveQueryCreator;network;queryExpression=null;items={};static get type(){return"instant_query"}get type(){return ki.type}constructor(e){super(),Object.assign(this,e),this.updateIndexName(e.indexName)}static searchResult="searchResult";async search(e){this.items={};try{const t=await xi({network:this.network,uri:this.queryUri,queryString:e});this.queryExpression=e,t.items&&t.items.forEach((e=>{this.items[e.key]=e.data})),this.emit("searchResult",this.getItems())}catch(t){throw Pn(`Error '${t.message}' while executing query '${e}'`),this.queryExpression=null,t}}async subscribe(){return null==this.queryExpression?Promise.reject(new SyncError("Invalid query",400,54507)):this.liveQueryCreator(this.indexName,this.queryExpression)}getItems(){return this.items}updateIndexName(e){this.indexName=e,this.queryUri=this.generateQueryUri(this.indexName)}generateQueryUri(e){return new _n(this.insightsUri).pathSegment(e).pathSegment("Items").build()}}vn([sn.validateTypesAsync("string"),bn("design:type",Function),bn("design:paramtypes",[String]),bn("design:returntype",Promise)],ki.prototype,"search",null),vn([sn.validateTypes(sn.nonEmptyString),bn("design:type",Function),bn("design:paramtypes",[String]),bn("design:returntype",void 0)],ki.prototype,"updateIndexName",null);const Ei="4.0.1-rc.1";function Ti(e){if(e){if("string"==typeof e)return{id:e,mode:"open_or_create"};{let t=e.mode||(e.id?"open_or_create":"create_new");return{...e,mode:t}}}return{mode:"create_new"}}const Ii="com.twilio.rtd.cds.document",Ci="com.twilio.rtd.cds.list",Ri="com.twilio.rtd.cds.map",Pi="twilio.sync.event";class Client extends ln.ReplayEventEmitter{services;entities;_currentState="disconnected";constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(),!e)throw new Error("Sync library needs a valid Twilio token to be passed");t.hasOwnProperty("logLevel")?In(t.logLevel):In("silent");const n=t.productId=t.productId||"data_sync";t.clientMetadata=t.clientMetadata||{},t.clientMetadata.hasOwnProperty("type")||(t.clientMetadata.type="sync"),t.clientMetadata.hasOwnProperty("sdk")||(t.clientMetadata.sdk="JS",t.clientMetadata.sdkv=Ei);const i=!t.twilsockClient,r=t.twilsockClient=t.twilsockClient??new an.TwilsockClient(e,n,t);r.populateInitRegistrations(new Set([Pi,Ii,Ci,Ri])),r.on("tokenAboutToExpire",(()=>this.emit("tokenAboutToExpire"))),r.on("tokenExpired",(()=>this.emit("tokenExpired"))),r.on("messageReceived",((e,t)=>this._routeMessage(e,JSON.parse(t))));let s=new Mn(t),a=new Qn(new vi(Ei),s,r),o=new Xn(s);this.services={config:s,twilsock:r,network:a,storage:o,router:this,subscriptions:null},this.services.subscriptions=new Kn(this.services),r.onWithReplay("disconnected",(e=>{this._currentState="disconnected",this.emitNextTick("connectionStateChanged","disconnected"),this.services.subscriptions.onConnectionStateChanged(!1)})),r.onWithReplay("connecting",(()=>{this._currentState="connecting",this.emitNextTick("connectionStateChanged","connecting"),this.services.subscriptions.onConnectionStateChanged(!1)})),r.onWithReplay("connected",(()=>{this._currentState="connected",this.emitNextTick("connectionStateChanged","connected"),this.services.subscriptions.onConnectionStateChanged(!0)})),this.entities=new bi,i&&r.connect()}static connectionStateChanged="connectionStateChanged";static connectionError="connectionError";static tokenAboutToExpire="tokenAboutToExpire";static tokenExpired="tokenExpired";_routeMessage(e,t){switch(Cn("Notification type:",e,"content:",t),e){case Ii:case Ci:case Ri:this.services.subscriptions.acceptMessage(t,!1);break;case Pi:this.services.subscriptions.acceptMessage(t,!0)}}_subscribe(e,t){this.services.subscriptions.add(e,t)}_unsubscribe(e){this.services.subscriptions.remove(e)}static get version(){return Ei}get connectionState(){return this._currentState}async ensureReady(){this.services.config.sessionStorageEnabled}storeRootInSessionCache(e,t,n){if(!this.services.config.sessionStorageEnabled||!t)return;let i=xn(n);e!==hi.type&&e!==mi.type||(i.last_event_id=null,delete i.items),this.services.storage.store(e,t,i)}readRootFromSessionCache(e,t){return this.services.config.sessionStorageEnabled&&t?this.services.storage.read(e,t):null}async _get(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!t)throw new SyncError("Cannot get entity without id",404);const i=new _n(e).pathSegment(t).queryParam("Include",n?"items":void 0).build();return(await this.services.network.get(i)).body}_createDocument(e,t,n){const i={unique_name:e,data:t||{}};return void 0!==n&&(i.ttl=n),this.services.network.post(this.services.config.documentsUri,i).then((e=>(e.body.data=i.data,e.body)))}async _getDocument(e){return this.readRootFromSessionCache(ii.type,e)||this._get(this.services.config.documentsUri,e)}_createList(e,t,n,i){const r={unique_name:e,purpose:t,context:n};return void 0!==i&&(r.ttl=i),this.services.network.post(this.services.config.listsUri,r).then((e=>e.body))}async _getList(e){return this.readRootFromSessionCache(hi.type,e)||this._get(this.services.config.listsUri,e)}_createMap(e,t){const n={unique_name:e};return void 0!==t&&(n.ttl=t),this.services.network.post(this.services.config.mapsUri,n).then((e=>e.body))}async _getMap(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.readRootFromSessionCache(mi.type,e)||this._get(this.services.config.mapsUri,e,t)}async _getStream(e){return this.readRootFromSessionCache(yi.type,e)||this._get(this.services.config.streamsUri,e,!1)}async _createStream(e,t){const n={unique_name:e};void 0!==t&&(n.ttl=t);return(await this.services.network.post(this.services.config.streamsUri,n)).body}_getLiveQuery(e){return this.readRootFromSessionCache(Si.type,e)}getCached(e,t){return e&&this.entities.get(e,t)||null}removeFromCacheAndSession(e,t,n){this.entities.remove(t),this.services.config.sessionStorageEnabled&&this.services.storage.remove(e,t,n)}async document(e){await this.ensureReady();let t,n=Ti(e);if("create_new"===n.mode)t=await this._createDocument(n.id,n.data,n.ttl);else{let i=this.getCached(n.id,ii.type);if(i)return new ii(i);try{t=await this._getDocument(n.id)}catch(i){if(404!==i.status||"open_existing"===n.mode)throw i;try{t=await this._createDocument(n.id,n.data,n.ttl)}catch(t){if(409===t.status)return this.document(e);throw t}}}this.storeRootInSessionCache(ii.type,n.id,t);let i=new ni(this.services,t,((e,t,n)=>this.removeFromCacheAndSession(e,t,n)));return i=this.entities.store(i),new ii(i)}async map(e){await this.ensureReady();let t,n=Ti(e);if("create_new"===n.mode)t=await this._createMap(n.id,n.ttl);else{let i=this.getCached(n.id,mi.type);if(i)return new mi(i);try{t=await this._getMap(n.id,n.includeItems)}catch(i){if(404!==i.status||"open_existing"===n.mode)throw i;try{t=await this._createMap(n.id,n.ttl)}catch(t){if(409===t.status)return this.map(e);throw t}}}this.storeRootInSessionCache(mi.type,n.id,t);let i=new fi(this.services,t,((e,t,n)=>this.removeFromCacheAndSession(e,t,n)));return i=this.entities.store(i),new mi(i)}async list(e){await this.ensureReady();let t,n=Ti(e);if("create_new"===n.mode)t=await this._createList(n.id,n.purpose,n.context,n.ttl);else{let i=this.getCached(n.id,hi.type);if(i)return new hi(i);try{t=await this._getList(n.id)}catch(i){if(404!==i.status||"open_existing"===n.mode)throw i;try{t=await this._createList(n.id,n.purpose,n.context,n.ttl)}catch(t){if(409===t.status)return this.list(e);throw t}}}this.storeRootInSessionCache(hi.type,n.id,t);let i=new di(this.services,t,((e,t,n)=>this.removeFromCacheAndSession(e,t,n)));return i=this.entities.store(i),new hi(i)}async stream(e){await this.ensureReady();let t,n=Ti(e);if("create_new"===n.mode)t=await this._createStream(n.id,n.ttl);else{let i=this.getCached(n.id,yi.type);if(i)return new yi(i);try{t=await this._getStream(n.id)}catch(i){if(404!==i.status||"open_existing"===n.mode)throw i;try{t=await this._createStream(n.id,n.ttl)}catch(t){if(409===t.status)return this.stream(e);throw t}}}this.storeRootInSessionCache(yi.type,n.id,t);let i=new gi(this.services,t,((e,t,n)=>this.removeFromCacheAndSession(e,t,n)));return i=this.entities.store(i),new yi(i)}async shutdown(){await this.services.subscriptions.shutdown(),await this.services.network.disconnect()}async updateToken(e){return this.services.twilsock.updateToken(e).catch((e=>{if(e instanceof zn&&401===e.errorInfo.status)throw new SyncError("Updated token was rejected by server",400,51130);throw e}))}async liveQuery(e,t){await this.ensureReady();const n=new _n(this.services.config.insightsUri).pathSegment(e).pathSegment("Items").build(),i=await xi({network:this.services.network,uri:n,queryString:t,type:Si.type});let r=this.getCached(i.query_id,Si.type);if(!r){let s=this._getLiveQuery(i.query_id);s||(s={indexName:e,queryExpression:t,sid:i.query_id,queryUri:n,last_event_id:i.last_event_id});const a=(e,t,n)=>this.removeFromCacheAndSession(e,t,n);r=new wi(s,this.services,a,i.items)}return this.storeRootInSessionCache(Si.type,i.query_id,r.liveQueryDescriptor),r=this.entities.store(r),new Si(r)}async instantQuery(e){await this.ensureReady();return new ki({indexName:e,network:this.services.network,insightsUri:this.services.config.insightsUri,liveQueryCreator:(e,t)=>this.liveQuery(e,t)})}}vn([sn.validateTypesAsync(["undefined","string",sn.objectSchema("open document options",{id:["string","undefined"],mode:[sn.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[sn.nonNegativeInteger,"undefined"],data:[sn.pureObject,"undefined",sn.literal(null)]})]),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],Client.prototype,"document",null),vn([sn.validateTypesAsync(["undefined","string",sn.objectSchema("open map options",{id:["string","undefined"],mode:[sn.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[sn.nonNegativeInteger,"undefined"],data:[sn.pureObject,"undefined",sn.literal(null)],includeItems:["boolean","undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],Client.prototype,"map",null),vn([sn.validateTypesAsync(["undefined","string",sn.objectSchema("open list options",{id:["string","undefined"],mode:[sn.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[sn.nonNegativeInteger,"undefined"],data:[sn.pureObject,"undefined",sn.literal(null)],purpose:["string","undefined"],context:[sn.pureObject,"undefined"],includeItems:["boolean","undefined"]})]),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],Client.prototype,"list",null),vn([sn.validateTypesAsync(["undefined","string",sn.objectSchema("open stream options",{id:["string","undefined"],mode:[sn.literal("open_or_create","open_existing","create_new"),"undefined"],ttl:[sn.nonNegativeInteger,"undefined"],data:[sn.pureObject,"undefined",sn.literal(null)]})]),bn("design:type",Function),bn("design:paramtypes",[Object]),bn("design:returntype",Promise)],Client.prototype,"stream",null),vn([sn.validateTypesAsync(sn.nonEmptyString),bn("design:type",Function),bn("design:paramtypes",[String]),bn("design:returntype",Promise)],Client.prototype,"updateToken",null),vn([sn.validateTypesAsync(sn.nonEmptyString,"string"),bn("design:type",Function),bn("design:paramtypes",[String,String]),bn("design:returntype",Promise)],Client.prototype,"liveQuery",null),vn([sn.validateTypesAsync(sn.nonEmptyString),bn("design:type",Function),bn("design:paramtypes",[String]),bn("design:returntype",Promise)],Client.prototype,"instantQuery",null),rn.Client=Client,rn.InsightsItem=_i,rn.InstantQuery=ki,rn.LiveQuery=Si,rn.Paginator=Paginator;var Mi=rn.SyncClient=Client;rn.SyncDocument=ii,rn.SyncList=hi,rn.SyncListItem=ri,rn.SyncMap=mi,rn.SyncMapItem=pi,rn.SyncStream=yi;var Oi={};
312
+ /*
313
+ @license
314
+ Copyright (c) 2018, Twilio, Inc.
315
+
316
+ Permission to use, copy, modify, and/or distribute this software for any
317
+ purpose with or without fee is hereby granted, provided that the above
318
+ copyright notice and this permission notice appear in all copies.
319
+
320
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
321
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
322
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
323
+ SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
324
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
325
+ OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
326
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
327
+
328
+ */!function(e){var t=void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};Object.defineProperty(e,"__esModule",{value:!0});var n=Ie,i=u.exports,r=pe,s=P;function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=a(i);function c(e,t,n,i){var r,s=arguments.length,a=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(a=(s<3?r(a):s>3?r(t,n,a):r(t,n))||a);return s>3&&a&&Object.defineProperty(t,n,a),a}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function d(e,t){return[`${(new Date).toISOString()} MCS Client ${e}:`].concat(Array.from(t))}class h{prefix="";constructor(e){this.prefix=null!=e&&e.length>0?e+" ":""}static scope(e){return new h(e)}setLevel(e){o.setLevel(e)}static setLevel(e){o.setLevel(e)}trace(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.trace.apply(null,d(this.prefix+"T",t))}debug(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.debug.apply(null,d(this.prefix+"D",t))}info(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.info.apply(null,d(this.prefix+"I",t))}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.warn.apply(null,d(this.prefix+"W",t))}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.error.apply(null,d(this.prefix+"E",t))}static trace(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.trace.apply(null,d("T",t))}static debug(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.debug.apply(null,d("D",t))}static info(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.info.apply(null,d("I",t))}static warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.warn.apply(null,d("W",t))}static error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.error.apply(null,d("E",t))}}const p=(e,t)=>{return`${n=e,n.startsWith("http")?"":(e=>`https://mcs.${e??"us1"}.twilio.com`)(t)}${e}`;var n};class f{token;retryWhenThrottledOverride;backoffConfigOverride;mediaUrl;mediaSetUrl;region;constructor(e,t,n,i){const r=i.MCS??i??{};this.region=r.region??i.region??"us1",this.mediaUrl=p(t,this.region),this.mediaSetUrl=n?p(n):`${this.mediaUrl}Set`,this.token=e,this.retryWhenThrottledOverride=r.retryWhenThrottledOverride??true,this.backoffConfigOverride=r.backoffConfigOverride??f.backoffConfigDefault}static get backoffConfigDefault(){return{min:1e3,max:4e3,maxAttemptsCount:3}}static get retryWhenThrottledDefault(){return true}updateToken(e){this.token=e}}class Media{state;network;config;constructor(e,t,n){this.config=e,this.network=t,this._update(n)}get sid(){return this.state.sid}get serviceSid(){return this.state.serviceSid}get dateCreated(){return this.state.dateCreated}get dateUpdated(){return this.state.dateUpdated}get contentType(){return this.state.contentType}get size(){return this.state.size}get fileName(){return this.state.filename}get filename(){return this.state.filename}get category(){return this.state.category}getContentUrl(){return new n.CancellablePromise((async(e,t,n)=>{const i=this.network.get(`${this.config.mediaUrl}/${this.sid}`);n((()=>i.cancel()));try{const t=await i;this._update(t.body),e(this.state.contentDirectUrl)}catch(e){t(e)}}))}_update(e){this.state={sid:e.sid,serviceSid:e.service_sid,channelSid:e.channel_sid,messageSid:e.message_sid,dateCreated:e.date_created?new Date(e.date_created):null,dateUploadUpdated:e.date_upload_updated?new Date(e.date_upload_updated):null,dateUpdated:e.date_updated?new Date(e.date_updated):null,size:e.size,contentType:e.content_type,author:e.author,url:e.url,contentUrl:e.links.content,contentDirectUrl:e.links.content_direct_temporary??null,filename:e.filename??null,category:e.category??"media",isMultipartUpstream:e.is_multipart_upstream??!1}}}class m extends Error{code;body;status;headers;constructor(e,t,n,i,r){super(e),this.code=t,this.body=n,this.status=i,this.headers=r}}const g=t.XMLHttpRequest||{};class y{static request(e,t,i,r){return new n.CancellablePromise(((n,s,a)=>{const o=new g;let c=!1;a((()=>{o.abort(),c=!0})),o.open(e,t,!0),o.onreadystatechange=function(){if(4!==o.readyState||c)return;const e=(t=o.getAllResponseHeaders())?t.split("\r\n").map((e=>e.split(": "))).filter((e=>2===e.length&&e[1].length>0)).reduce(((e,t)=>(e[t[0]]=t[1],e)),{}):{};var t;const i=function(e){const t=e.getResponseHeader("Content-Type");if(!t||0!==t.indexOf("application/json")||0===e.responseText.length)return e.responseText;try{return JSON.parse(e.responseText)}catch(t){return e.responseText}}(o);if(200<=o.status&&o.status<300)n({status:o.status,headers:e,body:i});else{const t=o.statusText??"NONE";let n;if("string"==typeof i)if(i&&1===i.split("\n",2).length)n=i;else{const e=i.replace(/<.*?>/g,"").split(/\r\n/g).filter((e=>e.length))[0]?.split(" ");n=e?.length>2?e?.slice(1).join(" "):""}else n=JSON.stringify(i);const r=`${o.status}: [${t}] ${n}`;s(new m(r,o.status,i,t,e))}};for(const e in i)o.setRequestHeader(e,i[e]),"Content-Type"===e&&"application/json"===i[e]&&(r=JSON.stringify(r));o.send(r)}))}get(e,t){return y.request("GET",e,t)}post(e,t,n){return y.request("POST",e,t,n)}}const v=h.scope("Network");class b{config;transport;constructor(e,t){this.config=e,this.transport=t}backoffConfig(){return Object.assign(f.backoffConfigDefault,this.config.backoffConfigOverride)}retryWhenThrottled(){return this.config.retryWhenThrottledOverride??f.retryWhenThrottledDefault??!1}executeWithRetry(e,t){return new n.CancellablePromise((async(n,i,s)=>{const a=new r.Retrier(this.backoffConfig()),o=[502,503,504];t&&o.push(429),s((()=>{a.cancel(),a.removeAllListeners()})),a.on("attempt",(async()=>{try{const t=e();s((()=>{t.cancel(),a.cancel(),a.removeAllListeners()}));const n=await t;a.succeeded(n)}catch(e){o.indexOf(e.status)>-1||"Twilsock disconnected"===e.message?a.failed(e):(a.removeAllListeners(),a.cancel(),i(e))}})),a.on("succeeded",(e=>{n(e)})),a.on("cancelled",(e=>i(e))),a.on("failed",(e=>i(e))),a.start()}))}get(e){return new n.CancellablePromise((async(t,n,i)=>{const r={"X-Twilio-Token":this.config.token},s=this.executeWithRetry((()=>this.transport.get(e,r)),this.retryWhenThrottled());v.trace("sending GET request to ",e," headers ",r),i((()=>s.cancel()));try{const e=await s;v.trace("response",e),t(e)}catch(e){v.debug(`get() error ${e}`),n(e)}}))}post(e,i,r,s,a){const o={"X-Twilio-Token":this.config.token};"undefined"!=typeof FormData&&r instanceof FormData||!s||Object.assign(o,{"Content-Type":s});const c=new URL(e);return i&&c.searchParams.append("Category",i),a&&c.searchParams.append("Filename",a),new n.CancellablePromise((async(n,i,s)=>{const a=this.transport.post(c.href,o,r);let u;s((()=>a.cancel())),v.trace(`sending POST request to ${e} with headers ${o}`);try{u=await a}catch(e){return void 0===t.XMLHttpRequest&&r instanceof FormData?void i(new TypeError("Posting FormData supported only with browser engine's FormData")):(v.debug(`post() error ${e}`),void i(e))}v.trace("response",u),n(u)}))}}const _=h.scope("");e.default=class{transport;options;network;config;static version="1.0.0-rc.6";constructor(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};this.options=i,this.options.logLevel=this.options.logLevel??"silent",this.config=new f(e,t,n,this.options),_.setLevel(this.options.logLevel),this.options.transport=this.options.transport??new y,this.transport=this.options.transport,this.network=new b(this.config,this.transport)}updateToken(e){_.info("updateToken"),this.config.updateToken(e)}get(e){return new n.CancellablePromise((async(t,n,i)=>{const r=this.network.get(`${this.config.mediaUrl}/${e}`);i((()=>r.cancel()));try{const e=await r;t(new Media(this.config,this.network,e.body))}catch(e){n(e)}}))}post(e,t,i,r){return new n.CancellablePromise((async(n,s,a)=>{const o=this.network.post(this.config.mediaUrl,i??"media",t,e,r);a((()=>o.cancel()));try{const e=await o;n(new Media(this.config,this.network,e.body))}catch(e){s(e)}}))}postFormData(e,t){return new n.CancellablePromise((async(n,i,r)=>{const s=this.network.post(this.config.mediaUrl,t??"media",e);r((()=>s.cancel()));try{const e=await s;n(new Media(this.config,this.network,e.body))}catch(e){i(e)}}))}mediaSetGet(e){return new n.CancellablePromise((async(t,n,i)=>{const r={command:"get",list:e.map((e=>({media_sid:e})))},s=this.network.post(`${this.config.mediaSetUrl}`,null,r,"application/json");i((()=>s.cancel()));try{const e=await s;t(e.body.map((e=>{if(200===e.code)return new Media(this.config,this.network,e.media_record);n(`Failed to obtain detailed information about Media items (failed SID ${e.media_record.sid})`)})))}catch(e){n(e)}}))}mediaSetGetContentUrls(e){return new n.CancellablePromise((async(t,n,i)=>{const r={command:"get",list:e.map((e=>({media_sid:e})))},s=this.network.post(`${this.config.mediaSetUrl}`,null,r,"application/json");i((()=>s.cancel()));try{const e=await s,i=new Map;e.body.forEach((e=>{200===e.code?i.set(e.media_record.sid,e.media_record.links.content_direct_temporary):n(`Failed to obtain detailed information about Media items (failed SID ${e.media_record.sid})`)})),t(i)}catch(e){n(e)}}))}},c([s.validateTypes(s.nonEmptyString),l("design:type",Function),l("design:paramtypes",[String]),l("design:returntype",void 0)],e.default.prototype,"updateToken",null),c([s.validateTypesAsync(s.nonEmptyString),l("design:type",Function),l("design:paramtypes",[String]),l("design:returntype",n.CancellablePromise)],e.default.prototype,"get",null),e.default=c([s.validateConstructorTypes(s.nonEmptyString,s.nonEmptyString,[s.nonEmptyString,s.literal(null)],[s.pureObject,"undefined"]),l("design:paramtypes",[String,String,Object,Object])],e.default),Object.defineProperty(e,"CancellablePromise",{enumerable:!0,get:function(){return n.CancellablePromise}}),e.Client=e.default,e.McsClient=e.default,e.McsMedia=Media,e.Media=Media}(Oi);const Ai=h.scope("Participant");class Participant extends ue{state;links;services;conversation;get sid(){return this.state.sid}get attributes(){return this.state.attributes}get dateCreated(){return this.state.dateCreated}get dateUpdated(){return this.state.dateUpdated}get identity(){return this.state.identity}get isTyping(){return this.state.isTyping}get lastReadMessageIndex(){return this.state.lastReadMessageIndex}get lastReadTimestamp(){return this.state.lastReadTimestamp}get roleSid(){return this.state.roleSid}get type(){return this.state.type}get bindings(){return this.state.bindings??{}}constructor(e,t,n,i,r){if(super(),this.conversation=n,this.links=i,this.services=r,this.state={attributes:C(e.attributes,"Retrieved malformed attributes from the server for participant: "+t,Ai),dateCreated:e.dateCreated?I(e.dateCreated):null,dateUpdated:e.dateCreated?I(e.dateUpdated):null,sid:t,typingTimeout:null,isTyping:!1,identity:e.identity,roleSid:e.roleSid??"",lastReadMessageIndex:Number.isInteger(e.lastConsumedMessageIndex)?e.lastConsumedMessageIndex:null,lastReadTimestamp:e.lastConsumptionTimestamp?I(e.lastConsumptionTimestamp):null,type:e.type||"chat",userInfo:e.userInfo,bindings:e.bindings??{}},!e.identity&&!e.type)throw new Error("Received invalid Participant object from server: Missing identity or type of Participant.")}static typingStarted="typingStarted";static typingEnded="typingEnded";static updated="updated";_startTyping(e){return this.state.typingTimeout&&clearTimeout(this.state.typingTimeout),this.state.isTyping=!0,this.emit("typingStarted",this),this.conversation.emit("typingStarted",this),this.state.typingTimeout=Number(setTimeout((()=>this._endTyping()),e)),this}_endTyping(){this.state.typingTimeout&&(this.state.isTyping=!1,this.emit("typingEnded",this),this.conversation.emit("typingEnded",this),clearInterval(this.state.typingTimeout),this.state.typingTimeout=null)}_update(e){const t=[],n=C(e.attributes,"Retrieved malformed attributes from the server for participant: "+this.state.sid,Ai);e.attributes&&!de(this.state.attributes,n)&&(this.state.attributes=n,t.push("attributes"));const i=I(e.dateUpdated);e.dateUpdated&&i?.getTime()!==(this.state.dateUpdated&&this.state.dateUpdated.getTime())&&(this.state.dateUpdated=i,t.push("dateUpdated"));const r=I(e.dateCreated);if(e.dateCreated&&r?.getTime()!==(this.state.dateCreated&&this.state.dateCreated.getTime())&&(this.state.dateCreated=r,t.push("dateCreated")),e.roleSid&&this.state.roleSid!==e.roleSid&&(this.state.roleSid=e.roleSid,t.push("roleSid")),!Number.isInteger(e.lastConsumedMessageIndex)&&null!==e.lastConsumedMessageIndex||this.state.lastReadMessageIndex===e.lastConsumedMessageIndex||(this.state.lastReadMessageIndex=e.lastConsumedMessageIndex,t.push("lastReadMessageIndex")),e.lastConsumptionTimestamp){const n=new Date(e.lastConsumptionTimestamp);this.state.lastReadTimestamp&&this.state.lastReadTimestamp.getTime()===n.getTime()||(this.state.lastReadTimestamp=n,t.push("lastReadTimestamp"))}return e.bindings&&!de(this.state.bindings,e.bindings)&&(this.state.bindings=e.bindings,t.push("bindings")),t.length>0&&this.emit("updated",{participant:this,updateReasons:t}),this}async getUser(){if("chat"!=this.type)throw new Error("Getting User is not supported for this Participant type: "+this.type);return this.services.users.getUser(this.state.identity,this.state.userInfo)}async remove(){return this.conversation.removeParticipant(this)}async updateAttributes(e){return await this.services.commandExecutor.mutateResource("post",this.links.self,{attributes:JSON.stringify(e)}),this}}n([X(Z),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Promise)],Participant.prototype,"updateAttributes",null);const ji=h.scope("Participants");class $i extends ue{configuration;services;links;rosterEntityPromise=null;conversation;participants;constructor(e,t,n,i,r){super(),this.conversation=e,this.participants=t,this.links=n,this.configuration=i,this.services=r}async unsubscribe(){if(this.rosterEntityPromise){(await this.rosterEntityPromise).close(),this.rosterEntityPromise=null}}subscribe(e){const t="string"==typeof e?this.services.syncClient.map({id:e,mode:"open_existing"}):Promise.resolve(e);return this.rosterEntityPromise=this.rosterEntityPromise||t.then((e=>{e.on("itemAdded",(e=>{ji.debug(this.conversation.sid+" itemAdded: "+e.item.key),this.upsertParticipant(e.item.key,e.item.data).then((e=>{this.emit("participantJoined",e)}))})),e.on("itemRemoved",(e=>{ji.debug(this.conversation.sid+" itemRemoved: "+e.key);const t=e.key;if(!this.participants.has(t))return;const n=this.participants.get(t);this.participants.delete(t),n&&this.emit("participantLeft",n)})),e.on("itemUpdated",(e=>{ji.debug(this.conversation.sid+" itemUpdated: "+e.item.key),this.upsertParticipant(e.item.key,e.item.data)}));const t=[],n=e=>(e.items.forEach((e=>{t.push(this.upsertParticipant(e.key,e.data))})),e.hasNextPage?e.nextPage().then(n):null);return e.getItems().then(n).then((()=>Promise.all(t))).then((()=>e))})).catch((e=>{throw this.rosterEntityPromise=null,"disconnected"!=this.services.syncClient.connectionState&&ji.error("Failed to get roster object for conversation",this.conversation.sid,e),ji.debug("ERROR: Failed to get roster object for conversation",this.conversation.sid,e),e}))}async upsertParticipantFromResponse(e){const{sid:t,attributes:n,date_created:i,date_updated:r,identity:s,role_sid:a,messaging_binding:o}=e;return await this.upsertParticipant(t,{attributes:n,dateCreated:new Date(i),dateUpdated:new Date(r),identity:s,roleSid:a,lastConsumedMessageIndex:null,lastConsumptionTimestamp:null,type:o?.type??"chat"})}async upsertParticipant(e,t){let n=this.participants.get(e);if(n)return n._update(t);const i={self:`${this.links.participants}/${e}`};return n=new Participant(t,e,this.conversation,i,this.services),this.participants.set(e,n),n.on("updated",(e=>this.emit("participantUpdated",e))),n}async getParticipants(){return this.rosterEntityPromise?this.rosterEntityPromise.then((()=>{const e=[];return this.participants.forEach((t=>e.push(t))),e})):[]}async getParticipantBySid(e){return this.rosterEntityPromise?this.rosterEntityPromise.then((()=>{const t=this.participants.get(e);if(!t)throw new Error("Participant with SID "+e+" was not found");return t})):null}async getParticipantByIdentity(e){let t=null;return this.rosterEntityPromise?this.rosterEntityPromise.then((()=>{if(this.participants.forEach((n=>{n.identity===e&&(t=n)})),!t)throw new Error("Participant with identity "+e+" was not found");return t})):null}async add(e,t){const n=await this.services.commandExecutor.mutateResource("post",this.links.participants,{identity:e,attributes:void 0!==t?JSON.stringify(t):void 0});return await this.upsertParticipantFromResponse(n)}async addNonChatParticipant(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const r=await this.services.commandExecutor.mutateResource("post",this.links.participants,{attributes:void 0!==n?JSON.stringify(n):void 0,messaging_binding:{address:t,proxy_address:e,name:i?.email?.name,level:i?.email?.level}});return await this.upsertParticipantFromResponse(r)}remove(e){return this.services.commandExecutor.mutateResource("delete",`${this.links.participants}/${encodeURIComponent(e)}`)}}class Media{state;services;mcsMedia=null;constructor(e,t){this.services=t,e instanceof Oi.McsMedia&&(this.mcsMedia=e),this.state={sid:e.sid,category:e.category,filename:e.filename,contentType:e.contentType,size:e.size}}get sid(){return this.state.sid}get filename(){return this.state.filename}get contentType(){return this.state.contentType}get size(){return this.state.size}get category(){return this.state.category}getContentTemporaryUrl(){return new Oi.CancellablePromise((async(e,t,n)=>{const i=this._fetchMcsMedia();let r=this.mcsMedia?.getContentUrl();n((()=>{i.cancel(),r&&r.cancel()}));try{if(!this.mcsMedia){const e=await i;r=e.getContentUrl()}e(r?await r:null)}catch(e){t(e)}}))}_fetchMcsMedia(){return new Oi.CancellablePromise((async(e,t,n)=>{const i=this.services.mcsClient.get(this.state.sid);if(this.services.mcsClient){n((()=>i.cancel()));try{this.mcsMedia=await i,e(this.mcsMedia)}catch(e){t(e)}}else t(new Error("Media Content Service is unavailable"))}))}}class AggregatedDeliveryReceipt{state;constructor(e){this.state=e}get total(){return this.state.total}get sent(){return this.state.sent}get delivered(){return this.state.delivered}get read(){return this.state.read}get undelivered(){return this.state.undelivered}get failed(){return this.state.failed}_update(e){this.state=e}_isEquals(e){const t=this.total===e.total,n=this.sent===e.sent,i=this.delivered===e.delivered,r=this.read===e.read,s=this.undelivered===e.undelivered,a=this.failed===e.failed;return t&&n&&i&&r&&s&&a}}class Ni{state;get hasNextPage(){return!!this.state.nextToken}get hasPrevPage(){return!!this.state.prevToken}get items(){return this.state.items}constructor(e,t,n,i){this.state={prevToken:n,nextToken:i,source:t,items:e}}nextPage(){return this.hasNextPage?this.state.source(this.state.nextToken):Promise.reject(new Error("No next page"))}prevPage(){return this.hasPrevPage?this.state.source(this.state.prevToken):Promise.reject(new Error("No previous page"))}}class DetailedDeliveryReceipt{sid;messageSid;conversationSid;channelMessageSid;participantSid;status;errorCode;dateCreated;dateUpdated;constructor(e){this.sid=e.sid,this.messageSid=e.message_sid,this.conversationSid=e.conversation_sid,this.channelMessageSid=e.channel_message_sid,this.participantSid=e.participant_sid,this.status=e.status||"queued",this.errorCode=e.error_code||0,this.dateCreated=e.date_created,this.dateUpdated=e.date_updated}}const Ui=e=>e.map((e=>{const t=JSON.stringify(e);switch(e.type){case"QUICK_REPLY":return{type:"reply",title:e.title,id:e.id??"",index:e.index??0,rawData:t};case"PHONE_NUMBER":return{type:"phone",title:e.title,phone:e.phone??"",rawData:t};case"URL":return{type:"url",title:e.title,url:e.url??"",rawData:t};default:return{type:"other",rawData:t}}})),Li=(e,t)=>{const n=JSON.stringify(t);switch(e){case"twilio/text":return{type:"text",body:t.body,rawData:n};case"twilio/media":{const e=t;return{type:"media",body:e.body,media:e.media,rawData:n}}case"twilio/location":{const e=t;return{type:"location",longitude:e.longitude,latitude:e.latitude,label:e.label,rawData:n}}case"twilio/quick-reply":{const e=t;return{type:"quickReply",body:e.body,replies:e.actions,rawData:n}}case"twilio/call-to-action":{const e=t;return{type:"callToAction",body:e.body,actions:Ui(e.actions),rawData:n}}case"twilio/list-picker":{const e=t;return{type:"listPicker",body:e.body,button:e.button,items:e.items,rawData:n}}case"twilio/card":{const e=t;return{type:"card",title:e.title,subtitle:e.subtitle,media:e.media??[],actions:Ui(e.actions??[]),rawData:n}}default:return{type:"other",rawData:n}}};class ContentTemplateVariable{name;value;constructor(e,t){this.name=e,this.value=t}copyWithValue(e){return new ContentTemplateVariable(this.name,e)}}class Fi{sid;friendlyName;variables;variants;dateCreated;dateUpdated;constructor(e){this.sid=e.sid,this.friendlyName=e.friendly_name,this.variables=Object.entries(JSON.parse(e.variables)).map((e=>{let[t,n]=e;return new ContentTemplateVariable(t,n)})),this.variants=(e=>{const t=new Map;for(const[n,i]of Object.entries(e))t.set(n,Li(n,i));return t})(e.variants),this.dateCreated=new Date(e.date_created),this.dateUpdated=new Date(e.date_updated)}}const qi=h.scope("Message"),Di=t.XMLHttpRequest||{};class Message extends ue{conversation;links;configuration;services;state;constructor(e,t,n,i,r,s){super(),this.conversation=n,this.links=i,this.configuration=r,this.services=s,this.state={sid:t.sid,index:e,author:t.author,subject:t.subject,contentSid:t.contentSid,body:t.text??null,timestamp:t.timestamp?new Date(t.timestamp):null,dateUpdated:t.dateUpdated?new Date(t.dateUpdated):null,lastUpdatedBy:t.lastUpdatedBy??null,attributes:C(t.attributes,`Got malformed attributes for the message ${t.sid}`,qi),type:t.type??"text",medias:"media"===t.type&&t.medias?t.medias.map((e=>new Media(e,this.services))):"media"===t.type&&t.media&&!t.medias?[new Media({...t.media,category:"media"},this.services)]:null,participantSid:t.memberSid??null,aggregatedDeliveryReceipt:t.delivery?new AggregatedDeliveryReceipt(t.delivery):null,hasChannelMetadata:t.channelMetadata??!1}}static updated="updated";get sid(){return this.state.sid}get author(){return this.state.author}get subject(){return this.state.subject}get contentSid(){return this.state.contentSid}get body(){return this.state.body}get dateUpdated(){return this.state.dateUpdated}get index(){return this.state.index}get lastUpdatedBy(){return this.state.lastUpdatedBy}get dateCreated(){return this.state.timestamp}get attributes(){return this.state.attributes}get type(){return this.state.type}get attachedMedia(){return this.getMediaByCategories(["media"])}get participantSid(){return this.state.participantSid}get aggregatedDeliveryReceipt(){return this.state.aggregatedDeliveryReceipt}getMediaByCategories(e){return(this.state.medias??[]).filter((t=>e.includes(t.category)))}getEmailBody(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"text/plain";return this.getMediaByCategories(["body"])?.filter((t=>t.contentType==e)).shift()??null}getEmailHistory(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"text/plain";return this.getMediaByCategories(["history"])?.filter((t=>t.contentType==e)).shift()??null}_update(e){const t=[];!e.text&&"string"!=typeof e.text||e.text===this.state.body||(this.state.body=e.text,t.push("body")),e.subject&&e.subject!==this.state.subject&&(this.state.subject=e.subject,t.push("subject")),e.lastUpdatedBy&&e.lastUpdatedBy!==this.state.lastUpdatedBy&&(this.state.lastUpdatedBy=e.lastUpdatedBy,t.push("lastUpdatedBy")),e.author&&e.author!==this.state.author&&(this.state.author=e.author,t.push("author")),e.dateUpdated&&new Date(e.dateUpdated).getTime()!==(this.state.dateUpdated&&this.state.dateUpdated.getTime())&&(this.state.dateUpdated=new Date(e.dateUpdated),t.push("dateUpdated")),e.timestamp&&new Date(e.timestamp).getTime()!==(this.state.timestamp&&this.state.timestamp.getTime())&&(this.state.timestamp=new Date(e.timestamp),t.push("dateCreated"));const n=C(e.attributes,`Got malformed attributes for the message ${this.sid}`,qi);de(this.state.attributes,n)||(this.state.attributes=n,t.push("attributes"));const i=e.delivery,r=this.state.aggregatedDeliveryReceipt;!!(i&&i.total&&i.delivered&&i.failed&&i.read&&i.sent&&i.undelivered)&&(r?r._isEquals(i)||(r._update(i),t.push("deliveryReceipt")):(this.state.aggregatedDeliveryReceipt=new AggregatedDeliveryReceipt(i),t.push("deliveryReceipt"))),t.length>0&&this.emit("updated",{message:this,updateReasons:t})}async getParticipant(){let e=null;if(this.state.participantSid&&(e=await this.conversation.getParticipantBySid(this.state.participantSid).catch((()=>(qi.debug(`Participant with sid "${this.participantSid}" not found for message ${this.sid}`),null)))),!e&&this.state.author&&(e=await this.conversation.getParticipantByIdentity(this.state.author).catch((()=>(qi.debug(`Participant with identity "${this.author}" not found for message ${this.sid}`),null)))),e)return e;let t="Participant with ";throw this.state.participantSid&&(t+="SID '"+this.state.participantSid+"' "),this.state.author&&(this.state.participantSid&&(t+="or "),t+="identity '"+this.state.author+"' "),"Participant with "===t&&(t="Participant "),t+="was not found",new Error(t)}async getDetailedDeliveryReceipts(){let e=await this._getDetailedDeliveryReceiptsPaginator(),t=e.items;for(;e.hasNextPage;)e=await e.nextPage(),t=[...t,...e.items];return t}async remove(){return await this.services.commandExecutor.mutateResource("delete",this.links.self),this}async updateBody(e){return await this.services.commandExecutor.mutateResource("post",this.links.self,{body:e}),this}async updateAttributes(e){return await this.services.commandExecutor.mutateResource("post",this.links.self,{attributes:void 0!==e?JSON.stringify(e):void 0}),this}getTemporaryContentUrlsForMedia(e){const t=e.map((e=>e.sid));return this.getTemporaryContentUrlsForMediaSids(t)}getTemporaryContentUrlsForMediaSids(e){return new Oi.CancellablePromise((async(t,n,i)=>{const r=this.services.mcsClient.mediaSetGetContentUrls(e??[]);if(this.services.mcsClient&&e){i((()=>{r.cancel()}));try{t(await r)}catch(e){n(e)}}else n(new Error("Media Content Service is unavailable"))}))}getTemporaryContentUrlsForAttachedMedia(){const e=this.attachedMedia,t=e?.map((e=>e.sid))??[];return this.getTemporaryContentUrlsForMediaSids(t)}async _getDetailedDeliveryReceiptsPaginator(e){const t=this.configuration.links.messagesReceipts.replace("%s",this.conversation.sid).replace("%s",this.sid),n=new R(t).arg("PageToken",e?.pageToken).arg("PageSize",e?.pageSize).build(),i=await this.services.network.get(n);return new Ni(i.body.delivery_receipts.map((e=>new DetailedDeliveryReceipt(e))),((e,t)=>this._getDetailedDeliveryReceiptsPaginator({pageToken:e,pageSize:t})),i.body.meta.previous_token,i.body.meta.next_token)}getContentData(){return new Oi.CancellablePromise((async(e,t,n)=>{if(null===this.state.contentSid)return void e(null);const i=this.getMediaByCategories(["body"]);if(null===i)return void e(null);const r="application/x-vnd.com.twilio.rich.",s=i.filter((e=>e.contentType.startsWith(r)));if(0===s.length)return void e(null);const a=s[0],o=a.getContentTemporaryUrl();let c;n((()=>{o.cancel()}));try{c=await o}catch(e){return void t(e)}if(null===c)return void e(null);const u=new Promise(((e,t)=>{let i=!1;const r=new Di;r.open("GET",c??"",!0),r.responseType="text",r.onreadystatechange=()=>{4!==r.readyState||i||e(r.responseText)},r.onerror=()=>{t(r.statusText)},n((()=>{i=!0,r.abort(),t(new Error("XHR has been aborted"))})),r.send()}));let l;try{const e=await u;l=JSON.parse(e)}catch(e){return void t(e)}const d=a.contentType.replace(r,"").replace(".","/");e(Li(d,l.data))}))}async getChannelMetadata(){return this.state.hasChannelMetadata?await this.services.channelMetadataClient.getChannelMetadata(this.conversation.sid,this.sid):null}}n([Q([K,"undefined"]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Media)],Message.prototype,"getEmailBody",null),n([Q([K,"undefined"]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Media)],Message.prototype,"getEmailHistory",null),n([X("string"),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],Message.prototype,"updateBody",null),n([X(Z),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Promise)],Message.prototype,"updateAttributes",null),n([X(W("media",Media)),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Oi.CancellablePromise)],Message.prototype,"getTemporaryContentUrlsForMedia",null),n([X(W("strings","string")),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Oi.CancellablePromise)],Message.prototype,"getTemporaryContentUrlsForMediaSids",null);const Bi=h.scope("Messages");class zi extends ue{conversation;configuration;services;messagesByIndex;messagesListPromise;constructor(e,t,n){super(),this.conversation=e,this.configuration=t,this.services=n,this.messagesByIndex=new Map,this.messagesListPromise=null}async subscribe(e){if(this.messagesListPromise)return this.messagesListPromise;this.messagesListPromise="string"==typeof e?this.services.syncClient.list({id:e,mode:"open_existing"}):Promise.resolve(e);try{const e=await this.messagesListPromise;return e.on("itemAdded",(e=>{Bi.debug(`${this.conversation.sid} itemAdded: ${e.item.index}`),this._upsertMessage(e.item.index,e.item.data)})),e.on("itemRemoved",(e=>{Bi.debug(`#{this.conversation.sid} itemRemoved: ${e.index}`);const t=e.index;if(this.messagesByIndex.has(t)){const e=this.messagesByIndex.get(t);if(!e)return;this.messagesByIndex.delete(e.index),e.removeAllListeners("updated"),this.emit("messageRemoved",e)}})),e.on("itemUpdated",(e=>{Bi.debug(`${this.conversation.sid} itemUpdated: ${e.item.index}`);const t=this.messagesByIndex.get(e.item.index);t&&t._update(e.item.data)})),e}catch(e){throw this.messagesListPromise=null,"disconnected"!==this.services.syncClient.connectionState&&Bi.error("Failed to get messages object for conversation",this.conversation.sid,e),Bi.debug("ERROR: Failed to get messages object for conversation",this.conversation.sid,e),e}}async unsubscribe(){if(!this.messagesListPromise)return;(await this.messagesListPromise).close(),this.messagesListPromise=null}sendV2(e){return Bi.debug("Sending message V2",e.mediaContent,e.attributes,e.emailOptions),new Oi.CancellablePromise((async(t,n,i)=>{const r=[],s=[];i((()=>{s.forEach((e=>e.cancel()))}));for(const[t,i]of e.mediaContent)try{Bi.debug("Adding media to a message as "+(i instanceof FormData?"FormData":"SendMediaOptions"),i);const e=i instanceof FormData?this.services.mcsClient.postFormData(i,t):this.services.mcsClient.post(i.contentType??"",i.media??"",t,i.filename);s.push(e),r.push(await e)}catch(e){return void n(e)}const a=this.services.commandExecutor.mutateResource("post",this.conversation._links.messages,{body:e.text,subject:e.emailOptions?.subject,media_sids:r.map((e=>e.sid)),attributes:void 0!==e.attributes?JSON.stringify(e.attributes):void 0,content_sid:e.contentSid,content_variables:void 0!==e.contentVariables?JSON.stringify(e.contentVariables.reduce(((e,t)=>({...e,[t.name]:t.value})),{})):void 0});try{t(await a)}catch(e){n(e)}}))}async send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return Bi.debug("Sending text message",e,t,n),this.services.commandExecutor.mutateResource("post",this.conversation._links.messages,{body:e??"",attributes:void 0!==t?JSON.stringify(t):void 0,subject:n?.subject})}async sendMedia(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;Bi.debug("Sending media message",e,t,n),Bi.debug("Sending media message as "+(e instanceof FormData?"FormData":"SendMediaOptions"),e,t);const i=e instanceof FormData?await this.services.mcsClient.postFormData(e):await this.services.mcsClient.post(e.contentType??"",e.media??"","media",e.filename);return await this.services.commandExecutor.mutateResource("post",this.conversation._links.messages,{media_sids:[i.sid],attributes:void 0!==t?JSON.stringify(t):void 0})}async getMessages(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"backwards";return this._getMessages(e,t,n)}_wrapPaginator(e,t,n){const i="desc"===e,r=()=>t.nextPage().then((t=>this._wrapPaginator(e,t,n))),s=()=>t.prevPage().then((t=>this._wrapPaginator(e,t,n)));return n(t.items).then((e=>({items:e.sort(((e,t)=>e.index-t.index)),hasPrevPage:i?t.hasNextPage:t.hasPrevPage,hasNextPage:i?t.hasPrevPage:t.hasNextPage,prevPage:i?r:s,nextPage:i?s:r})))}_upsertMessage(e,t){const n=this.messagesByIndex.get(e);if(n)return Bi.debug("Attempted to upsert a message, but it is already known and therefore ignored",this.conversation.sid),n;const i={self:`${this.conversation._links.messages}/${t.sid}`,conversation:this.conversation._links.self,messages_receipts:`${this.conversation._links.messages}/${t.sid}/Receipts`},r=new Message(e,t,this.conversation,i,this.configuration,this.services);return this.messagesByIndex.set(r.index,r),r.on("updated",(e=>this.emit("messageUpdated",e))),this.emit("messageAdded",r),r}async _getMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"end";const n="backwards"===(arguments.length>2&&void 0!==arguments[2]?arguments[2]:"forward")?"desc":"asc",i=await this.messagesListPromise,r=await(i?.getItems({from:"end"!==t?t:void 0,pageSize:e,order:n,limit:e}));return await this._wrapPaginator(n,r,(e=>Promise.all(e.map((e=>this._upsertMessage(e.index,e.data))))))}}class Wi{messagesEntity;text;attributes={};mediaContent=[];emailOptions={};contentSid;contentVariables;constructor(e){this.messagesEntity=e}send(){return new Oi.CancellablePromise((async(e,t,n)=>{const i=this.messagesEntity.sendV2(this);n((()=>i.cancel()));try{e(T((await i).index))}catch(e){t(e)}}))}}class Ki{limits;message;emailBodies;emailHistories;constructor(e,t){this.limits=e,this.message=new Wi(t),this.emailBodies=new Map,this.emailHistories=new Map}setBody(e){return this.message.text=e,this}setSubject(e){return this.message.emailOptions.subject=e,this}setAttributes(e){return this.message.attributes=e,this}setEmailBody(e,t){return this.emailBodies.set(e,t),this}setEmailHistory(e,t){return this.emailHistories.set(e,t),this}setContentTemplate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.message.contentSid=e,this.message.contentVariables=t,this}addMedia(e){if("undefined"==typeof FormData&&e instanceof FormData)throw new Error("Could not add FormData content whilst not in a browser");if(!(e instanceof FormData)){const t=e;if(!t.contentType||!t.media)throw new Error("Media content in SendMediaOptions must contain non-empty contentType and media")}return this.message.mediaContent.push(["media",e]),this}build(){if(this.emailBodies.forEach(((e,t)=>{if(!this.limits.emailBodiesAllowedContentTypes.includes(t))throw new Error(`Unsupported email body content type ${t}`)})),this.emailHistories.forEach(((e,t)=>{if(!this.limits.emailHistoriesAllowedContentTypes.includes(t))throw new Error(`Unsupported email history content type ${t}`)})),this.emailBodies.size>this.limits.emailBodiesAllowedContentTypes.length)throw new Error(`Too many email bodies attached to the message (${this.emailBodies.size} > ${this.limits.emailBodiesAllowedContentTypes.length})`);if(this.emailHistories.size>this.limits.emailHistoriesAllowedContentTypes.length)throw new Error(`Too many email histories attached to the message (${this.emailHistories.size} > ${this.limits.emailHistoriesAllowedContentTypes.length})`);if(this.message.mediaContent.length>this.limits.mediaAttachmentsCountLimit)throw new Error(`Too many media attachments in the message (${this.message.mediaContent.length} > ${this.limits.mediaAttachmentsCountLimit})`);return this.emailBodies.forEach((e=>{this.message.mediaContent.push(["body",e])})),this.emailHistories.forEach((e=>{this.message.mediaContent.push(["history",e])})),this.message}buildAndSend(){return this.build().send()}}n([Q("string"),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Ki)],Ki.prototype,"setBody",null),n([Q("string"),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Ki)],Ki.prototype,"setSubject",null),n([Q(Z),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Ki)],Ki.prototype,"setAttributes",null),n([Q("string",[FormData,ee]),i("design:type",Function),i("design:paramtypes",[String,Object]),i("design:returntype",Ki)],Ki.prototype,"setEmailBody",null),n([Q("string",[FormData,ee]),i("design:type",Function),i("design:paramtypes",[String,Object]),i("design:returntype",Ki)],Ki.prototype,"setEmailHistory",null),n([Q("string",[D("content variables",ContentTemplateVariable),"undefined"]),i("design:type",Function),i("design:paramtypes",[String,Array]),i("design:returntype",Ki)],Ki.prototype,"setContentTemplate",null),n([Q([FormData,ee]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Ki)],Ki.prototype,"addMedia",null);const Hi={lastMessage:"lastMessage",attributes:"attributes",createdBy:"createdBy",dateCreated:"dateCreated",dateUpdated:"dateUpdated",friendlyName:"friendlyName",lastConsumedMessageIndex:"lastConsumedMessageIndex",notificationLevel:"notificationLevel",sid:"sid",status:"status",uniqueName:"uniqueName",state:"state",bindings:"bindings"};class Conversation extends ue{static participantJoined="participantJoined";static participantLeft="participantLeft";static participantUpdated="participantUpdated";static messageAdded="messageAdded";static messageRemoved="messageRemoved";static messageUpdated="messageUpdated";static typingEnded="typingEnded";static typingStarted="typingStarted";static updated="updated";static removed="removed";static _logger=h.scope("Conversation");sid;_links;_participants;_configuration;_services;_internalState;_entityName;_messagesEntity;_messagesList;_participantsEntity;_participantsMap;_dataSource;_entityPromise;_entity;constructor(e,t,n,i,r){super(),this.sid=t,this._links=n,this._configuration=i,this._services=r,this._entityName=e.channel,this._internalState={uniqueName:e.uniqueName||null,status:"notParticipating",attributes:e.attributes??{},createdBy:e.createdBy,dateCreated:I(e.dateCreated),dateUpdated:I(e.dateUpdated),friendlyName:e.friendlyName||null,lastReadMessageIndex:Number.isInteger(e.lastConsumedMessageIndex)?e.lastConsumedMessageIndex:null,bindings:e.bindings??{}},e.notificationLevel&&(this._internalState.notificationLevel=e.notificationLevel);const s={participants:this._links.participants};this._participants=new Map,this._participantsEntity=new $i(this,this._participants,s,this._configuration,this._services),this._participantsEntity.on("participantJoined",(e=>this.emit("participantJoined",e))),this._participantsEntity.on("participantLeft",(e=>this.emit("participantLeft",e))),this._participantsEntity.on("participantUpdated",(e=>this.emit("participantUpdated",e))),this._messagesEntity=new zi(this,i,r),this._messagesEntity.on("messageAdded",(e=>this._onMessageAdded(e))),this._messagesEntity.on("messageUpdated",(e=>this.emit("messageUpdated",e))),this._messagesEntity.on("messageRemoved",(e=>this.emit("messageRemoved",e)))}get uniqueName(){return this._internalState.uniqueName}get status(){return this._internalState.status}get friendlyName(){return this._internalState.friendlyName}get dateUpdated(){return this._internalState.dateUpdated}get dateCreated(){return this._internalState.dateCreated}get createdBy(){return this._internalState.createdBy??""}get attributes(){return this._internalState.attributes}get lastReadMessageIndex(){return this._internalState.lastReadMessageIndex}get lastMessage(){return this._internalState.lastMessage??void 0}get notificationLevel(){return this._internalState.notificationLevel??"default"}get bindings(){return this._internalState.bindings}get limits(){return this._configuration.limits}get state(){return this._internalState.state}get _statusSource(){return this._dataSource}static preprocessUpdate(e,t){try{"string"==typeof e.attributes?e.attributes=JSON.parse(e.attributes):e.attributes&&JSON.stringify(e.attributes)}catch(n){Conversation._logger.warn("Retrieved malformed attributes from the server for conversation: "+t),e.attributes={}}try{e.dateCreated&&(e.dateCreated=new Date(e.dateCreated))}catch(n){Conversation._logger.warn("Retrieved malformed dateCreated from the server for conversation: "+t),delete e.dateCreated}try{e.dateUpdated&&(e.dateUpdated=new Date(e.dateUpdated))}catch(n){Conversation._logger.warn("Retrieved malformed dateUpdated from the server for conversation: "+t),delete e.dateUpdated}try{e.lastMessage&&e.lastMessage.timestamp&&(e.lastMessage.timestamp=new Date(e.lastMessage.timestamp))}catch(n){Conversation._logger.warn("Retrieved malformed lastMessage.timestamp from the server for conversation: "+t),delete e.lastMessage.timestamp}}async add(e,t){return this._participantsEntity.add(e,t??{})}async addNonChatParticipant(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this._participantsEntity.addNonChatParticipant(e,t,n??{},i??{})}async advanceLastReadMessageIndex(e){return await this._subscribeStreams(),e<(this.lastReadMessageIndex??0)?await this._setLastReadMessageIndex(this.lastReadMessageIndex):await this._setLastReadMessageIndex(e)}async delete(){return await this._services.commandExecutor.mutateResource("delete",this._links.self),this}async getAttributes(){return await this._subscribe(),this.attributes}async getMessages(e,t,n){return await this._subscribeStreams(),this._messagesEntity.getMessages(e,t,n)}async getParticipants(){return await this._subscribeStreams(),this._participantsEntity.getParticipants()}async getParticipantsCount(){const e=new R(this._configuration.links.conversations).path(this.sid).build();return(await this._services.network.get(e)).body.participants_count??0}async getParticipantBySid(e){return this._participantsEntity.getParticipantBySid(e)}async getParticipantByIdentity(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this._participantsEntity.getParticipantByIdentity(e??"")}async getMessagesCount(){const e=new R(this._configuration.links.conversations).path(this.sid).build();return(await this._services.network.get(e)).body.messages_count??0}async getUnreadMessagesCount(){const e=new R(this._configuration.links.myConversations).path(this.sid).build(),t=await this._services.network.get(e);if(t.body.conversation_sid!==this.sid)throw new Error("Conversation was not found in the user conversations list");const n=t.body.unread_messages_count;return"number"==typeof n?n:null}async join(){return await this._services.commandExecutor.mutateResource("post",this._links.participants,{identity:this._configuration.userIdentity}),this}async leave(){return"joined"===this._internalState.status&&await this._services.commandExecutor.mutateResource("delete",`${this._links.participants}/${encodeURIComponent(this._configuration.userIdentity)}`),this}async removeParticipant(e){await this._participantsEntity.remove("string"==typeof e?e:e.sid)}async sendMessage(e,t,n){const i="string"==typeof e||null===e?await this._messagesEntity.send(e,t,n):await this._messagesEntity.sendMedia(e,t,n),r="string"==typeof e||null===e?"text":"media";let s;try{s=JSON.parse(i.attributes)}catch(e){}const a={sid:i.sid,text:i.body,type:r,author:i.author,subject:i.subject,contentSid:i.content_sid,lastUpdatedBy:i.participant_sid,attributes:s,dateUpdated:i.date_updated,timestamp:i.date_created,memberSid:i.participant_sid,medias:Array.isArray(i.media)?i.media.map((e=>({sid:e.sid,size:Number(e.size),category:e.category,filename:e.filename,contentType:e.content_type}))):null,media:i.media&&"object"==typeof i.media&&!Array.isArray(i.media)?{sid:i.media.sid,size:Number(i.media.size),category:i.media.category,filename:i.media.filename,contentType:i.media.content_type}:null,hasChannelMetadata:!1};return this._messagesEntity._upsertMessage(i.index,a)}prepareMessage(){return new Ki(this.limits,this._messagesEntity)}async setAllMessagesRead(){await this._subscribeStreams();const e=await this.getMessages(1);return e.items.length>0?this.advanceLastReadMessageIndex(e.items[0].index):0}async setAllMessagesUnread(){return await this._subscribeStreams(),await this._setLastReadMessageIndex(null)}async setUserNotificationLevel(e){await this._services.commandExecutor.mutateResource("post",`${this._configuration.links.myConversations}/${this.sid}`,{notification_level:e})}typing(){return this._services.typingIndicator.send(this.sid)}async updateAttributes(e){return await this._services.commandExecutor.mutateResource("post",this._links.self,{attributes:void 0!==e?JSON.stringify(e):void 0}),this}async updateFriendlyName(e){return this._internalState.friendlyName!==e&&await this._services.commandExecutor.mutateResource("post",this._links.self,{friendly_name:e}),this}async updateLastReadMessageIndex(e){return await this._subscribeStreams(),this._setLastReadMessageIndex(e)}async updateUniqueName(e){return this._internalState.uniqueName!==e&&(e||="",await this._services.commandExecutor.mutateResource("post",this._links.self,{unique_name:e})),this}async _subscribe(){if(this._entityPromise)return this._entityPromise;this._entityPromise=this._services.syncClient.document({id:this._entityName,mode:"open_existing"});try{return this._entity=await this._entityPromise,this._entity.on("updated",(e=>this._update(e.data))),this._entity.on("removed",(()=>this.emit("removed",this))),this._update(this._entity.data),this._entity}catch(e){throw this._entity=null,this._entityPromise=null,"disconnected"!=this._services.syncClient.connectionState&&Conversation._logger.error("Failed to get conversation object",e),Conversation._logger.debug("ERROR: Failed to get conversation object",e),e}}async _fetchStreams(){await this._subscribe(),Conversation._logger.trace("_streamsAvailable, this.entity.data=",this._entity?.data);const e=this._entity?.data;this._messagesList=await this._services.syncClient.list({id:e.messages,mode:"open_existing"}),this._participantsMap=await this._services.syncClient.map({id:e.roster,mode:"open_existing"})}async _subscribeStreams(){try{await this._subscribe(),Conversation._logger.trace("_subscribeStreams, this.entity.data=",this._entity?.data);const e=this._entity?.data,t=e.messages,n=e.roster;await Promise.all([this._messagesEntity.subscribe(this._messagesList??t),this._participantsEntity.subscribe(this._participantsMap??n)])}catch(e){throw"disconnected"!==this._services.syncClient.connectionState&&Conversation._logger.error("Failed to subscribe on conversation objects",this.sid,e),Conversation._logger.debug("ERROR: Failed to subscribe on conversation objects",this.sid,e),e}}async _unsubscribe(){return this._entity&&(await this._entity.close(),this._entity=null,this._entityPromise=null),Promise.all([this._participantsEntity.unsubscribe(),this._messagesEntity.unsubscribe()])}_setStatus(e,t){this._dataSource=t,this._internalState.status!==e&&(this._internalState.status=e,"joined"!==e?this._entityPromise&&this._unsubscribe().catch((t=>{if(Conversation._logger.debug("ERROR while setting conversation status "+e,t),"disconnected"!==this._services.syncClient.connectionState)throw t})):this._subscribeStreams().catch((t=>{if(Conversation._logger.debug("ERROR while setting conversation status "+e,t),"disconnected"!==this._services.syncClient.connectionState)throw t})))}_update(e){Conversation._logger.trace("_update",e),Conversation.preprocessUpdate(e,this.sid);const t=new Set;for(const n of Object.keys(e)){const i=Hi[n];if(i)switch(i){case Hi.status:if(!e.status||"unknown"===e.status||this._internalState.status===e.status)break;this._internalState.status=e.status,t.add(i);break;case Hi.attributes:if(de(this._internalState.attributes,e.attributes))break;this._internalState.attributes=e.attributes,t.add(i);break;case Hi.lastConsumedMessageIndex:if(void 0===e.lastConsumedMessageIndex||e.lastConsumedMessageIndex===this._internalState.lastReadMessageIndex)break;this._internalState.lastReadMessageIndex=e.lastConsumedMessageIndex,t.add("lastReadMessageIndex");break;case Hi.lastMessage:if(this._internalState.lastMessage&&!e.lastMessage){delete this._internalState.lastMessage,t.add(i);break}this._internalState.lastMessage=this._internalState.lastMessage||{},void 0!==e.lastMessage?.index&&e.lastMessage.index!==this._internalState.lastMessage.index&&(this._internalState.lastMessage.index=e.lastMessage.index,t.add(i)),void 0!==e.lastMessage?.timestamp&&this._internalState.lastMessage?.dateCreated?.getTime()!==e.lastMessage.timestamp.getTime()&&(this._internalState.lastMessage.dateCreated=e.lastMessage.timestamp,t.add(i)),de(this._internalState.lastMessage,{})&&delete this._internalState.lastMessage;break;case Hi.state:const r=e.state||void 0;if(void 0!==r&&(r.dateUpdated=new Date(r.dateUpdated)),de(this._internalState.state,r))break;this._internalState.state=r,t.add(i);break;case Hi.bindings:if(de(this._internalState.bindings,e.bindings))break;this._internalState.bindings=e.bindings,t.add(i);break;default:const s=e[n]instanceof Date,a=s&&this._internalState[i]?.getTime()===e[n].getTime(),o=!s&&this[i]===e[n];if(a||o)break;this._internalState[i]=e[n],t.add(i)}}t.size>0&&this.emit("updated",{conversation:this,updateReasons:[...t]})}_onMessageAdded(e){for(const t of this._participants.values())if(t.identity===e.author){t._endTyping();break}this.emit("messageAdded",e)}async _setLastReadMessageIndex(e){return(await this._services.commandExecutor.mutateResource("post",`${this._configuration.links.myConversations}/${this.sid}`,{last_read_message_index:e})).unread_messages_count}}n([X(K,Y),i("design:type",Function),i("design:paramtypes",[String,Object]),i("design:returntype",Promise)],Conversation.prototype,"add",null),n([X(K,K,Y),i("design:type",Function),i("design:paramtypes",[String,String,Object,Object]),i("design:returntype",Promise)],Conversation.prototype,"addNonChatParticipant",null),n([X(H),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Promise)],Conversation.prototype,"advanceLastReadMessageIndex",null),n([X(["undefined",H],["undefined",H],["undefined",z("backwards","forward")]),i("design:type",Function),i("design:paramtypes",[Number,Number,String]),i("design:returntype",Promise)],Conversation.prototype,"getMessages",null),n([X(K),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],Conversation.prototype,"getParticipantBySid",null),n([X(K),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],Conversation.prototype,"getParticipantByIdentity",null),n([X([K,Participant]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Promise)],Conversation.prototype,"removeParticipant",null),n([X(["string",FormData,z(null),V("media options",{contentType:K,media:B((e=>{let t="string"==typeof e&&e.length>0||e instanceof Uint8Array||e instanceof ArrayBuffer;return"function"==typeof Blob&&(t=t||e instanceof Blob),[t,"a non-empty string, an instance of Buffer or an instance of Blob"]}))})],Y,["undefined",z(null),V("email attributes",{subject:[K,"undefined"]})]),i("design:type",Function),i("design:paramtypes",[Object,Object,Object]),i("design:returntype",Promise)],Conversation.prototype,"sendMessage",null),n([X(z("default","muted")),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],Conversation.prototype,"setUserNotificationLevel",null),n([X(Z),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Promise)],Conversation.prototype,"updateAttributes",null),n([X("string"),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],Conversation.prototype,"updateFriendlyName",null),n([X([z(null),H]),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Promise)],Conversation.prototype,"updateLastReadMessageIndex",null),n([X(["string",z(null)]),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],Conversation.prototype,"updateUniqueName",null);class Vi{_promise;_resolve;_reject;current;constructor(){this._promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}get promise(){return this._promise}update(e){this._resolve(e)}set(e){this.current=e,this._resolve(e)}fail(e){this._reject(e)}}const Ji=h.scope("Conversations");class Gi extends ue{conversations=new Map;myConversationsRead=new Vi;configuration;services;tombstones=new Set;myConversationsFetched=!1;constructor(e,t){super(),this.configuration=e,this.services=t}async addConversation(e){const t=void 0!==e?.attributes?e.attributes:{},n=await this.services.commandExecutor.mutateResource("post",this.configuration.links.conversations,{friendly_name:e.friendlyName,unique_name:e.uniqueName,attributes:void 0!==t?JSON.stringify(t):void 0}),i=n.sid??null,r=n.sync_objects?.conversation??null,s={self:n.url,...n.links},a=this.conversations.get(i);if(a)return await a._subscribe(),a;const o=new Conversation({channel:r,entityName:"",uniqueName:"",attributes:null,createdBy:"",friendlyName:"",lastConsumedMessageIndex:0,dateCreated:null,dateUpdated:null},i,s,this.configuration,this.services);return this.conversations.set(o.sid,o),this._registerForEvents(o),await o._subscribe(),this.emit("conversationAdded",o),o}async fetchConversations(){try{const e=await this._getMap();e.on("itemAdded",(e=>{Ji.debug(`itemAdded: ${e.item.key}`),this._upsertConversation("sync",e.item.key,e.item.data)})),e.on("itemRemoved",(e=>{Ji.debug(`itemRemoved: ${e.key}`);const t=e.key;this.myConversationsFetched||this.tombstones.add(t);const n=this.conversations.get(t);n&&("joined"===n.status&&(n._setStatus("notParticipating","sync"),this.emit("conversationLeft",n)),this.conversations.delete(t),this.emit("conversationRemoved",n),n.emit("removed",n))})),e.on("itemUpdated",(e=>{Ji.debug(`itemUpdated: ${e.item.key}`),this._upsertConversation("sync",e.item.key,e.item.data)}));const t=await this._fetchMyConversations(),n=[];for(const e of t)n.push(this._upsertConversation("rest",e.channel_sid,e));return this.myConversationsRead.set(!0),await Promise.all(n),this.myConversationsFetched=!0,this.tombstones.clear(),Ji.debug("The conversations list has been successfully fetched"),this}catch(e){const t="Failed to fetch the conversations list";throw"disconnected"!==this.services.syncClient.connectionState&&Ji.error(t,e),Ji.debug(`ERROR: ${t}`,e),e}}async getConversations(){const e=await this._getMap(),t=await e.getItems();return this._wrapPaginator(t,(e=>Promise.all(e.map((e=>this._upsertConversation("sync",e.key,e.data))))))}async getConversation(e){const t=await this._getMap(),n=(await t.getItems({key:e})).items.map((e=>this._upsertConversation("sync",e.key,e.data)));return n.length>0?n[0]:null}async getConversationByUniqueName(e){const t=new R(this.configuration.links.myConversations).path(e).build(),n=(await this.services.network.get(t)).body,i=n.conversation_sid,r={entityName:null,lastConsumedMessageIndex:n.last_read_message_index,status:n?.status||"unknown",friendlyName:n.friendly_name,dateUpdated:n.date_updated,dateCreated:n.date_created,uniqueName:n.unique_name,createdBy:n.created_by,attributes:n.attributes,channel:n.sync_objects.conversation,notificationLevel:n?.notification_level,sid:i};return i?this._upsertConversation("sync",i,r):null}async peekConversation(e){const t=new R(this.configuration.links.conversations).path(e).build(),n=(await this.services.network.get(t)).body,i={entityName:null,status:n?.status||"unknown",friendlyName:n.friendly_name,dateUpdated:n.date_updated,dateCreated:n.date_created,uniqueName:n.unique_name,createdBy:n.created_by,attributes:n.attributes,channel:`${e}.channel`,sid:e};return this._upsertConversation("sync",e,i)}async _getMap(){return await this.services.syncClient.map({id:this.configuration.myConversations,mode:"open_existing"})}async _wrapPaginator(e,t){return{items:(await t(e.items)).filter((e=>null!==e)),hasNextPage:e.hasNextPage,hasPrevPage:e.hasPrevPage,nextPage:()=>e.nextPage().then((e=>this._wrapPaginator(e,t))),prevPage:()=>e.prevPage().then((e=>this._wrapPaginator(e,t)))}}async _updateConversation(e,t,n){const i=void 0!==t._statusSource&&e!==t._statusSource,r="rest"!==e||"sync"===t._statusSource;if(i&&r&&"sync"!==e)Ji.trace("upsertConversation: conversation is known from sync and came from REST, ignoring",{sid:t.sid,data:n.status,conversation:t.status});else{if("joined"===n.status&&"joined"!==t.status){t._setStatus("joined",e);const i={};return void 0!==n.notificationLevel&&(i.notificationLevel=n.notificationLevel),void 0!==n.lastConsumedMessageIndex&&(i.lastConsumedMessageIndex=n.lastConsumedMessageIndex),de(i,{})||t._update(i),await t._subscribe(),void this.emit("conversationJoined",t)}if("notParticipating"===n.status&&"joined"===t.status)return t._setStatus("notParticipating",e),t._update(n),await t._subscribe(),void this.emit("conversationLeft",t);"notParticipating"!==n.status?t._update(n):await t._subscribe()}}async _upsertConversation(e,t,n){Ji.trace(`upsertConversation called for ${t}`,n);const i=this.conversations.get(t);if(i){Ji.trace(`upsertConversation: the conversation ${i.sid} is known;its status is known from the source ${i._statusSource} and the update came from the source ${e}`,i);try{await this._updateConversation(e,i,n),await i._subscribe()}catch(e){if("SyncError"!==e.name)throw e;return Ji.trace("upsertChannel: the conversation is missing some Sync entity(ies), ignoring",t,e),this.conversations.delete(t),null}return i}if("rest"===e&&this.tombstones.has(t))return Ji.trace("upsertChannel: the conversation is deleted but reappeared again from REST, ignoring",t),null;Ji.trace("upsertConversation: creating a local conversation object with sid "+t,n);const r=`${this.configuration.links.conversations}/${t}`,s=new Conversation(n,t,{self:r,messages:`${r}/Messages`,participants:`${r}/Participants`},this.configuration,this.services);this.conversations.set(t,s);try{await s._subscribe(),"joined"===n.status&&await s._fetchStreams()}catch(e){if("SyncError"!==e.name)throw e;return Ji.trace("upsertChannel: the conversation is missing some Sync entity(ies), ignoring",t,e),this.conversations.delete(t),null}return this._registerForEvents(s),this.emit("conversationAdded",s),"joined"===n.status&&(s._setStatus("joined",e),this.emit("conversationJoined",s)),s}async _fetchMyConversations(){let e=[],t=null;do{const n=new R(this.configuration.links.myConversations);t&&n.arg("PageToken",t);const i=await this.services.network.get(n.build()),r=i.body?.conversations.map((e=>({descriptor:e,channel_sid:e.conversation_sid,status:e.status,channel:e.sync_objects.conversation,messages:e.sync_objects.messages,roster:`${e.conversation_sid}.roster`,lastConsumedMessageIndex:e.last_read_message_index,notificationLevel:e.notification_level})));t=i.body.meta.next_token,e=[...e,...r]}while(t);return e}_onConversationRemoved(e){const t=this.conversations.get(e);t&&(this.conversations.delete(e),this.emit("conversationRemoved",t))}_registerForEvents(e){e.on("removed",(()=>this._onConversationRemoved(e.sid))),e.on("updated",(e=>this.emit("conversationUpdated",e))),e.on("participantJoined",(e=>this.emit("participantJoined",e))),e.on("participantLeft",(e=>this.emit("participantLeft",e))),e.on("participantUpdated",(e=>this.emit("participantUpdated",e))),e.on("messageAdded",(e=>this.emit("messageAdded",e))),e.on("messageUpdated",(e=>this.emit("messageUpdated",e))),e.on("messageRemoved",(e=>this.emit("messageRemoved",e))),e.on("typingStarted",(e=>this.emit("typingStarted",e))),e.on("typingEnded",(e=>this.emit("typingEnded",e)))}}class Qi extends ue{configuration;services;subscribedUsers;fifoStack;myself;constructor(e,t,n){super(),this.configuration=t,this.services=n,this.fifoStack=[],this.myself=e,this.myself.on("updated",(e=>this.emit("userUpdated",e))),this.myself.on("userSubscribed",(()=>this.emit("userSubscribed",this.myself))),this.myself.on("userUnsubscribed",(()=>{this.emit("userUnsubscribed",this.myself),this.myself._ensureFetched()})),this.subscribedUsers=new Map}handleUnsubscribeUser(e){this.subscribedUsers.has(e.identity)&&this.subscribedUsers.delete(e.identity);let t=0;this.fifoStack.find(((n,i)=>n==e.identity&&(t=i,!0)))&&this.fifoStack.splice(t,1),this.emit("userUnsubscribed",e)}handleSubscribeUser(e){if(!this.subscribedUsers.has(e.identity)){if(this.fifoStack.length>=this.configuration.userInfosToSubscribe){const e=this.fifoStack.shift();this.subscribedUsers?.get(e)?.unsubscribe()}this.fifoStack.push(e.identity),this.subscribedUsers.set(e.identity,e),this.emit("userSubscribed",e)}}async getUser(e,t){if(await this.myself._ensureFetched(),e==this.myself.identity)return this.myself;const n=this.subscribedUsers.get(e);if(n)return n;t??=await this.getSyncUniqueName(e);const i=new User(e,t,this.configuration,this.services);return i.on("updated",(e=>this.emit("userUpdated",e))),i.on("userSubscribed",(()=>this.handleSubscribeUser(i))),i.on("userUnsubscribed",(()=>this.handleUnsubscribeUser(i))),await i._ensureFetched(),i}async getSubscribedUsers(){await this.myself._ensureFetched();const e=[this.myself];return this.subscribedUsers.forEach((t=>e.push(t))),e}async getSyncUniqueName(e){const t=new R(this.configuration.links.users).path(e).build();return(await this.services.network.get(t)).body.sync_objects.user_info_map??""}}const Xi=h.scope("TypingIndicator");class Zi{services;configuration;sentUpdates;getConversation;serviceTypingTimeout;constructor(e,t,n){this.configuration=t,this.services=n,this.getConversation=e,this.serviceTypingTimeout=null,this.sentUpdates=new Map}get typingTimeout(){return this.configuration.typingIndicatorTimeoutOverride||this.serviceTypingTimeout||this.configuration.typingIndicatorTimeoutDefault}initialize(){this.services.notificationClient.on("message",(async(e,t)=>{e===tn.TYPING_INDICATOR&&await this._handleRemoteTyping(JSON.parse(t))}))}async _handleRemoteTyping(e){Xi.trace("Got new typing indicator ",e),this.getConversation(e.channel_sid).then((t=>{t&&t._participants.forEach((t=>{if(t.identity!==e.identity)return;const n=this.configuration.typingIndicatorTimeoutOverride?this.configuration.typingIndicatorTimeoutOverride+1e3:1e3*e.typing_timeout;t._startTyping(n)}))})).catch((e=>{throw Xi.error(e),e}))}send(e){const t=this.sentUpdates.get(e);return t&&t>Date.now()-this.typingTimeout?Promise.resolve():(this.sentUpdates.set(e,Date.now()),this._send(e))}_send(e){Xi.trace("Sending typing indicator");const t=this.configuration.links.typing,n=`ChannelSid=${e}`;return this.services.twilsockClient.sendRequest(new Te.HttpRequest({method:"POST",url:t,headers:{"Content-Type":"application/x-www-form-urlencoded"},payload:n,grant:this.configuration.productId})).then((e=>{const t=JSON.parse(e.payload);t.hasOwnProperty("typing_timeout")&&(this.serviceTypingTimeout=1e3*t.typing_timeout)})).catch((e=>{throw Xi.error("Failed to send typing indicator:",e),e}))}}class PushNotification{title;body;sound;badge;action;type;data;constructor(e){this.title=e.title||null,this.body=e.body||null,this.sound=e.sound||null,this.badge=e.badge||null,this.action=e.action||null,this.type=e.type||null,this.data=e.data||{}}}var Yi="3.0.1-rc.1";const er=e=>e.replace(/(^\/+|\/+$)/g,"");class tr extends Error{constructor(e){super(e)}}class nr{_serviceUrl;_services;_productId;constructor(e,t,n){this._serviceUrl=e,this._services=t,this._productId=n}_preProcessUrl(e){const t=er(e);return/^https?:\/\//.test(e)?t:`${er(this._serviceUrl)}/${t}`}async _makeRequest(e,t,n,i){const r=this._preProcessUrl(t),s={"Content-Type":"application/json; charset=utf-8",...i||{}};let a;switch(e){case"get":let e=r;n&&(e+="?"+Object.entries(n).map((e=>e.map((e=>encodeURIComponent(String(e)))).join("="))).join("&")),a=await this._services.transport.sendRequest(new Te.HttpRequest({url:e,headers:s,grant:this._productId}));break;case"post":a=await this._services.transport.sendRequest(new Te.HttpRequest({method:"POST",url:r,headers:s,payload:JSON.stringify(n),grant:this._productId}));break;case"delete":a=await this._services.transport.sendRequest(new Te.HttpRequest({method:"DELETE",url:r,headers:s,grant:this._productId}))}return a}async fetchResource(e,t){const n=new ke({min:50,max:1600,maxAttemptsCount:6});let i;try{i=await n.run((async()=>{const n=await this._makeRequest("get",e,t),i=JSON.parse(n.payload);if(404===n.statusCode&&50530===i.code)return{type:"noMetadata"};if(n.statusCode>=400)throw new Error(i.message);return{type:"success",data:i}}))}catch(t){throw new Error(`Fetch resource from "${e}" failed. ${t?.message?t.message:""}`)}if("noMetadata"===i.type)throw new tr("No metadata found.");return i.data}async mutateResource(e,t,n){const i=await this._makeRequest(e,t,n,{"X-Twilio-Mutation-Id":Pe()});let r={};try{r=JSON.parse(i.payload)}catch{}if(202===i.statusCode)return await this.fetchResource(r.resource_url);if(i.statusCode<200||i.statusCode>=300)throw new Error(`Mutation resulted with a non-success code ${i.statusCode}`);return r}}class ir{_services;_pageSize;_cacheTtlMs;_cachedTemplates=null;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3;this._services=e,this._pageSize=t,this._cacheTtlMs=n}async getContentTemplates(){if(null!==this._cachedTemplates)return this._cachedTemplates;let[e,t]=await this._fetchContentTemplates(),n=e;for(;null!==t;)[e,t]=await this._fetchContentTemplates(t),n=[...n,...e];return this._cachedTemplates=Object.freeze(n),setTimeout((()=>{this._cachedTemplates=null}),this._cacheTtlMs),n}async _fetchContentTemplates(e){const t=new R("Client/v2/ContentTemplates");t.arg("PageSize",this._pageSize),void 0!==e&&t.arg("PageToken",e);const n=await this._services.commandExecutor.fetchResource(t.build());return[n.templates.map((e=>new Fi(e))),n.meta.next_token]}}class rr{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,"function"==typeof this.onEviction)for(const[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}var sr,ar=rr;class or{type;data;constructor(e,t){this.type=e,this.data=t,Object.freeze(t)}}class cr{_services;_configuration;_cache;constructor(e,t){this._services=e,this._configuration=t,this._cache=new ar({maxSize:t.channelMetadataCacheCapacity})}async getChannelMetadata(e,t){const n=`${e},${t}`,i=this._cache.get(n);if(i)return i.item;const r=`${this._configuration.links.conversations}/${e}/Messages/${t}/ChannelMetadata`;let s;try{s=await this._services.commandExecutor.fetchResource(r)}catch(e){if(e instanceof tr)return this._cache.set(n,{item:null}),null;throw e}const a=new or(s.type,s.data);return this._cache.set(n,{item:a}),a}}class ur{commandExecutor;twilsockClient;users;notificationClient;network;typingIndicator;syncClient;mcsClient;transport;contentClient;channelMetadataClient}return e.Client=sr=class extends ue{static conversationAdded="conversationAdded";static conversationJoined="conversationJoined";static conversationLeft="conversationLeft";static conversationRemoved="conversationRemoved";static conversationUpdated="conversationUpdated";static participantJoined="participantJoined";static participantLeft="participantLeft";static participantUpdated="participantUpdated";static messageAdded="messageAdded";static messageRemoved="messageRemoved";static messageUpdated="messageUpdated";static tokenAboutToExpire="tokenAboutToExpire";static tokenExpired="tokenExpired";static typingEnded="typingEnded";static typingStarted="typingStarted";static pushNotification="pushNotification";static userSubscribed="userSubscribed";static userUnsubscribed="userUnsubscribed";static userUpdated="userUpdated";static initialized="initialized";static initFailed="initFailed";static connectionStateChanged="connectionStateChanged";static connectionError="connectionError";static version=Yi;static _logger=h.scope("Client");static _supportedPushChannels=["fcm","apn"];static _supportedPushDataFields={conversation_sid:"conversationSid",conversation_title:"conversationTitle",message_sid:"messageSid",message_index:"messageIndex",media_count:"mediaCount",media:"media"};version=Yi;connectionState="unknown";_ensureReady;_options;_services;_myself;_resolveEnsureReady;_rejectEnsureReady;_fpaToken;_configuration;_conversationsEntity;_conversationsPromise;constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(),this._fpaToken=e??"",this._options=t??{},!this._options.disableDeepClone){let e={...this._options,transport:void 0,twilsockClient:void 0};n=e,e=JSON.parse(JSON.stringify(n)),e.transport=this._options.transport,e.twilsockClient=this._options.twilsockClient,this._options=e}var n;this._options.logLevel=this._options.logLevel??"silent",sr._logger.setLevel(this._options.logLevel);const i=this._options.productId="ip_messaging";if(this._options.clientMetadata=this._options.clientMetadata||{},this._options.clientMetadata.hasOwnProperty("type")||(this._options.clientMetadata.type="conversations"),this._options.clientMetadata.hasOwnProperty("sdk")||(this._options.clientMetadata.sdk="JS",this._options.clientMetadata.sdkv=Yi),this._options.Sync=this._options.Sync||{},void 0===this._options.Sync.enableSessionStorage&&(this._options.Sync.enableSessionStorage=!0),this._options.region&&(this._options.Sync.region=this._options.region),!e)throw new Error("A valid Twilio token should be provided");this._services=new ur,this._myself=new User("","",null,this._services);const r=!this._options.twilsockClient;this._services.twilsockClient=this._options.twilsockClient=this._options.twilsockClient??new Te.TwilsockClient(e,i,this._options),this._services.twilsockClient.populateInitRegistrations(new Set([tn.TYPING_INDICATOR])),this._services.twilsockClient.on("tokenAboutToExpire",(()=>this.emit("tokenAboutToExpire"))),this._services.twilsockClient.on("tokenExpired",(()=>this.emit("tokenExpired"))),this._services.twilsockClient.on("disconnected",(()=>{sr._logger.debug("Handling stateChanged for ConversationsClient: new state disconnected"),"disconnected"!==this.connectionState&&(this.connectionState="disconnected",this.emit("connectionStateChanged",this.connectionState))})),this._services.twilsockClient.on("connecting",(()=>{sr._logger.debug("Handling stateChanged for ConversationsClient: new state connecting"),"connecting"!==this.connectionState&&(this.connectionState="connecting",this.emit("connectionStateChanged",this.connectionState))})),this._services.twilsockClient.on("connected",(()=>{sr._logger.debug("Handling stateChanged for ConversationsClient: new state connected"),"connected"!==this.connectionState&&(this.connectionState="connected",this.emit("connectionStateChanged",this.connectionState))})),this._services.transport=this._options.transport=this._options.transport??this._options.twilsockClient,this._services.notificationClient=this._options.notificationsClient=this._options.notificationsClient??new nn.Notifications(e,this._options),this._services.syncClient=this._options.syncClient=this._options.syncClient??new Mi(e,this._options);const s=t?.Chat||t?.IPMessaging||t||{},a=s.region||t?.region,o=s.apiUri||s.typingUri||`https://aim.${a||"us1"}.twilio.com`;this._services.commandExecutor=new nr(o,{transport:this._options.transport},i),this._services.contentClient=new ir(this._services);const c=this._services.twilsockClient.onceWithReplay("fatalError",(e=>{const t={terminal:!0,message:e.description};this._rejectEnsureReady(t),this.emit("initFailed",{error:t})}));this._services.twilsockClient.onceWithReplay("connected",(async()=>{sr._logger.debug("ConversationsClient started INITIALIZING"),c();try{await this._initialize()}catch(e){const t={terminal:!0,message:e.message};this._rejectEnsureReady(t),this.emit("initFailed",{error:t})}})),this._ensureReady=new Promise(((e,t)=>{this._resolveEnsureReady=e,this._rejectEnsureReady=t})).catch((e=>{sr._logger.error(e)})),r&&this._services.twilsockClient.connect()}get user(){return this._myself}get reachabilityEnabled(){if(!this._configuration)throw new Error("Reachability information could not yet be accessed as the client has not yet been initialized. Subscribe to 'initialized' and 'initFailed' events to properly react to the client initialization.");return this._configuration.reachabilityEnabled}static parsePushNotification(e){if(sr._logger.debug("parsePushNotification, notificationPayload=",e),void 0!==e.aps){if(!e.twi_message_type)throw new Error("Provided push notification payload does not contain Programmable Chat push notification type");const t=sr._parsePushNotificationChatData(e),n=e.aps;let i,r=null;return"string"==typeof n.alert?i=n.alert||null:(i=n.alert?.body||null,r=n.alert?.title||null),new PushNotification({title:r,body:i,sound:n.sound||null,badge:n.badge||null,action:n.category||null,type:e.twi_message_type,data:t})}if(void 0!==e.data){const t=e.data;if(!t.twi_message_type)throw new Error("Provided push notification payload does not contain Programmable Chat push notification type");const n=sr._parsePushNotificationChatData(e.data);return new PushNotification({title:t.twi_title||null,body:t.twi_body||null,sound:t.twi_sound||null,badge:null,action:t.twi_action||null,type:t.twi_message_type,data:n})}throw new Error("Provided push notification payload is not Programmable Chat notification")}static _parsePushNotificationChatData(e){const t={};for(const n in sr._supportedPushDataFields){const i=e[n];if(null!=i)if("message_index"!==n&&"media_count"!==n){if("media"!==n)t[sr._supportedPushDataFields[n]]=i;else if("string"==typeof i)try{t[sr._supportedPushDataFields[n]]=JSON.parse(i)}catch{sr._logger.debug("Media message notification parsing error")}}else{const e=T(i);null!==e&&(t[sr._supportedPushDataFields[n]]=e)}}return t}async shutdown(){await this._ensureReady,await(this._services.network?.disconnect())}async updateToken(e){return await this._ensureReady,sr._logger.info("updateToken"),this._fpaToken===e||(await this._services.twilsockClient.updateToken(e),await this._services.notificationClient.updateToken(e),await this._services.mcsClient.updateToken(e),this._fpaToken=e),this}async getConversationBySid(e){await this._ensureReady,await this._conversationsEntity.myConversationsRead.promise;const t=await this._conversationsEntity.getConversation(e);if(!t)throw new Error(`Conversation with SID ${e} was not found.`);return t}async peekConversationBySid(e){await this._ensureReady;const t=await this._conversationsEntity.peekConversation(e);if(!t)throw new Error(`Conversation with SID ${e} was not found.`);return t}async getConversationByUniqueName(e){await this._ensureReady,await this._conversationsEntity.myConversationsRead.promise;const t=await this._conversationsEntity.getConversationByUniqueName(e);if(!t)throw new Error(`Conversation with unique name ${e} was not found.`);return t}async getSubscribedConversations(){await this._ensureReady;const e=await this._conversationsPromise;return await e.getConversations()}async createConversation(e){return await this._ensureReady,e=e||{},this._conversationsPromise.then((t=>t.addConversation(e)))}async setPushRegistrationId(e,t){await this._ensureReady,this._subscribeToPushNotifications(e),this._services.notificationClient.setPushRegistrationId(e,t),await this._services.notificationClient.commitChanges()}async removePushRegistrations(e,t){await this._services.notificationClient.removeRegistrations(e,t)}parsePushNotification=sr.parsePushNotification;async handlePushNotification(e){await this._ensureReady,sr._logger.debug("handlePushNotification, notificationPayload=",e),this.emit("pushNotification",sr.parsePushNotification(e))}async getUser(e){return await this._ensureReady,this._services.users.getUser(e)}async getSubscribedUsers(){return await this._ensureReady,this._services.users.getSubscribedUsers()}getTemporaryContentUrlsForMediaSids(e){return new Oi.CancellablePromise((async(t,n,i)=>{if(!this._services.mcsClient||!e)return void n(new Error("Media Content Service is unavailable"));const r=this._services.mcsClient.mediaSetGetContentUrls(e);i((()=>{r.cancel()}));try{t(await r)}catch(e){n(e)}}))}getTemporaryContentUrlsForMedia(e){const t=e.map((e=>e.sid));return this.getTemporaryContentUrlsForMediaSids(t)}async getContentTemplates(){return await this._ensureReady,await this._services.contentClient.getContentTemplates()}async _initialize(){const e=await this._services.commandExecutor.fetchResource("Client/v2/Configuration");this._configuration=new E(this._options,e,sr._logger),this._services.channelMetadataClient=new cr(this._services,this._configuration),this._myself._resolveInitialization(this._configuration,this._configuration.userIdentity,this._configuration.userInfo,!0),this._services.typingIndicator=new Zi(this.getConversationBySid.bind(this),this._configuration,this._services),this._services.network=new en(this._configuration,this._services),this._services.users=new Qi(this._myself,this._configuration,this._services),this._services.users.on("userSubscribed",(e=>{this.emit("userSubscribed",e)})),this._services.users.on("userUpdated",(e=>this.emit("userUpdated",e))),this._services.users.on("userUnsubscribed",(e=>{this.emit("userUnsubscribed",e)})),this._conversationsEntity=new Gi(this._configuration,this._services),this._conversationsEntity.on("conversationAdded",(e=>{this.emit("conversationAdded",e)})),this._conversationsEntity.on("conversationRemoved",(e=>{this.emit("conversationRemoved",e)})),this._conversationsEntity.on("conversationJoined",(e=>{this.emit("conversationJoined",e)})),this._conversationsEntity.on("conversationLeft",(e=>{this.emit("conversationLeft",e)})),this._conversationsEntity.on("conversationUpdated",(e=>this.emit("conversationUpdated",e))),this._conversationsEntity.on("participantJoined",(e=>{this.emit("participantJoined",e)})),this._conversationsEntity.on("participantLeft",(e=>{this.emit("participantLeft",e)})),this._conversationsEntity.on("participantUpdated",(e=>this.emit("participantUpdated",e))),this._conversationsEntity.on("messageAdded",(e=>this.emit("messageAdded",e))),this._conversationsEntity.on("messageUpdated",(e=>this.emit("messageUpdated",e))),this._conversationsEntity.on("messageRemoved",(e=>this.emit("messageRemoved",e))),this._conversationsEntity.on("typingStarted",(e=>this.emit("typingStarted",e))),this._conversationsEntity.on("typingEnded",(e=>this.emit("typingEnded",e))),this._conversationsPromise=this._conversationsEntity.fetchConversations().then((()=>this._conversationsEntity)).catch((e=>{if("Client has been shut down."===e.message)return this._conversationsEntity;throw e})),await this._services.users.myself._ensureFetched(),sr._supportedPushChannels.forEach((e=>this._subscribeToPushNotifications(e))),this._services.typingIndicator.initialize(),this._services.mcsClient=new Oi.McsClient(this._fpaToken,this._configuration.links.mediaService,this._configuration.links.mediaSetService,{...this._options,transport:void 0}),this._resolveEnsureReady(),this.emit("initialized")}_subscribeToPushNotifications(e){[tn.NEW_MESSAGE,tn.ADDED_TO_CONVERSATION,tn.REMOVED_FROM_CONVERSATION,tn.TYPING_INDICATOR,tn.CONSUMPTION_UPDATE].forEach((t=>{this._services.notificationClient.subscribe(e,t)}))}},n([X(K),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],e.Client.prototype,"updateToken",null),n([X(K),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],e.Client.prototype,"getConversationBySid",null),n([X(K),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],e.Client.prototype,"peekConversationBySid",null),n([X(K),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],e.Client.prototype,"getConversationByUniqueName",null),n([X(["undefined",V("conversation options",{friendlyName:["string","undefined"],isPrivate:["boolean","undefined"],uniqueName:["string","undefined"]})]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Promise)],e.Client.prototype,"createConversation",null),n([X(z("fcm","apn"),"string"),i("design:type",Function),i("design:paramtypes",[String,String]),i("design:returntype",Promise)],e.Client.prototype,"setPushRegistrationId",null),n([X(z("fcm","apn"),K),i("design:type",Function),i("design:paramtypes",[String,String]),i("design:returntype",Promise)],e.Client.prototype,"removePushRegistrations",null),n([X(J),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Promise)],e.Client.prototype,"handlePushNotification",null),n([X(K),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],e.Client.prototype,"getUser",null),n([X(W("strings","string")),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Oi.CancellablePromise)],e.Client.prototype,"getTemporaryContentUrlsForMediaSids",null),n([X(W("media",Media)),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Oi.CancellablePromise)],e.Client.prototype,"getTemporaryContentUrlsForMedia",null),n([Q(J),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",PushNotification)],e.Client,"parsePushNotification",null),e.Client=sr=n([G(K,[J,"undefined"]),i("design:paramtypes",[String,Object])],e.Client),e.AggregatedDeliveryReceipt=AggregatedDeliveryReceipt,e.CancellablePromise=Be,e.CancellationError=ze,e.ChannelMetadata=or,e.ContentTemplate=Fi,e.ContentTemplateVariable=ContentTemplateVariable,e.Conversation=Conversation,e.DetailedDeliveryReceipt=DetailedDeliveryReceipt,e.Media=Media,e.Message=Message,e.MessageBuilder=Ki,e.NotificationTypes=tn,e.Participant=Participant,e.PushNotification=PushNotification,e.RestPaginator=Ni,e.UnsentMessage=Wi,e.User=User,Object.defineProperty(e,"__esModule",{value:!0}),e}({});